mirror of https://github.com/buggins/dlangui.git
fix broken margins and padding
This commit is contained in:
parent
b27925f54f
commit
a7d062097a
|
@ -443,6 +443,7 @@ class ScrollBar : AbstractSlider, OnClickHandler {
|
|||
|
||||
this(string resourceId) {
|
||||
super("SLIDER", resourceId);
|
||||
styleId = "BUTTON_NOMARGINS";
|
||||
trackHover = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -240,14 +240,14 @@ class Style {
|
|||
|
||||
/// padding
|
||||
@property ref const(Rect) padding() const {
|
||||
if (_stateValue != State.Enabled)
|
||||
if (_stateMask || _margins.left == SIZE_UNSPECIFIED)
|
||||
return parentStyle._padding;
|
||||
return _padding;
|
||||
}
|
||||
|
||||
/// margins
|
||||
@property ref const(Rect) margins() const {
|
||||
if (_stateValue != State.Enabled)
|
||||
if (_stateMask || _margins.left == SIZE_UNSPECIFIED)
|
||||
return parentStyle._margins;
|
||||
return _margins;
|
||||
}
|
||||
|
@ -446,11 +446,27 @@ class Style {
|
|||
return this;
|
||||
}
|
||||
|
||||
Style setMargins(int left, int top, int right, int bottom) {
|
||||
_margins.left = left;
|
||||
_margins.top = top;
|
||||
_margins.right = right;
|
||||
_margins.bottom = bottom;
|
||||
return this;
|
||||
}
|
||||
|
||||
@property Style padding(Rect rc) {
|
||||
_padding = rc;
|
||||
return this;
|
||||
}
|
||||
|
||||
Style setPadding(int left, int top, int right, int bottom) {
|
||||
_padding.left = left;
|
||||
_padding.top = top;
|
||||
_padding.right = right;
|
||||
_padding.bottom = bottom;
|
||||
return this;
|
||||
}
|
||||
|
||||
debug(resalloc) private static int _instanceCount;
|
||||
debug(resalloc) @property static int instanceCount() { return _instanceCount; }
|
||||
|
||||
|
@ -555,6 +571,8 @@ class Theme : Style {
|
|||
Style style = new Style(null, null);
|
||||
style._parentId = id;
|
||||
style._align = Align.Unspecified; // inherit
|
||||
style._padding.left = SIZE_UNSPECIFIED; // inherit
|
||||
style._margins.left = SIZE_UNSPECIFIED; // inherit
|
||||
return style;
|
||||
}
|
||||
|
||||
|
@ -646,14 +664,15 @@ Theme createDefaultTheme() {
|
|||
}
|
||||
//res.fontFace = "Arial Narrow";
|
||||
res.fontSize = 15; // TODO: choose based on DPI
|
||||
Style button = res.createSubstyle("BUTTON").backgroundImageId("btn_default_small").alignment(Align.Center);
|
||||
Style button = res.createSubstyle("BUTTON").backgroundImageId("btn_default_small").alignment(Align.Center).setMargins(5,5,5,5);
|
||||
res.createSubstyle("BUTTON_TRANSPARENT").backgroundImageId("btn_default_small_transparent").alignment(Align.Center);
|
||||
res.createSubstyle("BUTTON_LABEL").layoutWidth(FILL_PARENT).alignment(Align.Left|Align.VCenter);
|
||||
res.createSubstyle("BUTTON_ICON").alignment(Align.Center);
|
||||
res.createSubstyle("TEXT").margins(Rect(2,2,2,2)).padding(Rect(1,1,1,1));
|
||||
res.createSubstyle("TEXT").setMargins(2,2,2,2).setPadding(1,1,1,1);
|
||||
res.createSubstyle("HSPACER").layoutWidth(FILL_PARENT).minWidth(5).layoutWeight(100);
|
||||
res.createSubstyle("VSPACER").layoutHeight(FILL_PARENT).minHeight(5).layoutWeight(100);
|
||||
//button.createState(State.Enabled | State.Focused, State.Focused).backgroundImageId("btn_default_small_normal_disable_focused");
|
||||
res.createSubstyle("BUTTON_NOMARGINS").backgroundImageId("btn_default_small").alignment(Align.Center); // .setMargins(5,5,5,5)
|
||||
//button.createState(State.Enabled | State.Focused, State.Focused).backgroundImageId("btn_default_small_normal_disable_focused");
|
||||
//button.createState(State.Enabled, 0).backgroundImageId("btn_default_small_normal_disable");
|
||||
//button.createState(State.Pressed, State.Pressed).backgroundImageId("btn_default_small_pressed");
|
||||
//button.createState(State.Focused, State.Focused).backgroundImageId("btn_default_small_selected");
|
||||
|
@ -694,22 +713,22 @@ Theme createDefaultTheme() {
|
|||
tabHost.layoutWidth(FILL_PARENT).layoutHeight(FILL_PARENT);
|
||||
tabHost.backgroundColor(0xF0F0F0);
|
||||
Style tabWidget = res.createSubstyle("TAB_WIDGET");
|
||||
tabWidget.padding(Rect(3,3,3,3)).backgroundColor(0xEEEEEE);
|
||||
tabWidget.setPadding(3,3,3,3).backgroundColor(0xEEEEEE);
|
||||
//tabWidget.backgroundImageId("frame_blue");
|
||||
//res.dumpStats();
|
||||
|
||||
Style mainMenu = res.createSubstyle("MAIN_MENU").backgroundColor(0xEFEFF2).layoutWidth(FILL_PARENT);
|
||||
Style mainMenuItem = res.createSubstyle("MAIN_MENU_ITEM").padding(Rect(4,2,4,2)).backgroundImageId("main_menu_item_background");
|
||||
Style menuItem = res.createSubstyle("MENU_ITEM").padding(Rect(4,2,4,2)); //.backgroundColor(0xE0E080) ;
|
||||
Style mainMenuItem = res.createSubstyle("MAIN_MENU_ITEM").setPadding(4,2,4,2).backgroundImageId("main_menu_item_background");
|
||||
Style menuItem = res.createSubstyle("MENU_ITEM").setPadding(4,2,4,2); //.backgroundColor(0xE0E080) ;
|
||||
menuItem.createState(State.Focused, State.Focused).backgroundColor(0x40C0C000);
|
||||
menuItem.createState(State.Pressed, State.Pressed).backgroundColor(0x4080C000);
|
||||
menuItem.createState(State.Selected, State.Selected).backgroundColor(0x00F8F9Fa);
|
||||
menuItem.createState(State.Hovered, State.Hovered).backgroundColor(0xC0FFFF00);
|
||||
res.createSubstyle("MENU_ICON").margins(Rect(4,2,4,2)).alignment(Align.VCenter|Align.Left);
|
||||
res.createSubstyle("MENU_LABEL").margins(Rect(8,2,8,2)).alignment(Align.VCenter|Align.Left);
|
||||
res.createSubstyle("MENU_ACCEL").margins(Rect(4,2,4,2)).alignment(Align.VCenter|Align.Left);
|
||||
res.createSubstyle("MENU_ICON").setMargins(2,2,2,2).alignment(Align.VCenter|Align.Left);
|
||||
res.createSubstyle("MENU_LABEL").setMargins(4,2,4,2).alignment(Align.VCenter|Align.Left);
|
||||
res.createSubstyle("MENU_ACCEL").setMargins(4,2,4,2).alignment(Align.VCenter|Align.Left);
|
||||
|
||||
Style transparentButtonBackground = res.createSubstyle("TRANSPARENT_BUTTON_BACKGROUND").backgroundImageId("transparent_button_background").padding(Rect(4,2,4,2)); //.backgroundColor(0xE0E080) ;
|
||||
Style transparentButtonBackground = res.createSubstyle("TRANSPARENT_BUTTON_BACKGROUND").backgroundImageId("transparent_button_background").setPadding(4,2,4,2); //.backgroundColor(0xE0E080) ;
|
||||
//transparentButtonBackground.createState(State.Focused, State.Focused).backgroundColor(0xC0C0C000);
|
||||
//transparentButtonBackground.createState(State.Pressed, State.Pressed).backgroundColor(0x4080C000);
|
||||
//transparentButtonBackground.createState(State.Selected, State.Selected).backgroundColor(0x00F8F9Fa);
|
||||
|
@ -722,10 +741,10 @@ Theme createDefaultTheme() {
|
|||
//listItem.createState(State.Enabled, 0).textColor(0x80000000); // half transparent text for disabled item
|
||||
|
||||
Style editLine = res.createSubstyle("EDIT_LINE").backgroundImageId("editbox_background")
|
||||
.padding(Rect(5,6,5,6)).margins(Rect(2,2,2,2)).minWidth(40)
|
||||
.setPadding(5,6,5,6).setMargins(2,2,2,2).minWidth(40)
|
||||
.fontFace("Arial").fontFamily(FontFamily.SansSerif).fontSize(16);
|
||||
Style editBox = res.createSubstyle("EDIT_BOX").backgroundImageId("editbox_background")
|
||||
.padding(Rect(5,6,5,6)).margins(Rect(2,2,2,2)).minWidth(100).minHeight(60).layoutHeight(FILL_PARENT).layoutWidth(FILL_PARENT)
|
||||
.setPadding(5,6,5,6).setMargins(2,2,2,2).minWidth(100).minHeight(60).layoutHeight(FILL_PARENT).layoutWidth(FILL_PARENT)
|
||||
.fontFace("Courier New").fontFamily(FontFamily.MonoSpace).fontSize(16);
|
||||
|
||||
return res;
|
||||
|
|
Loading…
Reference in New Issue