XAppGtkWindow

XAppGtkWindow — A subclass of GtkWindow that allows additional communication with the window manager.

Functions

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkWindow
                        ╰── XAppGtkWindow
                            ╰── XAppIconChooserDialog

Implemented Interfaces

XAppGtkWindow implements AtkImplementorIface and GtkBuildable.

Description

This widget is a simple subclass of GtkWindow that provides the following additional capabilities:

  • Ability to set an icon name or icon file path for the window manager to make use of, rather than relying on a desktop file or fixed-size window- backed icon that Gtk normally generates. The window manager must support the NET_WM_XAPP_ICON_NAME hint.

  • Ability to send progress info to the window manager, in the form of an integer, 0-100, which can then be used to display this progress in some manner in a task manager or window list. The window manager must support the NET_WM_XAPP_PROGRESS hint.

  • Ability to signal a 'pulsing' progress state, of potentially indeterminate value, in the form of a boolean, which can be passed on to a window list. The window manager must support the NET_WM_XAPP_PROGRESS_PULSE hint

Wrappers:

Also provided are corresponding wrapper functions for normal GtkWindows. They are not class methods - they are called with the target widget as their first argument.

For example:

win = Gtk.Window() XApp.set_window_icon_name(win, "foobar")

These functions mirror those of the XAppGtkWindow class, but allow the properties to work with normal GtkWindows and descendants of GtkWindow.

Functions

xapp_gtk_window_new ()

GtkWidget *
xapp_gtk_window_new (GtkWindowType type);

Creates a new XAppGtkWindow of type type . See gtk_window_new() for more details.

Parameters

type

The GtkWindowType to use

 

Returns

A new XAppGtkWindow (transfer: full)


xapp_gtk_window_set_icon_name ()

void
xapp_gtk_window_set_icon_name (XAppGtkWindow *window,
                               const gchar *icon_name);

Sets the icon name hint for a window manager (like muffin) to make available when applications want to change their icons during runtime without having to resort to the internal low-res pixbufs that GdkWindow sets on the client side. This also chains up and calls GtkWindow.set_icon_name for convenience and compatibility. Set to NULL to unset.

Parameters

window

The XAppGtkWindow to set the icon name for

 

icon_name

The icon name or path to set, or NULL to unset.

[nullable]

xapp_gtk_window_set_icon_from_file ()

void
xapp_gtk_window_set_icon_from_file (XAppGtkWindow *window,
                                    const gchar *file_name,
                                    GError **error);

Sets the icon name hint for a window manager (like muffin) to make available when applications want to change their icons during runtime without having to resort to the internal low-res pixbufs that GdkWindow sets on the client side. This also chains up and calls GtkWindow.set_icon_from_file for convenience and compatibility. Set to NULL to unset.

Parameters

window

The XAppGtkWindow to set the icon name for

 

file_name

The icon path to set, or NULL to unset.

[nullable]

error

An error to set if something goes wrong.

[nullable]

xapp_gtk_window_set_progress ()

void
xapp_gtk_window_set_progress (XAppGtkWindow *window,
                              gint progress);

Sets the progress hint for a window manager (like muffin) to make available when applications want to display the application's progress in some operation. The value sent to the WM will be clamped to between 0 and 100.

Note: If a window will stick around after progress is complete, you will probably need to set progress to 0 to remove any progress effects on taskbars and window lists.

Setting progress will also cancel the 'pulsing' flag on the window as well, if it has been set.

Parameters

window

The XAppGtkWindow to set the progress for

 

progress

The value to set for progress.

 

xapp_gtk_window_set_progress_pulse ()

void
xapp_gtk_window_set_progress_pulse (XAppGtkWindow *window,
                                    gboolean pulse);

Sets the progress pulse hint hint for a window manager (like muffin) to make available when applications want to display indeterminate or ongoing progress in a task manager.

Note: If a window will stick around after progress is complete, you will probably need to set progress to 0 to remove any progress effects on taskbars and window lists. This will also remove the pulse state, if it is set.

Setting an explicit progress value will unset this flag.

Parameters

window

The XAppGtkWindow to set the progress for

 

pulse

Whether to have pulsing set or not.

 

xapp_set_window_icon_name ()

void
xapp_set_window_icon_name (GtkWindow *window,
                           const gchar *icon_name);

Sets the icon name hint for a window manager (like muffin) to make available when applications want to change their icons during runtime without having to resort to the internal low-res pixbufs that GdkWindow sets on the client side. This is a function, not a method, for taking advantage of this feature with descendants of GtkWindows, such as GtkDialogs. Sets gtk_window_set_icon_name as well, to avoid needing to have two calls each time. Set to NULL to unset.

Parameters

window

The GtkWindow to set the icon name for

 

icon_name

The icon name to set, or NULL to unset.

[nullable]

xapp_set_window_icon_from_file ()

void
xapp_set_window_icon_from_file (GtkWindow *window,
                                const gchar *file_name,
                                GError **error);

Sets the icon name hint for a window manager (like muffin) to make available when applications want to change their icons during runtime without having to resort to the internal low-res pixbufs that GdkWindow sets on the client side. This also chains up and calls GtkWindow.set_icon_from_file for convenience and compatibility. Set to NULL to unset.

Parameters

window

The GtkWindow to set the icon name for

 

file_name

The icon path to set, or NULL to unset.

[nullable]

error

An error to set if something goes wrong.

[nullable]

xapp_set_window_progress ()

void
xapp_set_window_progress (GtkWindow *window,
                          gint progress);

Sets the progress hint for a window manager (like muffin) to make available when applications want to display the application's progress in some operation. The value sent to the WM will be clamped to between 0 and 100.

Note: If a window will stick around after progress is complete, you will probably need to set progress to 0 to remove any progress effects on taskbars and window lists.

Setting progress will also cancel the 'pulsing' flag on the window as well, if it has been set.

Parameters

window

The GtkWindow to set the progress for

 

progress

The value to set for progress.

 

xapp_set_window_progress_pulse ()

void
xapp_set_window_progress_pulse (GtkWindow *window,
                                gboolean pulse);

Sets the progress pulse hint hint for a window manager (like muffin) to make available when applications want to display indeterminate or ongoing progress in a task manager.

Note: If a window will stick around after progress is complete, you will probably need to set progress to 0 to remove any progress effects on taskbars and window lists. This will also remove the pulse state, if it is set.

Setting an explicit progress value will unset this flag.

Parameters

window

The GtkWindow to set the progress for

 

pulse

Whether to have pulsing set or not.

 

xapp_set_xid_icon_name ()

void
xapp_set_xid_icon_name (gulong xid,
                        const gchar *icon_name);

Sets the icon name hint for a window manager (like muffin) to make available when applications want to change their icons during runtime without having to resort to the internal low-res pixbufs that GdkWindow sets on the client side. This is a function, not a method, for applying the icon name property for a given (possibly foreign) window, by passing the window's XID. Set to NULL to unset.

Parameters

xid

The Window to set the icon name for

 

icon_name

The icon name to set, or NULL to unset.

[nullable]

xapp_set_xid_icon_from_file ()

void
xapp_set_xid_icon_from_file (gulong xid,
                             const gchar *file_name);

Sets the icon name hint for a window manager (like muffin) to make available when applications want to change their icons during runtime without having to resort to the internal low-res pixbufs that GdkWindow sets on the client side. This is a function, not a method, for applying the icon name property for a given (possibly foreign) window, by passing the window's XID. Set to NULL to unset.

Parameters

xid

The Window to set the icon name for

 

file_name

The icon path to set, or NULL to unset.

[nullable]

xapp_set_xid_progress ()

void
xapp_set_xid_progress (gulong xid,
                       gint progress);

Sets the progress hint for a window manager (like muffin) to make available when applications want to display the application's progress in some operation. The value sent to the WM will be clamped to between 0 and 100.

Setting progress will also cancel the 'pulsing' flag on the window as well, if it has been set.

Note: If a window will stick around after progress is complete, you will probably need to set progress to 0 to remove any progress effects on taskbars and window lists.

This is a function, not a method, for applying the progress property for a given (possibly foreign) window, by passing the window's XID.

Parameters

xid

The Window to set the progress for

 

progress

The value to set for progress.

 

xapp_set_xid_progress_pulse ()

void
xapp_set_xid_progress_pulse (gulong xid,
                             gboolean pulse);

Sets the progress pulse hint hint for a window manager (like muffin) to make available when applications want to display indeterminate or ongoing progress in a task manager.

Note: If a window will stick around after progress is complete, you will probably need to set progress to 0 to remove any progress effects on taskbars and window lists.

Setting an explicit progress value will unset this flag.

Parameters

xid

The Window to set the progress for

 

pulse

Whether to have pulsing set or not.

 

Types and Values

XAPP_TYPE_GTK_WINDOW

#define XAPP_TYPE_GTK_WINDOW (xapp_gtk_window_get_type ())

struct XAppGtkWindowClass

struct XAppGtkWindowClass {
  GtkWindowClass parent_class;

  gpointer padding[12];
};

XAppGtkWindow

typedef struct _XAppGtkWindow XAppGtkWindow;