mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
v2.7.3.1
This commit is contained in:
@@ -20,34 +20,46 @@ import gplx.*;
|
||||
import org.eclipse.swt.*;
|
||||
import org.eclipse.swt.browser.*; import org.eclipse.swt.custom.*; import org.eclipse.swt.events.*; import org.eclipse.swt.graphics.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*;
|
||||
public class Swt_app_browser {
|
||||
public static void main(String[] args) {
|
||||
Display display = new Display();
|
||||
Shell shell = new Shell(display);
|
||||
try {
|
||||
System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "E:\\موسوعات\\Xowa\\bin\\windows\\xulrunner");
|
||||
Swt_app_browser_mgr mgr = new Swt_app_browser_mgr(shell);
|
||||
New_btn(shell, 0, "loa&d", new Swt_app_browser_cmd_load(mgr));
|
||||
New_btn(shell, 1, "&free", new Swt_app_browser_cmd_free(mgr));
|
||||
shell.open();
|
||||
while (!shell.isDisposed()) {
|
||||
if (!display.readAndDispatch()) {
|
||||
display.sleep();
|
||||
}
|
||||
}
|
||||
mgr.Free();
|
||||
display.dispose();
|
||||
} catch (SWTError e) {
|
||||
Tfds.Write("a");
|
||||
}
|
||||
}
|
||||
private static Button New_btn(Shell shell, int idx, String text, SelectionListener lnr) {
|
||||
Button rv = new Button(shell, SWT.BORDER);
|
||||
rv.setText(text);
|
||||
rv.setBounds(idx * 80, 0, 80, 40);
|
||||
rv.addSelectionListener(lnr);
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
new Swt_app_browser().start();
|
||||
}
|
||||
|
||||
public void start()
|
||||
{
|
||||
Display display = new Display();
|
||||
Shell shell = new Shell(display);
|
||||
shell.setLayout(new GridLayout(1, false));
|
||||
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
|
||||
gridData.widthHint = SWT.DEFAULT;
|
||||
gridData.heightHint = SWT.DEFAULT;
|
||||
shell.setLayoutData(gridData);
|
||||
shell.setText("Firebug Lite for SWT ;)");
|
||||
|
||||
final Browser browser = new Browser(shell, SWT.NONE);
|
||||
GridData gridData2 = new GridData(SWT.FILL, SWT.FILL, true, true);
|
||||
gridData2.widthHint = SWT.DEFAULT;
|
||||
gridData2.heightHint = SWT.DEFAULT;
|
||||
browser.setLayoutData(gridData2);
|
||||
|
||||
Button button = new Button(shell, SWT.PUSH);
|
||||
button.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));
|
||||
button.setText("Install");
|
||||
button.addSelectionListener(new SelectionAdapter() {
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
browser.setUrl("javascript:(function(F,i,r,e,b,u,g,L,I,T,E){if(F.getElementById(b))return;E=F[i+'NS']&&F.documentElement.namespaceURI;E=E?F[i+'NS'](E,'script'):F[i]('script');E[r]('id',b);E[r]('src',I+g+T);E[r](b,u);(F[e]('head')[0]||F[e]('body')[0]).appendChild(E);E=new%20Image;E[r]('src',I+L);})(document,'createElement','setAttribute','getElementsByTagName','FirebugLite','4','firebug-lite.js','releases/lite/latest/skin/xp/sprite.png','https://getfirebug.com/','#startOpened');");
|
||||
}
|
||||
});
|
||||
|
||||
browser.setUrl("http://stackoverflow.com/questions/12003602/eclipse-swt-browser-and-firebug-lite");
|
||||
|
||||
shell.open();
|
||||
while (!shell.isDisposed()) {
|
||||
if (!display.readAndDispatch())
|
||||
display.sleep();
|
||||
}
|
||||
display.dispose();
|
||||
}
|
||||
}
|
||||
class Swt_app_browser_mgr {
|
||||
private Shell shell; private Browser browser;
|
||||
public Swt_app_browser_mgr(Shell shell) {this.shell = shell;}
|
||||
|
||||
@@ -16,6 +16,7 @@ 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.gfui; import gplx.*;
|
||||
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.graphics.Color;
|
||||
import org.eclipse.swt.graphics.Font;
|
||||
@@ -61,14 +62,14 @@ class Swt_core_cmds extends GxwCore_base {
|
||||
}
|
||||
@Override public String TipText() {return control.getToolTipText();} @Override public void TipText_set(String v) {control.setToolTipText(v);}
|
||||
@Override public void Controls_add(GxwElem sub) {
|
||||
if (!compositeAble) throw Exc_.new_("cannot add sub to control");
|
||||
if (!compositeAble) throw Err_.new_wo_type("cannot add sub to control");
|
||||
Composite owner_as_composite = (Composite)control;
|
||||
Swt_control sub_as_WxSwt = (Swt_control)sub;
|
||||
Control sub_as_swt = sub_as_WxSwt.Under_control();
|
||||
sub_as_swt.setParent(owner_as_composite);
|
||||
}
|
||||
@Override public void Controls_del(GxwElem sub) {
|
||||
if (!compositeAble) throw Exc_.new_("cannot add sub to control");
|
||||
if (!compositeAble) throw Err_.new_wo_type("cannot add sub to control");
|
||||
Swt_control sub_as_WxSwt = (Swt_control)sub;
|
||||
Control sub_as_swt = sub_as_WxSwt.Under_control();
|
||||
sub_as_swt.dispose(); // SWT_NOTE: no way to officially remove sub from control; can only dispose
|
||||
@@ -123,14 +124,14 @@ class Swt_core_cmds_dual extends GxwCore_base {
|
||||
}
|
||||
@Override public String TipText() {return inner.getToolTipText();} @Override public void TipText_set(String v) {inner.setToolTipText(v);}
|
||||
@Override public void Controls_add(GxwElem sub) {
|
||||
if (!outer_is_composite) throw Exc_.new_("cannot add sub to outer");
|
||||
if (!outer_is_composite) throw Err_.new_wo_type("cannot add sub to outer");
|
||||
Composite owner_as_composite = (Composite)outer;
|
||||
Swt_control sub_as_WxSwt = (Swt_control)sub;
|
||||
Control sub_as_swt = sub_as_WxSwt.Under_control();
|
||||
sub_as_swt.setParent(owner_as_composite);
|
||||
}
|
||||
@Override public void Controls_del(GxwElem sub) {
|
||||
if (!outer_is_composite) throw Exc_.new_("cannot add sub to outer");
|
||||
if (!outer_is_composite) throw Err_.new_wo_type("cannot add sub to outer");
|
||||
Swt_control sub_as_WxSwt = (Swt_control)sub;
|
||||
Control sub_as_swt = sub_as_WxSwt.Under_control();
|
||||
sub_as_swt.dispose(); // SWT_NOTE: no way to officially remove sub from outer; can only dispose
|
||||
@@ -220,7 +221,7 @@ class Swt_core_cmds_frames extends GxwCore_base {
|
||||
prv_font = v;
|
||||
}
|
||||
@Override public String TipText() {return inner.getToolTipText();} @Override public void TipText_set(String v) {inner.setToolTipText(v);}
|
||||
@Override public void Controls_add(GxwElem sub) {throw Exc_.new_unimplemented();}
|
||||
@Override public void Controls_add(GxwElem sub) {throw Err_.new_unimplemented();}
|
||||
@Override public void Controls_del(GxwElem sub) {}
|
||||
@Override public boolean Focus_has() {return inner.isFocusControl();}
|
||||
@Override public boolean Focus_able() {return focus_able;} boolean focus_able;
|
||||
|
||||
@@ -18,7 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.gfui;
|
||||
import gplx.Byte_ascii;
|
||||
import gplx.Enm_;
|
||||
import gplx.Err_;
|
||||
import gplx.GfoEvMgr_;
|
||||
import gplx.GfoInvkAble_;
|
||||
import gplx.GfoMsg_;
|
||||
|
||||
@@ -68,7 +68,7 @@ class Swt_dlg_msg implements Gfui_dlg_msg, Runnable {
|
||||
case Gfui_dlg_msg_.Ico_question: return SWT.ICON_QUESTION;
|
||||
case Gfui_dlg_msg_.Ico_warning: return SWT.ICON_WARNING;
|
||||
case Gfui_dlg_msg_.Ico_working: return SWT.ICON_WORKING;
|
||||
default: throw Exc_.new_unhandled(v);
|
||||
default: throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
int Xto_swt_btn(int v) {
|
||||
@@ -79,7 +79,7 @@ class Swt_dlg_msg implements Gfui_dlg_msg, Runnable {
|
||||
case Gfui_dlg_msg_.Btn_ignore: return SWT.IGNORE;
|
||||
case Gfui_dlg_msg_.Btn_abort: return SWT.ABORT;
|
||||
case Gfui_dlg_msg_.Btn_cancel: return SWT.CANCEL;
|
||||
default: throw Exc_.new_unhandled(v);
|
||||
default: throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
int Xto_gfui_btn(int v) {
|
||||
@@ -90,7 +90,7 @@ class Swt_dlg_msg implements Gfui_dlg_msg, Runnable {
|
||||
case SWT.IGNORE: return Gfui_dlg_msg_.Btn_ignore;
|
||||
case SWT.ABORT: return Gfui_dlg_msg_.Btn_abort;
|
||||
case SWT.CANCEL: return Gfui_dlg_msg_.Btn_cancel;
|
||||
default: throw Exc_.new_unhandled(v);
|
||||
default: throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import gplx.core.threads.Thread_adp_;
|
||||
|
||||
import java.security.acl.Owner;
|
||||
import gplx.*;
|
||||
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.browser.*;
|
||||
import org.eclipse.swt.events.*;
|
||||
@@ -160,7 +161,7 @@ class Swt_html_lnr_title implements TitleListener {
|
||||
public Swt_html_lnr_title(Swt_html html_box) {this.html_box = html_box;}
|
||||
@Override public void changed(TitleEvent ev) {
|
||||
try {UsrDlg_._.Note(ev.title);}
|
||||
catch (Exception e) {html_box.Kit().Ask_ok("xowa.swt.html_box", "title.fail", Err_.Message_gplx_brief(e));} // NOTE: must catch error or will cause app to lock; currently called inside displaySync
|
||||
catch (Exception e) {html_box.Kit().Ask_ok("xowa.swt.html_box", "title.fail", Err_.Message_gplx_full(e));} // NOTE: must catch error or will cause app to lock; currently called inside displaySync
|
||||
}
|
||||
}
|
||||
class Swt_html_func extends BrowserFunction {
|
||||
@@ -174,7 +175,7 @@ class Swt_html_func extends BrowserFunction {
|
||||
return gplx.gfui.Gfui_html.Js_args_exec(invk, args);
|
||||
}
|
||||
catch (Exception e) {
|
||||
return Err_.Message_gplx_brief(e);
|
||||
return Err_.Message_gplx_full(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -187,7 +188,7 @@ class Swt_html_lnr_status implements StatusTextListener {
|
||||
String ev_text = ev.text;
|
||||
// if (String_.Has(ev_text, "Loading [MathJax]")) return; // suppress MathJax messages; // NOTE: disabled for 2.1 (which no longer outputs messages to status); DATE:2013-05-03
|
||||
try {if (host != null) GfoEvMgr_.PubObj(host, Gfui_html.Evt_link_hover, "v", ev_text);}
|
||||
catch (Exception e) {html_box.Kit().Ask_ok("xowa.gui.html_box", "status.fail", Err_.Message_gplx_brief(e));} // NOTE: must catch error or will cause app to lock; currently called inside displaySync
|
||||
catch (Exception e) {html_box.Kit().Ask_ok("xowa.gui.html_box", "status.fail", Err_.Message_gplx_full(e));} // NOTE: must catch error or will cause app to lock; currently called inside displaySync
|
||||
}
|
||||
}
|
||||
class Swt_html_lnr_progress implements ProgressListener {
|
||||
@@ -218,7 +219,7 @@ class Swt_html_lnr_location implements LocationListener {
|
||||
GfoEvMgr_.PubObj(host, evt, "v", location);
|
||||
arg.doit = false; // cancel navigation event, else there will be an error when trying to go to invalid location
|
||||
}
|
||||
catch (Exception e) {html_box.Kit().Ask_ok("xowa.gui.html_box", evt, Err_.Message_gplx_brief(e));} // NOTE: must catch error or will cause app to lock; currently called inside displaySync
|
||||
catch (Exception e) {html_box.Kit().Ask_ok("xowa.gui.html_box", evt, Err_.Message_gplx_full(e));} // NOTE: must catch error or will cause app to lock; currently called inside displaySync
|
||||
}
|
||||
}
|
||||
class Swt_html_lnr_mouse implements MouseListener {
|
||||
|
||||
@@ -31,8 +31,8 @@ class Swt_img implements ImageAdp {
|
||||
public Object Under() {return under;} Image under;
|
||||
public boolean Disposed() {return under.isDisposed();}
|
||||
public void Rls() {under.dispose();}
|
||||
public void SaveAsBmp(Io_url url) {throw Exc_.new_unimplemented();}
|
||||
public void SaveAsPng(Io_url url) {throw Exc_.new_unimplemented();}
|
||||
public void SaveAsBmp(Io_url url) {throw Err_.new_unimplemented();}
|
||||
public void SaveAsPng(Io_url url) {throw Err_.new_unimplemented();}
|
||||
public ImageAdp Resize(int trg_w, int trg_h) {return Extract_image(0, 0, width, height, trg_w, trg_h);}
|
||||
public ImageAdp Extract_image(RectAdp src_rect, SizeAdp trg_size) {return Extract_image(src_rect.X(), src_rect.Y(), src_rect.Width(), src_rect.Height(), trg_size.Width(), trg_size.Height());}
|
||||
public ImageAdp Extract_image(int src_x, int src_y, int src_w, int src_h, int trg_w, int trg_h) {
|
||||
|
||||
@@ -141,7 +141,7 @@ class Swt_lnr__menu_detect implements MenuDetectListener {
|
||||
@Override public void menuDetected(MenuDetectEvent arg0) {
|
||||
try {GfoEvMgr_.Pub(elem, GfuiElemKeys.Evt_menu_detected);}
|
||||
catch (Exception e) {
|
||||
kit.Ask_ok("", "", "error during right-click; err=~{0}", Err_.Message_gplx(e));
|
||||
kit.Ask_ok("", "", "error during right-click; err=~{0}", Err_.Message_gplx_full(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -157,7 +157,7 @@ class Swt_popup_itm implements Gfui_mnu_itm {
|
||||
case SWT.CASCADE: this.tid = Gfui_mnu_itm_.Tid_grp; break;
|
||||
case SWT.CHECK: this.tid = Gfui_mnu_itm_.Tid_chk; break;
|
||||
case SWT.RADIO: this.tid = Gfui_mnu_itm_.Tid_rdo; break;
|
||||
default: throw Exc_.new_unhandled(swt_type);
|
||||
default: throw Err_.new_unhandled(swt_type);
|
||||
}
|
||||
}
|
||||
@Override public int Tid() {return tid;} private int tid;
|
||||
@@ -192,7 +192,7 @@ class Swt_lnr__menu_btn_cmd implements Listener {
|
||||
public Swt_lnr__menu_btn_cmd(GfoInvkAble invk, String cmd) {this.invk = invk; this.cmd = cmd;} GfoInvkAble invk; String cmd;
|
||||
public void handleEvent(Event ev) {
|
||||
try {GfoInvkAble_.InvkCmd(invk, cmd);}
|
||||
catch (Exception e) {Swt_kit._.Ask_ok("", "", "error while invoking command: cmd=~{0} err=~{1}", cmd, Err_.Message_gplx_brief(e));}
|
||||
catch (Exception e) {Swt_kit._.Ask_ok("", "", "error while invoking command: cmd=~{0} err=~{1}", cmd, Err_.Message_gplx_full(e));}
|
||||
}
|
||||
}
|
||||
class Swt_lnr__menu_btn_msg implements Listener {
|
||||
@@ -203,7 +203,7 @@ class Swt_lnr__menu_btn_msg implements Listener {
|
||||
msg.Args_reset();
|
||||
root_wkr.Run_str_for(invk, msg);
|
||||
}
|
||||
catch (Exception e) {Swt_kit._.Ask_ok("", "", "error while invoking command: cmd=~{0} err=~{1}", msg.Key(), Err_.Message_gplx_brief(e));}
|
||||
catch (Exception e) {Swt_kit._.Ask_ok("", "", "error while invoking command: cmd=~{0} err=~{1}", msg.Key(), Err_.Message_gplx_full(e));}
|
||||
}
|
||||
}
|
||||
class Swt_lnr__menu_chk_msg implements Listener {
|
||||
@@ -219,6 +219,6 @@ class Swt_lnr__menu_chk_msg implements Listener {
|
||||
msg.Args_reset();
|
||||
root_wkr.Run_str_for(invk, msg);
|
||||
}
|
||||
catch (Exception e) {Swt_kit._.Ask_ok("", "", "error while invoking command: cmd=~{0} err=~{1}", msg.Key(), Err_.Message_gplx_brief(e));}
|
||||
catch (Exception e) {Swt_kit._.Ask_ok("", "", "error while invoking command: cmd=~{0} err=~{1}", msg.Key(), Err_.Message_gplx_full(e));}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ public class Swt_tab_itm implements Gxw_tab_itm, Swt_control, FocusListener {
|
||||
public Swt_kit Kit() {return kit;} private Swt_kit kit;
|
||||
@Override public Control Under_control() {return null;}
|
||||
@Override public Composite Under_composite() {return null;}
|
||||
@Override public Control Under_menu_control() {throw Exc_.new_unimplemented();}
|
||||
@Override public Control Under_menu_control() {throw Err_.new_unimplemented();}
|
||||
@Override public String Tab_name() {return tab_itm.getText();} @Override public void Tab_name_(String v) {tab_itm.setText(v);}
|
||||
@Override public String Tab_tip_text() {return tab_itm.getToolTipText();} @Override public void Tab_tip_text_(String v) {tab_itm.setToolTipText(v);}
|
||||
public void Subs_add(GfuiElem sub) {
|
||||
|
||||
Reference in New Issue
Block a user