api

linux.ch

Declarations in linux.ch

1 declarationswindow

Declarations

Public only
window#
Publicnamespace
namespace window
keeps the same logical-size convention: window_set_size / window_create
DWORD#
Publictypealias
type DWORD = u32
32-bit unsigned, matching GDK's guint32 event fields (cstd only defines
GtkWindow#
Publicstruct
struct GtkWindow
===========================================================================
GtkWidget#
Publicstruct
struct GtkWidget
GtkContainer#
Publicstruct
struct GtkContainer
GdkWindow#
Publicstruct
struct GdkWindow
GdkDisplay#
Publicstruct
struct GdkDisplay
GdkMonitor#
Publicstruct
struct GdkMonitor
GdkCursor#
Publicstruct
struct GdkCursor
GtkSelectionData#
Publicstruct
struct GtkSelectionData
GError#
Publicstruct
struct GError
GtkAllocation#
Publicstruct
struct GtkAllocation { var x : int var y : int var width : int var height : int }
GdkRectangle#
Publicstruct
struct GdkRectangle { var x : int var y : int var width : int var height : int }
RECT#
Publicstruct
struct RECT { var left : int var top : int var right : int var bottom : int }
Mirror of the Windows backend's RECT (used by the shared Window struct's
GdkGeometry#
Publicstruct
struct GdkGeometry { var min_width : int var min_height : int var max_width : int var max_height : int }
First four fields of GdkGeometry (used with GDK_HINT_MIN_SIZE/MAX_SIZE).
GdkEventKey#
Publicstruct
struct GdkEventKey { var type_ : int var pad0 : int var window : *GdkWindow var send_event : i8 var pad1 : int var time : DWORD var state : DWORD var keyval : DWORD var length : int var string : *char var hardware_keycode : ushort var group : uchar var pad2 : int }
GdkEventKey (GTK3 layout — field order/offsets must match gdkevents.h).
GdkEventButton#
Publicstruct
struct GdkEventButton { var type_ : int var pad0 : int var window : *GdkWindow var send_event : i8 var pad1 : int var time : DWORD var x : double var y : double var axes : *double var state : DWORD var button : DWORD var device : *void var x_root : double var y_root : double }
GdkEventButton (x/y are doubles).
GdkEventMotion#
Publicstruct
struct GdkEventMotion { var type_ : int var pad0 : int var window : *GdkWindow var send_event : i8 var pad1 : int var time : DWORD var x : double var y : double var axes : *double var state : DWORD var is_hint : i16 var device : *void var x_root : double var y_root : double }
GdkEventMotion.
GdkEventScroll#
Publicstruct
struct GdkEventScroll { var type_ : int var pad0 : int var window : *GdkWindow var send_event : i8 var pad1 : int var time : DWORD var x : double var y : double var state : DWORD var direction : int var device : *void var x_root : double var y_root : double var delta_x : double var delta_y : double }
GdkEventScroll.
gtk_init#
Publicfunction
func gtk_init(argc : *int, argv : ***char) : int
===========================================================================
gtk_init_check#
Publicfunction
func gtk_init_check(argc : *int, argv : ***char) : int
gtk_main#
Publicfunction
func gtk_main() : void
gtk_main_quit#
Publicfunction
func gtk_main_quit() : void
gtk_window_new#
Publicfunction
func gtk_window_new(type_ : int) : *GtkWidget
gtk_window_set_title#
Publicfunction
func gtk_window_set_title(window : *GtkWindow, title : *char) : void
gtk_window_set_default_size#
Publicfunction
func gtk_window_set_default_size(window : *GtkWindow, width : int, height : int) : void
gtk_window_set_position#
Publicfunction
func gtk_window_set_position(window : *GtkWindow, position : int) : void
gtk_window_move#
Publicfunction
func gtk_window_move(window : *GtkWindow, x : int, y : int) : void
gtk_window_get_position#
Publicfunction
func gtk_window_get_position(window : *GtkWindow, x : *int, y : *int) : void
gtk_window_get_size#
Publicfunction
func gtk_window_get_size(window : *GtkWindow, width : *int, height : *int) : void
gtk_window_maximize#
Publicfunction
func gtk_window_maximize(window : *GtkWindow) : void
gtk_window_unmaximize#
Publicfunction
func gtk_window_unmaximize(window : *GtkWindow) : void
gtk_window_iconify#
Publicfunction
func gtk_window_iconify(window : *GtkWindow) : void
gtk_window_deiconify#
Publicfunction
func gtk_window_deiconify(window : *GtkWindow) : void
gtk_window_fullscreen#
Publicfunction
func gtk_window_fullscreen(window : *GtkWindow) : void
gtk_window_unfullscreen#
Publicfunction
func gtk_window_unfullscreen(window : *GtkWindow) : void
gtk_window_set_decorated#
Publicfunction
func gtk_window_set_decorated(window : *GtkWindow, setting : int) : void
gtk_window_set_opacity#
Publicfunction
func gtk_window_set_opacity(window : *GtkWindow, opacity : double) : void
gtk_window_set_keep_above#
Publicfunction
func gtk_window_set_keep_above(window : *GtkWindow, setting : int) : void
gtk_window_set_icon_from_file#
Publicfunction
func gtk_window_set_icon_from_file(window : *GtkWindow, filename : *char, error : **GError) : int
gtk_window_set_geometry_hints#
Publicfunction
func gtk_window_set_geometry_hints(window : *GtkWindow, geometry_widget : *GtkWidget, geometry : *GdkGeometry, flags : int) : void
gtk_window_present#
Publicfunction
func gtk_window_present(window : *GtkWindow) : void
gtk_widget_show#
Publicfunction
func gtk_widget_show(widget : *GtkWidget) : void
gtk_widget_show_all#
Publicfunction
func gtk_widget_show_all(widget : *GtkWidget) : void
gtk_widget_hide#
Publicfunction
func gtk_widget_hide(widget : *GtkWidget) : void
gtk_widget_destroy#
Publicfunction
func gtk_widget_destroy(widget : *GtkWidget) : void
gtk_widget_get_window#
Publicfunction
func gtk_widget_get_window(widget : *GtkWidget) : *GdkWindow
gtk_widget_add_events#
Publicfunction
func gtk_widget_add_events(widget : *GtkWidget, events : int) : void
g_signal_connect_data#
Publicfunction
func g_signal_connect_data(instance : *void, signal : *char, handler : *void, data : *void, destroy_data : *void, connect_flags : int) : u64
g_idle_add#
Publicfunction
func g_idle_add(function : *void, data : *void) : u32
g_object_set_data_full#
Publicfunction
func g_object_set_data_full(object : *void, key : *char, data : *void, destroy : *void) : void
GObject object-data — used for the stable per-widget callback context
g_object_get_data#
Publicfunction
func g_object_get_data(object : *void, key : *char) : *void
gdk_display_get_default#
Publicfunction
func gdk_display_get_default() : *GdkDisplay
GDK
gdk_display_get_n_monitors#
Publicfunction
func gdk_display_get_n_monitors(display : *GdkDisplay) : int
gdk_display_get_monitor#
Publicfunction
func gdk_display_get_monitor(display : *GdkDisplay, num : int) : *GdkMonitor
gdk_display_get_monitor_at_window#
Publicfunction
func gdk_display_get_monitor_at_window(display : *GdkDisplay, win : *GdkWindow) : *GdkMonitor
gdk_monitor_get_geometry#
Publicfunction
func gdk_monitor_get_geometry(monitor : *GdkMonitor, rect : *GdkRectangle) : void
gdk_monitor_get_scale_factor#
Publicfunction
func gdk_monitor_get_scale_factor(monitor : *GdkMonitor) : int
gdk_window_set_cursor#
Publicfunction
func gdk_window_set_cursor(window : *GdkWindow, cursor : *GdkCursor) : void
gdk_cursor_new_from_name#
Publicfunction
func gdk_cursor_new_from_name(display : *GdkDisplay, name : *char) : *GdkCursor
gtk_drag_dest_set#
Publicfunction
func gtk_drag_dest_set(widget : *GtkWidget, flags : int, targets : *void, n_targets : int, actions : int) : void
drag & drop
gtk_selection_data_get_uris#
Publicfunction
func gtk_selection_data_get_uris(data : *GtkSelectionData) : **char
g_filename_from_uri#
Publicfunction
func g_filename_from_uri(uri : *char, hostname : **char, error : **GError) : *char
g_free#
Publicfunction
func g_free(mem : *void) : void
Window#
Publicstruct
struct Window { var widget : *GtkWidget var title : string var width : int var height : int var x : int var y : int var min_w : int var min_h : int var max_w : int var max_h : int var fullscreen : bool var visible : bool var decorated : bool var always_on_top : bool var opacity : double var cursor : int var dpi : int var created : bool var saved_style : LONG_PTR var saved_rect : RECT var user_data : *void var resize_cb : ResizeCallback var close_cb : CloseCallback var focus_cb : FocusCallback var event_cb : EventCallback var drop_cb : DropCallback var command_cb : CommandCallback }
===========================================================================
make#
PublicfunctionConstructor
func make() : Window
delete#
function
func delete(self : *Window) : void
===========================================================================
cursor_name_for_kind#
function
func cursor_name_for_kind(kind : int) : *char
===========================================================================
apply_cursor#
function
func apply_cursor(w : *Window) : void
WindowCtx#
Publicstruct
struct WindowCtx { var window : *Window var user_data : *void var resize_cb : ResizeCallback var close_cb : CloseCallback var focus_cb : FocusCallback var event_cb : EventCallback var drop_cb : DropCallback var command_cb : CommandCallback }
g_object_set_data_full (auto-freed when the widget is destroyed). Handlers
make#
PublicfunctionConstructor
func make() : WindowCtx
win_ctx_key#
function
func win_ctx_key() : *char
g_object_set_data_full stores the key POINTER, not a copy, so the key
win_ctx_free#
function
func win_ctx_free(data : *void) : void
window_ctx_get#
function
func window_ctx_get(widget : *GtkWidget) : *WindowCtx
window_ctx_sync#
function
func window_ctx_sync(w : *Window) : void
Sync the caller's Window callback fields into the stable context (called by
linux_on_destroy#
function
func linux_on_destroy(widget : *GtkWidget, data : *void) : void
linux_on_size_allocate#
function
func linux_on_size_allocate(widget : *GtkWidget, alloc : *GtkAllocation, data : *void) : void
linux_on_delete#
function
func linux_on_delete(widget : *GtkWidget, event : *void, data : *void) : int
linux_on_focus_in#
function
func linux_on_focus_in(widget : *GtkWidget, event : *void, data : *void) : int
linux_on_focus_out#
function
func linux_on_focus_out(widget : *GtkWidget, event : *void, data : *void) : int
deliver_key_event#
function
func deliver_key_event(ctx : *WindowCtx, kind : int, event : *GdkEventKey) : void
linux_on_key_press#
function
func linux_on_key_press(widget : *GtkWidget, event : *GdkEventKey, data : *void) : int
linux_on_key_release#
function
func linux_on_key_release(widget : *GtkWidget, event : *GdkEventKey, data : *void) : int
deliver_mouse_event#
function
func deliver_mouse_event(ctx : *WindowCtx, kind : int, x : double, y : double, button : int, state : DWORD) : void
linux_on_button_press#
function
func linux_on_button_press(widget : *GtkWidget, event : *GdkEventButton, data : *void) : int
linux_on_button_release#
function
func linux_on_button_release(widget : *GtkWidget, event : *GdkEventButton, data : *void) : int
linux_on_motion#
function
func linux_on_motion(widget : *GtkWidget, event : *GdkEventMotion, data : *void) : int
linux_on_scroll#
function
func linux_on_scroll(widget : *GtkWidget, event : *GdkEventScroll, data : *void) : int
linux_on_drag_data_received#
function
func linux_on_drag_data_received(widget : *GtkWidget, context : *void, x : int, y : int, data : *GtkSelectionData, info : DWORD, time : DWORD, user_data : *void) : void
---- drag & drop ----
window_create#
Publicfunction
func window_create(w : *Window) : Result<Unit, WindowError>
===========================================================================
window_destroy#
Publicfunction
func window_destroy(w : *Window) : void
window_is_created#
Publicfunction
func window_is_created(w : *Window) : bool
window_title#
Publicfunction
func window_title(w : *Window) : string
window_set_title#
Publicfunction
func window_set_title(w : *Window, title : *char) : void
window_size#
Publicfunction
func window_size(w : *Window) : Size
window_client_size#
Publicfunction
func window_client_size(w : *Window) : Size
window_set_size#
Publicfunction
func window_set_size(w : *Window, width : int, height : int) : void
window_position#
Publicfunction
func window_position(w : *Window) : Position
window_set_position#
Publicfunction
func window_set_position(w : *Window, x : int, y : int) : void
window_min_size#
Publicfunction
func window_min_size(w : *Window) : Size
window_max_size#
Publicfunction
func window_max_size(w : *Window) : Size
window_set_min_size#
Publicfunction
func window_set_min_size(w : *Window, width : int, height : int) : void
window_set_max_size#
Publicfunction
func window_set_max_size(w : *Window, width : int, height : int) : void
window_set_fullscreen#
Publicfunction
func window_set_fullscreen(w : *Window, fullscreen : bool) : void
window_is_fullscreen#
Publicfunction
func window_is_fullscreen(w : *Window) : bool
window_maximize#
Publicfunction
func window_maximize(w : *Window) : void
window_minimize#
Publicfunction
func window_minimize(w : *Window) : void
window_restore#
Publicfunction
func window_restore(w : *Window) : void
window_show#
Publicfunction
func window_show(w : *Window) : void
window_hide#
Publicfunction
func window_hide(w : *Window) : void
window_focus#
Publicfunction
func window_focus(w : *Window) : void
window_close#
Publicfunction
func window_close(w : *Window) : void
window_set_cursor#
Publicfunction
func window_set_cursor(w : *Window, cursor : int) : void
window_set_icon#
Publicfunction
func window_set_icon(w : *Window, path : *char) : void
window_set_opacity#
Publicfunction
func window_set_opacity(w : *Window, opacity : double) : void
window_set_always_on_top#
Publicfunction
func window_set_always_on_top(w : *Window, on_top : bool) : void
window_set_decorated#
Publicfunction
func window_set_decorated(w : *Window, decorated : bool) : void
window_dpi#
Publicfunction
func window_dpi(w : *Window) : int
window_scale_factor#
Publicfunction
func window_scale_factor(w : *Window) : double
window_monitor_count#
Publicfunction
func window_monitor_count() : int
window_monitor_bounds#
Publicfunction
func window_monitor_bounds(index : int) : Rect
window_monitor_scale#
Publicfunction
func window_monitor_scale(index : int) : double
window_set_user_data#
Publicfunction
func window_set_user_data(w : *Window, data : *void) : void
window_set_resize_callback#
Publicfunction
func window_set_resize_callback(w : *Window, cb : ResizeCallback) : void
window_set_close_callback#
Publicfunction
func window_set_close_callback(w : *Window, cb : CloseCallback) : void
window_set_focus_callback#
Publicfunction
func window_set_focus_callback(w : *Window, cb : FocusCallback) : void
window_set_event_callback#
Publicfunction
func window_set_event_callback(w : *Window, cb : EventCallback) : void
window_set_drop_callback#
Publicfunction
func window_set_drop_callback(w : *Window, cb : DropCallback) : void
window_set_command_callback#
Publicfunction
func window_set_command_callback(w : *Window, cb : CommandCallback) : void
On GTK, native menu/button activation is wired by the app through its own
window_native_handle#
Publicfunction
func window_native_handle(w : *Window) : *void
window_run#
Publicfunction
func window_run() : void
window_quit_by_destroy#
Publicfunction
func window_quit_by_destroy() : int
several windows it reflects "a window was destroyed during the last run".
window_quit#
Publicfunction
func window_quit() : void
linux_empty_callback#
function
func linux_empty_callback(data : *void) : int
window_post_empty_event#
Publicfunction
func window_post_empty_event() : void
/ Post an empty event to wake up the message loop.
gtk_clipboard_get#
Publicfunction
func gtk_clipboard_get(selection : *void) : *void
===========================================================================
gtk_clipboard_set_text#
Publicfunction
func gtk_clipboard_set_text(clipboard : *void, text : *char, len : int) : void
gtk_clipboard_wait_for_text#
Publicfunction
func gtk_clipboard_wait_for_text(clipboard : *void) : *char
gtk_selection_data_get_text#
Publicfunction
func gtk_selection_data_get_text(data : *void) : *char
ensure_gtk_init#
function
func ensure_gtk_init() : void
window_get_clipboard#
Publicfunction
func window_get_clipboard() : Option<string>
/ Get the current clipboard text content.
window_set_clipboard#
Publicfunction
func window_set_clipboard(text : string_view) : bool
/ Set the clipboard text content.
gdk_atom_intern#
Publicfunction
func gdk_atom_intern(atom_name : *char, only_if_exists : int) : *void
g_timeout_add#
Publicfunction
func g_timeout_add(interval_ms : u32, function : *void, data : *void) : u32
===========================================================================
g_source_remove#
Publicfunction
func g_source_remove(tag : u32) : int
linux_timer_wrapper#
function
func linux_timer_wrapper(data : *void) : int
window_set_timer#
Publicfunction
func window_set_timer(interval_ms : int, cb : TimerCallback, data : *void) : int
/ Set a periodic timer.
window_cancel_timer#
Publicfunction
func window_cancel_timer(timer_id : int) : void
/ Cancel a previously set timer.
gtk_main_iteration#
Publicfunction
func gtk_main_iteration() : int
===========================================================================
gtk_events_pending#
Publicfunction
func gtk_events_pending() : int
linux_async_pump_tick#
function
func linux_async_pump_tick(data : *void) : int
Poll the executor once per tick; returns 1 so the GLib timeout stays
window_async_platform_install_pump#
function
func window_async_platform_install_pump() : void
window_async_platform_wake#
function
func window_async_platform_wake(arg : *void) : void
Wake the GLib loop from any thread. An idle source is enough: the installed
window_async_platform_pump#
function
func window_async_platform_pump() : void
Drain pending GLib events (idle/wake sources, window events) once.