summaryrefslogtreecommitdiff
path: root/pkg/gui/gui.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/gui/gui.go')
-rw-r--r--pkg/gui/gui.go17
1 files changed, 12 insertions, 5 deletions
diff --git a/pkg/gui/gui.go b/pkg/gui/gui.go
index 5c32bc0..7fb3019 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
}