@@ -13019,6 +13019,8 @@ class MouseActivatedWidget : Widget {
13019
13019
super.defaultEventHandler_keyup(ev);
13020
13020
if(!(dynamicState & DynamicState.depressed))
13021
13021
return;
13022
+ if(!enabled)
13023
+ return;
13022
13024
setDynamicState(DynamicState.depressed, false);
13023
13025
setDynamicState(DynamicState.hover, false);
13024
13026
this.redraw();
@@ -13028,7 +13030,7 @@ class MouseActivatedWidget : Widget {
13028
13030
}
13029
13031
override void defaultEventHandler_click(ClickEvent ev) {
13030
13032
super.defaultEventHandler_click(ev);
13031
- if(ev.button == MouseButton.left) {
13033
+ if(ev.button == MouseButton.left && enabled ) {
13032
13034
auto event = new Event(EventType.triggered, this);
13033
13035
event.sendDirectly();
13034
13036
}
@@ -13551,18 +13553,25 @@ class Button : MouseActivatedWidget {
13551
13553
auto cs = widget.getComputedStyle(); // FIXME: this is potentially recursive
13552
13554
13553
13555
auto pressed = DynamicState.depressed | DynamicState.hover;
13554
- if((widget.dynamicState & pressed) == pressed) {
13556
+ if((widget.dynamicState & pressed) == pressed && widget.enabled ) {
13555
13557
return WidgetBackground(cs.depressedButtonColor());
13556
- } else if(widget.dynamicState & DynamicState.hover) {
13558
+ } else if(widget.dynamicState & DynamicState.hover && widget.enabled ) {
13557
13559
return WidgetBackground(cs.hoveringColor());
13558
13560
} else {
13559
13561
return WidgetBackground(cs.buttonColor());
13560
13562
}
13561
13563
}
13562
13564
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
+
13563
13572
override FrameStyle borderStyle() {
13564
13573
auto pressed = DynamicState.depressed | DynamicState.hover;
13565
- if((widget.dynamicState & pressed) == pressed) {
13574
+ if((widget.dynamicState & pressed) == pressed && widget.enabled ) {
13566
13575
return FrameStyle.sunk;
13567
13576
} else {
13568
13577
return FrameStyle.risen;
@@ -13587,6 +13596,7 @@ class Button : MouseActivatedWidget {
13587
13596
Point pos = bounds.upperLeft;
13588
13597
if(this.height == 16)
13589
13598
pos.y -= 2; // total hack omg
13599
+
13590
13600
painter.drawText(pos, label, bounds.lowerRight, alignment | TextAlignment.VerticalCenter);
13591
13601
}
13592
13602
return bounds;
0 commit comments