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_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_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_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
gtk_window_set_geometry_hints#
Publicfunction
func gtk_window_set_geometry_hints(window : *GtkWindow, geometry_widget : *GtkWidget, geometry : *GdkGeometry, flags : int) : void
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_n_monitors#
Publicfunction
func gdk_display_get_n_monitors(display : *GdkDisplay) : int
gdk_display_get_monitor#
Publicfunction
gdk_display_get_monitor_at_window#
Publicfunction
gdk_monitor_get_geometry#
Publicfunction
gdk_monitor_get_scale_factor#
Publicfunction
func gdk_monitor_get_scale_factor(monitor : *GdkMonitor) : int
gdk_window_set_cursor#
Publicfunction
gdk_cursor_new_from_name#
Publicfunction
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
}
===========================================================================
cursor_name_for_kind#
function
func cursor_name_for_kind(kind : int) : *char
===========================================================================
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
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_sync#
function
func window_ctx_sync(w : *Window) : void
Sync the caller's Window callback fields into the stable context (called by
linux_on_size_allocate#
function
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
linux_on_key_press#
function
linux_on_key_release#
function
deliver_mouse_event#
function
linux_on_button_press#
function
linux_on_button_release#
function
linux_on_motion#
function
linux_on_scroll#
function
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
===========================================================================
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_set_always_on_top#
Publicfunction
func window_set_always_on_top(w : *Window, on_top : bool) : void
window_monitor_count#
Publicfunction
func window_monitor_count() : int
window_monitor_scale#
Publicfunction
func window_monitor_scale(index : int) : double
window_set_resize_callback#
Publicfunction
window_set_close_callback#
Publicfunction
window_set_focus_callback#
Publicfunction
window_set_event_callback#
Publicfunction
window_set_drop_callback#
Publicfunction
window_set_command_callback#
Publicfunction
On GTK, native menu/button activation is wired by the app through its own
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
/ 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.