/* 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 . */ package gplx.gfui; 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; } } class Swt_app_browser_mgr { private Shell shell; private Browser browser; public Swt_app_browser_mgr(Shell shell) {this.shell = shell;} public void Load() { // this.Free(); if (browser == null) { browser = new Browser(shell, SWT.MOZILLA); Point size = shell.getSize(); browser.setBounds(0, 40, size.x, size.y - 40); } // browser.setUrl("about:blank"); // browser.setUrl("file:///C:/temp.html"); browser.setText("hello"); } public void Free() { if (browser != null) { // browser.setUrl("about:blank"); browser.dispose(); } Env_.GarbageCollect(); browser = null; } } class Swt_app_browser_cmd_load implements SelectionListener { private Swt_app_browser_mgr mgr; public Swt_app_browser_cmd_load(Swt_app_browser_mgr mgr) {this.mgr = mgr;} public void widgetSelected(SelectionEvent event) {mgr.Load();} public void widgetDefaultSelected(SelectionEvent event) {} } class Swt_app_browser_cmd_free implements SelectionListener { private Swt_app_browser_mgr mgr; public Swt_app_browser_cmd_free(Swt_app_browser_mgr mgr) {this.mgr = mgr;} public void widgetSelected(SelectionEvent event) {mgr.Free();} public void widgetDefaultSelected(SelectionEvent event) {} }