in renderer/src/main/java/org/netbeans/html/presenters/render/GTK.java [168:216]
public void run() {
final Libs libs = getInstance(null);
final Gdk gdk = libs.gdk;
final Gtk gtk = libs.gtk;
final WebKit webKit = libs.webKit;
final G g = libs.g;
final Pointer screen = gdk.gdk_screen_get_default();
int primaryMonitor = gdk.gdk_screen_get_primary_monitor(screen);
GRectangle size = new GRectangle();
gdk.gdk_screen_get_monitor_geometry(screen, primaryMonitor, size);
int height = (int) (size.height * 0.9);
int width = (int) (size.width * 0.9);
int x = (int) (size.width * 0.05) + size.x;
int y = (int) (size.height * 0.05) + size.y;
final Pointer window = gtk.gtk_window_new(0);
gtk.gtk_window_set_default_size(window, width, height);
gtk.gtk_window_set_gravity(window, 5);
gtk.gtk_window_move(window, x, y);
Pointer scroll = gtk.gtk_scrolled_window_new(null, null);
gtk.gtk_container_add(window, scroll);
final Pointer webView = webKit.webkit_web_view_new();
gtk.gtk_container_add(scroll, webView);
Pointer frame = webKit.webkit_web_view_get_main_frame(webView);
Pointer ctx = webKit.webkit_web_frame_get_global_context(frame);
this.jsContext = ctx;
if (onContext != null) {
onContext.run();
}
onLoad = new OnLoad(webView, libs, window, onPageLoad);
g.g_signal_connect_data(webView, "notify::load-status", onLoad, null, null, 0);
newWebView = new NewWebView(libs, headless);
g.g_signal_connect_data(webView, "create-web-view", newWebView, window, null, 0);
webKit.webkit_web_view_load_uri(webView, page);
gtk.gtk_widget_grab_focus(webView);
onDestroy = new OnDestroy();
g.g_signal_connect_data(window, "destroy", onDestroy, null, null, 0);
pending = new Pending();
if (!headless) {
gtk.gtk_widget_show_all(window);
}
}