summaryrefslogtreecommitdiff
path: root/pkg/gui/gui.go
diff options
context:
space:
mode:
authorIbrahim Serdar Acikgoz <serdaracikgoz86@gmail.com>2018-12-10 03:00:24 +0300
committerGitHub <noreply@github.com>2018-12-10 03:00:24 +0300
commit0f55d3652c215074df03de4390856d4389a1b729 (patch)
tree852ca843d5a67852d69054f816bb8b746df8b49e /pkg/gui/gui.go
parentMerge pull request #28 from isacikgoz/develop (diff)
parentadded recursive option and some minor code formating (diff)
downloadgitbatch-0f55d3652c215074df03de4390856d4389a1b729.tar.gz
Merge pull request #29 from isacikgoz/develop
Develop
Diffstat (limited to 'pkg/gui/gui.go')
-rw-r--r--pkg/gui/gui.go33
1 files changed, 28 insertions, 5 deletions
diff --git a/pkg/gui/gui.go b/pkg/gui/gui.go
index 0598383..0cf9458 100644
--- a/pkg/gui/gui.go
+++ b/pkg/gui/gui.go
@@ -41,15 +41,15 @@ type mode struct {
}
// ModeID is the mode indicator for the gui
-type ModeID int8
+type ModeID string
const (
// FetchMode puts the gui in fetch state
- FetchMode ModeID = 0
+ FetchMode ModeID = "fetch"
// PullMode puts the gui in pull state
- PullMode ModeID = 1
+ PullMode ModeID = "pull"
// MergeMode puts the gui in merge state
- MergeMode ModeID = 2
+ MergeMode ModeID = "merge"
)
var (
@@ -70,10 +70,11 @@ var (
mergeMode = mode{ModeID: MergeMode, DisplayString: "Merge", CommandString: "merge"}
mainViews = []viewFeature{mainViewFeature, remoteViewFeature, remoteBranchViewFeature, branchViewFeature, commitViewFeature}
+ modes = []mode{fetchMode, pullMode, mergeMode}
)
// NewGui creates a Gui opject and fill it's state related entites
-func NewGui(directoies []string) (*Gui, error) {
+func NewGui(mode string, directoies []string) (*Gui, error) {
initialState := guiState{
Directories: directoies,
Mode: fetchMode,
@@ -82,6 +83,12 @@ func NewGui(directoies []string) (*Gui, error) {
gui := &Gui{
State: initialState,
}
+ for _, m := range modes {
+ if string(m.ModeID) == mode {
+ gui.State.Mode = m
+ break
+ }
+ }
return gui, nil
}
@@ -194,6 +201,22 @@ func (gui *Gui) layout(g *gocui.Gui) error {
return nil
}
+// focus to next view
+func (gui *Gui) nextMainView(g *gocui.Gui, v *gocui.View) error {
+ if err := gui.nextViewOfGroup(g, v, mainViews); err != nil {
+ return err
+ }
+ return nil
+}
+
+// focus to previous view
+func (gui *Gui) previousMainView(g *gocui.Gui, v *gocui.View) error {
+ if err := gui.previousViewOfGroup(g, v, mainViews); err != nil {
+ return err
+ }
+ return nil
+}
+
// quit from the gui and end its loop
func (gui *Gui) quit(g *gocui.Gui, v *gocui.View) error {
return gocui.ErrQuit