mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Bldr: Add more implementation for missing origs
This commit is contained in:
parent
ef11577d08
commit
3e39b2fe77
@ -25,6 +25,8 @@ import gplx.gfui.controls.gxws.Gxw_html;
|
||||
import gplx.gfui.controls.gxws.Gxw_html_load_tid_;
|
||||
import gplx.gfui.controls.standards.Gfui_html;
|
||||
import gplx.gfui.controls.standards.Gfui_tab_mgr;
|
||||
import gplx.gfui.draws.ColorAdp;
|
||||
import gplx.gfui.draws.ColorAdp_;
|
||||
import gplx.gfui.ipts.*;
|
||||
import gplx.gfui.kits.core.Swt_kit;
|
||||
|
||||
@ -62,6 +64,7 @@ public class Swt_html implements Gxw_html, Swt_control, FocusListener, Gfo_evt_m
|
||||
browser.addFocusListener(this);
|
||||
browser.addTitleListener(new Swt_html_lnr_title(this));
|
||||
browser.addMouseWheelListener(new Swt_html_lnr_wheel(this));
|
||||
|
||||
// browser.addOpenWindowListener(new Swt_open_window_listener(this)); // handle target='blank'
|
||||
// browser.addTraverseListener(new Swt_html_lnr_Traverse(this));
|
||||
}
|
||||
@ -74,7 +77,7 @@ public class Swt_html implements Gxw_html, Swt_control, FocusListener, Gfo_evt_m
|
||||
public String Load_by_url_path() {return load_by_url_path;} private String load_by_url_path;
|
||||
public void Html_doc_html_load_by_mem(String html) {
|
||||
this.html_doc_html_load_tid = Gxw_html_load_tid_.Tid_mem;
|
||||
this.load_by_url_path = null;
|
||||
this.load_by_url_path = null;
|
||||
browser.setText(html); // DBG: Io_mgr.I.SaveFilStr(Io_url_.new_fil_("C:\\temp.txt"), s)
|
||||
}
|
||||
public void Html_doc_html_load_by_url(Io_url path, String html) {
|
||||
|
@ -19,6 +19,7 @@ import gplx.xowa.addons.bldrs.files.cmds.*;
|
||||
import gplx.xowa.addons.bldrs.mass_parses.inits.*; import gplx.xowa.addons.bldrs.mass_parses.parses.*; import gplx.xowa.addons.bldrs.mass_parses.makes.*; import gplx.xowa.addons.bldrs.mass_parses.resumes.*;
|
||||
import gplx.xowa.addons.bldrs.files.cksums.*; import gplx.xowa.addons.bldrs.files.checks.*;
|
||||
import gplx.xowa.addons.bldrs.app_cfgs.wm_server_cfgs.*;
|
||||
import gplx.xowa.addons.bldrs.files.missing_origs.*;
|
||||
public class Xoax_builds_files_addon implements Xoax_addon_itm, Xoax_addon_itm__bldr {
|
||||
public Xob_cmd[] Bldr_cmds() {
|
||||
return new Xob_cmd[]
|
||||
@ -26,7 +27,7 @@ public class Xoax_builds_files_addon implements Xoax_addon_itm, Xoax_addon_itm__
|
||||
, Xobldr__lnki_regy__create.Prototype
|
||||
, Xobldr__page_regy__create.Prototype
|
||||
, Xobldr__orig_regy__create.Prototype
|
||||
, Xobldr__orig_regy__find_missing.Prototype
|
||||
, Xobldr_missing_origs_cmd.Prototype
|
||||
, Xobldr__xfer_temp__insert_thm.Prototype
|
||||
, Xobldr__xfer_temp__insert_orig.Prototype
|
||||
, Xobldr__xfer_regy__create.Prototype
|
||||
|
@ -13,21 +13,21 @@ 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.addons.bldrs.files.cmds; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.bldrs.*; import gplx.xowa.addons.bldrs.files.*;
|
||||
package gplx.xowa.addons.bldrs.files.missing_origs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.bldrs.*; import gplx.xowa.addons.bldrs.files.*;
|
||||
import gplx.dbs.*;
|
||||
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wkrs.*;
|
||||
import gplx.xowa.files.*; import gplx.xowa.files.origs.*; import gplx.xowa.apps.wms.apis.origs.*;
|
||||
import gplx.xowa.addons.bldrs.files.dbs.*;
|
||||
public class Xobldr__orig_regy__find_missing extends Xob_cmd__base {
|
||||
public class Xobldr_missing_origs_cmd extends Xob_cmd__base {
|
||||
private int fail_max = 100000;
|
||||
public Xobldr__orig_regy__find_missing(Xob_bldr bldr, Xowe_wiki wiki) {super(bldr, wiki);}
|
||||
public Xobldr_missing_origs_cmd(Xob_bldr bldr, Xowe_wiki wiki) {super(bldr, wiki);}
|
||||
@Override public void Cmd_run() {
|
||||
// got orig_tbl
|
||||
Db_conn conn = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
|
||||
Xob_orig_regy_tbl.Create_table(conn);
|
||||
|
||||
// get counts; fail if too many
|
||||
int fail_count = conn.Exec_select_count_as_int("orig_regy", 0);
|
||||
int fail_count = conn.Exec_sql(Db_sql_.Make_by_fmt(String_.Ary("SELECT Count(lnki_ttl) FROM orig_regy WHERE orig_page_id IS NULL")));
|
||||
if (fail_count > fail_max) throw Err_.new_wo_type("bldr.find_missing: too many missing: missing=~{0} max=~{1}", fail_count, fail_max);
|
||||
Gfo_usr_dlg_.Instance.Note_many("", "", "bldr.find_missing: found=~{0}", fail_count);
|
||||
|
||||
@ -70,7 +70,8 @@ public class Xobldr__orig_regy__find_missing extends Xob_cmd__base {
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xof_fsdb_itm itm = (Xof_fsdb_itm)list.Get_at(i);
|
||||
update_stmt
|
||||
.Val_int("orig_w", itm.Orig_w()).Val_int("orig_h", itm.Orig_h())
|
||||
.Val_int("orig_w", itm.Orig_w())
|
||||
.Val_int("orig_h", itm.Orig_h())
|
||||
.Crt_bry_as_str("lnki_ttl", itm.Lnki_ttl()).Exec_update();
|
||||
}
|
||||
conn.Txn_end();
|
||||
@ -83,6 +84,6 @@ public class Xobldr__orig_regy__find_missing extends Xob_cmd__base {
|
||||
|
||||
public static final String BLDR_CMD_KEY = "file.orig_regy.find_missing";
|
||||
@Override public String Cmd_key() {return BLDR_CMD_KEY;}
|
||||
public static final Xob_cmd Prototype = new Xobldr__orig_regy__find_missing(null, null);
|
||||
@Override public Xob_cmd Cmd_clone(Xob_bldr bldr, Xowe_wiki wiki) {return new Xobldr__orig_regy__find_missing(bldr, wiki);}
|
||||
public static final Xob_cmd Prototype = new Xobldr_missing_origs_cmd(null, null);
|
||||
@Override public Xob_cmd Cmd_clone(Xob_bldr bldr, Xowe_wiki wiki) {return new Xobldr_missing_origs_cmd(bldr, wiki);}
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
/*
|
||||
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.addons.bldrs.files.missing_origs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.bldrs.*; import gplx.xowa.addons.bldrs.files.*;
|
||||
import gplx.langs.htmls.encoders.*;
|
||||
import gplx.langs.jsons.*;
|
||||
import gplx.xowa.files.repos.*;
|
||||
import gplx.xowa.files.downloads.*;
|
||||
import gplx.xowa.apps.wms.apis.origs.*;
|
||||
public class Xobldr_missing_origs_wmfapi {
|
||||
// private final Xoapi_orig_base orig_api;
|
||||
// private final Xof_download_wkr download_wkr;
|
||||
// private final Xow_repo_mgr repo_mgr;
|
||||
// private final byte[] wiki_domain;
|
||||
// private final Xoapi_orig_rslts api_rv = new Xoapi_orig_rslts();
|
||||
public Xobldr_missing_origs_wmfapi(Xoapi_orig_base orig_api, Xof_download_wkr download_wkr, Xow_repo_mgr repo_mgr, byte[] wiki_domain) {
|
||||
// this.orig_api = orig_api;
|
||||
// this.download_wkr = download_wkr;
|
||||
// this.repo_mgr = repo_mgr;
|
||||
// this.wiki_domain = wiki_domain;
|
||||
}
|
||||
public void Find_by_list(Ordered_hash src, Ordered_hash trg, String api_domain, int idx) {
|
||||
// fail if web access disabled
|
||||
if (!gplx.core.ios.IoEngine_system.Web_access_enabled) {
|
||||
throw Err_.new_wo_type("web access must be enabled for missing_origs cmd");
|
||||
}
|
||||
|
||||
// Json_parser parser = new Json_parser();
|
||||
Gfo_url_encoder encoder = Gfo_url_encoder_.New__http_url().Make();
|
||||
Bry_bfr bfr = Bry_bfr_.New();
|
||||
int len = src.Len();
|
||||
try {
|
||||
// loop until all titles found
|
||||
while (idx < len) {
|
||||
// generate super api; EX: https://commons.wikimedia.org/w/api.php?action=query&format=xml&prop=imageinfo&iiprop=size|url|mediatype|mime|bitdepth|timestamp|size|sha1&redirects&iilimit=500&titles=
|
||||
bfr.Add_str_a7("https://");
|
||||
bfr.Add_str_a7(api_domain);
|
||||
bfr.Add_str_a7("/w/api.php?action=query");
|
||||
bfr.Add_str_a7("&format=json"); // json easier to use than xml
|
||||
bfr.Add_str_a7("&iilimit=1"); // limit to 1 revision history (default will return more); EX:File:Different_Faces_Neptune.jpg
|
||||
bfr.Add_str_a7("&redirects"); // show redirects
|
||||
bfr.Add_str_a7("&prop=imageinfo&iiprop=size|url|mediatype|mime|bitdepth|timestamp|size|sha1"); // list of props
|
||||
bfr.Add_str_a7("&titles=");
|
||||
|
||||
// add titles; EX: File:A.png|File:B.png|
|
||||
for (int i = idx; i < idx + 500; i++) {
|
||||
Xobldr_missing_origs_item item = (Xobldr_missing_origs_item)src.Get_at(i);
|
||||
Xoa_ttl ttl = item.Lnki_ttl();
|
||||
|
||||
// skip "|" if first
|
||||
if (i != idx) bfr.Add_byte_pipe();
|
||||
|
||||
// make ttl_bry so (a) namespace is present (EX:File:); (b) spaces are present (not underscores)
|
||||
byte[] ttl_bry = ttl.Full_txt_wo_qarg();
|
||||
ttl_bry = encoder.Encode(ttl_bry);
|
||||
bfr.Add(ttl_bry);
|
||||
}
|
||||
|
||||
// call api
|
||||
// byte[] rslt = download_wkr.Download_xrg().Exec_as_bry(bfr.To_bry_and_clear());
|
||||
|
||||
// deserialize
|
||||
// Json_doc jdoc = parser.Parse(rslt);
|
||||
|
||||
// loop over /query/pages
|
||||
// for each node, deserialize orig info and add to hash by "title"
|
||||
// loop over /query/redirects
|
||||
// for each node, retrieve from hash by "to"; add "from" as prop
|
||||
// loop over hash
|
||||
// for each item, retrieve from src; copy props over
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Gfo_usr_dlg_.Instance.Warn_many("", "", "missing_origs:failure while calling wmf_api; domain=~{0} idx=~{1} err=~{2}", api_domain, idx, Err_.Message_gplx_log(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
class Xobldr_missing_origs_item {
|
||||
private final Xoa_ttl lnki_ttl;
|
||||
public Xobldr_missing_origs_item(Xoa_ttl lnki_ttl) {
|
||||
this.lnki_ttl = lnki_ttl;
|
||||
}
|
||||
public Xoa_ttl Lnki_ttl() {return lnki_ttl;}
|
||||
}
|
@ -16,7 +16,9 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||
package gplx.xowa.apps.apis.xowa.gui; 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.browsers.*;
|
||||
public class Xoapi_browser implements Gfo_invk {
|
||||
private Xoae_app app;
|
||||
public void Init_by_kit(Xoae_app app) {
|
||||
this.app = app;
|
||||
url.Init_by_kit(app);
|
||||
tabs.Init_by_kit(app);
|
||||
html.Init_by_kit(app);
|
||||
@ -34,6 +36,9 @@ public class Xoapi_browser implements Gfo_invk {
|
||||
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();
|
||||
public Xoapi_prog_log Prog_log() {return prog_log;} private Xoapi_prog_log prog_log = new Xoapi_prog_log();
|
||||
private void Nightmode_toggle() {
|
||||
app.Gui_mgr().Nightmode_mgr().Enabled_toggle_();
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_url)) return url;
|
||||
else if (ctx.Match(k, Invk_tabs)) return tabs;
|
||||
@ -43,9 +48,13 @@ public class Xoapi_browser implements Gfo_invk {
|
||||
else if (ctx.Match(k, Invk_prog)) return prog;
|
||||
else if (ctx.Match(k, Invk_info)) return info;
|
||||
else if (ctx.Match(k, Invk_prog_log)) return prog_log;
|
||||
else if (ctx.Match(k, Invk__nightmode_toggle)) Nightmode_toggle();
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
private static final String
|
||||
Invk_url = "url", Invk_tabs = "tabs", Invk_html = "html", Invk_search = "search"
|
||||
, Invk_find = "find", Invk_prog = "prog", Invk_info = "info", Invk_prog_log = "prog_log";
|
||||
, Invk_find = "find", Invk_prog = "prog", Invk_info = "info", Invk_prog_log = "prog_log"
|
||||
, Invk__nightmode_toggle = "nightmode_toggle"
|
||||
;
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ import gplx.gfui.*; import gplx.gfui.ipts.*; import gplx.gfui.kits.core.*; impor
|
||||
import gplx.xowa.addons.wikis.searchs.*; import gplx.xowa.guis.menus.*; import gplx.xowa.guis.cmds.*; import gplx.xowa.apps.cfgs.*; import gplx.xowa.users.*;
|
||||
import gplx.xowa.langs.*;
|
||||
import gplx.xowa.guis.bnds.*; import gplx.xowa.guis.views.*; import gplx.xowa.guis.urls.url_macros.*; import gplx.xowa.addons.wikis.searchs.gui.htmlbars.*;
|
||||
import gplx.xowa.guis.views.boots.*;
|
||||
import gplx.xowa.guis.views.boots.*; import gplx.xowa.guis.views.nightmodes.*;
|
||||
import gplx.gfui.layouts.swts.*;
|
||||
public class Xoa_gui_mgr implements Gfo_evt_itm, Gfo_invk {
|
||||
public Xoa_gui_mgr(Xoae_app app) {
|
||||
@ -41,7 +41,8 @@ public class Xoa_gui_mgr implements Gfo_evt_itm, Gfo_invk {
|
||||
public Xog_layout Layout() {return layout;} private Xog_layout layout = new Xog_layout();
|
||||
public Xog_html_mgr Html_mgr() {return html_mgr;} private Xog_html_mgr html_mgr;
|
||||
public Xog_menu_mgr Menu_mgr() {return menu_mgr;} private Xog_menu_mgr menu_mgr;
|
||||
public Xog_url_macro_mgr Url_macro_mgr() {return url_macro_mgr;} private Xog_url_macro_mgr url_macro_mgr = new Xog_url_macro_mgr();
|
||||
public Xog_url_macro_mgr Url_macro_mgr() {return url_macro_mgr;} private final Xog_url_macro_mgr url_macro_mgr = new Xog_url_macro_mgr();
|
||||
public Xog_nightmode_mgr Nightmode_mgr() {return nightmode_mgr;} private final Xog_nightmode_mgr nightmode_mgr = new Xog_nightmode_mgr();
|
||||
public void Show_prog() {
|
||||
// get rects for positioning
|
||||
RectAdp statusbar_rect = browser_win.Statusbar_grp().Rect();
|
||||
@ -76,6 +77,7 @@ public class Xoa_gui_mgr implements Gfo_evt_itm, Gfo_invk {
|
||||
, new gplx.core.logs.Gfo_log_itm_wtr__csv()));
|
||||
}
|
||||
win_cfg.Init_by_app(app);
|
||||
nightmode_mgr.Init_by_app(app);
|
||||
}
|
||||
public void Kit_(Gfui_kit kit) {
|
||||
this.kit = kit;
|
||||
|
@ -311,6 +311,7 @@ public class Xog_bnd_mgr implements Gfo_invk {
|
||||
Init_itm(Xog_cmd_itm_.Key_gui_browser_info_focus , Xog_bnd_box_.Tid_browser , "mod.ca+key.i");
|
||||
Init_itm(Xog_cmd_itm_.Key_gui_browser_info_clear , Xog_bnd_box_.Tid_browser , "mod.ca+key.c");
|
||||
Init_itm(Xog_cmd_itm_.Key_gui_browser_prog_log_show , Xog_bnd_box_.Tid_browser_prog , "mouse.middle", "mod.cs+key.p");
|
||||
Init_itm(Xog_cmd_itm_.Key_gui_browser_nightmode_toggle , Xog_bnd_box_.Tid_browser , "");
|
||||
Init_itm(Xog_cmd_itm_.Key_html_tidy_toggle , Xog_bnd_box_.Tid_browser , "key.f7");
|
||||
Init_itm(Xog_cmd_itm_.Key_usr_bookmarks_add , Xog_bnd_box_.Tid_browser , "");
|
||||
Init_itm(Xog_cmd_itm_.Key_usr_bookmarks_show , Xog_bnd_box_.Tid_browser , "key.f3");
|
||||
|
@ -123,6 +123,7 @@ public class Xog_cmd_itm_ {
|
||||
, Key_gui_browser_prog_log_show = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.prog_log.show")
|
||||
, Key_gui_browser_info_focus = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.info.focus")
|
||||
, Key_gui_browser_info_clear = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.info.clear")
|
||||
, Key_gui_browser_nightmode_toggle = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.nightmode_toggle")
|
||||
|
||||
, Key_gui_menus_group_file = "xowa.gui.menus.group.file"
|
||||
, Key_gui_menus_group_edit = "xowa.gui.menus.group.edit"
|
||||
|
@ -33,6 +33,7 @@ public class Xog_win_itm implements Gfo_invk, Gfo_evt_itm {
|
||||
public Xoa_gui_mgr Gui_mgr() {return gui_mgr;} private Xoa_gui_mgr gui_mgr;
|
||||
|
||||
public GfuiWin Win_box() {return win_box;} private GfuiWin win_box;
|
||||
public Gfui_grp Toolbar_grp() {return toolbar_grp;} private Gfui_grp toolbar_grp;
|
||||
public GfuiBtn Go_bwd_btn() {return go_bwd_btn;} private GfuiBtn go_bwd_btn;
|
||||
public GfuiBtn Go_fwd_btn() {return go_fwd_btn;} private GfuiBtn go_fwd_btn;
|
||||
public GfuiComboBox Url_box() {return url_box;} private GfuiComboBox url_box;
|
||||
@ -313,7 +314,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 = Xog_win_itm_.new_grp(app, kit, win_box, "toolbar_grp");
|
||||
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, 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);
|
||||
|
@ -20,55 +20,28 @@ import gplx.xowa.guis.langs.*;
|
||||
public class Xog_win_itm_ {
|
||||
public static void Show_win(Xog_win_itm win) {
|
||||
Xoae_app app = win.App(); GfuiWin win_box = win.Win_box();
|
||||
|
||||
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);
|
||||
|
||||
app.Gui_mgr().Nightmode_mgr().Enabled_dflt_();
|
||||
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;
|
||||
return kit.New_grp(id, win);
|
||||
}
|
||||
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) {
|
||||
|
@ -0,0 +1,80 @@
|
||||
/*
|
||||
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.guis.views.nightmodes; import gplx.*; import gplx.xowa.*; import gplx.xowa.guis.*; import gplx.xowa.guis.views.*;
|
||||
import gplx.gfui.controls.elems.*; import gplx.gfui.draws.*;
|
||||
public class Xog_nightmode_mgr {
|
||||
private boolean enabled;
|
||||
private Xog_win_itm win;
|
||||
public void Init_by_app(Xoae_app app) {
|
||||
this.win = app.Gui_mgr().Browser_win();
|
||||
}
|
||||
public boolean Enabled() {return enabled;}
|
||||
public void Enabled_dflt_() {
|
||||
Enabled_(false);
|
||||
}
|
||||
public void Enabled_toggle_() {
|
||||
Enabled_(!enabled);
|
||||
}
|
||||
private void Enabled_(boolean v) {
|
||||
this.enabled = v;
|
||||
|
||||
// get colors
|
||||
ColorAdp backcolor, forecolor, edgecolor;
|
||||
if (enabled) {
|
||||
backcolor = ColorAdp_.Black;
|
||||
forecolor = ColorAdp_.White;
|
||||
edgecolor = ColorAdp_.Black;
|
||||
}
|
||||
else {
|
||||
backcolor = ColorAdp_.White;
|
||||
forecolor = ColorAdp_.Black;
|
||||
edgecolor = ColorAdp_.LightGray;
|
||||
}
|
||||
|
||||
// set back / fore for window and tab
|
||||
win.Win_box().BackColor_(backcolor);
|
||||
win.Tab_mgr().Tab_mgr().BackColor_(backcolor);
|
||||
win.Tab_mgr().Tab_mgr().Btns_selected_background_(backcolor);
|
||||
win.Tab_mgr().Tab_mgr().Btns_selected_foreground_(forecolor);
|
||||
win.Tab_mgr().Tab_mgr().Btns_unselected_background_(backcolor);
|
||||
win.Tab_mgr().Tab_mgr().Btns_unselected_foreground_(forecolor);
|
||||
|
||||
// set back / fore for other elems
|
||||
GfuiElemBase[] elems = new GfuiElemBase[]
|
||||
{ win.Toolbar_grp()
|
||||
, win.Go_bwd_btn()
|
||||
, win.Go_fwd_btn()
|
||||
, win.Url_box()
|
||||
, win.Url_exec_btn()
|
||||
, win.Search_box()
|
||||
, win.Search_exec_btn()
|
||||
, win.Statusbar_grp()
|
||||
, win.Find_close_btn()
|
||||
, win.Find_bwd_btn()
|
||||
, win.Find_fwd_btn()
|
||||
, win.Find_box()
|
||||
, win.Prog_box()
|
||||
};
|
||||
for (GfuiElemBase elem : elems)
|
||||
elem.BackColor_(backcolor).ForeColor_(forecolor);
|
||||
|
||||
// set edge colors
|
||||
win.Url_box().Border_color_(edgecolor);
|
||||
win.Search_box().Border_color_(edgecolor);
|
||||
win.Find_box().Border_color_(edgecolor);
|
||||
win.Prog_box().Border_color_(backcolor);
|
||||
}
|
||||
}
|
@ -19,12 +19,17 @@ 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_(DEFAULT_HTML);
|
||||
|
||||
boolean nightmode_enabled = ((Xoae_app)wiki.App()).Gui_mgr().Nightmode_mgr().Enabled();
|
||||
page.Html_data().Custom_html_(nightmode_enabled ? DEFAULT_HTML_NIGHT : DEFAULT_HTML_DAY);
|
||||
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("<html><body class='xowa-default_new_tab-body'></body></html>");
|
||||
private static final byte[]
|
||||
DEFAULT_HTML_DAY = Bry_.new_a7("<html><body style='background-color:white'></body></html>")
|
||||
, DEFAULT_HTML_NIGHT = Bry_.new_a7("<html><body style='background-color:black'></body></html>")
|
||||
;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user