dotfiles/config/ags/quickactions/@girs/gdkwayland-4.0.d.ts
2025-04-25 06:53:17 +02:00

1360 lines
59 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/// <reference path="./gdk-4.0.d.ts" />
/// <reference path="./cairo-1.0.d.ts" />
/// <reference path="./cairo.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./pangocairo-1.0.d.ts" />
/// <reference path="./pango-1.0.d.ts" />
/// <reference path="./harfbuzz-0.0.d.ts" />
/// <reference path="./freetype2-2.0.d.ts" />
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/// <reference path="./gdkpixbuf-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://GdkWayland?version=4.0' {
// Module dependencies
import type Gdk from 'gi://Gdk?version=4.0';
import type cairo from 'cairo';
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
import type PangoCairo from 'gi://PangoCairo?version=1.0';
import type Pango from 'gi://Pango?version=1.0';
import type HarfBuzz from 'gi://HarfBuzz?version=0.0';
import type freetype2 from 'gi://freetype2?version=2.0';
import type Gio from 'gi://Gio?version=2.0';
import type GModule from 'gi://GModule?version=2.0';
import type GdkPixbuf from 'gi://GdkPixbuf?version=2.0';
export namespace GdkWayland {
/**
* GdkWayland-4.0
*/
interface WaylandToplevelExported {
(toplevel: WaylandToplevel, handle: string): void;
}
namespace WaylandDevice {
// Constructor properties interface
interface ConstructorProps extends Gdk.Device.ConstructorProps {}
}
/**
* The Wayland implementation of `GdkDevice`.
*
* Beyond the regular [class`Gdk`.Device] API, the Wayland implementation
* provides access to Wayland objects such as the `wl_seat` with
* [method`GdkWayland`.WaylandDevice.get_wl_seat], the `wl_keyboard` with
* [method`GdkWayland`.WaylandDevice.get_wl_keyboard] and the `wl_pointer` with
* [method`GdkWayland`.WaylandDevice.get_wl_pointer].
*/
class WaylandDevice extends Gdk.Device {
static $gtype: GObject.GType<WaylandDevice>;
// Constructors
constructor(properties?: Partial<WaylandDevice.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns the `/dev/input/event*` path of this device.
*
* For `GdkDevice`s that possibly coalesce multiple hardware
* devices (eg. mouse, keyboard, touch,...), this function
* will return %NULL.
*
* This is most notably implemented for devices of type
* %GDK_SOURCE_PEN, %GDK_SOURCE_TABLET_PAD.
* @returns the `/dev/input/event*` path of this device
*/
get_node_path(): string | null;
/**
* Returns the `xkb_keymap` of a `GdkDevice`.
* @returns a `struct xkb_keymap`
*/
get_xkb_keymap(): any | null;
}
namespace WaylandDisplay {
// Constructor properties interface
interface ConstructorProps extends Gdk.Display.ConstructorProps {}
}
/**
* The Wayland implementation of `GdkDisplay`.
*
* Beyond the regular [class`Gdk`.Display] API, the Wayland implementation
* provides access to Wayland objects such as the `wl_display` with
* [method`GdkWayland`.WaylandDisplay.get_wl_display], the `wl_compositor` with
* [method`GdkWayland`.WaylandDisplay.get_wl_compositor].
*
* You can find out what Wayland globals are supported by a display
* with [method`GdkWayland`.WaylandDisplay.query_registry].
*/
class WaylandDisplay extends Gdk.Display {
static $gtype: GObject.GType<WaylandDisplay>;
// Constructors
constructor(properties?: Partial<WaylandDisplay.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Retrieves the EGL display connection object for the given GDK display.
* @returns the EGL display
*/
get_egl_display(): any | null;
/**
* Gets the startup notification ID for a Wayland display, or %NULL
* if no ID has been defined.
* @returns the startup notification ID for @display
*/
get_startup_notification_id(): string | null;
/**
* Returns %TRUE if the interface was found in the display
* `wl_registry.global` handler.
* @param global global interface to query in the registry
* @returns %TRUE if the global is offered by the compositor
*/
query_registry(global: string): boolean;
/**
* Sets the cursor theme for the given `display`.
* @param name the new cursor theme
* @param size the size to use for cursors
*/
set_cursor_theme(name: string, size: number): void;
/**
* Sets the startup notification ID for a display.
*
* This is usually taken from the value of the `DESKTOP_STARTUP_ID`
* environment variable, but in some cases (such as the application not
* being launched using exec()) it can come from other sources.
*
* The startup ID is also what is used to signal that the startup is
* complete (for example, when opening a window or when calling
* [method`Gdk`.Display.notify_startup_complete]).
* @param startup_id the startup notification ID (must be valid utf8)
*/
set_startup_notification_id(startup_id: string): void;
}
namespace WaylandGLContext {
// Constructor properties interface
interface ConstructorProps extends Gdk.GLContext.ConstructorProps {}
}
/**
* The Wayland implementation of `GdkGLContext`.
*/
class WaylandGLContext extends Gdk.GLContext {
static $gtype: GObject.GType<WaylandGLContext>;
// Constructors
constructor(properties?: Partial<WaylandGLContext.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace WaylandMonitor {
// Constructor properties interface
interface ConstructorProps extends Gdk.Monitor.ConstructorProps {}
}
/**
* The Wayland implementation of `GdkMonitor`.
*
* Beyond the [class`Gdk`.Monitor] API, the Wayland implementation
* offers access to the Wayland `wl_output` object with
* [method`GdkWayland`.WaylandMonitor.get_wl_output].
*/
class WaylandMonitor extends Gdk.Monitor {
static $gtype: GObject.GType<WaylandMonitor>;
// Constructors
constructor(properties?: Partial<WaylandMonitor.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace WaylandPopup {
// Constructor properties interface
interface ConstructorProps extends WaylandSurface.ConstructorProps, Gdk.Popup.ConstructorProps {}
}
/**
* The Wayland implementation of `GdkPopup`.
*/
class WaylandPopup extends WaylandSurface implements Gdk.Popup {
static $gtype: GObject.GType<WaylandPopup>;
// Constructors
constructor(properties?: Partial<WaylandPopup.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Inherited properties
/**
* Whether to hide on outside clicks.
*/
get autohide(): boolean;
/**
* The parent surface.
*/
get parent(): Gdk.Surface;
/**
* The mouse pointer for the `GdkSurface`.
*/
get cursor(): Gdk.Cursor;
set cursor(val: Gdk.Cursor);
/**
* The `GdkDisplay` connection of the surface.
*/
get display(): Gdk.Display;
/**
* The `GdkFrameClock` of the surface.
*/
get frame_clock(): Gdk.FrameClock;
/**
* The `GdkFrameClock` of the surface.
*/
get frameClock(): Gdk.FrameClock;
/**
* The height of the surface, in pixels.
*/
get height(): number;
/**
* Whether the surface is mapped.
*/
get mapped(): boolean;
/**
* The scale of the surface.
*/
get scale(): number;
/**
* The scale factor of the surface.
*
* The scale factor is the next larger integer,
* compared to [property`Gdk`.Surface:scale].
*/
get scale_factor(): number;
/**
* The scale factor of the surface.
*
* The scale factor is the next larger integer,
* compared to [property`Gdk`.Surface:scale].
*/
get scaleFactor(): number;
/**
* The width of the surface in pixels.
*/
get width(): number;
// Inherited methods
/**
* Returns whether this popup is set to hide on outside clicks.
* @returns %TRUE if @popup will autohide
*/
get_autohide(): boolean;
/**
* Returns the parent surface of a popup.
* @returns the parent surface
*/
get_parent(): Gdk.Surface | null;
/**
* Obtains the position of the popup relative to its parent.
* @returns the X coordinate of @popup position
*/
get_position_x(): number;
/**
* Obtains the position of the popup relative to its parent.
* @returns the Y coordinate of @popup position
*/
get_position_y(): number;
/**
* Gets the current popup rectangle anchor.
*
* The value returned may change after calling [method`Gdk`.Popup.present],
* or after the [signal`Gdk`.Surface::layout] signal is emitted.
* @returns the current rectangle anchor value of @popup
*/
get_rect_anchor(): Gdk.Gravity;
/**
* Gets the current popup surface anchor.
*
* The value returned may change after calling [method`Gdk`.Popup.present],
* or after the [signal`Gdk`.Surface::layout] signal is emitted.
* @returns the current surface anchor value of @popup
*/
get_surface_anchor(): Gdk.Gravity;
/**
* Present `popup` after having processed the `GdkPopupLayout` rules.
*
* If the popup was previously not showing, it will be shown,
* otherwise it will change position according to `layout`.
*
* After calling this function, the result should be handled in response
* to the [signal`Gdk`.Surface::layout] signal being emitted. The resulting
* popup position can be queried using [method`Gdk`.Popup.get_position_x],
* [method`Gdk`.Popup.get_position_y], and the resulting size will be sent as
* parameters in the layout signal. Use [method`Gdk`.Popup.get_rect_anchor]
* and [method`Gdk`.Popup.get_surface_anchor] to get the resulting anchors.
*
* Presenting may fail, for example if the `popup` is set to autohide
* and is immediately hidden upon being presented. If presenting failed,
* the [signal`Gdk`.Surface::layout] signal will not me emitted.
* @param width the unconstrained popup width to layout
* @param height the unconstrained popup height to layout
* @param layout the `GdkPopupLayout` object used to layout
* @returns %FALSE if it failed to be presented, otherwise %TRUE.
*/
present(width: number, height: number, layout: Gdk.PopupLayout): boolean;
/**
* Emits a short beep associated to `surface`.
*
* If the display of `surface` does not support per-surface beeps,
* emits a short beep on the display just as [method`Gdk`.Display.beep].
*/
beep(): void;
/**
* Creates a new `GdkCairoContext` for rendering on `surface`.
* @returns the newly created `GdkCairoContext`
*/
create_cairo_context(): Gdk.CairoContext;
/**
* Creates a new `GdkGLContext` for the `GdkSurface`.
*
* The context is disconnected from any particular surface or surface.
* If the creation of the `GdkGLContext` failed, `error` will be set.
* Before using the returned `GdkGLContext`, you will need to
* call [method`Gdk`.GLContext.make_current] or [method`Gdk`.GLContext.realize].
* @returns the newly created `GdkGLContext`
*/
create_gl_context(): Gdk.GLContext;
/**
* Create a new Cairo surface that is as compatible as possible with the
* given `surface`.
*
* For example the new surface will have the same fallback resolution
* and font options as `surface`. Generally, the new surface will also
* use the same backend as `surface,` unless that is not possible for
* some reason. The type of the returned surface may be examined with
* cairo_surface_get_type().
*
* Initially the surface contents are all 0 (transparent if contents
* have transparency, black otherwise.)
*
* This function always returns a valid pointer, but it will return a
* pointer to a “nil” surface if `other` is already in an error state
* or any other error occurs.
* @param content the content for the new surface
* @param width width of the new surface
* @param height height of the new surface
* @returns a pointer to the newly allocated surface. The caller owns the surface and should call cairo_surface_destroy() when done with it.
*/
create_similar_surface(content: cairo.Content | null, width: number, height: number): cairo.Surface;
/**
* Sets an error and returns %NULL.
* @returns %NULL
*/
create_vulkan_context(): Gdk.VulkanContext;
/**
* Destroys the window system resources associated with `surface` and
* decrements `surface'`s reference count.
*
* The window system resources for all children of `surface` are also
* destroyed, but the childrens reference counts are not decremented.
*
* Note that a surface will not be destroyed automatically when its
* reference count reaches zero. You must call this function yourself
* before that happens.
*/
destroy(): void;
/**
* Retrieves a `GdkCursor` pointer for the cursor currently set on the
* `GdkSurface`.
*
* If the return value is %NULL then there is no custom cursor set on
* the surface, and it is using the cursor for its parent surface.
*
* Use [method`Gdk`.Surface.set_cursor] to unset the cursor of the surface.
* @returns a `GdkCursor`
*/
get_cursor(): Gdk.Cursor | null;
/**
* Retrieves a `GdkCursor` pointer for the `device` currently set on the
* specified `GdkSurface`.
*
* If the return value is %NULL then there is no custom cursor set on the
* specified surface, and it is using the cursor for its parent surface.
*
* Use [method`Gdk`.Surface.set_cursor] to unset the cursor of the surface.
* @param device a pointer `GdkDevice`
* @returns a `GdkCursor`
*/
get_device_cursor(device: Gdk.Device): Gdk.Cursor | null;
/**
* Obtains the current device position and modifier state.
*
* The position is given in coordinates relative to the upper
* left corner of `surface`.
* @param device pointer `GdkDevice` to query to
* @returns %TRUE if the device is over the surface
*/
get_device_position(device: Gdk.Device): [boolean, number, number, Gdk.ModifierType | null];
/**
* Gets the `GdkDisplay` associated with a `GdkSurface`.
* @returns the `GdkDisplay` associated with @surface
*/
get_display(): Gdk.Display;
/**
* Gets the frame clock for the surface.
*
* The frame clock for a surface never changes unless the surface is
* reparented to a new toplevel surface.
* @returns the frame clock
*/
get_frame_clock(): Gdk.FrameClock;
/**
* Returns the height of the given `surface`.
*
* Surface size is reported in ”application pixels”, not
* ”device pixels” (see [method`Gdk`.Surface.get_scale_factor]).
* @returns The height of @surface
*/
get_height(): number;
/**
* Checks whether the surface has been mapped.
*
* A surface is mapped with [method`Gdk`.Toplevel.present]
* or [method`Gdk`.Popup.present].
* @returns %TRUE if the surface is mapped
*/
get_mapped(): boolean;
/**
* Returns the internal scale that maps from surface coordinates
* to the actual device pixels.
*
* When the scale is bigger than 1, the windowing system prefers to get
* buffers with a resolution that is bigger than the surface size (e.g.
* to show the surface on a high-resolution display, or in a magnifier).
*
* Compare with [method`Gdk`.Surface.get_scale_factor], which returns the
* next larger integer.
*
* The scale may change during the lifetime of the surface.
* @returns the scale
*/
get_scale(): number;
/**
* Returns the internal scale factor that maps from surface coordinates
* to the actual device pixels.
*
* On traditional systems this is 1, but on very high density outputs
* this can be a higher value (often 2). A higher value means that drawing
* is automatically scaled up to a higher resolution, so any code doing
* drawing will automatically look nicer. However, if you are supplying
* pixel-based data the scale value can be used to determine whether to
* use a pixel resource with higher resolution data.
*
* The scale factor may change during the lifetime of the surface.
* @returns the scale factor
*/
get_scale_factor(): number;
/**
* Returns the width of the given `surface`.
*
* Surface size is reported in ”application pixels”, not
* ”device pixels” (see [method`Gdk`.Surface.get_scale_factor]).
* @returns The width of @surface
*/
get_width(): number;
/**
* Hide the surface.
*
* For toplevel surfaces, withdraws them, so they will no longer be
* known to the window manager; for all surfaces, unmaps them, so
* they wont be displayed. Normally done automatically as
* part of [gtk_widget_hide()](../gtk4/method.Widget.hide.html).
*/
hide(): void;
/**
* Check to see if a surface is destroyed.
* @returns %TRUE if the surface is destroyed
*/
is_destroyed(): boolean;
/**
* Forces a [signal`Gdk`.Surface::render] signal emission for `surface`
* to be scheduled.
*
* This function is useful for implementations that track invalid
* regions on their own.
*/
queue_render(): void;
/**
* Request a layout phase from the surface's frame clock.
*
* See [method`Gdk`.FrameClock.request_phase].
*/
request_layout(): void;
/**
* Sets the default mouse pointer for a `GdkSurface`.
*
* Passing %NULL for the `cursor` argument means that `surface` will use
* the cursor of its parent surface. Most surfaces should use this default.
* Note that `cursor` must be for the same display as `surface`.
*
* Use [ctor`Gdk`.Cursor.new_from_name] or [ctor`Gdk`.Cursor.new_from_texture]
* to create the cursor. To make the cursor invisible, use %GDK_BLANK_CURSOR.
* @param cursor a `GdkCursor`
*/
set_cursor(cursor?: Gdk.Cursor | null): void;
/**
* Sets a specific `GdkCursor` for a given device when it gets inside `surface`.
*
* Passing %NULL for the `cursor` argument means that `surface` will use the
* cursor of its parent surface. Most surfaces should use this default.
*
* Use [ctor`Gdk`.Cursor.new_from_name] or [ctor`Gdk`.Cursor.new_from_texture]
* to create the cursor. To make the cursor invisible, use %GDK_BLANK_CURSOR.
* @param device a pointer `GdkDevice`
* @param cursor a `GdkCursor`
*/
set_device_cursor(device: Gdk.Device, cursor: Gdk.Cursor): void;
/**
* Apply the region to the surface for the purpose of event
* handling.
*
* Mouse events which happen while the pointer position corresponds
* to an unset bit in the mask will be passed on the surface below
* `surface`.
*
* An input region is typically used with RGBA surfaces. The alpha
* channel of the surface defines which pixels are invisible and
* allows for nicely antialiased borders, and the input region
* controls where the surface is “clickable”.
*
* Use [method`Gdk`.Display.supports_input_shapes] to find out if
* a particular backend supports input regions.
* @param region region of surface to be reactive
*/
set_input_region(region: cairo.Region): void;
/**
* Marks a region of the `GdkSurface` as opaque.
*
* For optimisation purposes, compositing window managers may
* like to not draw obscured regions of surfaces, or turn off blending
* during for these regions. With RGB windows with no transparency,
* this is just the shape of the window, but with ARGB32 windows, the
* compositor does not know what regions of the window are transparent
* or not.
*
* This function only works for toplevel surfaces.
*
* GTK will update this property automatically if the `surface` background
* is opaque, as we know where the opaque regions are. If your surface
* background is not opaque, please update this property in your
* [GtkWidgetClass.css_changed](../gtk4/vfunc.Widget.css_changed.html) handler.
* @param region a region, or %NULL to make the entire surface opaque
*/
set_opaque_region(region?: cairo.Region | null): void;
/**
* Translates coordinates between two surfaces.
*
* Note that this only works if `to` and `from` are popups or
* transient-for to the same toplevel (directly or indirectly).
* @param to the target surface
* @param x coordinates to translate
* @param y coordinates to translate
* @returns %TRUE if the coordinates were successfully translated
*/
translate_coordinates(to: Gdk.Surface, x: number, y: number): [boolean, number, number];
}
namespace WaylandSeat {
// Constructor properties interface
interface ConstructorProps extends Gdk.Seat.ConstructorProps {}
}
/**
* The Wayland implementation of `GdkSeat`.
*
* Beyond the regular [class`Gdk`.Seat] API, the Wayland implementation
* provides access to the Wayland `wl_seat` object with
* [method`GdkWayland`.WaylandSeat.get_wl_seat].
*/
class WaylandSeat extends Gdk.Seat {
static $gtype: GObject.GType<WaylandSeat>;
// Constructors
constructor(properties?: Partial<WaylandSeat.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace WaylandSurface {
// Constructor properties interface
interface ConstructorProps extends Gdk.Surface.ConstructorProps {}
}
/**
* The Wayland implementation of `GdkSurface`.
*
* Beyond the [class`Gdk`.Surface] API, the Wayland implementation offers
* access to the Wayland `wl_surface` object with
* [method`GdkWayland`.WaylandSurface.get_wl_surface].
*/
class WaylandSurface extends Gdk.Surface {
static $gtype: GObject.GType<WaylandSurface>;
// Constructors
constructor(properties?: Partial<WaylandSurface.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Forces next commit.
*/
force_next_commit(): void;
}
namespace WaylandToplevel {
// Constructor properties interface
interface ConstructorProps extends WaylandSurface.ConstructorProps, Gdk.Toplevel.ConstructorProps {}
}
/**
* The Wayland implementation of `GdkToplevel`.
*
* Beyond the [iface`Gdk`.Toplevel] API, the Wayland implementation
* has API to set up cross-process parent-child relationships between
* surfaces with [method`GdkWayland`.WaylandToplevel.export_handle] and
* [method`GdkWayland`.WaylandToplevel.set_transient_for_exported].
*/
class WaylandToplevel extends WaylandSurface implements Gdk.Toplevel {
static $gtype: GObject.GType<WaylandToplevel>;
// Constructors
constructor(properties?: Partial<WaylandToplevel.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Destroy a handle that was obtained with gdk_wayland_toplevel_export_handle().
*
* Note that this API depends on an unstable Wayland protocol,
* and thus may require changes in the future.
* @param handle the handle to drop
*/
drop_exported_handle(handle: string): void;
/**
* Asynchronously obtains a handle for a surface that can be passed
* to other processes.
*
* When the handle has been obtained, `callback` will be called.
*
* It is an error to call this function on a surface that is already
* exported.
*
* When the handle is no longer needed, [method`GdkWayland`.WaylandToplevel.unexport_handle]
* should be called to clean up resources.
*
* The main purpose for obtaining a handle is to mark a surface
* from another surface as transient for this one, see
* [method`GdkWayland`.WaylandToplevel.set_transient_for_exported].
*
* Before 4.12, this API could not safely be used multiple times,
* since there was no reference counting for handles. Starting with
* 4.12, every call to this function obtains a new handle, and every
* call to [method`GdkWayland`.WaylandToplevel.drop_exported_handle] drops
* just the handle that it is given.
*
* Note that this API depends on an unstable Wayland protocol,
* and thus may require changes in the future.
* @param callback callback to call with the handle
* @returns %TRUE if the handle has been requested, %FALSE if an error occurred.
*/
export_handle(callback: WaylandToplevelExported): boolean;
/**
* Sets the application id on a `GdkToplevel`.
* @param application_id the application id for the @toplevel
*/
set_application_id(application_id: string): void;
/**
* Marks `toplevel` as transient for the surface to which the given
* `parent_handle_str` refers.
*
* Typically, the handle will originate from a
* [method`GdkWayland`.WaylandToplevel.export_handle] call in another process.
*
* Note that this API depends on an unstable Wayland protocol,
* and thus may require changes in the future.
* @param parent_handle_str an exported handle for a surface
* @returns %TRUE if the surface has been marked as transient, %FALSE if an error occurred.
*/
set_transient_for_exported(parent_handle_str: string): boolean;
/**
* Destroys the handle that was obtained with
* gdk_wayland_toplevel_export_handle().
*
* It is an error to call this function on a surface that
* does not have a handle.
*
* Since 4.12, this function does nothing. Use
* [method`GdkWayland`.WaylandToplevel.drop_exported_handle] instead to drop a
* handle that was obtained with [method`GdkWayland`.WaylandToplevel.export_handle].
*
* Note that this API depends on an unstable Wayland protocol,
* and thus may require changes in the future.
*/
unexport_handle(): void;
// Inherited properties
/**
* Whether the window manager should add decorations.
*/
get decorated(): boolean;
set decorated(val: boolean);
/**
* Whether the window manager should allow to close the surface.
*/
get deletable(): boolean;
set deletable(val: boolean);
/**
* The fullscreen mode of the surface.
*/
get fullscreen_mode(): Gdk.FullscreenMode;
set fullscreen_mode(val: Gdk.FullscreenMode);
/**
* The fullscreen mode of the surface.
*/
get fullscreenMode(): Gdk.FullscreenMode;
set fullscreenMode(val: Gdk.FullscreenMode);
/**
* A list of textures to use as icon.
*/
get icon_list(): any;
set icon_list(val: any);
/**
* A list of textures to use as icon.
*/
get iconList(): any;
set iconList(val: any);
/**
* Whether the surface is modal.
*/
get modal(): boolean;
set modal(val: boolean);
/**
* Whether the surface should inhibit keyboard shortcuts.
*/
get shortcuts_inhibited(): boolean;
/**
* Whether the surface should inhibit keyboard shortcuts.
*/
get shortcutsInhibited(): boolean;
/**
* The startup ID of the surface.
*
* See [class`Gdk`.AppLaunchContext] for more information about
* startup feedback.
*/
get startup_id(): string;
set startup_id(val: string);
/**
* The startup ID of the surface.
*
* See [class`Gdk`.AppLaunchContext] for more information about
* startup feedback.
*/
get startupId(): string;
set startupId(val: string);
/**
* The state of the toplevel.
*/
get state(): Gdk.ToplevelState;
/**
* The title of the surface.
*/
get title(): string;
set title(val: string);
/**
* The transient parent of the surface.
*/
get transient_for(): Gdk.Surface;
set transient_for(val: Gdk.Surface);
/**
* The transient parent of the surface.
*/
get transientFor(): Gdk.Surface;
set transientFor(val: Gdk.Surface);
/**
* The mouse pointer for the `GdkSurface`.
*/
get cursor(): Gdk.Cursor;
set cursor(val: Gdk.Cursor);
/**
* The `GdkDisplay` connection of the surface.
*/
get display(): Gdk.Display;
/**
* The `GdkFrameClock` of the surface.
*/
get frame_clock(): Gdk.FrameClock;
/**
* The `GdkFrameClock` of the surface.
*/
get frameClock(): Gdk.FrameClock;
/**
* The height of the surface, in pixels.
*/
get height(): number;
/**
* Whether the surface is mapped.
*/
get mapped(): boolean;
/**
* The scale of the surface.
*/
get scale(): number;
/**
* The scale factor of the surface.
*
* The scale factor is the next larger integer,
* compared to [property`Gdk`.Surface:scale].
*/
get scale_factor(): number;
/**
* The scale factor of the surface.
*
* The scale factor is the next larger integer,
* compared to [property`Gdk`.Surface:scale].
*/
get scaleFactor(): number;
/**
* The width of the surface in pixels.
*/
get width(): number;
// Inherited methods
/**
* Begins an interactive move operation.
*
* You might use this function to implement draggable titlebars.
* @param device the device used for the operation
* @param button the button being used to drag, or 0 for a keyboard-initiated drag
* @param x surface X coordinate of mouse click that began the drag
* @param y surface Y coordinate of mouse click that began the drag
* @param timestamp timestamp of mouse click that began the drag (use [method@Gdk.Event.get_time])
*/
begin_move(device: Gdk.Device, button: number, x: number, y: number, timestamp: number): void;
/**
* Begins an interactive resize operation.
*
* You might use this function to implement a “window resize grip.”
* @param edge the edge or corner from which the drag is started
* @param device the device used for the operation
* @param button the button being used to drag, or 0 for a keyboard-initiated drag
* @param x surface X coordinate of mouse click that began the drag
* @param y surface Y coordinate of mouse click that began the drag
* @param timestamp timestamp of mouse click that began the drag (use [method@Gdk.Event.get_time])
*/
begin_resize(
edge: Gdk.SurfaceEdge | null,
device: Gdk.Device | null,
button: number,
x: number,
y: number,
timestamp: number,
): void;
/**
* Sets keyboard focus to `surface`.
*
* In most cases, [gtk_window_present_with_time()](../gtk4/method.Window.present_with_time.html)
* should be used on a [GtkWindow](../gtk4/class.Window.html), rather than
* calling this function.
* @param timestamp timestamp of the event triggering the surface focus
*/
focus(timestamp: number): void;
/**
* Gets the bitwise or of the currently active surface state flags,
* from the `GdkToplevelState` enumeration.
* @returns surface state bitfield
*/
get_state(): Gdk.ToplevelState;
/**
* Requests that the `toplevel` inhibit the system shortcuts.
*
* This is asking the desktop environment/windowing system to let all
* keyboard events reach the surface, as long as it is focused, instead
* of triggering system actions.
*
* If granted, the rerouting remains active until the default shortcuts
* processing is restored with [method`Gdk`.Toplevel.restore_system_shortcuts],
* or the request is revoked by the desktop environment, windowing system
* or the user.
*
* A typical use case for this API is remote desktop or virtual machine
* viewers which need to inhibit the default system keyboard shortcuts
* so that the remote session or virtual host gets those instead of the
* local environment.
*
* The windowing system or desktop environment may ask the user to grant
* or deny the request or even choose to ignore the request entirely.
*
* The caller can be notified whenever the request is granted or revoked
* by listening to the [property`Gdk`.Toplevel:shortcuts-inhibited] property.
* @param event the `GdkEvent` that is triggering the inhibit request, or %NULL if none is available
*/
inhibit_system_shortcuts(event?: Gdk.Event | null): void;
/**
* Asks to lower the `toplevel` below other windows.
*
* The windowing system may choose to ignore the request.
* @returns %TRUE if the surface was lowered
*/
lower(): boolean;
/**
* Asks to minimize the `toplevel`.
*
* The windowing system may choose to ignore the request.
* @returns %TRUE if the surface was minimized
*/
minimize(): boolean;
/**
* Present `toplevel` after having processed the `GdkToplevelLayout` rules.
*
* If the toplevel was previously not showing, it will be showed,
* otherwise it will change layout according to `layout`.
*
* GDK may emit the [signal`Gdk`.Toplevel::compute-size] signal to let
* the user of this toplevel compute the preferred size of the toplevel
* surface.
*
* Presenting is asynchronous and the specified layout parameters are not
* guaranteed to be respected.
* @param layout the `GdkToplevelLayout` object used to layout
*/
present(layout: Gdk.ToplevelLayout): void;
/**
* Restore default system keyboard shortcuts which were previously
* inhibited.
*
* This undoes the effect of [method`Gdk`.Toplevel.inhibit_system_shortcuts].
*/
restore_system_shortcuts(): void;
/**
* Sets the toplevel to be decorated.
*
* Setting `decorated` to %FALSE hints the desktop environment
* that the surface has its own, client-side decorations and
* does not need to have window decorations added.
* @param decorated %TRUE to request decorations
*/
set_decorated(decorated: boolean): void;
/**
* Sets the toplevel to be deletable.
*
* Setting `deletable` to %TRUE hints the desktop environment
* that it should offer the user a way to close the surface.
* @param deletable %TRUE to request a delete button
*/
set_deletable(deletable: boolean): void;
/**
* Sets a list of icons for the surface.
*
* One of these will be used to represent the surface in iconic form.
* The icon may be shown in window lists or task bars. Which icon
* size is shown depends on the window manager. The window manager
* can scale the icon but setting several size icons can give better
* image quality.
*
* Note that some platforms don't support surface icons.
* @param surfaces A list of textures to use as icon, of different sizes
*/
set_icon_list(surfaces: Gdk.Texture[]): void;
/**
* Sets the toplevel to be modal.
*
* The application can use this hint to tell the
* window manager that a certain surface has modal
* behaviour. The window manager can use this information
* to handle modal surfaces in a special way.
*
* You should only use this on surfaces for which you have
* previously called [method`Gdk`.Toplevel.set_transient_for].
* @param modal %TRUE if the surface is modal, %FALSE otherwise.
*/
set_modal(modal: boolean): void;
/**
* Sets the startup notification ID.
*
* When using GTK, typically you should use
* [gtk_window_set_startup_id()](../gtk4/method.Window.set_startup_id.html)
* instead of this low-level function.
* @param startup_id a string with startup-notification identifier
*/
set_startup_id(startup_id: string): void;
/**
* Sets the title of a toplevel surface.
*
* The title maybe be displayed in the titlebar,
* in lists of windows, etc.
* @param title title of @surface
*/
set_title(title: string): void;
/**
* Sets a transient-for parent.
*
* Indicates to the window manager that `surface` is a transient
* dialog associated with the application surface `parent`. This
* allows the window manager to do things like center `surface`
* on `parent` and keep `surface` above `parent`.
*
* See [gtk_window_set_transient_for()](../gtk4/method.Window.set_transient_for.html)
* if youre using [GtkWindow](../gtk4/class.Window.html).
* @param parent another toplevel `GdkSurface`
*/
set_transient_for(parent: Gdk.Surface): void;
/**
* Asks the windowing system to show the window menu.
*
* The window menu is the menu shown when right-clicking the titlebar
* on traditional windows managed by the window manager. This is useful
* for windows using client-side decorations, activating it with a
* right-click on the window decorations.
* @param event a `GdkEvent` to show the menu for
* @returns %TRUE if the window menu was shown and %FALSE otherwise.
*/
show_window_menu(event: Gdk.Event): boolean;
/**
* Returns whether the desktop environment supports
* tiled window states.
* @returns %TRUE if the desktop environment supports tiled window states
*/
supports_edge_constraints(): boolean;
/**
* Performs a title bar gesture.
* @param gesture a `GdkTitlebarGesture`
* @returns whether the gesture was performed
*/
titlebar_gesture(gesture: Gdk.TitlebarGesture | null): boolean;
/**
* Emits a short beep associated to `surface`.
*
* If the display of `surface` does not support per-surface beeps,
* emits a short beep on the display just as [method`Gdk`.Display.beep].
*/
beep(): void;
/**
* Creates a new `GdkCairoContext` for rendering on `surface`.
* @returns the newly created `GdkCairoContext`
*/
create_cairo_context(): Gdk.CairoContext;
/**
* Creates a new `GdkGLContext` for the `GdkSurface`.
*
* The context is disconnected from any particular surface or surface.
* If the creation of the `GdkGLContext` failed, `error` will be set.
* Before using the returned `GdkGLContext`, you will need to
* call [method`Gdk`.GLContext.make_current] or [method`Gdk`.GLContext.realize].
* @returns the newly created `GdkGLContext`
*/
create_gl_context(): Gdk.GLContext;
/**
* Create a new Cairo surface that is as compatible as possible with the
* given `surface`.
*
* For example the new surface will have the same fallback resolution
* and font options as `surface`. Generally, the new surface will also
* use the same backend as `surface,` unless that is not possible for
* some reason. The type of the returned surface may be examined with
* cairo_surface_get_type().
*
* Initially the surface contents are all 0 (transparent if contents
* have transparency, black otherwise.)
*
* This function always returns a valid pointer, but it will return a
* pointer to a “nil” surface if `other` is already in an error state
* or any other error occurs.
* @param content the content for the new surface
* @param width width of the new surface
* @param height height of the new surface
* @returns a pointer to the newly allocated surface. The caller owns the surface and should call cairo_surface_destroy() when done with it.
*/
create_similar_surface(content: cairo.Content | null, width: number, height: number): cairo.Surface;
/**
* Sets an error and returns %NULL.
* @returns %NULL
*/
create_vulkan_context(): Gdk.VulkanContext;
/**
* Destroys the window system resources associated with `surface` and
* decrements `surface'`s reference count.
*
* The window system resources for all children of `surface` are also
* destroyed, but the childrens reference counts are not decremented.
*
* Note that a surface will not be destroyed automatically when its
* reference count reaches zero. You must call this function yourself
* before that happens.
*/
destroy(): void;
/**
* Retrieves a `GdkCursor` pointer for the cursor currently set on the
* `GdkSurface`.
*
* If the return value is %NULL then there is no custom cursor set on
* the surface, and it is using the cursor for its parent surface.
*
* Use [method`Gdk`.Surface.set_cursor] to unset the cursor of the surface.
* @returns a `GdkCursor`
*/
get_cursor(): Gdk.Cursor | null;
/**
* Retrieves a `GdkCursor` pointer for the `device` currently set on the
* specified `GdkSurface`.
*
* If the return value is %NULL then there is no custom cursor set on the
* specified surface, and it is using the cursor for its parent surface.
*
* Use [method`Gdk`.Surface.set_cursor] to unset the cursor of the surface.
* @param device a pointer `GdkDevice`
* @returns a `GdkCursor`
*/
get_device_cursor(device: Gdk.Device): Gdk.Cursor | null;
/**
* Obtains the current device position and modifier state.
*
* The position is given in coordinates relative to the upper
* left corner of `surface`.
* @param device pointer `GdkDevice` to query to
* @returns %TRUE if the device is over the surface
*/
get_device_position(device: Gdk.Device): [boolean, number, number, Gdk.ModifierType | null];
/**
* Gets the `GdkDisplay` associated with a `GdkSurface`.
* @returns the `GdkDisplay` associated with @surface
*/
get_display(): Gdk.Display;
/**
* Gets the frame clock for the surface.
*
* The frame clock for a surface never changes unless the surface is
* reparented to a new toplevel surface.
* @returns the frame clock
*/
get_frame_clock(): Gdk.FrameClock;
/**
* Returns the height of the given `surface`.
*
* Surface size is reported in ”application pixels”, not
* ”device pixels” (see [method`Gdk`.Surface.get_scale_factor]).
* @returns The height of @surface
*/
get_height(): number;
/**
* Checks whether the surface has been mapped.
*
* A surface is mapped with [method`Gdk`.Toplevel.present]
* or [method`Gdk`.Popup.present].
* @returns %TRUE if the surface is mapped
*/
get_mapped(): boolean;
/**
* Returns the internal scale that maps from surface coordinates
* to the actual device pixels.
*
* When the scale is bigger than 1, the windowing system prefers to get
* buffers with a resolution that is bigger than the surface size (e.g.
* to show the surface on a high-resolution display, or in a magnifier).
*
* Compare with [method`Gdk`.Surface.get_scale_factor], which returns the
* next larger integer.
*
* The scale may change during the lifetime of the surface.
* @returns the scale
*/
get_scale(): number;
/**
* Returns the internal scale factor that maps from surface coordinates
* to the actual device pixels.
*
* On traditional systems this is 1, but on very high density outputs
* this can be a higher value (often 2). A higher value means that drawing
* is automatically scaled up to a higher resolution, so any code doing
* drawing will automatically look nicer. However, if you are supplying
* pixel-based data the scale value can be used to determine whether to
* use a pixel resource with higher resolution data.
*
* The scale factor may change during the lifetime of the surface.
* @returns the scale factor
*/
get_scale_factor(): number;
/**
* Returns the width of the given `surface`.
*
* Surface size is reported in ”application pixels”, not
* ”device pixels” (see [method`Gdk`.Surface.get_scale_factor]).
* @returns The width of @surface
*/
get_width(): number;
/**
* Hide the surface.
*
* For toplevel surfaces, withdraws them, so they will no longer be
* known to the window manager; for all surfaces, unmaps them, so
* they wont be displayed. Normally done automatically as
* part of [gtk_widget_hide()](../gtk4/method.Widget.hide.html).
*/
hide(): void;
/**
* Check to see if a surface is destroyed.
* @returns %TRUE if the surface is destroyed
*/
is_destroyed(): boolean;
/**
* Forces a [signal`Gdk`.Surface::render] signal emission for `surface`
* to be scheduled.
*
* This function is useful for implementations that track invalid
* regions on their own.
*/
queue_render(): void;
/**
* Request a layout phase from the surface's frame clock.
*
* See [method`Gdk`.FrameClock.request_phase].
*/
request_layout(): void;
/**
* Sets the default mouse pointer for a `GdkSurface`.
*
* Passing %NULL for the `cursor` argument means that `surface` will use
* the cursor of its parent surface. Most surfaces should use this default.
* Note that `cursor` must be for the same display as `surface`.
*
* Use [ctor`Gdk`.Cursor.new_from_name] or [ctor`Gdk`.Cursor.new_from_texture]
* to create the cursor. To make the cursor invisible, use %GDK_BLANK_CURSOR.
* @param cursor a `GdkCursor`
*/
set_cursor(cursor?: Gdk.Cursor | null): void;
/**
* Sets a specific `GdkCursor` for a given device when it gets inside `surface`.
*
* Passing %NULL for the `cursor` argument means that `surface` will use the
* cursor of its parent surface. Most surfaces should use this default.
*
* Use [ctor`Gdk`.Cursor.new_from_name] or [ctor`Gdk`.Cursor.new_from_texture]
* to create the cursor. To make the cursor invisible, use %GDK_BLANK_CURSOR.
* @param device a pointer `GdkDevice`
* @param cursor a `GdkCursor`
*/
set_device_cursor(device: Gdk.Device, cursor: Gdk.Cursor): void;
/**
* Apply the region to the surface for the purpose of event
* handling.
*
* Mouse events which happen while the pointer position corresponds
* to an unset bit in the mask will be passed on the surface below
* `surface`.
*
* An input region is typically used with RGBA surfaces. The alpha
* channel of the surface defines which pixels are invisible and
* allows for nicely antialiased borders, and the input region
* controls where the surface is “clickable”.
*
* Use [method`Gdk`.Display.supports_input_shapes] to find out if
* a particular backend supports input regions.
* @param region region of surface to be reactive
*/
set_input_region(region: cairo.Region): void;
/**
* Marks a region of the `GdkSurface` as opaque.
*
* For optimisation purposes, compositing window managers may
* like to not draw obscured regions of surfaces, or turn off blending
* during for these regions. With RGB windows with no transparency,
* this is just the shape of the window, but with ARGB32 windows, the
* compositor does not know what regions of the window are transparent
* or not.
*
* This function only works for toplevel surfaces.
*
* GTK will update this property automatically if the `surface` background
* is opaque, as we know where the opaque regions are. If your surface
* background is not opaque, please update this property in your
* [GtkWidgetClass.css_changed](../gtk4/vfunc.Widget.css_changed.html) handler.
* @param region a region, or %NULL to make the entire surface opaque
*/
set_opaque_region(region?: cairo.Region | null): void;
/**
* Translates coordinates between two surfaces.
*
* Note that this only works if `to` and `from` are popups or
* transient-for to the same toplevel (directly or indirectly).
* @param to the target surface
* @param x coordinates to translate
* @param y coordinates to translate
* @returns %TRUE if the coordinates were successfully translated
*/
translate_coordinates(to: Gdk.Surface, x: number, y: number): [boolean, number, number];
}
type WaylandDeviceClass = typeof WaylandDevice;
type WaylandDisplayClass = typeof WaylandDisplay;
type WaylandGLContextClass = typeof WaylandGLContext;
type WaylandMonitorClass = typeof WaylandMonitor;
type WaylandSeatClass = typeof WaylandSeat;
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default GdkWayland;
}
declare module 'gi://GdkWayland' {
import GdkWayland40 from 'gi://GdkWayland?version=4.0';
export default GdkWayland40;
}
// END