mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Cfg: Add 'Gui - Menus'
This commit is contained in:
parent
3177979558
commit
1ffc4191a8
@ -37,7 +37,7 @@ public class Xocfg_dflt_mgr {
|
||||
}
|
||||
public void Add(Gfo_invk invk, String... keys) {
|
||||
for (String key : keys) {
|
||||
hash.Add(key, invk);
|
||||
hash.Add_if_dupe_use_nth(key, invk);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -66,6 +66,7 @@ public class Xoedit_itm implements Xoedit_nde, Mustache_doc_itm {
|
||||
rv.Add_int("id", id);
|
||||
rv.Add_str("key", key);
|
||||
rv.Add_str("dflt", dflt);
|
||||
rv.Add_str("dflt_text", String_.Replace(dflt, "'", "'"));
|
||||
rv.Add_str("lang", lang);
|
||||
rv.Add_str("name", name);
|
||||
rv.Add_str("help", help);
|
||||
|
65
400_xowa/src/gplx/xowa/guis/menus/Xog_menu_bldr.java
Normal file
65
400_xowa/src/gplx/xowa/guis/menus/Xog_menu_bldr.java
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.guis.menus; import gplx.*; import gplx.xowa.*; import gplx.xowa.guis.*;
|
||||
import gplx.xowa.guis.cmds.*;
|
||||
class Xog_menu_bldr {
|
||||
private int indent = 0;
|
||||
private Bry_bfr bfr = Bry_bfr_.Reset(0);
|
||||
public String Gen_str() {return bfr.To_str_and_clear();}
|
||||
private Xog_menu_bldr Indent_add() {indent += 2; return this;}
|
||||
private Xog_menu_bldr Indent_del() {indent -= 2; return this;}
|
||||
private void Indent() {
|
||||
if (indent > 0)
|
||||
bfr.Add_byte_repeat(Byte_ascii.Space, indent);
|
||||
}
|
||||
public Xog_menu_bldr Add_spr() {
|
||||
Indent();
|
||||
bfr.Add(Const_spr);
|
||||
return this;
|
||||
}
|
||||
public Xog_menu_bldr Add_grp_bgn(String key) {
|
||||
Indent();
|
||||
bfr.Add(Const_itm_grp_bgn_lhs);
|
||||
bfr.Add_str_u8(key);
|
||||
bfr.Add(Const_itm_grp_bgn_rhs);
|
||||
Indent_add();
|
||||
return this;
|
||||
}
|
||||
public Xog_menu_bldr Add_grp_end() {
|
||||
Indent_del();
|
||||
Indent();
|
||||
bfr.Add(Const_itm_grp_end);
|
||||
return this;
|
||||
}
|
||||
public Xog_menu_bldr Add_btn(String key) {
|
||||
Indent();
|
||||
bfr.Add(Const_itm_btn_bgn_lhs);
|
||||
bfr.Add_str_u8(key);
|
||||
bfr.Add(Const_itm_btn_bgn_rhs);
|
||||
return this;
|
||||
}
|
||||
private static final byte[]
|
||||
Const_spr = Bry_.new_a7("add_spr;\n")
|
||||
, Const_itm_btn_bgn_lhs = Bry_.new_a7("add_btn_default('")
|
||||
, Const_itm_btn_bgn_rhs = Bry_.new_a7("');\n")
|
||||
, Const_itm_grp_bgn_lhs = Bry_.new_a7("add_grp_default('")
|
||||
, Const_itm_grp_bgn_rhs = Bry_.new_a7("') {\n")
|
||||
, Const_itm_grp_end = Bry_.new_a7("}\n")
|
||||
;
|
||||
public static final Xog_menu_bldr Instance = new Xog_menu_bldr(); Xog_menu_bldr() {}
|
||||
}
|
@ -26,10 +26,10 @@ public class Xog_menu_mgr implements Gfo_invk {
|
||||
popup_mnu_mgr = new Xog_popup_mnu_mgr(gui_mgr, this);
|
||||
window_mnu_mgr = new Xog_window_mnu_mgr(gui_mgr, this);
|
||||
}
|
||||
public Xog_mnu_regy Regy() {return regy;} private Xog_mnu_regy regy;
|
||||
public Xog_popup_mnu_mgr Popup() {return popup_mnu_mgr;} private Xog_popup_mnu_mgr popup_mnu_mgr;
|
||||
public Xog_window_mnu_mgr Window() {return window_mnu_mgr;} private Xog_window_mnu_mgr window_mnu_mgr;
|
||||
public Xog_mnu_bldr Menu_bldr() {return menu_bldr;} private Xog_mnu_bldr menu_bldr;
|
||||
public Xog_mnu_regy Regy() {return regy;} private Xog_mnu_regy regy;
|
||||
public Xog_popup_mnu_mgr Popup() {return popup_mnu_mgr;} private Xog_popup_mnu_mgr popup_mnu_mgr;
|
||||
public Xog_window_mnu_mgr Window() {return window_mnu_mgr;} private Xog_window_mnu_mgr window_mnu_mgr;
|
||||
public Xog_mnu_bldr Menu_bldr() {return menu_bldr;} private Xog_mnu_bldr menu_bldr;
|
||||
public void Init_by_app(Xoae_app app) {
|
||||
this.app = app;
|
||||
regy.Init_by_app(app);
|
||||
@ -37,8 +37,8 @@ public class Xog_menu_mgr implements Gfo_invk {
|
||||
public void Init_by_kit() {
|
||||
try {
|
||||
if (!app.Mode().Tid_is_gui()) return; // NOTE: do not try to initialize menu if http_server; will fail in headless mode when it tries to load SWT images; DATE:2015-03-27
|
||||
popup_mnu_mgr.Init_by_kit();
|
||||
window_mnu_mgr.Init_by_kit();
|
||||
popup_mnu_mgr.Init_by_kit(app);
|
||||
window_mnu_mgr.Init_by_kit(app);
|
||||
Lang_changed(app.Usere().Lang());
|
||||
}
|
||||
catch (Exception e) { // ignore errors while loading custom menus, else fatal error; DATE:2014-07-01
|
||||
|
@ -1,253 +0,0 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.guis.menus; import gplx.*; import gplx.xowa.*; import gplx.xowa.guis.*;
|
||||
import gplx.xowa.guis.cmds.*;
|
||||
class Xog_menu_mgr_src {
|
||||
public static final String Browser_win
|
||||
= Xog_menu_bldr.Instance
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_file)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_dflt__at_dflt__focus_y)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_close_cur)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_view_save_as)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_view_print)
|
||||
. Add_btn(Xog_cmd_itm_.Key_app_exit)
|
||||
. Add_grp_end()
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_edit)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_selection_select_all)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_selection_copy)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_find_show)
|
||||
. Add_grp_end()
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_view)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_font_increase)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_font_decrease)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_font_reset)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_view_mode_read)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_view_mode_edit)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_view_mode_html)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_view_reload)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_prog_log_show)
|
||||
. Add_grp_end()
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_history)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_go_bwd)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_go_fwd)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_usr_history_show)
|
||||
. Add_grp_end()
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_bookmarks)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_wiki_main_page)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_usr_bookmarks_add)
|
||||
. Add_btn(Xog_cmd_itm_.Key_usr_bookmarks_show)
|
||||
. Add_grp_end()
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_tools)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_cfg_main)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_setup_download_central)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_setup_import_from_list)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_setup_import_from_script)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_setup_maintenance)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_setup_download)
|
||||
. Add_grp_end()
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_help)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_help_help)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_help_xowa_main)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_help_xowa_blog)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_help_change_log)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_help_diagnostics)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_cfg_menu)
|
||||
. Add_spr()
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_system_data)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_system_data_log_session)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_system_data_cfg_app)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_system_data_cfg_lang)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_system_data_cfg_user)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_system_data_cfg_custom)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_system_data_usr_history)
|
||||
. Add_grp_end()
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_help_about)
|
||||
. Add_grp_end()
|
||||
. Gen_str();
|
||||
public static final String Html_page
|
||||
= Xog_menu_bldr.Instance
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_go_bwd)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_go_fwd)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_view_reload)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_selection_select_all)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_font_increase)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_font_decrease)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_font_reset)
|
||||
. Add_spr()
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_file)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_view_save_as)
|
||||
// . Add_btn(Xog_cmd_itm_.Key_gui_page_view_print)
|
||||
. Add_btn(Xog_cmd_itm_.Key_app_exit)
|
||||
. Add_grp_end()
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_tabs)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_dflt__at_dflt__focus_y)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_dupe__at_dflt__focus_y)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_close_cur)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_select_fwd)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_select_bwd)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_move_fwd)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_move_bwd)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_close_others)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_close_to_bgn)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_close_to_end)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_close_undo)
|
||||
. Add_grp_end()
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_view)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_view_mode_read)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_view_mode_edit)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_view_mode_html)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_prog_log_show)
|
||||
. Add_grp_end()
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_history)
|
||||
. Add_btn(Xog_cmd_itm_.Key_usr_history_show)
|
||||
. Add_grp_end()
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_bookmarks)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_wiki_main_page)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_usr_bookmarks_add)
|
||||
. Add_btn(Xog_cmd_itm_.Key_usr_bookmarks_show)
|
||||
. Add_grp_end()
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_tools)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_cfg_main)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_setup_download_central)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_setup_import_from_list)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_setup_import_from_script)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_setup_maintenance)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_setup_download)
|
||||
. Add_grp_end()
|
||||
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_help)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_help_help)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_help_xowa_main)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_help_xowa_blog)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_help_change_log)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_help_diagnostics)
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_cfg_menu)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_nav_help_about)
|
||||
. Add_grp_end()
|
||||
. Gen_str();
|
||||
|
||||
public static final String Html_link
|
||||
= Xog_menu_bldr.Instance
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_link__at_dflt__focus_n)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_link__at_dflt__focus_y)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_selection_copy)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_find_show_by_paste)
|
||||
. Gen_str();
|
||||
public static final String Html_file
|
||||
= Xog_menu_bldr.Instance
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_link__at_dflt__focus_n)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_link__at_dflt__focus_y)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_page_selection_save_file_as)
|
||||
. Gen_str();
|
||||
public static final String Tabs_btns
|
||||
= Xog_menu_bldr.Instance
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_dflt__at_dflt__focus_y)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_dupe__at_dflt__focus_y)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_close_cur)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_select_fwd)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_select_bwd)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_move_fwd)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_move_bwd)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_close_others)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_close_to_bgn)
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_close_to_end)
|
||||
. Add_spr()
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_close_undo)
|
||||
. Gen_str();
|
||||
public static final String Prog
|
||||
= Xog_menu_bldr.Instance
|
||||
. Add_btn(Xog_cmd_itm_.Key_gui_browser_prog_log_show)
|
||||
. Gen_str();
|
||||
public static final String Info = String_.Concat_lines_nl
|
||||
( ""
|
||||
);
|
||||
}
|
||||
class Xog_menu_bldr {
|
||||
private int indent = 0;
|
||||
private Bry_bfr bfr = Bry_bfr_.Reset(0);
|
||||
public String Gen_str() {return bfr.To_str_and_clear();}
|
||||
private Xog_menu_bldr Indent_add() {indent += 2; return this;}
|
||||
private Xog_menu_bldr Indent_del() {indent -= 2; return this;}
|
||||
private void Indent() {
|
||||
if (indent > 0)
|
||||
bfr.Add_byte_repeat(Byte_ascii.Space, indent);
|
||||
}
|
||||
public Xog_menu_bldr Add_spr() {
|
||||
Indent();
|
||||
bfr.Add(Const_spr);
|
||||
return this;
|
||||
}
|
||||
public Xog_menu_bldr Add_grp_bgn(String key) {
|
||||
Indent();
|
||||
bfr.Add(Const_itm_grp_bgn_lhs);
|
||||
bfr.Add_str_u8(key);
|
||||
bfr.Add(Const_itm_grp_bgn_rhs);
|
||||
Indent_add();
|
||||
return this;
|
||||
}
|
||||
public Xog_menu_bldr Add_grp_end() {
|
||||
Indent_del();
|
||||
Indent();
|
||||
bfr.Add(Const_itm_grp_end);
|
||||
return this;
|
||||
}
|
||||
public Xog_menu_bldr Add_btn(String key) {
|
||||
Indent();
|
||||
bfr.Add(Const_itm_btn_bgn_lhs);
|
||||
bfr.Add_str_u8(key);
|
||||
bfr.Add(Const_itm_btn_bgn_rhs);
|
||||
return this;
|
||||
}
|
||||
private static final byte[]
|
||||
Const_spr = Bry_.new_a7("add_spr;\n")
|
||||
, Const_itm_btn_bgn_lhs = Bry_.new_a7("add_btn_default('")
|
||||
, Const_itm_btn_bgn_rhs = Bry_.new_a7("');\n")
|
||||
, Const_itm_grp_bgn_lhs = Bry_.new_a7("add_grp_default('")
|
||||
, Const_itm_grp_bgn_rhs = Bry_.new_a7("') {\n")
|
||||
, Const_itm_grp_end = Bry_.new_a7("}\n")
|
||||
;
|
||||
public static final Xog_menu_bldr Instance = new Xog_menu_bldr(); Xog_menu_bldr() {}
|
||||
}
|
@ -19,17 +19,17 @@ package gplx.xowa.guis.menus; import gplx.*; import gplx.xowa.*; import gplx.xow
|
||||
import gplx.xowa.guis.menus.dom.*;
|
||||
import gplx.xowa.langs.*;
|
||||
public class Xog_popup_mnu_mgr implements Gfo_invk {
|
||||
private Ordered_hash hash = Ordered_hash_.New();
|
||||
private final Ordered_hash hash = Ordered_hash_.New();
|
||||
private final Xog_mnu_grp[] mnus = new Xog_mnu_grp[6];
|
||||
private Xoa_gui_mgr gui_mgr;
|
||||
private Xog_mnu_grp[] mnus = new Xog_mnu_grp[6];
|
||||
public Xog_popup_mnu_mgr(Xoa_gui_mgr gui_mgr, Xog_menu_mgr menu_mgr) {
|
||||
this.gui_mgr = gui_mgr;
|
||||
html_page = Ctor(0, Root_key_html_page, Xog_menu_mgr_src.Html_page); // NOTE: default menu; always build first; NOTE: set default here (fires before cfg)
|
||||
html_link = Ctor(1, Root_key_html_link, Xog_menu_mgr_src.Html_link);
|
||||
html_file = Ctor(2, Root_key_html_file, Xog_menu_mgr_src.Html_file);
|
||||
tabs_btns = Ctor(3, Root_key_tabs_btns, Xog_menu_mgr_src.Tabs_btns);
|
||||
prog = Ctor(4, Root_key_prog, Xog_menu_mgr_src.Prog);
|
||||
info = Ctor(5, Root_key_info, Xog_menu_mgr_src.Info);
|
||||
html_page = Ctor(0, Root_key_html_page); // NOTE: default menu; always build first;
|
||||
html_link = Ctor(1, Root_key_html_link);
|
||||
html_file = Ctor(2, Root_key_html_file);
|
||||
tabs_btns = Ctor(3, Root_key_tabs_btns);
|
||||
prog = Ctor(4, Root_key_prog);
|
||||
info = Ctor(5, Root_key_info);
|
||||
}
|
||||
public Xog_mnu_grp Tabs_btns() {return tabs_btns;} private Xog_mnu_grp tabs_btns;
|
||||
public Xog_mnu_grp Html_page() {return html_page;} private Xog_mnu_grp html_page;
|
||||
@ -37,33 +37,37 @@ public class Xog_popup_mnu_mgr implements Gfo_invk {
|
||||
public Xog_mnu_grp Html_file() {return html_file;} private Xog_mnu_grp html_file;
|
||||
public Xog_mnu_grp Prog() {return prog;} private Xog_mnu_grp prog;
|
||||
public Xog_mnu_grp Info() {return info;} private Xog_mnu_grp info;
|
||||
public void Init_by_kit() {
|
||||
public void Init_by_kit(Xoae_app app) {
|
||||
for (int i = 0; i < mnus.length; i++)
|
||||
mnus[i].Source_exec(gui_mgr.App().Gfs_mgr()); // NOTE: build menu now; NOTE: do not set default here, or else will override user setting
|
||||
app.Cfg().Bind_many_app(this, Cfg__tabs, Cfg__html__basic, Cfg__html__file, Cfg__html__link, Cfg__status);
|
||||
}
|
||||
public void Lang_changed(Xol_lang_itm lang) {
|
||||
for (int i = 0; i < mnus.length; i++)
|
||||
Xog_mnu_base.Update_grp_by_lang(gui_mgr.Menu_mgr().Menu_bldr(), lang, mnus[i]);
|
||||
}
|
||||
public Xog_mnu_grp Get_or_new(String key) {
|
||||
Xog_mnu_grp rv = (Xog_mnu_grp)hash.Get_by(key);
|
||||
if (rv == null) {
|
||||
rv = new Xog_mnu_grp(gui_mgr, true, key);
|
||||
hash.Add(key, rv);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_get)) return Get_or_new(m.ReadStr("v"));
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
} private static final String Invk_get = "get";
|
||||
public static final String Root_key_tabs_btns = "browser.tabs.btns"
|
||||
, Root_key_html_page = "html_box", Root_key_html_link = "browser.html.link", Root_key_html_file = "browser.html.file"
|
||||
, Root_key_prog = "browser.prog", Root_key_info = "browser.info"
|
||||
;
|
||||
private Xog_mnu_grp Ctor(int i, String key, String src) {
|
||||
Xog_mnu_grp rv = Get_or_new(key).Source_default_(src);
|
||||
private Xog_mnu_grp Ctor(int i, String key) {
|
||||
Xog_mnu_grp rv = new Xog_mnu_grp(gui_mgr, true, key);
|
||||
hash.Add(key, rv);
|
||||
mnus[i] = rv;
|
||||
return rv;
|
||||
}
|
||||
private void Source_(Xog_mnu_grp mnu, String source) {mnu.Source_(source);}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Cfg__tabs)) Source_(tabs_btns , m.ReadStr("v"));
|
||||
else if (ctx.Match(k, Cfg__html__basic)) Source_(html_page , m.ReadStr("v"));
|
||||
else if (ctx.Match(k, Cfg__html__link)) Source_(html_link , m.ReadStr("v"));
|
||||
else if (ctx.Match(k, Cfg__html__file)) Source_(html_file , m.ReadStr("v"));
|
||||
else if (ctx.Match(k, Cfg__status)) Source_(prog , m.ReadStr("v"));
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
public static final String Root_key_tabs_btns = "browser.tabs.btns", Root_key_prog = "browser.prog", Root_key_info = "browser.info"
|
||||
, Root_key_html_page = "html_box", Root_key_html_link = "browser.html.link", Root_key_html_file = "browser.html.file";
|
||||
private static final String
|
||||
Cfg__tabs = "xowa.gui.menus.tabs.source"
|
||||
, Cfg__html__basic = "xowa.gui.menus.html.basic"
|
||||
, Cfg__html__link = "xowa.gui.menus.html.link"
|
||||
, Cfg__html__file = "xowa.gui.menus.html.file"
|
||||
, Cfg__status = "xowa.gui.menus.status.source";
|
||||
}
|
||||
|
@ -19,14 +19,15 @@ package gplx.xowa.guis.menus; import gplx.*; import gplx.xowa.*; import gplx.xow
|
||||
import gplx.xowa.guis.menus.dom.*;
|
||||
import gplx.xowa.langs.*;
|
||||
public class Xog_window_mnu_mgr implements Gfo_invk {
|
||||
private Ordered_hash hash = Ordered_hash_.New();
|
||||
private final Ordered_hash hash = Ordered_hash_.New();
|
||||
public Xog_mnu_grp Browser() {return browser;} private Xog_mnu_grp browser;
|
||||
public Xog_window_mnu_mgr(Xoa_gui_mgr gui_mgr, Xog_menu_mgr menu_mgr) {
|
||||
this.gui_mgr = gui_mgr;
|
||||
browser = Get_or_new(Root_key_browser_win).Source_default_(Xog_menu_mgr_src.Browser_win); // NOTE: set default here (fires before cfg)
|
||||
browser = Get_or_new(Root_key_browser_win);
|
||||
} private Xoa_gui_mgr gui_mgr;
|
||||
public void Init_by_kit() {
|
||||
public void Init_by_kit(Xoae_app app) {
|
||||
browser.Source_exec(gui_mgr.App().Gfs_mgr()); // NOTE: build menu now; NOTE: do not set default here, or else will override user setting
|
||||
app.Cfg().Bind_many_app(this, Cfg__window__enabled, Cfg__window__source);
|
||||
}
|
||||
public Xog_mnu_grp Get_or_new(String key) {
|
||||
Xog_mnu_grp rv = (Xog_mnu_grp)hash.Get_by(key);
|
||||
@ -40,8 +41,15 @@ public class Xog_window_mnu_mgr implements Gfo_invk {
|
||||
Xog_mnu_base.Update_grp_by_lang(gui_mgr.Menu_mgr().Menu_bldr(), lang, browser);
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_get)) return Get_or_new(m.ReadStr("v"));
|
||||
if (ctx.Match(k, Cfg__window__enabled)) browser.Enabled_(m.ReadYn("v"));
|
||||
else if (ctx.Match(k, Cfg__window__source)) browser.Source_(m.ReadStr("v"));
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
} private static final String Invk_get = "get";
|
||||
public static final String Root_key_browser_win = "main_win";
|
||||
return this;
|
||||
}
|
||||
private static final String Root_key_browser_win = "main_win";
|
||||
|
||||
private static final String
|
||||
Cfg__window__enabled = "xowa.gui.menus.window.enabled"
|
||||
, Cfg__window__source = "xowa.gui.menus.window.source"
|
||||
;
|
||||
}
|
||||
|
@ -42,14 +42,7 @@ public class Xog_mnu_grp extends Xog_mnu_base {
|
||||
if (!mnu_is_popup && app.Gui_mgr().Browser_win().Win_box() != null)
|
||||
Gfo_invk_.Invk_by_key(app.Gui_mgr().Browser_win(), Gfui_html.Evt_win_resized);
|
||||
}
|
||||
public String Source() {return source;} private String source;
|
||||
public String Source_default() {return source_default;} public Xog_mnu_grp Source_default_(String v) {source_default = source = v; return this;} private String source_default;
|
||||
private Xog_mnu_grp Source_(Xoa_gfs_mgr gfs_mgr, String v) {
|
||||
Object rslt = Source_exec(gfs_mgr, v);
|
||||
if (rslt != Gfo_invk_.Rv_error)
|
||||
source = v;
|
||||
return this;
|
||||
}
|
||||
public String Source() {return source;} private String source; public void Source_(String v) {this.source = v; this.Source_exec(app.Gfs_mgr());}
|
||||
public Object Source_exec(Xoa_gfs_mgr gfs_mgr) {return Source_exec(gfs_mgr, source);}
|
||||
private Object Source_exec(Xoa_gfs_mgr gfs_mgr, String v) {
|
||||
if (!enabled) return Gfo_invk_.Rv_handled;
|
||||
@ -101,13 +94,8 @@ public class Xog_mnu_grp extends Xog_mnu_base {
|
||||
}
|
||||
@Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_build)) this.Build();
|
||||
else if (ctx.Match(k, Invk_enabled)) return Yn.To_str(enabled);
|
||||
else if (ctx.Match(k, Invk_enabled_)) this.Enabled_(m.ReadYn("v"));
|
||||
else if (ctx.Match(k, Invk_source)) return source;
|
||||
else if (ctx.Match(k, Invk_source_)) this.Source_(app.Gfs_mgr(), m.ReadStr("v"));
|
||||
else if (ctx.Match(k, Invk_source_default)) return source_default;
|
||||
else if (ctx.Match(k, Invk_source_default_)) source_default = m.ReadStr("v");
|
||||
else return super.Invk(ctx, ikey, k, m);
|
||||
return this;
|
||||
} private static final String Invk_build = "build", Invk_enabled = "enabled", Invk_enabled_ = "enabled_", Invk_source = "source", Invk_source_ = "source_", Invk_source_default = "source_default", Invk_source_default_ = "source_default_";
|
||||
}
|
||||
private static final String Invk_build = "build";
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user