Skip to content

Commit 45daf12

Browse files
authored
Make buttons disableable
1 parent f1a259e commit 45daf12

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

minigui.d

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13019,6 +13019,8 @@ class MouseActivatedWidget : Widget {
1301913019
super.defaultEventHandler_keyup(ev);
1302013020
if(!(dynamicState & DynamicState.depressed))
1302113021
return;
13022+
if(!enabled)
13023+
return;
1302213024
setDynamicState(DynamicState.depressed, false);
1302313025
setDynamicState(DynamicState.hover, false);
1302413026
this.redraw();
@@ -13028,7 +13030,7 @@ class MouseActivatedWidget : Widget {
1302813030
}
1302913031
override void defaultEventHandler_click(ClickEvent ev) {
1303013032
super.defaultEventHandler_click(ev);
13031-
if(ev.button == MouseButton.left) {
13033+
if(ev.button == MouseButton.left && enabled) {
1303213034
auto event = new Event(EventType.triggered, this);
1303313035
event.sendDirectly();
1303413036
}
@@ -13551,18 +13553,25 @@ class Button : MouseActivatedWidget {
1355113553
auto cs = widget.getComputedStyle(); // FIXME: this is potentially recursive
1355213554

1355313555
auto pressed = DynamicState.depressed | DynamicState.hover;
13554-
if((widget.dynamicState & pressed) == pressed) {
13556+
if((widget.dynamicState & pressed) == pressed && widget.enabled) {
1355513557
return WidgetBackground(cs.depressedButtonColor());
13556-
} else if(widget.dynamicState & DynamicState.hover) {
13558+
} else if(widget.dynamicState & DynamicState.hover && widget.enabled) {
1355713559
return WidgetBackground(cs.hoveringColor());
1355813560
} else {
1355913561
return WidgetBackground(cs.buttonColor());
1356013562
}
1356113563
}
1356213564

13565+
override Color foregroundColor() {
13566+
auto clr = super.foregroundColor();
13567+
if(widget.enabled) return clr;
13568+
13569+
return Color(clr.r, clr.g, clr.b, clr.a / 2);
13570+
}
13571+
1356313572
override FrameStyle borderStyle() {
1356413573
auto pressed = DynamicState.depressed | DynamicState.hover;
13565-
if((widget.dynamicState & pressed) == pressed) {
13574+
if((widget.dynamicState & pressed) == pressed && widget.enabled) {
1356613575
return FrameStyle.sunk;
1356713576
} else {
1356813577
return FrameStyle.risen;
@@ -13587,6 +13596,7 @@ class Button : MouseActivatedWidget {
1358713596
Point pos = bounds.upperLeft;
1358813597
if(this.height == 16)
1358913598
pos.y -= 2; // total hack omg
13599+
1359013600
painter.drawText(pos, label, bounds.lowerRight, alignment | TextAlignment.VerticalCenter);
1359113601
}
1359213602
return bounds;

0 commit comments

Comments
 (0)