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

Reply via email to