On Mar 8, 8:49 am, "timeless" <[EMAIL PROTECTED]> wrote:
> On Mar 7, 2:46 pm, "krithika" <[EMAIL PROTECTED]> wrote:
>
>
>
> > Hi folks,
>
> > We are trying to embed gecko from java using javaxpcom in Linux.I have
> > not been successful so far.
>
> > We do a JNI call which create a GTKWidget as shown below.This
> > GtkWidget handle is being given to baseWindow.initWindow from my java
> > code.
>
> > This is not working?
>
> > Can someone throw some light as to whether this is possible in the
> > first place.
>
> > gtk_init(NULL,NULL);
> > window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
> > /*-- Display the window --*/
> > gtk_widget_realize(window);
> > area=gtk_hbox_new (FALSE, 10);
> > gtk_container_add(GTK_CONTAINER(window),area);
> > gtk_widget_realize(area);
> > gtk_widget_show(area);
> > gtk_main();
>
> > and return area to the java code via JNI.
>
> I don't understand your use of gtk_main()
>
> http://mxr.landfill.bugzilla.org/gnome/source/libgtk-java/src/java/or...
>
> Seems to indicate you're using it wrong. And given that
> java.org.gnu.gtk.Gtk exists, I have to ask why you don't just use it.
I just moved on to try swt package for gettting baseWindow handle.But
webNavigation is not happening.This is what I have done.Using
xulrunner1.8.1.2 jars / eclipse3.2.2 and swt package.
Display display = new Display();
Shell shell = new Shell(display);
shell.setBounds(300, 300, 300, 300);
shell.setText("Main Window");
TestGTK gtk = new TestGTK(shell,SWT.EMBEDDED);
gtk.initDisplay(shell);
shell.open();
gtk.test();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
void initDisplay(Composite parent)
{
Display display = parent.getDisplay();
display.setData(NO_INPUT_METHOD, null);
}
public void test()
{
// gre initialization
Mozilla mozilla = Mozilla.getInstance();
mozilla.initialize(grePath);
mozilla.initEmbedding(grePath, grePath, locProvider);
componentManager =mozilla.getComponentManager();
System.out.println("Step0: componentManager
"+componentManager);
serviceManager = mozilla.getServiceManager();
System.out.println("Step1: serviceManager
"+serviceManager);
proxy =
(nsIProxyObjectManager)componentManager.createInstanceByContractID("@mozilla.org/
xpcomproxy;1",null,nsIProxyObjectManager.NS_IPROXYOBJECTMANAGER_IID);
appStartup
=(nsIAppStartup)serviceManager.getServiceByContractID("@mozilla.org/
toolkit/app-startup;1",nsIAppStartup.NS_IAPPSTARTUP_IID);
System.out.println("Step2: nsIAppStartup appStartup =
"+appStartup);
nsIWindowCreator windowCreator
=(nsIWindowCreator)appStartup.queryInterface(nsIWindowCreator.NS_IWINDOWCREATOR_IID);
System.out.println("Step3: nsIWindowCreator
windowCreator
="+windowCreator);
windowWatcher =
(nsIWindowWatcher)serviceManager.getServiceByContractID("@mozilla.org/
embedcomp/window-watcher;1", nsIWindowWatcher.NS_IWINDOWWATCHER_IID);
System.out.println("Step4: nsIWindowWatcher
windowWatcher
="+windowWatcher);
windowWatcher.setWindowCreator(windowCreator);
System.out.println("Step5:
setWindowCreator(windowCreator)");
browser =
(nsIWebBrowser)componentManager.createInstanceByContractID("@mozilla.org/
embedding/browser/nsWebBrowser;
1",null,nsIWebBrowser.NS_IWEBBROWSER_IID);
System.out.println("Step6: nsIWebBrowser "+browser);
int hwnd = createWindowHandle();
System.out.println("createWindowHandle "+hwnd);
nsIBaseWindow baseWindow = (nsIBaseWindow)
browser.queryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID);
baseWindow.initWindow(hwnd, 0, 0, 0, 1024, 768);
baseWindow.create();
baseWindow.setVisibility(true);
webNavigation = (nsIWebNavigation)
browser.queryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID);
System.out.println("Step8: nsIWebNavigation
"+webNavigation);
webNavigation.loadURI(urlToLoad,nsIWebNavigation.LOAD_FLAGS_NONE,
null, null, null);
System.out.println("Step9: nsIWebNavigation url
"+urlToLoad);
listener=new WebProgressListener();
progress=
(nsIWebProgress)serviceManager.getServiceByContractID("@mozilla.org/
docloaderservice;1", nsIWebProgress.NS_IWEBPROGRESS_IID);
System.out.println("Step7: nsIWebProgress "+progress);
progress.addProgressListener((nsIWebProgressListener)listener,nsIWebProgress.NOTIFY_ALL);
System.out.println("Step7: nsIWebProgressListener added
");
//appStartup.run();
}
int createWindowHandle()
{
String osname=System.getProperty("os.name");
System.out.println("osname "+osname);
int embed_handle = OS.gtk_hbox_new (false, 0);
OS.gtk_container_add (this.handle, embed_handle);
OS.gtk_widget_show (embed_handle);
return embed_handle;
}
Need help.I have no exceptions or errors.
regards,
Krith
_______________________________________________
dev-embedding mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-embedding