diff options
| -rw-r--r-- | color.go | 29 | ||||
| -rw-r--r-- | plugin.go | 37 | ||||
| -rw-r--r-- | structs.go | 5 | ||||
| -rw-r--r-- | widget.go | 2 |
4 files changed, 57 insertions, 16 deletions
@@ -41,7 +41,14 @@ var superLightGrey gocui.Attribute = gocui.GetColor("#55AAFF") // super light gr // Normal Text On mouseover // // Widget Frame Text background Text background -var colorWindow colorT = colorT{none, gocui.ColorBlue, none, none, powdererBlue, "normal window"} +var colorWindow colorT = colorT { + frame: none, + fg: gocui.ColorBlue, + bg: none, + selFg: none, + selBg: powdererBlue, + name: "normal window", +} var colorActiveW colorT = colorT{none, none, powdererBlue, none, powdererBlue, "active window"} var colorTab colorT = colorT{gocui.ColorBlue, gocui.ColorBlue, none, none, powdererBlue, "normal tab"} @@ -51,6 +58,15 @@ var colorButton colorT = colorT{gocui.ColorGreen, none, gocui.ColorWhite, gocui. var colorLabel colorT = colorT{none, none, superLightGrey, none, superLightGrey, "normal label"} var colorGroup colorT = colorT{none, none, superLightGrey, none, superLightGrey, "normal group"} +var colorDisabled colorT = colorT { + frame: superLightGrey, + fg: superLightGrey, + bg: superLightGrey, + selFg: gocui.ColorBlack, + selBg: gocui.ColorBlack, + name: "disabled widget", +} + // widget debugging colors. these widgets aren't displayed unless you are debugging var colorRoot colorT = colorT{gocui.ColorRed, none, powdererBlue, none, gocui.ColorBlue, "debug root"} var colorFlag colorT = colorT{gocui.ColorRed, none, powdererBlue, none, gocui.ColorGreen, "debug flag"} @@ -83,6 +99,17 @@ func (tk *guiWidget) setColor(newColor *colorT) { tk.recreateView() } +func (w *guiWidget) disableColor() { + if w.color != &colorDisabled { + w.defaultColor = w.color + } + w.setColor(&colorDisabled) +} + +func (w *guiWidget) enableColor() { + w.setColor(w.defaultColor) +} + func (w *guiWidget) setDefaultWidgetColor() { w.showView() } @@ -28,6 +28,12 @@ func action(a widget.Action) { me.treeRoot = n } addWidget(n) + w = n.TK.(*guiWidget) + if w.enable { + // don't change the color + } else { + w.setColor(&colorDisabled) + } } else { // this is done to protect the plugin being 'refreshed' with the // widget binary tree. TODO: find a way to keep them in sync @@ -35,10 +41,19 @@ func action(a widget.Action) { a.WidgetId, a.ActionType, a.WidgetType, a.ProgName) } case widget.Show: - if widget.GetBool(a.Value) { - w.showView() + if w.Visible() { + // widget was already shown } else { - w.hideWidgets() + log.Log(INFO, "Setting Visible to true", a.ProgName) + w.SetVisible(true) + } + w.showView() + case widget.Hide: + if w.Visible() { + log.Log(INFO, "Setting Visible to false", a.ProgName) + w.SetVisible(false) + } else { + // widget was already hidden } case widget.Set: if a.WidgetType == widget.Flag { @@ -62,19 +77,11 @@ func action(a widget.Action) { log.Log(NOW, "attempting to close the plugin and release stdout and stderr") standardExit() case widget.Enable: - if w.Visible() { - // widget was already shown - } else { - log.Log(INFO, "Setting Visible to true", a.ProgName) - w.SetVisible(true) - } + w.enable = true + w.enableColor() case widget.Disable: - if w.Visible() { - log.Log(INFO, "Setting Visible to false", a.ProgName) - w.SetVisible(false) - } else { - // widget was already hidden - } + w.enable = false + w.disableColor() case widget.Delete: if w == nil { return @@ -151,6 +151,11 @@ type guiWidget struct { active bool + enable bool + defaultColor *colorT // store the color to go back to + + hidden bool + // AtW int // AtH int @@ -27,6 +27,8 @@ func initWidget(n *tree.Node) *guiWidget { w.labelN = n.GetProgName() } w.frame = true + w.hidden = n.State.Hidden + w.enable = n.State.Enable if n.WidgetType == widget.Root { log.Log(INFO, "setupWidget() FOUND ROOT w.id =", n.WidgetId) |
