diff --git a/150_gfui/src/gplx/gfui/controls/gxws/GxwComboBox.java b/150_gfui/src/gplx/gfui/controls/gxws/GxwComboBox.java index 9cb3b1130..7a08d6204 100644 --- a/150_gfui/src/gplx/gfui/controls/gxws/GxwComboBox.java +++ b/150_gfui/src/gplx/gfui/controls/gxws/GxwComboBox.java @@ -14,7 +14,10 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.gfui.controls.gxws; import gplx.*; import gplx.gfui.*; import gplx.gfui.controls.*; +import gplx.gfui.draws.*; public interface GxwComboBox extends GxwElem { + ColorAdp Border_color(); + void Border_color_(ColorAdp v); int SelBgn(); void SelBgn_set(int v); int SelLen(); void SelLen_set(int v); void Sel_(int bgn, int end); diff --git a/150_gfui/src/gplx/gfui/controls/gxws/GxwComboBox_lang.java b/150_gfui/src/gplx/gfui/controls/gxws/GxwComboBox_lang.java index 9e9cf9d83..5a7aafae9 100644 --- a/150_gfui/src/gplx/gfui/controls/gxws/GxwComboBox_lang.java +++ b/150_gfui/src/gplx/gfui/controls/gxws/GxwComboBox_lang.java @@ -18,6 +18,7 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; +import gplx.gfui.draws.*; import gplx.gfui.ipts.*; import gplx.gfui.gfxs.*; public class GxwComboBox_lang extends JComboBox implements GxwComboBox, GxwElem, ActionListener { public String[] DataSource_as_str_ary() {return String_.Ary_empty;} @@ -33,6 +34,7 @@ public class GxwComboBox_lang extends JComboBox implements GxwComboBox, GxwElem, obj = cb.getSelectedItem(); */ } + public ColorAdp Border_color() {return border_color;} public void Border_color_(ColorAdp v) {border_color = v;} private ColorAdp border_color; public int SelBgn() {return -1;} public void SelBgn_set(int v) {} public int SelLen() {return 0;} public void SelLen_set(int v) {} public void Sel_(int bgn, int end) {} diff --git a/150_gfui/src/gplx/gfui/controls/gxws/GxwElem_mock_base.java b/150_gfui/src/gplx/gfui/controls/gxws/GxwElem_mock_base.java index e2dfaa087..4d57eb632 100644 --- a/150_gfui/src/gplx/gfui/controls/gxws/GxwElem_mock_base.java +++ b/150_gfui/src/gplx/gfui/controls/gxws/GxwElem_mock_base.java @@ -15,6 +15,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.gfui.controls.gxws; import gplx.*; import gplx.gfui.*; import gplx.gfui.controls.*; import gplx.gfui.ipts.*; +import gplx.gfui.draws.*; public class GxwElem_mock_base implements GxwElem { public GxwCore_base Core() {return ctrlMgr;} final GxwCore_mock ctrlMgr = new GxwCore_mock(); public GxwCbkHost Host() {return host;} public void Host_set(GxwCbkHost host) {this.host = host;} GxwCbkHost host = GxwCbkHost_.Null; @@ -30,6 +31,7 @@ public class GxwElem_mock_base implements GxwElem { } class MockTextBox extends GxwElem_mock_base implements GxwTextFld { public boolean Border_on() {return borderOn;} public void Border_on_(boolean v) {borderOn = v;} private boolean borderOn = true; + public ColorAdp Border_color() {return border_color;} public void Border_color_(ColorAdp v) {border_color = v;} private ColorAdp border_color; public boolean OverrideTabKey() {return false;} public void OverrideTabKey_(boolean v) {} public int SelBgn() {return selectionStart;} public void SelBgn_set(int v) {selectionStart = v;} int selectionStart; public int SelLen() {return selectionLength;} public void SelLen_set(int v) {selectionLength = v;} int selectionLength; @@ -61,6 +63,7 @@ class MockTextBoxMulti extends MockTextBox implements GxwTextMemo, GxwTextHtml { public void ScrollTillCaretIsVisible() {} } class MockComboBox extends GxwElem_mock_base implements GxwComboBox { + public ColorAdp Border_color() {return border_color;} public void Border_color_(ColorAdp v) {border_color = v;} private ColorAdp border_color; public int SelBgn() {return -1;} public void SelBgn_set(int v) {} public int SelLen() {return 0;} public void SelLen_set(int v) {} public void Sel_(int bgn, int end) {} diff --git a/150_gfui/src/gplx/gfui/controls/gxws/GxwTextBox_lang.java b/150_gfui/src/gplx/gfui/controls/gxws/GxwTextBox_lang.java index a8ea25f2e..f6fad53b5 100644 --- a/150_gfui/src/gplx/gfui/controls/gxws/GxwTextBox_lang.java +++ b/150_gfui/src/gplx/gfui/controls/gxws/GxwTextBox_lang.java @@ -31,6 +31,7 @@ import javax.swing.KeyStroke; import javax.swing.border.BevelBorder; import javax.swing.border.Border; import javax.swing.text.JTextComponent; +import gplx.gfui.draws.*; import gplx.gfui.ipts.*; import gplx.gfui.gfxs.*; import gplx.gfui.controls.elems.*; public class GxwTextBox_lang extends JTextArea implements GxwTextFld { public Object UnderElem() {return this;} @@ -48,6 +49,7 @@ public class GxwTextBox_lang extends JTextArea implements GxwTextFld { Border border = v ? BorderFactory.createLineBorder(Color.BLACK, 1) : null; this.setBorder(border); } + public ColorAdp Border_color() {return border_color;} public void Border_color_(ColorAdp v) {border_color = v;} private ColorAdp border_color; public void Margins_set(int left, int top, int right, int bot) {} public boolean OverrideTabKey() {return overrideTabKey;} boolean overrideTabKey; public void OverrideTabKey_(boolean val) { @@ -124,6 +126,7 @@ class GxwTextFld_cls_lang extends JTextField implements GxwTextFld { Border border = v ? BorderFactory.createLineBorder(Color.BLACK) : null; this.setBorder(border); } boolean borderOn = true; + public ColorAdp Border_color() {return border_color;} public void Border_color_(ColorAdp v) {border_color = v;} private ColorAdp border_color; public void Margins_set(int left, int top, int right, int bot) {} public boolean OverrideTabKey() {return overrideTabKey;} public void OverrideTabKey_(boolean val) { diff --git a/150_gfui/src/gplx/gfui/controls/gxws/GxwTextFld.java b/150_gfui/src/gplx/gfui/controls/gxws/GxwTextFld.java index f364cc131..58c2ae5c9 100644 --- a/150_gfui/src/gplx/gfui/controls/gxws/GxwTextFld.java +++ b/150_gfui/src/gplx/gfui/controls/gxws/GxwTextFld.java @@ -14,8 +14,10 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.gfui.controls.gxws; import gplx.*; import gplx.gfui.*; import gplx.gfui.controls.*; +import gplx.gfui.draws.*; public interface GxwTextFld extends GxwElem { boolean Border_on(); void Border_on_(boolean v); + ColorAdp Border_color(); void Border_color_(ColorAdp v); int SelBgn(); void SelBgn_set(int v); int SelLen(); void SelLen_set(int v); void CreateControlIfNeeded(); diff --git a/150_gfui/src/gplx/gfui/controls/gxws/GxwTextHtml_lang.java b/150_gfui/src/gplx/gfui/controls/gxws/GxwTextHtml_lang.java index 9bf4a229e..66f811137 100644 --- a/150_gfui/src/gplx/gfui/controls/gxws/GxwTextHtml_lang.java +++ b/150_gfui/src/gplx/gfui/controls/gxws/GxwTextHtml_lang.java @@ -60,6 +60,7 @@ import javax.swing.text.html.HTMLEditorKit; import javax.swing.text.html.HTMLEditorKit.HTMLFactory; import javax.swing.text.html.InlineView; import javax.swing.text.html.StyleSheet; +import gplx.gfui.draws.*; import gplx.gfui.ipts.*; import gplx.gfui.gfxs.*; public class GxwTextHtml_lang extends JScrollPane implements GxwTextHtml { @Override public GxwCore_base Core() {return core;} GxwCore_host core; @@ -73,6 +74,7 @@ public class GxwTextHtml_lang extends JScrollPane implements GxwTextHtml { // Border border = v ? BorderFactory.createLineBorder(Color.BLACK) : null; // this.setBorder(border); } + public ColorAdp Border_color() {return border_color;} public void Border_color_(ColorAdp v) {border_color = v;} private ColorAdp border_color; @Override public boolean OverrideTabKey() {return false;} @Override public void OverrideTabKey_(boolean v) {} @Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {return null;} @@ -139,8 +141,9 @@ class GxwTextHtml_editor extends JEditorPane implements GxwTextHtml { @Override public void Border_on_(boolean v) { borderOn = v; Border border = v ? BorderFactory.createLineBorder(Color.BLACK) : null; - this.setBorder(border); - } + this.setBorder(border); + } + public ColorAdp Border_color() {return border_color;} public void Border_color_(ColorAdp v) {border_color = v;} private ColorAdp border_color; @Override public boolean OverrideTabKey() {return false;} @Override public void OverrideTabKey_(boolean v) {} @Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {return null;} diff --git a/150_gfui/src/gplx/gfui/controls/gxws/GxwTextMemo_lang.java b/150_gfui/src/gplx/gfui/controls/gxws/GxwTextMemo_lang.java index 1ecac55d4..15aaa8c57 100644 --- a/150_gfui/src/gplx/gfui/controls/gxws/GxwTextMemo_lang.java +++ b/150_gfui/src/gplx/gfui/controls/gxws/GxwTextMemo_lang.java @@ -267,6 +267,7 @@ public class GxwTextMemo_lang extends JScrollPane implements GxwTextMemo { // return charactersPastEndOfLine == String_.NewLine ? lineLength + newLineLength : lineLength; } public boolean Border_on() {return txt_box.Border_on();} public void Border_on_(boolean v) {txt_box.Border_on_(v);} + public ColorAdp Border_color() {return border_color;} public void Border_color_(ColorAdp v) {border_color = v;} private ColorAdp border_color; public void CreateControlIfNeeded() {txt_box.CreateControlIfNeeded();} public boolean OverrideTabKey() {return txt_box.OverrideTabKey();} public void OverrideTabKey_(boolean v) { diff --git a/150_gfui/src/gplx/gfui/controls/gxws/Gxw_tab_mgr.java b/150_gfui/src/gplx/gfui/controls/gxws/Gxw_tab_mgr.java index abf852924..b386ad232 100644 --- a/150_gfui/src/gplx/gfui/controls/gxws/Gxw_tab_mgr.java +++ b/150_gfui/src/gplx/gfui/controls/gxws/Gxw_tab_mgr.java @@ -16,8 +16,11 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt package gplx.gfui.controls.gxws; import gplx.*; import gplx.gfui.*; import gplx.gfui.controls.*; import gplx.gfui.draws.*; import gplx.gfui.controls.standards.*; public interface Gxw_tab_mgr extends GxwElem { - ColorAdp Btns_selected_color(); void Btns_selected_color_(ColorAdp v); - ColorAdp Btns_unselected_color(); void Btns_unselected_color_(ColorAdp v); + ColorAdp Btns_selected_background(); void Btns_selected_background_(ColorAdp v); + ColorAdp Btns_selected_foreground(); void Btns_selected_foreground_(ColorAdp v); + ColorAdp Btns_unselected_background(); void Btns_unselected_background_(ColorAdp v); + ColorAdp Btns_unselected_foreground(); void Btns_unselected_foreground_(ColorAdp v); + int Btns_height(); void Btns_height_(int v); boolean Btns_place_on_top(); void Btns_place_on_top_(boolean v); boolean Btns_curved(); void Btns_curved_(boolean v); diff --git a/150_gfui/src/gplx/gfui/controls/standards/GfuiComboBox.java b/150_gfui/src/gplx/gfui/controls/standards/GfuiComboBox.java index 1f4a5288b..f7d72721c 100644 --- a/150_gfui/src/gplx/gfui/controls/standards/GfuiComboBox.java +++ b/150_gfui/src/gplx/gfui/controls/standards/GfuiComboBox.java @@ -14,6 +14,7 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.gfui.controls.standards; import gplx.*; import gplx.gfui.*; import gplx.gfui.controls.*; +import gplx.gfui.draws.*; import gplx.gfui.kits.core.*; import gplx.gfui.controls.gxws.*; import gplx.gfui.controls.elems.*; public class GfuiComboBox extends GfuiElemBase { @Override public void ctor_GfuiBox_base(Keyval_hash ctorArgs) { @@ -21,6 +22,7 @@ public class GfuiComboBox extends GfuiElemBase { this.combo = (GxwComboBox)this.UnderElem(); } @Override public GxwElem UnderElem_make(Keyval_hash ctorArgs) {return GxwElemFactory_.Instance.comboBox_();} private GxwComboBox combo; + public ColorAdp Border_color() {return combo.Border_color();} public void Border_color_(ColorAdp v) {combo.Border_color_(v);} public int SelBgn() {return combo.SelBgn();} public void SelBgn_set(int v) {combo.SelBgn_set(v); Gfo_evt_mgr_.Pub(this, Evt__selection_start_changed);} public int SelLen() {return combo.SelLen();} public void SelLen_set(int v) {combo.SelLen_set(v);} public void Sel_(int bgn, int len) {combo.Sel_(bgn, len);} diff --git a/150_gfui/src/gplx/gfui/controls/standards/GfuiTextBox.java b/150_gfui/src/gplx/gfui/controls/standards/GfuiTextBox.java index b0e35b979..e3e11b6b9 100644 --- a/150_gfui/src/gplx/gfui/controls/standards/GfuiTextBox.java +++ b/150_gfui/src/gplx/gfui/controls/standards/GfuiTextBox.java @@ -14,11 +14,13 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.gfui.controls.standards; import gplx.*; import gplx.gfui.*; import gplx.gfui.controls.*; +import gplx.gfui.draws.*; import gplx.gfui.kits.core.*; import gplx.gfui.controls.gxws.*; import gplx.gfui.controls.elems.*; public class GfuiTextBox extends GfuiElemBase { public static final String SelectionStartChanged_evt = "SelectionStartChanged"; public boolean Border_on() {return textBox.Border_on();} public void Border_on_(boolean v) {BorderOn_set(v);} + public ColorAdp Border_color() {return textBox.Border_color();} public void Border_color_(ColorAdp v) {textBox.Border_color_(v);} public int SelBgn() {return textBox.SelBgn();} public void SelBgn_set(int v) {textBox.SelBgn_set(v); Gfo_evt_mgr_.Pub(this, SelectionStartChanged_evt);} public int SelLen() {return textBox.SelLen();} public void SelLen_set(int v) {textBox.SelLen_set(v);} public String SelText() { diff --git a/150_gfui/src/gplx/gfui/controls/standards/Gfui_tab_mgr.java b/150_gfui/src/gplx/gfui/controls/standards/Gfui_tab_mgr.java index 85fa5ba50..5587a2fca 100644 --- a/150_gfui/src/gplx/gfui/controls/standards/Gfui_tab_mgr.java +++ b/150_gfui/src/gplx/gfui/controls/standards/Gfui_tab_mgr.java @@ -17,8 +17,10 @@ package gplx.gfui.controls.standards; import gplx.*; import gplx.gfui.*; import import gplx.gfui.draws.*; import gplx.gfui.kits.core.*; import gplx.gfui.controls.gxws.*; import gplx.gfui.controls.elems.*; public class Gfui_tab_mgr extends GfuiElemBase { public void Under_tab_mgr_(Gxw_tab_mgr v) {under = v;} private Gxw_tab_mgr under; - public ColorAdp Btns_selected_color() {return under.Btns_selected_color();} public void Btns_selected_color_(ColorAdp v) {under.Btns_selected_color_(v);} - public ColorAdp Btns_unselected_color() {return under.Btns_unselected_color();} public void Btns_unselected_color_(ColorAdp v) {under.Btns_unselected_color_(v);} + public ColorAdp Btns_selected_background() {return under.Btns_selected_background();} public void Btns_selected_background_(ColorAdp v) {under.Btns_selected_background_(v);} + public ColorAdp Btns_selected_foreground() {return under.Btns_selected_foreground();} public void Btns_selected_foreground_(ColorAdp v) {under.Btns_selected_foreground_(v);} + public ColorAdp Btns_unselected_background() {return under.Btns_unselected_background();} public void Btns_unselected_background_(ColorAdp v) {under.Btns_unselected_background_(v);} + public ColorAdp Btns_unselected_foreground() {return under.Btns_unselected_foreground();} public void Btns_unselected_foreground_(ColorAdp v) {under.Btns_unselected_foreground_(v);} public Gfui_tab_itm Tabs_add(Gfui_tab_itm_data tab_data) { Gxw_tab_itm tab_itm = under.Tabs_add(tab_data); return Gfui_tab_itm.kit_(this.Kit(), tab_data.Key(), tab_itm, new Keyval_hash()); diff --git a/150_gfui/src/gplx/gfui/kits/core/Mem_html.java b/150_gfui/src/gplx/gfui/kits/core/Mem_html.java index 34ca7b515..ac8b505b3 100644 --- a/150_gfui/src/gplx/gfui/kits/core/Mem_html.java +++ b/150_gfui/src/gplx/gfui/kits/core/Mem_html.java @@ -48,8 +48,10 @@ class Mem_html extends GxwTextMemo_lang implements Gxw_html { public void Html_ this.ctor_MsTextBoxMultiline_(); } } -class Mem_tab_mgr extends GxwElem_mock_base implements Gxw_tab_mgr { public ColorAdp Btns_selected_color() {return btns_selected_color;} public void Btns_selected_color_(ColorAdp v) {btns_selected_color = v;} private ColorAdp btns_selected_color; - public ColorAdp Btns_unselected_color() {return btns_unselected_color;} public void Btns_unselected_color_(ColorAdp v) {btns_unselected_color = v;} private ColorAdp btns_unselected_color; +class Mem_tab_mgr extends GxwElem_mock_base implements Gxw_tab_mgr { public ColorAdp Btns_selected_background() {return btns_selected_background;} public void Btns_selected_background_(ColorAdp v) {btns_selected_background = v;} private ColorAdp btns_selected_background; + public ColorAdp Btns_selected_foreground() {return btns_selected_foreground;} public void Btns_selected_foreground_(ColorAdp v) {btns_selected_foreground = v;} private ColorAdp btns_selected_foreground; + public ColorAdp Btns_unselected_background() {return btns_unselected_background;} public void Btns_unselected_background_(ColorAdp v) {btns_unselected_background = v;} private ColorAdp btns_unselected_background; + public ColorAdp Btns_unselected_foreground() {return btns_unselected_foreground;} public void Btns_unselected_foreground_(ColorAdp v) {btns_unselected_foreground = v;} private ColorAdp btns_unselected_foreground; public Gxw_tab_itm Tabs_add(Gfui_tab_itm_data tab_data) {return new Mem_tab_itm();} public void Tabs_select_by_idx(int i) {} public void Tabs_close_by_idx(int i) {} diff --git a/150_gfui/src/gplx/gfui/kits/core/Swt_kit.java b/150_gfui/src/gplx/gfui/kits/core/Swt_kit.java index c7f113507..7bf215a63 100644 --- a/150_gfui/src/gplx/gfui/kits/core/Swt_kit.java +++ b/150_gfui/src/gplx/gfui/kits/core/Swt_kit.java @@ -196,7 +196,7 @@ public class Swt_kit implements Gfui_kit { for (int i = 0; i < args_len; i++) ctor_args.Add(args[i]); boolean border_on = Bool_.Cast(ctor_args.Get_val_or(GfuiTextBox.CFG_border_on_, true)); - GxwTextFld under = new Swt_text_w_border(Swt_control_.cast_or_fail(owner), New_color(border_on ? ColorAdp_.LightGray : ColorAdp_.White), ctor_args); + GxwTextFld under = new Swt_text_w_border(this, Swt_control_.cast_or_fail(owner), New_color(border_on ? ColorAdp_.LightGray : ColorAdp_.White), ctor_args); GfuiTextBox rv = GfuiTextBox_.kit_(this, key, under, ctor_args); rv.Owner_(owner); ctor_args.Clear(); @@ -211,7 +211,7 @@ public class Swt_kit implements Gfui_kit { return rv; } public GfuiComboBox New_combo(String key, GfuiElem owner, Keyval... args) { - Swt_combo_ctrl rv_swt = new Swt_combo_ctrl(Swt_control_.cast_or_fail(owner), this.New_color(ColorAdp_.LightGray), ctor_args); + Swt_combo_ctrl rv_swt = new Swt_combo_ctrl(this, Swt_control_.cast_or_fail(owner), this.New_color(ColorAdp_.LightGray), ctor_args); GfuiComboBox rv = GfuiComboBox.kit_(this, key, rv_swt, ctor_args); rv.Owner_(owner); rv_swt.Evt_mgr_(rv.Evt_mgr()); diff --git a/150_gfui/src/gplx/gfui/kits/swts/Swt_btn_no_border.java b/150_gfui/src/gplx/gfui/kits/swts/Swt_btn_no_border.java index ad3dfc40d..f3e98b45c 100644 --- a/150_gfui/src/gplx/gfui/kits/swts/Swt_btn_no_border.java +++ b/150_gfui/src/gplx/gfui/kits/swts/Swt_btn_no_border.java @@ -27,6 +27,7 @@ import gplx.gfui.imgs.ImageAdp; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Cursor; import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; @@ -61,15 +62,24 @@ public class Swt_btn_no_border implements GxwElem, Swt_control { private void Btn_img_(ImageAdp v) { if (box_btn == null || v == null) return; SizeAdp size = core.Size(); - box_btn.setImage((Image)v.Resize(size.Width(), size.Height()).Under()); + v = v.Resize(size.Width(), size.Height()); + box_btn.setImage(Copy_w_transparency((Image)v.Under())); + } + private Image Copy_w_transparency(Image src) { + // set transparency + ImageData imageData = src.getImageData(); + imageData.transparentPixel = imageData.getPixel(0, 0); + + // create new image with transparency set + Image trg = new Image(box_grp.getDisplay(), imageData); + src.dispose(); + return trg; } private void Make_btn_no_border(Display display, Shell shell, Composite owner) { box_grp = new Composite(owner, SWT.FLAT); box_btn = new Label(box_grp, SWT.FLAT); box_grp.setSize(16, 16); box_btn.setSize(16, 16); - box_grp.setBackground(display.getSystemColor(SWT.COLOR_WHITE)); - box_btn.setBackground(display.getSystemColor(SWT.COLOR_WHITE)); box_btn.addFocusListener(new Swt_clabel_lnr_focus(box_grp)); } } diff --git a/150_gfui/src/gplx/gfui/kits/swts/Swt_combo.java b/150_gfui/src/gplx/gfui/kits/swts/Swt_combo.java index 7e05d86d0..2740b4474 100644 --- a/150_gfui/src/gplx/gfui/kits/swts/Swt_combo.java +++ b/150_gfui/src/gplx/gfui/kits/swts/Swt_combo.java @@ -29,6 +29,7 @@ import gplx.gfui.controls.gxws.GxwComboBox; import gplx.gfui.controls.gxws.GxwCore_base; import gplx.gfui.controls.gxws.GxwElem; import gplx.gfui.controls.standards.GfuiComboBox; +import gplx.gfui.draws.ColorAdp; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; @@ -47,6 +48,7 @@ class Swt_combo implements GxwElem, GxwComboBox, Swt_control, Gfo_evt_mgr_owner combo.addMouseListener(new Swt_lnr_mouse(this)); combo.addSelectionListener(new Swt_combo__selection_listener(this)); } + public ColorAdp Border_color() {return border_color;} public void Border_color_(ColorAdp v) {border_color = v;} private ColorAdp border_color; @Override public Gfo_evt_mgr Evt_mgr() {return ev_mgr;} private Gfo_evt_mgr ev_mgr; public void Evt_mgr_(Gfo_evt_mgr v) {ev_mgr = v;} @Override public Control Under_control() {return combo;} @Override public Control Under_menu_control() {return combo;} diff --git a/150_gfui/src/gplx/gfui/kits/swts/Swt_combo_ctrl.java b/150_gfui/src/gplx/gfui/kits/swts/Swt_combo_ctrl.java index 9d4ce93ed..2dc1d5db8 100644 --- a/150_gfui/src/gplx/gfui/kits/swts/Swt_combo_ctrl.java +++ b/150_gfui/src/gplx/gfui/kits/swts/Swt_combo_ctrl.java @@ -21,6 +21,7 @@ import gplx.core.threads.Thread_adp_; import gplx.gfui.controls.gxws.GxwComboBox; import gplx.gfui.controls.gxws.GxwElem; import gplx.gfui.controls.standards.GfuiComboBox; +import gplx.gfui.kits.core.Swt_kit; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; @@ -43,8 +44,8 @@ import org.eclipse.swt.widgets.Text; public class Swt_combo_ctrl extends Swt_text_w_border implements GxwElem, GxwComboBox, Swt_control, Gfo_evt_mgr_owner { // REF: https://www.eclipse.org/forums/index.php/t/351029/; http://git.eclipse.org/c/platform/eclipse.platform.swt.git/tree/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet320.java private final Text swt_text; private final Swt_combo_list list; - public Swt_combo_ctrl(Swt_control owner, Color color, Keyval_hash ctorArgs) { - super(owner, color, new Keyval_hash()); + public Swt_combo_ctrl(Swt_kit kit, Swt_control owner, Color color, Keyval_hash ctorArgs) { + super(kit, owner, color, new Keyval_hash()); Display display = owner.Under_control().getDisplay(); Shell shell = owner.Under_control().getShell(); this.swt_text = super.Under_text(); diff --git a/150_gfui/src/gplx/gfui/kits/swts/Swt_core__base.java b/150_gfui/src/gplx/gfui/kits/swts/Swt_core__base.java index 9cd780ad9..9ca69cfc1 100644 --- a/150_gfui/src/gplx/gfui/kits/swts/Swt_core__base.java +++ b/150_gfui/src/gplx/gfui/kits/swts/Swt_core__base.java @@ -102,7 +102,7 @@ abstract class Swt_core__base extends GxwCore_base { @Override public void Zorder_front() {} // TODO.FUTURE: Canvas c; c.moveAbove(arg0); @Override public void Zorder_back() {} // TODO.FUTURE: Canvas c; c.moveBelow(arg0); - private static ColorAdp To_color_gfui(Color v) {return ColorAdp_.new_(0, v.getRed(), v.getGreen(), v.getBlue());} + protected static ColorAdp To_color_gfui(Color v) {return ColorAdp_.new_(0, v.getRed(), v.getGreen(), v.getBlue());} protected static Color To_color_swt(Control control, ColorAdp v) {return new Color(control.getDisplay(), v.Red(), v.Green(), v.Blue());} private static FontAdp Control_font_get(Font font, GxwCore_base owner) { FontData fontData = font.getFontData()[0]; diff --git a/150_gfui/src/gplx/gfui/kits/swts/Swt_core__dual.java b/150_gfui/src/gplx/gfui/kits/swts/Swt_core__dual.java index bc4faeabf..61cd7afea 100644 --- a/150_gfui/src/gplx/gfui/kits/swts/Swt_core__dual.java +++ b/150_gfui/src/gplx/gfui/kits/swts/Swt_core__dual.java @@ -15,7 +15,9 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.gfui.kits.swts; import gplx.*; import gplx.gfui.*; import gplx.gfui.kits.*; import org.eclipse.swt.widgets.*; +import org.eclipse.swt.graphics.Color; import gplx.gfui.controls.gxws.*; +import gplx.gfui.draws.ColorAdp; class Swt_core__dual extends Swt_core__base { private final Control outer, inner; @@ -29,6 +31,18 @@ class Swt_core__dual extends Swt_core__base { @Override public void Height_set(int v) {super.Height_set(v); Swt_control_.H_set(outer, v + inner_adj_h);} @Override public void Size_set(SizeAdp v) {super.Size_set(v); Swt_control_.Size_set(inner, v.Width() + inner_adj_w, v.Height() + inner_adj_h);} @Override public void Rect_set(RectAdp v) {super.Rect_set(v); Swt_control_.Size_set(inner, v.Width() + inner_adj_w, v.Height() + inner_adj_h);} + @Override public ColorAdp BackColor() {return To_color_gfui(inner.getBackground());} + @Override public void BackColor_set(ColorAdp v) { + Color color = To_color_swt(inner, v); + inner.setBackground(color); + outer.setBackground(color); + } + @Override public ColorAdp ForeColor() {return To_color_gfui(inner.getForeground());} + @Override public void ForeColor_set(ColorAdp v) { + Color color = To_color_swt(inner, v); + inner.setForeground(color); + outer.setForeground(color); + } @Override public void Invalidate() {outer.update(); inner.update();} @Override public void Dispose() {outer.dispose(); inner.dispose();} diff --git a/150_gfui/src/gplx/gfui/kits/swts/Swt_core__frames.java b/150_gfui/src/gplx/gfui/kits/swts/Swt_core__frames.java index 3da68dd88..9b7ae1d60 100644 --- a/150_gfui/src/gplx/gfui/kits/swts/Swt_core__frames.java +++ b/150_gfui/src/gplx/gfui/kits/swts/Swt_core__frames.java @@ -53,11 +53,17 @@ class Swt_core__frames extends Swt_core__base { @Override public void Width_set(int v) {super.Width_set(v); Frames_w_set(v);} @Override public void Height_set(int v) {super.Height_set(v); Frames_h_set(v);} @Override public void Size_set(SizeAdp v) {super.Size_set(v); Frames_size_set(v);} - @Override public void Rect_set(RectAdp v) {super.Rect_set(v); Frames_size_set(v.Size());} + @Override public void Rect_set(RectAdp v) {super.Rect_set(v); Frames_size_set(v.Size());} @Override public void BackColor_set(ColorAdp v) { Color color = Swt_core__base.To_color_swt(outer, v); - for (int i = 0; i < frames_len; i++) + for (int i = 0; i < frames_len; i++) { frames[i].Item().setBackground(color); + } + } + @Override public void ForeColor_set(ColorAdp v) { + Color color = Swt_core__base.To_color_swt(outer, v); + for (int i = 0; i < frames_len; i++) + frames[i].Item().setForeground(color); } @Override public void Controls_add(GxwElem sub) {throw Err_.new_unimplemented();} @Override public void Controls_del(GxwElem sub) {} diff --git a/150_gfui/src/gplx/gfui/kits/swts/Swt_tab_mgr.java b/150_gfui/src/gplx/gfui/kits/swts/Swt_tab_mgr.java index 6316badd1..b1a7c8003 100644 --- a/150_gfui/src/gplx/gfui/kits/swts/Swt_tab_mgr.java +++ b/150_gfui/src/gplx/gfui/kits/swts/Swt_tab_mgr.java @@ -60,30 +60,32 @@ public class Swt_tab_mgr implements Gxw_tab_mgr, Swt_control, FocusListener, Gfo @Override public Control Under_menu_control() {return tab_folder;} public Gfo_evt_mgr Evt_mgr() {return ev_mgr;} private Gfo_evt_mgr ev_mgr; public void Evt_mgr_(Gfo_evt_mgr v) {ev_mgr = v;} - public ColorAdp Btns_selected_color() {return btns_selected_color;} private ColorAdp btns_selected_color; - public void Btns_selected_color_(ColorAdp v) { - btns_selected_color = v; - tab_folder.setSelectionBackground(kit.New_color(v)); - } - public ColorAdp Btns_unselected_color() {return btns_unselected_color;} - public void Btns_unselected_color_(ColorAdp v) { - btns_unselected_color = v; - tab_folder.setBackground(kit.New_color(v)); - } private ColorAdp btns_unselected_color; - @Override public boolean Btns_curved() {return tab_folder.getSimple();} @Override public void Btns_curved_(boolean v) {tab_folder.setSimple(!v);} - @Override public boolean Btns_place_on_top() {return tab_folder.getTabPosition() == SWT.TOP;} - @Override public void Btns_place_on_top_(boolean v) {tab_folder.setTabPosition(v ? SWT.TOP : SWT.BOTTOM); tab_folder.layout();} - @Override public int Btns_height() {return tab_folder.getTabHeight();} @Override public void Btns_height_(int v) {tab_folder.setTabHeight(v); tab_folder.layout();} - @Override public boolean Btns_close_visible() {return btns_close_visible;} private boolean btns_close_visible = true; - @Override public void Btns_close_visible_(boolean v) { + + public ColorAdp Btns_selected_foreground() {return btns_selected_foreground;} private ColorAdp btns_selected_foreground; + public void Btns_selected_foreground_(ColorAdp v) {btns_selected_foreground = v; tab_folder.setSelectionForeground(kit.New_color(v));} + public ColorAdp Btns_selected_background() {return btns_selected_background;} private ColorAdp btns_selected_background; + public void Btns_selected_background_(ColorAdp v) {btns_selected_background = v; tab_folder.setSelectionBackground(kit.New_color(v));} + public ColorAdp Btns_unselected_foreground() {return btns_unselected_foreground;} private ColorAdp btns_unselected_foreground; + public void Btns_unselected_foreground_(ColorAdp v) {btns_unselected_foreground = v; tab_folder.setForeground(kit.New_color(v));} + public ColorAdp Btns_unselected_background() {return btns_unselected_background;} private ColorAdp btns_unselected_background; + public void Btns_unselected_background_(ColorAdp v) {btns_unselected_background = v; tab_folder.setBackground(kit.New_color(v));} + public boolean Btns_curved() {return tab_folder.getSimple();} + public void Btns_curved_(boolean v) {tab_folder.setSimple(!v);} + public boolean Btns_place_on_top() {return tab_folder.getTabPosition() == SWT.TOP;} + public void Btns_place_on_top_(boolean v) {tab_folder.setTabPosition(v ? SWT.TOP : SWT.BOTTOM); tab_folder.layout();} + public int Btns_height() {return tab_folder.getTabHeight();} + public void Btns_height_(int v) {tab_folder.setTabHeight(v); tab_folder.layout();} + public boolean Btns_close_visible() {return btns_close_visible;} private boolean btns_close_visible = true; + public void Btns_close_visible_(boolean v) { this.btns_close_visible = v; CTabItem[] itms = tab_folder.getItems(); int len = itms.length; for (int i = 0; i < len; i++) itms[i].setShowClose(v); } - @Override public boolean Btns_unselected_close_visible() {return tab_folder.getUnselectedCloseVisible();} @Override public void Btns_unselected_close_visible_(boolean v) { - tab_folder.setUnselectedCloseVisible(v);} + public boolean Btns_unselected_close_visible() {return tab_folder.getUnselectedCloseVisible();} + public void Btns_unselected_close_visible_(boolean v) {tab_folder.setUnselectedCloseVisible(v);} + @Override public Gxw_tab_itm Tabs_add(Gfui_tab_itm_data tab_data) { Swt_tab_itm rv = new Swt_tab_itm(this, kit, tab_folder, tab_data); rv.Under_CTabItem().setData(tab_data); diff --git a/150_gfui/src/gplx/gfui/kits/swts/Swt_text.java b/150_gfui/src/gplx/gfui/kits/swts/Swt_text.java index 7a24e1512..96260d1a3 100644 --- a/150_gfui/src/gplx/gfui/kits/swts/Swt_text.java +++ b/150_gfui/src/gplx/gfui/kits/swts/Swt_text.java @@ -18,6 +18,7 @@ import gplx.gfui.controls.gxws.GxwCbkHost; import gplx.gfui.controls.gxws.GxwCore_base; import gplx.gfui.controls.gxws.GxwTextFld; import gplx.gfui.controls.standards.GfuiTextBox_; +import gplx.gfui.draws.ColorAdp; import org.eclipse.swt.SWT; import org.eclipse.swt.events.KeyEvent; @@ -58,6 +59,7 @@ public class Swt_text implements GxwTextFld, Swt_control { @Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {return null;} public void Margins_set(int left, int top, int right, int bot) {} @Override public boolean Border_on() {return false;} @Override public void Border_on_(boolean v) {} // SWT_TODO:borderWidth doesn't seem mutable + public ColorAdp Border_color() {return border_color;} public void Border_color_(ColorAdp v) {border_color = v;} private ColorAdp border_color; @Override public void CreateControlIfNeeded() {} @Override public boolean OverrideTabKey() {return false;} @Override public void OverrideTabKey_(boolean v) {} } diff --git a/150_gfui/src/gplx/gfui/kits/swts/Swt_text_w_border.java b/150_gfui/src/gplx/gfui/kits/swts/Swt_text_w_border.java index b82e3ca02..c3cc97af8 100644 --- a/150_gfui/src/gplx/gfui/kits/swts/Swt_text_w_border.java +++ b/150_gfui/src/gplx/gfui/kits/swts/Swt_text_w_border.java @@ -14,10 +14,12 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.gfui.kits.swts; import gplx.*; import gplx.gfui.*; import gplx.gfui.kits.*; +import gplx.gfui.kits.core.Swt_kit; import gplx.gfui.controls.gxws.GxwCbkHost; import gplx.gfui.controls.gxws.GxwCore_base; import gplx.gfui.controls.gxws.GxwTextFld; import gplx.gfui.controls.standards.GfuiTextBox_; +import gplx.gfui.draws.ColorAdp; import org.eclipse.swt.SWT; import org.eclipse.swt.events.TraverseEvent; @@ -34,10 +36,12 @@ import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; public class Swt_text_w_border implements GxwTextFld, Swt_control { + private final Swt_kit kit; private Composite text_host; private Composite text_margin; private Text text_elem; - public Swt_text_w_border(Swt_control owner_control, Color color, Keyval_hash ctorArgs) { + public Swt_text_w_border(Swt_kit kit, Swt_control owner_control, Color color, Keyval_hash ctorArgs) { + this.kit = kit; Composite owner = owner_control.Under_composite(); int text_elem_style = ctorArgs.Has(GfuiTextBox_.Ctor_Memo) ? SWT.MULTI | SWT.WRAP | SWT.V_SCROLL : SWT.FLAT; New_box_text_w_border(owner.getDisplay(), owner, text_elem_style, color); @@ -69,17 +73,20 @@ public class Swt_text_w_border implements GxwTextFld, Swt_control { public void Margins_set(int left, int top, int right, int bot) { this.margins_l = left; this.margins_t = top; this.margins_r = right; this.margins_b = bot; } - @Override public boolean Border_on() {return false;} @Override public void Border_on_(boolean v) {} // SWT_TODO:borderWidth doesn't seem mutable + @Override public boolean Border_on() {return false;} + @Override public void Border_on_(boolean v) {} // SWT_TODO:borderWidth doesn't seem mutable + public ColorAdp Border_color() {return border_color;} private ColorAdp border_color; + public void Border_color_(ColorAdp v) { + this.border_color = v; text_host.setBackground(kit.New_color(v)); + } @Override public void CreateControlIfNeeded() {} @Override public boolean OverrideTabKey() {return false;} @Override public void OverrideTabKey_(boolean v) {} - private void New_box_text_w_border(Display display, Composite owner, int style, Color color) { + private void New_box_text_w_border(Display display, Composite owner, int style, Color border_color) { text_host = new Composite(owner, SWT.FLAT); text_margin = new Composite(text_host, SWT.FLAT); text_elem = new Text(text_margin, style); text_elem .addTraverseListener(Swt_lnr_traverse_ignore_ctrl.Instance); // do not allow ctrl+tab to change focus when pressed in text box; allows ctrl+tab to be used by other bindings; DATE:2014-04-30 text_host.setSize(20, 20); - text_host.setBackground(color); - text_margin.setBackground(display.getSystemColor(SWT.COLOR_WHITE)); text_margin.setSize(25, 25); } public static final int Margin_v_dflt = 4; diff --git a/400_xowa/src/gplx/xowa/guis/views/Xog_tab_mgr.java b/400_xowa/src/gplx/xowa/guis/views/Xog_tab_mgr.java index a59da755c..3d61a78d7 100644 --- a/400_xowa/src/gplx/xowa/guis/views/Xog_tab_mgr.java +++ b/400_xowa/src/gplx/xowa/guis/views/Xog_tab_mgr.java @@ -35,8 +35,6 @@ public class Xog_tab_mgr implements Gfo_evt_itm { public void Init_by_kit(Gfui_kit kit) { tab_mgr = kit.New_tab_mgr("xowa.tab_mgr", win.Win_box()); active_tab = Xog_tab_itm_.Null; - tab_mgr.Btns_selected_color_(ColorAdp_.White); - tab_mgr.Btns_unselected_color_(ColorAdp_.LightGray); Gfo_evt_mgr_.Sub_same_many(tab_mgr, this, Gfui_tab_mgr.Evt_tab_selected, Gfui_tab_mgr.Evt_tab_closed, Gfui_tab_mgr.Evt_tab_switched); win.App().Cfg().Bind_many_app(this, Cfg__page_load_mode , Cfg__place_on_top, Cfg__height, Cfg__hide_if_one, Cfg__curved, Cfg__close_btn_visible, Cfg__unselected_close_btn_visible, Cfg__max_chars, Cfg__min_chars); diff --git a/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm.java b/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm.java index c057bb13c..50f1e95f9 100644 --- a/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm.java +++ b/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm.java @@ -313,8 +313,7 @@ public class Xog_win_itm implements Gfo_invk, Gfo_evt_itm { win_box.Layout_mgr_(new Swt_layout_mgr__grid().Cols_(1).Margin_w_(0).Margin_h_(0).Spacing_h_(0)); // toolbar - Gfui_grp toolbar_grp = kit.New_grp("toolbar_grp", win_box); - toolbar_grp.BackColor_(ColorAdp_.White); + Gfui_grp toolbar_grp = Xog_win_itm_.new_grp(app, kit, win_box, "toolbar_grp"); go_bwd_btn = Xog_win_itm_.new_btn(app, kit, toolbar_grp, img_dir, "go_bwd_btn", "go_bwd.png" ); go_fwd_btn = Xog_win_itm_.new_btn(app, kit, toolbar_grp, img_dir, "go_fwd_btn", "go_fwd.png" ); url_box = Xog_win_itm_.new_cbo(app, kit, toolbar_grp, ui_font, "url_box" , true); @@ -338,8 +337,7 @@ public class Xog_win_itm implements Gfo_invk, Gfo_evt_itm { tab_mgr.Tab_mgr().Layout_data_(new Swt_layout_data__grid().Grab_excess_h_(true).Align_w__fill_().Align_h__fill_().Grab_excess_w_(true)); // statusbar - this.statusbar_grp = kit.New_grp("statusbar_grp", win_box); - statusbar_grp.BackColor_(ColorAdp_.White); + this.statusbar_grp = Xog_win_itm_.new_grp(app, kit, win_box, "statusbar_grp"); find_close_btn = Xog_win_itm_.new_btn(app, kit, statusbar_grp, img_dir, "find_close_btn", "find_close.png" ); find_box = Xog_win_itm_.new_txt(app, kit, statusbar_grp, ui_font, "find_box" , true); find_fwd_btn = Xog_win_itm_.new_btn(app, kit, statusbar_grp, img_dir, "find_fwd_btn", "find_fwd.png" ); diff --git a/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm_.java b/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm_.java index f92d448ba..7504c0a50 100644 --- a/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm_.java +++ b/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm_.java @@ -24,24 +24,51 @@ public class Xog_win_itm_ { win_box.Focus_able_(false); win_box.BackColor_(ColorAdp_.White); win.Tab_mgr().Tab_mgr().BackColor_(ColorAdp_.White); + win.Tab_mgr().Tab_mgr().Btns_selected_foreground_(ColorAdp_.Black); + win.Tab_mgr().Tab_mgr().Btns_selected_background_(ColorAdp_.White); + win.Tab_mgr().Tab_mgr().Btns_unselected_foreground_(ColorAdp_.Black); + win.Tab_mgr().Tab_mgr().Btns_unselected_background_(ColorAdp_.White); + +// win_box.BackColor_(ColorAdp_.Black); +// win.Tab_mgr().Tab_mgr().BackColor_(ColorAdp_.Black); +// win.Tab_mgr().Tab_mgr().Btns_selected_foreground_(ColorAdp_.White); +// win.Tab_mgr().Tab_mgr().Btns_selected_background_(ColorAdp_.Black); +// win.Tab_mgr().Tab_mgr().Btns_unselected_foreground_(ColorAdp_.White); +// win.Tab_mgr().Tab_mgr().Btns_unselected_background_(ColorAdp_.Black); Xog_startup_win_.Startup(app, win_box); win_box.Icon_(IconAdp.file_or_blank(app.Fsys_mgr().Bin_xowa_dir().GenSubFil_nest("file", "app.window", "app_icon.png"))); } + public static Gfui_grp new_grp(Xoae_app app, Gfui_kit kit, GfuiElem win, String id) { + Gfui_grp rv = kit.New_grp(id, win); + rv.BackColor_(ColorAdp_.White); +// rv.BackColor_(ColorAdp_.Black); + return rv; + } public static GfuiBtn new_btn(Xoae_app app, Gfui_kit kit, GfuiElem win, Io_url img_dir, String id, String file) { GfuiBtn rv = kit.New_btn(id, win); rv.Btn_img_(kit.New_img_load(img_dir.GenSubFil(file))); + rv.ForeColor_(ColorAdp_.Black).BackColor_(ColorAdp_.White); +// rv.ForeColor_(ColorAdp_.White).BackColor_(ColorAdp_.Black); return rv; } public static GfuiComboBox new_cbo(Xoae_app app, Gfui_kit kit, GfuiElem win, FontAdp ui_font, String id, boolean border_on) { GfuiComboBox rv = kit.New_combo(id, win, Keyval_.new_(GfuiTextBox.CFG_border_on_, border_on)); rv.TextMgr().Font_(ui_font); + rv.ForeColor_(ColorAdp_.Black).BackColor_(ColorAdp_.White); + rv.Border_color_(ColorAdp_.LightGray); +// rv.ForeColor_(ColorAdp_.White).BackColor_(ColorAdp_.Black); +// rv.Border_color_(ColorAdp_.Black); return rv; } public static GfuiTextBox new_txt(Xoae_app app, Gfui_kit kit, GfuiElem win, FontAdp ui_font, String id, boolean border_on) { GfuiTextBox rv = kit.New_text_box(id, win, Keyval_.new_(GfuiTextBox.CFG_border_on_, border_on)); rv.TextMgr().Font_(ui_font); + rv.ForeColor_(ColorAdp_.Black).BackColor_(ColorAdp_.White); + rv.Border_color_(border_on ? ColorAdp_.LightGray : rv.BackColor()); +// rv.ForeColor_(ColorAdp_.White).BackColor_(ColorAdp_.Black); +// rv.Border_color_(border_on ? ColorAdp_.Black : rv.BackColor()); return rv; } public static void Update_tiptext(Xoae_app app, GfuiElem elem, int tiptext_id) { diff --git a/400_xowa/src/gplx/xowa/specials/xowa/default_tab/Default_tab_page.java b/400_xowa/src/gplx/xowa/specials/xowa/default_tab/Default_tab_page.java index 5a8544fd3..6d76b1e6b 100644 --- a/400_xowa/src/gplx/xowa/specials/xowa/default_tab/Default_tab_page.java +++ b/400_xowa/src/gplx/xowa/specials/xowa/default_tab/Default_tab_page.java @@ -19,10 +19,12 @@ public class Default_tab_page implements Xow_special_page { public void Special__gen(Xow_wiki wiki, Xoa_page pagei, Xoa_url url, Xoa_ttl ttl) { Xoae_page page = (Xoae_page)pagei; page.Db().Text().Text_bry_(Bry_.Empty); - page.Html_data().Custom_html_(Bry_.Empty); + page.Html_data().Custom_html_(DEFAULT_HTML); page.Html_data().Custom_tab_name_(Tab_name_bry); } public static final byte[] Tab_name_bry = Bry_.new_a7("New Tab"); public Xow_special_page Special__clone() {return this;} + + private static final byte[] DEFAULT_HTML = Bry_.new_a7(""); } diff --git a/400_xowa/src/gplx/xowa/wikis/xwikis/Xow_xwiki_mgr.java b/400_xowa/src/gplx/xowa/wikis/xwikis/Xow_xwiki_mgr.java index 93401249b..054a52f71 100644 --- a/400_xowa/src/gplx/xowa/wikis/xwikis/Xow_xwiki_mgr.java +++ b/400_xowa/src/gplx/xowa/wikis/xwikis/Xow_xwiki_mgr.java @@ -31,8 +31,10 @@ public class Xow_xwiki_mgr { public Xow_xwiki_itm Get_at(int i) {return (Xow_xwiki_itm)list.Get_at(i);} public Xow_xwiki_itm Get_by_key(byte[] key) {return (Xow_xwiki_itm)hash.Get_by_bry(key);} public Xow_xwiki_itm Get_by_mid(byte[] src, int bgn, int end) {return (Xow_xwiki_itm)hash.Get_by_mid(src, bgn, end);} + public Xow_xwiki_itm Add_by_atrs_offline(String key, String domain) { - return Add_by_atrs(Bry_.new_a7(key), Bry_.new_a7(domain), null).Offline_(true); + return Add_by_atrs(Bry_.new_a7(key), Bry_.new_a7(domain), null) + .Offline_(true);// NOTE: need to mark offline in order to show in left sidebar } public Xow_xwiki_itm Add_by_atrs(String key, String domain) {return Add_by_atrs(Bry_.new_a7(key), Bry_.new_a7(domain), null);} public Xow_xwiki_itm Add_by_atrs(byte[] key, byte[] domain) {return Add_by_atrs(key, domain, null);}