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 9ca69cfc1..d71cec3c6 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 @@ -142,5 +142,6 @@ abstract class Swt_core__base extends GxwCore_base { if (gfui_data.Min_h() > -1) swt_data.minimumHeight = gfui_data.Min_h(); control.setLayoutData(swt_data); + control.requestLayout(); } } diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/Xoapi_browser.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/Xoapi_browser.java index 42a13d4c8..75471cc92 100644 --- a/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/Xoapi_browser.java +++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/Xoapi_browser.java @@ -23,6 +23,7 @@ public class Xoapi_browser implements Gfo_invk { tabs.Init_by_kit(app); html.Init_by_kit(app); search.Init_by_kit(app); + allpages.Init_by_kit(app); find.Init_by_kit(app); prog.Init_by_kit(app); info.Init_by_kit(app); @@ -32,6 +33,7 @@ public class Xoapi_browser implements Gfo_invk { public Xoapi_tabs Tabs() {return tabs;} private Xoapi_tabs tabs = new Xoapi_tabs(); public Xoapi_html_box Html() {return html;} private Xoapi_html_box html = new Xoapi_html_box(); public Xoapi_search Search() {return search;} private Xoapi_search search = new Xoapi_search(); + public Xoapi_allpages Allpages() {return allpages;} private Xoapi_allpages allpages = new Xoapi_allpages(); public Xoapi_find Find() {return find;} private Xoapi_find find = new Xoapi_find(); public Xoapi_prog Prog() {return prog;} private Xoapi_prog prog = new Xoapi_prog(); public Xoapi_info Info() {return info;} private Xoapi_info info = new Xoapi_info(); @@ -56,6 +58,7 @@ public class Xoapi_browser implements Gfo_invk { else if (ctx.Match(k, Invk_tabs)) return tabs; else if (ctx.Match(k, Invk_html)) return html; else if (ctx.Match(k, Invk_search)) return search; + else if (ctx.Match(k, "allpages")) return allpages; else if (ctx.Match(k, Invk_find)) return find; else if (ctx.Match(k, Invk_prog)) return prog; else if (ctx.Match(k, Invk_info)) return info; diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_allpages.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_allpages.java new file mode 100644 index 000000000..328afccb9 --- /dev/null +++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_allpages.java @@ -0,0 +1,32 @@ +/* +XOWA: the XOWA Offline Wiki Application +Copyright (C) 2012-2017 gnosygnu@gmail.com + +XOWA is licensed under the terms of the General Public License (GPL) Version 3, +or alternatively under the terms of the Apache License Version 2.0. + +You may use XOWA according to either of these licenses as is most appropriate +for your project on a case-by-case basis. + +The terms of each license can be found in the source code repository: + +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.xowa.apps.apis.xowa.gui.browsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*; import gplx.xowa.apps.apis.xowa.*; import gplx.xowa.apps.apis.xowa.gui.*; +import gplx.gfui.*; import gplx.gfui.controls.standards.*; import gplx.xowa.guis.views.*; +public class Xoapi_allpages implements Gfo_invk { + public void Init_by_kit(Xoae_app app) {this.app = app;} private Xoae_app app; + private GfuiTextBox Allpages_box() {return app.Gui_mgr().Browser_win().Allpages_box();} + private Xog_win_itm Win() {return app.Gui_mgr().Browser_win();} + public void Focus() {this.Allpages_box().Focus_select_all();} + public void Exec() {this.Win().Page__navigate_by_allpages();} + public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { + if (ctx.Match(k, Invk_focus)) this.Focus(); + else if (ctx.Match(k, Invk_exec)) this.Exec(); + else return Gfo_invk_.Rv_unhandled; + return this; + } + private static final String Invk_focus = "focus"; + public static final String Invk_exec = "exec"; +} diff --git a/400_xowa/src/gplx/xowa/apps/cfgs/Xocfg_win.java b/400_xowa/src/gplx/xowa/apps/cfgs/Xocfg_win.java index 503e48eff..b76be7b06 100644 --- a/400_xowa/src/gplx/xowa/apps/cfgs/Xocfg_win.java +++ b/400_xowa/src/gplx/xowa/apps/cfgs/Xocfg_win.java @@ -19,7 +19,8 @@ import gplx.gfui.draws.*; import gplx.xowa.guis.langs.*; public class Xocfg_win implements Gfo_invk { public Xol_font_info Font() {return font;} private Xol_font_info font = new Xol_font_info("Arial", 8, FontStyleAdp_.Plain); - public Bry_fmtr Search_box_fmtr() {return search_box_fmtr;} private Bry_fmtr search_box_fmtr = Bry_fmtr.new_("Special:Allpages?from=", "search"); + public Bry_fmtr Search_box_fmtr() {return search_box_fmtr;} private Bry_fmtr search_box_fmtr = Bry_fmtr.new_("Special:XowaSearch?search=~{search}", "search"); + public Bry_fmtr Allpages_box_fmtr() {return allpages_box_fmtr;} private Bry_fmtr allpages_box_fmtr = Bry_fmtr.new_("Special:AllPages?from=~{search}&namespace=0&hideredirects=0", "search"); public void Init_by_app(Xoae_app app) { font.Init_by_app(app); } diff --git a/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_box_.java b/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_box_.java index cb9881349..0b4e1a4fa 100644 --- a/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_box_.java +++ b/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_box_.java @@ -17,9 +17,9 @@ package gplx.xowa.guis.bnds; import gplx.*; import gplx.xowa.*; import gplx.xowa import gplx.gfui.*; import gplx.gfui.ipts.*; import gplx.gfui.controls.elems.*; import gplx.xowa.guis.views.*; import gplx.xowa.guis.cmds.*; public class Xog_bnd_box_ { - public static final String Key_browser = "browser", Key_browser_url = "browser.url", Key_browser_search = "browser.search", Key_browser_html = "browser.html", Key_browser_find = "browser.find", Key_browser_prog = "browser.prog", Key_browser_info = "browser.info"; - public static final String Gui_browser = "Window", Gui_browser_url = "Url bar", Gui_browser_search = "Search box", Gui_browser_html = "HTML browser", Gui_browser_find = "Find box", Gui_browser_prog = "Status bar", Gui_browser_info = "System Messages box"; - public static final int Tid__max = 7, Tid_browser = 0, Tid_browser_url = 1, Tid_browser_search = 2, Tid_browser_html = 3, Tid_browser_find = 4, Tid_browser_prog = 5, Tid_browser_info = 6; + public static final String Key_browser = "browser", Key_browser_url = "browser.url", Key_browser_search = "browser.search", Key_browser_allpages = "browser.allpages", Key_browser_html = "browser.html", Key_browser_find = "browser.find", Key_browser_prog = "browser.prog", Key_browser_info = "browser.info"; + public static final String Gui_browser = "Window", Gui_browser_url = "Url bar", Gui_browser_search = "Search box", Gui_browser_allpages = "Allpages box", Gui_browser_html = "HTML browser", Gui_browser_find = "Find box", Gui_browser_prog = "Status bar", Gui_browser_info = "System Messages box"; + public static final int Tid__max = 8, Tid_browser = 0, Tid_browser_url = 1, Tid_browser_search = 2, Tid_browser_allpages = 3, Tid_browser_html = 4, Tid_browser_find = 5, Tid_browser_prog = 6, Tid_browser_info = 7; public static final int Ary_len = Tid__max; public static Xog_bnd_box[] Ary() { if (ary != null) return ary; @@ -27,6 +27,7 @@ public class Xog_bnd_box_ { ary_init(ary, Tid_browser , Key_browser); ary_init(ary, Tid_browser_url , Key_browser_url); ary_init(ary, Tid_browser_search , Key_browser_search); + ary_init(ary, Tid_browser_allpages , Key_browser_allpages); ary_init(ary, Tid_browser_html , Key_browser_html); ary_init(ary, Tid_browser_find , Key_browser_find); ary_init(ary, Tid_browser_prog , Key_browser_prog); @@ -54,6 +55,7 @@ public class Xog_bnd_box_ { if (String_.Eq(s, Key_browser)) return Tid_browser; else if (String_.Eq(s, Key_browser_url)) return Tid_browser_url; else if (String_.Eq(s, Key_browser_search)) return Tid_browser_search; + else if (String_.Eq(s, Key_browser_allpages)) return Tid_browser_allpages; else if (String_.Eq(s, Key_browser_html)) return Tid_browser_html; else if (String_.Eq(s, Key_browser_find)) return Tid_browser_find; else if (String_.Eq(s, Key_browser_prog)) return Tid_browser_prog; @@ -65,6 +67,7 @@ public class Xog_bnd_box_ { case Tid_browser: return Key_browser; case Tid_browser_url: return Key_browser_url; case Tid_browser_search: return Key_browser_search; + case Tid_browser_allpages: return Key_browser_allpages; case Tid_browser_html: return Key_browser_html; case Tid_browser_find: return Key_browser_find; case Tid_browser_prog: return Key_browser_prog; @@ -77,6 +80,7 @@ public class Xog_bnd_box_ { case Tid_browser: return Gui_browser; case Tid_browser_url: return Gui_browser_url; case Tid_browser_search: return Gui_browser_search; + case Tid_browser_allpages: return Gui_browser_allpages; case Tid_browser_html: return Gui_browser_html; case Tid_browser_find: return Gui_browser_find; case Tid_browser_prog: return Gui_browser_prog; @@ -88,6 +92,7 @@ public class Xog_bnd_box_ { if (String_.Eq(s, Gui_browser)) return Tid_browser; else if (String_.Eq(s, Gui_browser_url)) return Tid_browser_url; else if (String_.Eq(s, Gui_browser_search)) return Tid_browser_search; + else if (String_.Eq(s, Gui_browser_allpages)) return Tid_browser_allpages; else if (String_.Eq(s, Gui_browser_html)) return Tid_browser_html; else if (String_.Eq(s, Gui_browser_find)) return Tid_browser_find; else if (String_.Eq(s, Gui_browser_prog)) return Tid_browser_prog; @@ -101,6 +106,7 @@ public class Xog_bnd_box_ { else if (String_.Eq(grp_key, Xog_bnd_box_.Key_browser)) box_elem = win.Win_box(); else if (String_.Eq(grp_key, Xog_bnd_box_.Key_browser_url)) box_elem = win.Url_box(); else if (String_.Eq(grp_key, Xog_bnd_box_.Key_browser_search)) box_elem = win.Search_box(); + else if (String_.Eq(grp_key, Xog_bnd_box_.Key_browser_allpages)) box_elem = win.Allpages_box(); else if (String_.Eq(grp_key, Xog_bnd_box_.Key_browser_find)) box_elem = win.Find_box(); else if (String_.Eq(grp_key, Xog_bnd_box_.Key_browser_prog)) box_elem = win.Prog_box(); else if (String_.Eq(grp_key, Xog_bnd_box_.Key_browser_info)) box_elem = win.Info_box(); diff --git a/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr.java b/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr.java index 4e62bf5f6..c32ecfa44 100644 --- a/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr.java +++ b/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr.java @@ -95,6 +95,8 @@ public class Xog_bnd_mgr implements Gfo_invk { , "xowa.gui.shortcuts.xowa.gui.browser.url.restore-1" , "xowa.gui.shortcuts.xowa.gui.browser.search.focus-1" , "xowa.gui.shortcuts.xowa.gui.browser.search.exec-1" + , "xowa.gui.shortcuts.xowa.gui.browser.allpages.focus-1" + , "xowa.gui.shortcuts.xowa.gui.browser.allpages.exec-1" , "xowa.gui.shortcuts.xowa.gui.browser.html.focus-1" , "xowa.gui.shortcuts.xowa.gui.browser.html.focus-2" , "xowa.gui.shortcuts.xowa.gui.browser.html.focus-3" @@ -277,6 +279,8 @@ public class Xog_bnd_mgr implements Gfo_invk { Init_itm(Xog_cmd_itm_.Key_gui_browser_url_restore , Xog_bnd_box_.Tid_browser_url , "key.escape"); Init_itm(Xog_cmd_itm_.Key_gui_browser_search_focus , Xog_bnd_box_.Tid_browser , "mod.ca+key.s"); Init_itm(Xog_cmd_itm_.Key_gui_browser_search_exec , Xog_bnd_box_.Tid_browser_search , "key.enter"); + Init_itm(Xog_cmd_itm_.Key_gui_browser_allpages_focus , Xog_bnd_box_.Tid_browser , "mod.ca+key.a"); + Init_itm(Xog_cmd_itm_.Key_gui_browser_allpages_exec , Xog_bnd_box_.Tid_browser_allpages , "key.enter"); Init_itm(Xog_cmd_itm_.Key_gui_browser_tabs_new_dflt__at_dflt__focus_y , Xog_bnd_box_.Tid_browser , "mod.c+key.t"); Init_itm(Xog_cmd_itm_.Key_gui_browser_tabs_new_link__at_dflt__focus_n , Xog_bnd_box_.Tid_browser_html , "mouse.middle"); Init_itm(Xog_cmd_itm_.Key_gui_browser_tabs_new_link__at_dflt__focus_y , Xog_bnd_box_.Tid_browser , ""); @@ -343,15 +347,16 @@ public class Xog_bnd_mgr implements Gfo_invk { } private void Add_system_bnds() { IptCfg null_cfg = IptCfg_.Null; IptEventType btn_event_type = IptEventType_.add_(IptEventType_.MouseUp, IptEventType_.KeyDown); IptArg[] btn_args = IptArg_.Ary(IptMouseBtn_.Left, IptKey_.Enter, IptKey_.Space); - IptBnd_.ipt_to_(null_cfg , win.Go_bwd_btn() , invk_mgr, Xog_cmd_itm_.Key_nav_go_bwd , btn_event_type, btn_args); - IptBnd_.ipt_to_(null_cfg , win.Go_fwd_btn() , invk_mgr, Xog_cmd_itm_.Key_nav_go_fwd , btn_event_type, btn_args); - IptBnd_.ipt_to_(null_cfg , win.Url_exec_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_url_exec , btn_event_type, btn_args); - IptBnd_.ipt_to_(null_cfg , win.Search_exec_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_search_exec , btn_event_type, btn_args); - IptBnd_.ipt_to_(null_cfg , win.Find_close_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_find_hide , btn_event_type, btn_args); - IptBnd_.ipt_to_(null_cfg , win.Find_fwd_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_find_find_fwd , btn_event_type, btn_args); - IptBnd_.ipt_to_(null_cfg , win.Find_bwd_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_find_find_bwd , btn_event_type, btn_args); - IptBnd_.ipt_to_(null_cfg , win.Find_box() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_find_type , IptEventType_.KeyUp, IptKey_.printableKeys_(IptKey_.Ary(IptKey_.Back, IptKey_.Escape, IptKey_.Ctrl.Add(IptKey_.V)), IptKey_.Ary())); - IptBnd_.ipt_to_(null_cfg , win.Url_box() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_url_type , IptEventType_.KeyUp, IptKey_.printableKeys_(IptKey_.Ary(IptKey_.Back, IptKey_.Escape, IptKey_.Ctrl.Add(IptKey_.X), IptKey_.Ctrl.Add(IptKey_.V)), IptKey_.Ary())); + IptBnd_.ipt_to_(null_cfg , win.Go_bwd_btn() , invk_mgr, Xog_cmd_itm_.Key_nav_go_bwd , btn_event_type, btn_args); + IptBnd_.ipt_to_(null_cfg , win.Go_fwd_btn() , invk_mgr, Xog_cmd_itm_.Key_nav_go_fwd , btn_event_type, btn_args); + IptBnd_.ipt_to_(null_cfg , win.Url_exec_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_url_exec , btn_event_type, btn_args); + IptBnd_.ipt_to_(null_cfg , win.Search_exec_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_search_exec , btn_event_type, btn_args); + IptBnd_.ipt_to_(null_cfg , win.Allpages_exec_btn(), invk_mgr, Xog_cmd_itm_.Key_gui_browser_allpages_exec , btn_event_type, btn_args); + IptBnd_.ipt_to_(null_cfg , win.Find_close_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_find_hide , btn_event_type, btn_args); + IptBnd_.ipt_to_(null_cfg , win.Find_fwd_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_find_find_fwd , btn_event_type, btn_args); + IptBnd_.ipt_to_(null_cfg , win.Find_bwd_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_find_find_bwd , btn_event_type, btn_args); + IptBnd_.ipt_to_(null_cfg , win.Find_box() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_find_type , IptEventType_.KeyUp, IptKey_.printableKeys_(IptKey_.Ary(IptKey_.Back, IptKey_.Escape, IptKey_.Ctrl.Add(IptKey_.V)), IptKey_.Ary())); + IptBnd_.ipt_to_(null_cfg , win.Url_box() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_url_type , IptEventType_.KeyUp, IptKey_.printableKeys_(IptKey_.Ary(IptKey_.Back, IptKey_.Escape, IptKey_.Ctrl.Add(IptKey_.X), IptKey_.Ctrl.Add(IptKey_.V)), IptKey_.Ary())); } private void Add_custom_bnds() { // NOTE: custom bnds are stored in cfg; cfg executes before Init_by_kit when all windows elements are null; run cfg now, while Init_by_kit is called and elems are now created int len = startup_itms.Count(); @@ -370,6 +375,7 @@ public class Xog_bnd_mgr implements Gfo_invk { this.Bind(Xog_bnd_box_.Tid_browser_url , win.Url_box()); this.Bind(Xog_bnd_box_.Tid_browser_find , win.Find_box()); this.Bind(Xog_bnd_box_.Tid_browser_search , win.Search_box()); + this.Bind(Xog_bnd_box_.Tid_browser_allpages , win.Allpages_box()); this.Bind(Xog_bnd_box_.Tid_browser_prog , win.Prog_box()); this.Bind(Xog_bnd_box_.Tid_browser_info , win.Info_box()); } diff --git a/400_xowa/src/gplx/xowa/guis/cmds/Xog_cmd_itm_.java b/400_xowa/src/gplx/xowa/guis/cmds/Xog_cmd_itm_.java index 7b098032f..97458b460 100644 --- a/400_xowa/src/gplx/xowa/guis/cmds/Xog_cmd_itm_.java +++ b/400_xowa/src/gplx/xowa/guis/cmds/Xog_cmd_itm_.java @@ -87,6 +87,8 @@ public class Xog_cmd_itm_ { , Key_gui_browser_search_focus = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.search.focus") , Key_gui_browser_search_exec = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.search.exec") + , Key_gui_browser_allpages_focus = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.allpages.focus") + , Key_gui_browser_allpages_exec = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.allpages.exec") , Key_gui_browser_tabs_new_dflt__at_dflt__focus_y = new_dflt_(Xog_ctg_itm_.Tid_tabs , "xowa.gui.browser.tabs.new_dflt__at_dflt__focus_y") , Key_gui_browser_tabs_new_link__at_dflt__focus_n = new_dflt_(Xog_ctg_itm_.Tid_tabs , "xowa.gui.browser.tabs.new_link__at_dflt__focus_n") , Key_gui_browser_tabs_new_link__at_dflt__focus_y = new_dflt_(Xog_ctg_itm_.Tid_tabs , "xowa.gui.browser.tabs.new_link__at_dflt__focus_y") diff --git a/400_xowa/src/gplx/xowa/guis/views/Xog_layout.java b/400_xowa/src/gplx/xowa/guis/views/Xog_layout.java index 038fb4aae..a2511308f 100644 --- a/400_xowa/src/gplx/xowa/guis/views/Xog_layout.java +++ b/400_xowa/src/gplx/xowa/guis/views/Xog_layout.java @@ -24,6 +24,8 @@ public class Xog_layout implements Gfo_invk { find_close_btn.Owner_(this); search_box.Owner_(this); search_exec_btn.Owner_(this); + allpages_box.Owner_(this); + allpages_exec_btn.Owner_(this); html_box.Owner_(this); find_box.Owner_(this); prog_box.Owner_(this); @@ -37,6 +39,8 @@ public class Xog_layout implements Gfo_invk { public Xog_layout_box Find_close_btn() {return find_close_btn;} private Xog_layout_box find_close_btn = new Xog_layout_box(); public Xog_layout_box Search_box() {return search_box;} private Xog_layout_box search_box = new Xog_layout_box(); public Xog_layout_box Search_exec_btn() {return search_exec_btn;} private Xog_layout_box search_exec_btn = new Xog_layout_box(); + public Xog_layout_box Allpages_box() {return allpages_box;} private Xog_layout_box allpages_box = new Xog_layout_box(); + public Xog_layout_box Allpages_exec_btn() {return allpages_exec_btn;} private Xog_layout_box allpages_exec_btn = new Xog_layout_box(); public Xog_layout_box Html_box() {return html_box;} private Xog_layout_box html_box = new Xog_layout_box(); public Xog_layout_box Find_box() {return find_box;} private Xog_layout_box find_box = new Xog_layout_box(); public Xog_layout_box Find_fwd_btn() {return find_fwd_btn;} private Xog_layout_box find_fwd_btn = new Xog_layout_box(); @@ -72,6 +76,8 @@ public class Xog_layout implements Gfo_invk { find_close_btn.Adj_text(win.Find_close_btn()); search_box.Adj_text(win.Search_box()); search_exec_btn.Adj_text(win.Search_exec_btn()); + allpages_box.Adj_text(win.Allpages_box()); + allpages_exec_btn.Adj_text(win.Allpages_exec_btn()); find_box.Adj_text(win.Find_box()); find_fwd_btn.Adj_text(win.Find_fwd_btn()); find_bwd_btn.Adj_text(win.Find_bwd_btn()); @@ -94,6 +100,8 @@ public class Xog_layout implements Gfo_invk { else if (ctx.Match(k, Invk_find_close_btn)) return find_close_btn; else if (ctx.Match(k, Invk_search_box)) return search_box; else if (ctx.Match(k, Invk_search_exec_btn)) return search_exec_btn; + else if (ctx.Match(k, "allpages_box")) return allpages_box; + else if (ctx.Match(k, "allpages_exec_btn")) return allpages_exec_btn; else if (ctx.Match(k, Invk_html_box)) return html_box; else if (ctx.Match(k, Invk_find_box)) return find_box; else if (ctx.Match(k, Invk_find_fwd_btn)) return find_fwd_btn; 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 df240ca89..70d86bc02 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 @@ -40,6 +40,8 @@ public class Xog_win_itm implements Gfo_invk, Gfo_evt_itm { public GfuiBtn Url_exec_btn() {return url_exec_btn;} private GfuiBtn url_exec_btn; public GfuiTextBox Search_box() {return search_box;} private GfuiTextBox search_box; public GfuiBtn Search_exec_btn() {return search_exec_btn;} private GfuiBtn search_exec_btn; + public GfuiTextBox Allpages_box() {return allpages_box;} private GfuiTextBox allpages_box; + public GfuiBtn Allpages_exec_btn() {return allpages_exec_btn;} private GfuiBtn allpages_exec_btn; public GfuiTextBox Find_box() {return find_box;} private GfuiTextBox find_box; public Gfui_grp Statusbar_grp() {return statusbar_grp;} private Gfui_grp statusbar_grp; public GfuiBtn Find_close_btn() {return find_close_btn;} private GfuiBtn find_close_btn; @@ -178,7 +180,8 @@ public class Xog_win_itm implements Gfo_invk, Gfo_evt_itm { Xog_tab_itm_read_mgr.Show_page(tab, page, false); // Exec_page_refresh(); // commented out; causes lnke to show as [2] instead of [1] when saving page; EX: [http://a.org b] DATE:2014-04-24 } - public void Page__navigate_by_search() {Page__navigate_by_url_bar(app.Gui_mgr().Win_cfg().Search_box_fmtr().Bld_str_many(search_box.Text()));} + public void Page__navigate_by_search() {Page__navigate_by_url_bar(app.Gui_mgr().Win_cfg().Search_box_fmtr().Bld_str_many(search_box.Text()));} + public void Page__navigate_by_allpages() {Page__navigate_by_url_bar(app.Gui_mgr().Win_cfg().Allpages_box_fmtr().Bld_str_many(allpages_box.Text()));} public void Page__navigate_by_url_bar(String href) { Xog_tab_itm tab = tab_mgr.Active_tab_assert(); Xoa_url url = tab.Wiki().Utl__url_parser().Parse_by_urlbar_or_null(href); if (url == null) return; @@ -262,6 +265,8 @@ public class Xog_win_itm implements Gfo_invk, Gfo_evt_itm { Xog_win_itm_.Update_tiptext(app, url_exec_btn , Xol_msg_itm_.Id_xowa_window_url_btn_tooltip); Xog_win_itm_.Update_tiptext(app, search_box , Xol_msg_itm_.Id_xowa_window_search_box_tooltip); Xog_win_itm_.Update_tiptext(app, search_exec_btn , Xol_msg_itm_.Id_xowa_window_search_btn_tooltip); + Xog_win_itm_.Update_tiptext(app, allpages_box , Xol_msg_itm_.Id_xowa_window_allpages_box_tooltip); + Xog_win_itm_.Update_tiptext(app, allpages_exec_btn , Xol_msg_itm_.Id_xowa_window_allpages_btn_tooltip); Xog_win_itm_.Update_tiptext(app, find_close_btn , Xol_msg_itm_.Id_xowa_window_find_close_btn_tooltip); Xog_win_itm_.Update_tiptext(app, find_box , Xol_msg_itm_.Id_xowa_window_find_box_tooltip); Xog_win_itm_.Update_tiptext(app, find_bwd_btn , Xol_msg_itm_.Id_xowa_window_find_bwd_btn_tooltip); @@ -319,21 +324,26 @@ public class Xog_win_itm implements Gfo_invk, Gfo_evt_itm { this.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, "go_bwd_btn"); go_fwd_btn = Xog_win_itm_.new_btn(app, kit, toolbar_grp, "go_fwd_btn"); - url_box = Xog_win_itm_.new_cbo(app, kit, toolbar_grp, ui_font, "url_box" , true); + url_box = Xog_win_itm_.new_cbo(app, kit, toolbar_grp, ui_font, "url_box", true); url_exec_btn = Xog_win_itm_.new_btn(app, kit, toolbar_grp, "url_exec_btn"); - search_box = Xog_win_itm_.new_txt(app, kit, toolbar_grp, ui_font, "search_box" , true); + search_box = Xog_win_itm_.new_txt(app, kit, toolbar_grp, ui_font, "search_box", true); search_exec_btn = Xog_win_itm_.new_btn(app, kit, toolbar_grp, "search_exec_btn"); + allpages_box = Xog_win_itm_.new_txt(app, kit, toolbar_grp, ui_font, "allpages_box", true); + allpages_exec_btn = Xog_win_itm_.new_btn(app, kit, toolbar_grp, "allpages_exec_btn"); toolbar_grp.Layout_data_(new Swt_layout_data__grid().Grab_excess_w_(true).Align_w__fill_().Hint_h_(28)); - toolbar_grp.Layout_mgr_(new Swt_layout_mgr__grid().Cols_(6) + toolbar_grp.Layout_mgr_(new Swt_layout_mgr__grid().Cols_(8) .Margin_w_(4) // sets space to far-left / right window edges .Margin_h_(1) // sets space to top-menu and bot-html .Spacing_w_(4) // sets space between buttons, or else very squished .Spacing_h_(0) // not needed since only one row, but be explicit ); - url_box.Layout_data_(new Swt_layout_data__grid().Grab_excess_w_(true).Align_w__fill_().Min_w_(100)); - search_box.Layout_data_(new Swt_layout_data__grid().Hint_w_(160)); - search_exec_btn.Layout_data_(new Swt_layout_data__grid().Align_w__fill_().Hint_w_(20)); // force 20 width to add even more space to right-hand of screen + int toolbar_text_height = 24; + url_box.Layout_data_(new Swt_layout_data__grid().Grab_excess_w_(true).Align_w__fill_().Min_w_(100).Hint_h_(toolbar_text_height)); + search_box.Layout_data_(new Swt_layout_data__grid().Hint_w_(160).Hint_h_(toolbar_text_height)); + search_exec_btn.Layout_data_(new Swt_layout_data__grid().Align_w__fill_().Hint_w_(16).Hint_h_(toolbar_text_height)); + allpages_box.Layout_data_(new Swt_layout_data__grid().Hint_w_(160).Hint_h_(toolbar_text_height)); + allpages_exec_btn.Layout_data_(new Swt_layout_data__grid().Align_w__fill_().Hint_w_(20).Hint_h_(toolbar_text_height)); // force 20 width to add even more space to right-hand of screen // tab / html space tab_mgr.Init_by_kit(kit); 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 5aa5d29a8..af8e0bd70 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 @@ -26,6 +26,19 @@ public class Xog_win_itm_ { win_box.Icon_(IconAdp.file_or_blank(app.Fsys_mgr().Bin_xowa_dir().GenSubFil_nest("file", "app.window", "app_icon.png"))); } + public static void Show_widget(boolean show, GfuiElem box, GfuiElem btn) { + int box_w, btn_w; + if (show) { + box_w = 160; + btn_w = 16; + } + else { + box_w = 0; + btn_w = 0; + } + box.Layout_data_(new gplx.gfui.layouts.swts.Swt_layout_data__grid().Hint_w_(box_w).Hint_h_(24)); + btn.Layout_data_(new gplx.gfui.layouts.swts.Swt_layout_data__grid().Hint_w_(btn_w).Align_w__fill_()); + } public static Gfui_grp new_grp(Xoae_app app, Gfui_kit kit, GfuiElem win, String id) { return kit.New_grp(id, win); } @@ -51,6 +64,7 @@ public class Xog_win_itm_ { FontAdp new_font = itm_font.To_font(); win.Url_box().TextMgr().Font_(new_font); win.Search_box().TextMgr().Font_(new_font); + win.Allpages_box().TextMgr().Font_(new_font); win.Find_box().TextMgr().Font_(new_font); win.Prog_box().TextMgr().Font_(new_font); win.Info_box().TextMgr().Font_(new_font); diff --git a/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm_cfg.java b/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm_cfg.java index 8c69900ec..d9cace3a7 100644 --- a/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm_cfg.java +++ b/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm_cfg.java @@ -15,14 +15,22 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.xowa.guis.views; import gplx.*; import gplx.xowa.*; import gplx.xowa.guis.*; public class Xog_win_itm_cfg implements Gfo_invk { + private Xoae_app app; public boolean Status__show_short_url() {return status__show_short_url;} private boolean status__show_short_url = true; - public void Init_by_app(Xoa_app app) { - app.Cfg().Bind_many_app(this, Cfg__status__show_short_url); + public void Init_by_app(Xoae_app app) { + this.app = app; + app.Cfg().Bind_many_app(this, Cfg__status__show_short_url, Cfg__toolbar__show_search, Cfg__toolbar__show_allpages); } public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { if (ctx.Match(k, Cfg__status__show_short_url)) status__show_short_url = m.ReadYn("v"); + else if (ctx.Match(k, Cfg__toolbar__show_search)) Xog_win_itm_.Show_widget(m.ReadYn("v"), app.Gui_mgr().Browser_win().Search_box(), app.Gui_mgr().Browser_win().Search_exec_btn()); + else if (ctx.Match(k, Cfg__toolbar__show_allpages)) Xog_win_itm_.Show_widget(m.ReadYn("v"), app.Gui_mgr().Browser_win().Allpages_box(), app.Gui_mgr().Browser_win().Allpages_exec_btn()); else return Gfo_invk_.Rv_unhandled; return this; } - private static final String Cfg__status__show_short_url = "xowa.gui.prog_box.show_short_url"; + private static final String + Cfg__status__show_short_url = "xowa.gui.prog_box.show_short_url" + , Cfg__toolbar__show_search = "xowa.gui.toolbar.show_search" + , Cfg__toolbar__show_allpages = "xowa.gui.toolbar.show_allpages" + ; } diff --git a/400_xowa/src/gplx/xowa/guis/views/nightmodes/Xog_nightmode_mgr.java b/400_xowa/src/gplx/xowa/guis/views/nightmodes/Xog_nightmode_mgr.java index deb143ff1..559ffdc51 100644 --- a/400_xowa/src/gplx/xowa/guis/views/nightmodes/Xog_nightmode_mgr.java +++ b/400_xowa/src/gplx/xowa/guis/views/nightmodes/Xog_nightmode_mgr.java @@ -40,6 +40,8 @@ public class Xog_nightmode_mgr implements Gfo_invk { , win.Url_exec_btn() , win.Search_box() , win.Search_exec_btn() + , win.Allpages_box() + , win.Allpages_exec_btn() , win.Statusbar_grp() , win.Find_close_btn() , win.Find_bwd_btn() @@ -108,6 +110,7 @@ public class Xog_nightmode_mgr implements Gfo_invk { win.Go_fwd_btn().Btn_img_(app.Gui_mgr().Kit().New_img_load(img_dir.GenSubFil("go_fwd.png"))); win.Url_exec_btn().Btn_img_(app.Gui_mgr().Kit().New_img_load(img_dir.GenSubFil("url_exec.png"))); win.Search_exec_btn().Btn_img_(app.Gui_mgr().Kit().New_img_load(img_dir.GenSubFil("search_exec.png"))); + win.Allpages_exec_btn().Btn_img_(app.Gui_mgr().Kit().New_img_load(img_dir.GenSubFil("allpages_exec.png"))); win.Find_close_btn().Btn_img_(app.Gui_mgr().Kit().New_img_load(img_dir.GenSubFil("find_close.png"))); win.Find_bwd_btn().Btn_img_(app.Gui_mgr().Kit().New_img_load(img_dir.GenSubFil("find_bwd.png"))); win.Find_fwd_btn().Btn_img_(app.Gui_mgr().Kit().New_img_load(img_dir.GenSubFil("find_fwd.png"))); diff --git a/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm_.java b/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm_.java index ffabeac45..4ff4aabe5 100644 --- a/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm_.java +++ b/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm_.java @@ -249,8 +249,10 @@ public static final int , Id_xowa_wikidata_normal = 229 , Id_xowa_wikidata_preferred = 230 , Id_xowa_wikidata_links_special = 231 +, Id_xowa_window_allpages_box_tooltip = 232 +, Id_xowa_window_allpages_btn_tooltip = 233 ; - public static final int Id__max = 232; + public static final int Id__max = 234; public static Xol_msg_itm new_(int id, String key, String val) {return new_(id, Bry_.new_u8(key), Bry_.new_u8(val));} public static Xol_msg_itm new_(int id, byte[] key, byte[] val) { Xol_msg_itm rv = new Xol_msg_itm(id, key); @@ -388,8 +390,10 @@ case Xol_msg_itm_.Id_xowa_window_go_bwd_btn_tooltip: return new_(Xol_msg_itm_.Id case Xol_msg_itm_.Id_xowa_window_go_fwd_btn_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_go_fwd_btn_tooltip, "xowa-window-go_fwd_btn-tooltip", "Go forward one page"); case Xol_msg_itm_.Id_xowa_window_url_box_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_url_box_tooltip, "xowa-window-url_box-tooltip", "Enter address"); case Xol_msg_itm_.Id_xowa_window_url_btn_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_url_btn_tooltip, "xowa-window-url_btn-tooltip", "Go to the address in the Location Bar"); -case Xol_msg_itm_.Id_xowa_window_search_box_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_search_box_tooltip, "xowa-window-search_box-tooltip", "Search using {{ns:Special}}:AllPages"); +case Xol_msg_itm_.Id_xowa_window_search_box_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_search_box_tooltip, "xowa-window-search_box-tooltip", "Search using {{ns:Special}}:XowaSearch"); case Xol_msg_itm_.Id_xowa_window_search_btn_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_search_btn_tooltip, "xowa-window-search_btn-tooltip", "Search"); +case Xol_msg_itm_.Id_xowa_window_allpages_box_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_allpages_box_tooltip, "xowa-window-allpages_box-tooltip", "List using {{ns:Special}}:AllPages"); +case Xol_msg_itm_.Id_xowa_window_allpages_btn_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_allpages_btn_tooltip, "xowa-window-allpages_btn-tooltip", "List all pages"); case Xol_msg_itm_.Id_xowa_window_find_close_btn_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_find_close_btn_tooltip, "xowa-window-find_close_btn-tooltip", "Close Find bar"); case Xol_msg_itm_.Id_xowa_window_find_box_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_find_box_tooltip, "xowa-window-find_box-tooltip", "Enter phrase to find on this page"); case Xol_msg_itm_.Id_xowa_window_find_fwd_btn_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_find_fwd_btn_tooltip, "xowa-window-find_fwd_btn-tooltip", "Find the next occurrence of the phrase");