Class WindowProperties

All Implemented Interfaces:
Proxy

@Generated("org.javagi.JavaGI") public final class WindowProperties extends GObject

Window properties of a WebKitWebView.

The content of a WebKitWebView can request to change certain properties of the window containing the view. This can include the x, y position of the window, the width and height but also if a toolbar, scrollbar, statusbar, locationbar should be visible to the user, and the request to show the WebKitWebView fullscreen.

The WebKitWebView::ready-to-show signal handler is the proper place to apply the initial window properties. Then you can monitor the WebKitWindowProperties by connecting to ::notify signal.

static void ready_to_show_cb (WebKitWebView *web_view, gpointer user_data)
{
    GtkWidget *window;
    WebKitWindowProperties *window_properties;
    gboolean visible;

    // Create the window to contain the WebKitWebView.
    window = browser_window_new ();
    gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (web_view));
    gtk_widget_show (GTK_WIDGET (web_view));

    // Get the WebKitWindowProperties of the web view and monitor it.
    window_properties = webkit_web_view_get_window_properties (web_view);
    g_signal_connect (window_properties, "notify::geometry",
                      G_CALLBACK (window_geometry_changed), window);
    g_signal_connect (window_properties, "notify::toolbar-visible",
                      G_CALLBACK (window_toolbar_visibility_changed), window);
    g_signal_connect (window_properties, "notify::menubar-visible",
                      G_CALLBACK (window_menubar_visibility_changed), window);

    // Apply the window properties before showing the window.
    visible = webkit_window_properties_get_toolbar_visible (window_properties);
    browser_window_set_toolbar_visible (BROWSER_WINDOW (window), visible);
    visible = webkit_window_properties_get_menubar_visible (window_properties);
    browser_window_set_menubar_visible (BROWSER_WINDOW (window), visible);

    if (webkit_window_properties_get_fullscreen (window_properties)) {
        gtk_window_fullscreen (GTK_WINDOW (window));
    } else {
        GdkRectangle geometry;

        gtk_window_set_resizable (GTK_WINDOW (window),
                                  webkit_window_properties_get_resizable (window_properties));
        webkit_window_properties_get_geometry (window_properties, &geometry);
        gtk_window_move (GTK_WINDOW (window), geometry.x, geometry.y);
        gtk_window_resize (GTK_WINDOW (window), geometry.width, geometry.height);
    }

    gtk_widget_show (window);
}
  • Constructor Details

    • WindowProperties

      public WindowProperties(MemorySegment address)
      Create a WindowProperties instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
    • WindowProperties

      public WindowProperties()
      Create a new WindowProperties.
  • Method Details

    • getType

      public static @Nullable Type getType()
      Get the GType of the WindowProperties class.
      Returns:
      the GType
    • getMemoryLayout

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • asParent

      protected WindowProperties asParent()
      Return this instance as if it were its parent type. Comparable to the Java super keyword, but ensures the parent typeclass is also used in native code.
      Overrides:
      asParent in class GObject
      Returns:
      the instance as if it were its parent type
    • getFullscreen

      public boolean getFullscreen()
      Get whether the window should be shown in fullscreen state or not.
      Returns:
      true if the window should be fullscreen or false otherwise.
    • getGeometry

      public void getGeometry(Rectangle geometry)
      Get the geometry the window should have on the screen when shown.
      Parameters:
      geometry - return location for the window geometry
    • getLocationbarVisible

      public boolean getLocationbarVisible()
      Get whether the window should have the locationbar visible or not.
      Returns:
      true if locationbar should be visible or false otherwise.
    • getMenubarVisible

      public boolean getMenubarVisible()
      Get whether the window should have the menubar visible or not.
      Returns:
      true if menubar should be visible or false otherwise.
    • getResizable

      public boolean getResizable()
      Get whether the window should be resizable by the user or not.
      Returns:
      true if the window should be resizable or false otherwise.
    • getScrollbarsVisible

      public boolean getScrollbarsVisible()
      Get whether the window should have the scrollbars visible or not.
      Returns:
      true if scrollbars should be visible or false otherwise.
    • getStatusbarVisible

      public boolean getStatusbarVisible()
      Get whether the window should have the statusbar visible or not.
      Returns:
      true if statusbar should be visible or false otherwise.
    • getToolbarVisible

      public boolean getToolbarVisible()
      Get whether the window should have the toolbar visible or not.
      Returns:
      true if toolbar should be visible or false otherwise.
    • builder

      public static WindowProperties.Builder<? extends WindowProperties.Builder> builder()
      A WindowProperties.Builder object constructs a WindowProperties with the specified properties. Use the various set...() methods to set properties, and finish construction with WindowProperties.Builder.build().
      Returns:
      the builder object