mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-19 20:32:21 -07:00
[vendor/x11]: Add some client to window management communication functions
This commit is contained in:
Vendored
+54
@@ -17,6 +17,18 @@ AllTemporary :: 0
|
||||
CurrentTime :: 0
|
||||
NoSymbol :: 0
|
||||
|
||||
XA_WM_CLASS :: Atom(67)
|
||||
XA_WM_CLIENT_MACHINE :: Atom(36)
|
||||
XA_WM_COMMAND :: Atom(34)
|
||||
XA_WM_HINTS :: Atom(35)
|
||||
XA_WM_ICON_NAME :: Atom(37)
|
||||
XA_WM_ICON_SIZE :: Atom(38)
|
||||
XA_WM_NAME :: Atom(39)
|
||||
XA_WM_NORMAL_HINTS :: Atom(40)
|
||||
XA_WM_SIZE_HINTS :: Atom(41)
|
||||
XA_WM_TRANSIENT_FOR :: Atom(68)
|
||||
XA_WM_ZOOM_HINTS :: Atom(42)
|
||||
|
||||
// NOTE(flysand): Some implementations return Status as enum, other return it
|
||||
// as an integer. I will make it a status.
|
||||
Status :: enum i32 {
|
||||
@@ -569,3 +581,45 @@ KeyboardLedMode :: enum i32 {
|
||||
LedModeOff = 0,
|
||||
LedModeOn = 1,
|
||||
}
|
||||
|
||||
WMHints :: bit_set[WMHintsBits; uint]
|
||||
WMHintsBits :: enum {
|
||||
InputHint = 0,
|
||||
StateHint = 1,
|
||||
IconPixmapHint = 2,
|
||||
IconWindowHint = 3,
|
||||
IconPositionHint = 4,
|
||||
IconMaskHint = 5,
|
||||
WindowGroupHint = 6,
|
||||
XUrgencyHint = 8,
|
||||
}
|
||||
|
||||
WMHintState :: enum i32 {
|
||||
WithdrawnState = 0,
|
||||
NormalState = 1,
|
||||
IconicState = 3,
|
||||
}
|
||||
|
||||
AllHints :: WMHints{
|
||||
.InputHint,
|
||||
.StateHint,
|
||||
.IconPixmapHint,
|
||||
.IconWindowHint,
|
||||
.IconPositionHint,
|
||||
.IconMaskHint,
|
||||
.WindowGroupHint,
|
||||
}
|
||||
|
||||
SizeHints :: bit_set[SizeHintsBits; uint]
|
||||
SizeHintsBits :: enum {
|
||||
USPosition = 0,
|
||||
USSize = 1,
|
||||
PPosition = 2,
|
||||
PSize = 3,
|
||||
PMinSize = 4,
|
||||
PMaxSize = 5,
|
||||
PResizeInc = 6,
|
||||
PAspect = 7,
|
||||
PBaseSize = 8,
|
||||
PWinGravity = 9,
|
||||
}
|
||||
|
||||
Vendored
+159
@@ -1546,4 +1546,163 @@ foreign xlib {
|
||||
XFreeModifiermap :: proc(modmap: ^XModifierKeymap) ---
|
||||
XSetModifierMapping :: proc(display: ^Display, modmap: ^XModifierKeymap) -> i32 ---
|
||||
XGetModifierMapping :: proc(display: ^Display) -> ^XModifierKeymap ---
|
||||
// Manipulating top-level windows
|
||||
XIconifyWindow :: proc(
|
||||
dipslay: ^Display,
|
||||
window: Window,
|
||||
screen_no: i32,
|
||||
) -> Status ---
|
||||
XWithdrawWindow :: proc(
|
||||
dipslay: ^Display,
|
||||
window: Window,
|
||||
screen_no: i32,
|
||||
) -> Status ---
|
||||
XReconfigureWMWindow :: proc(
|
||||
dipslay: ^Display,
|
||||
window: Window,
|
||||
screen_no: i32,
|
||||
mask: WindowChangesMask,
|
||||
changes: ^XWindowChanges,
|
||||
) -> Status ---
|
||||
// Getting and setting the WM_NAME property
|
||||
XSetWMName :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
prop: ^XTextProperty
|
||||
) ---
|
||||
XGetWMName :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
prop: ^XTextProperty,
|
||||
) -> Status ---
|
||||
XStoreName :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
name: cstring
|
||||
) ---
|
||||
XFetchName :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
name: ^cstring
|
||||
) -> Status ---
|
||||
XSetWMIconName :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
prop: ^XTextProperty
|
||||
) ---
|
||||
XGetWMIconName :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
prop: ^XTextProperty,
|
||||
) -> Status ---
|
||||
XSetIconName :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
name: cstring,
|
||||
) ---
|
||||
XGetIconName :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
prop: ^cstring,
|
||||
) -> Status ---
|
||||
// Setting and reading WM_HINTS property
|
||||
XAllocWMHints :: proc() -> ^XWMHints ---
|
||||
XSetWMHints :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
hints: ^XWMHints,
|
||||
) ---
|
||||
XGetWMHints :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
) -> ^XWMHints ---
|
||||
// Setting and reading MW_NORMAL_HINTS property
|
||||
XAllocSizeHints :: proc() -> ^XSizeHints ---
|
||||
XSetWMNormalHints :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
hints: ^XSizeHints,
|
||||
) ---
|
||||
XGetWMNormalHints :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
hints: ^XSizeHints,
|
||||
flags: ^SizeHints,
|
||||
) -> Status ---
|
||||
XSetWMSizeHints :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
hints: ^XSizeHints,
|
||||
prop: Atom,
|
||||
) ---
|
||||
XGetWMSizeHints :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
hints: ^XSizeHints,
|
||||
masks: ^SizeHints,
|
||||
prop: Atom,
|
||||
) -> Status ---
|
||||
// Setting and reading the WM_CLASS property
|
||||
XAllocClassHint :: proc() -> ^XClassHint ---
|
||||
XSetClassHint :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
hint: ^XClassHint,
|
||||
) ---
|
||||
XGetClassHint :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
hint: ^XClassHint,
|
||||
) -> Status ---
|
||||
// Setting and reading WM_TRANSIENT_FOR property
|
||||
XSetTransientForHint :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
prop_window: Window,
|
||||
) ---
|
||||
XGetTransientForHint :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
prop_window: ^Window,
|
||||
) -> Status ---
|
||||
// Setting and reading the WM_PROTOCOLS property
|
||||
XSetWMProtocols :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
protocols: [^]Atom,
|
||||
count: i32,
|
||||
) -> Status ---
|
||||
XGetWMProtocols :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
protocols: ^[^]Atom,
|
||||
count: ^i32
|
||||
) -> Status ---
|
||||
// Setting and reading the WM_COLORMAP_WINDOWS property
|
||||
XSetWMColormapWindows :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
colormap_windows: [^]Window,
|
||||
count: i32,
|
||||
) -> Status ---
|
||||
XGetWMColormapWindows :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
colormap_windows: ^[^]Window,
|
||||
count: ^i32,
|
||||
) -> Status ---
|
||||
// Setting and reading the WM_ICON_SIZE_PROPERTY
|
||||
XAllocIconSize :: proc() -> ^XIconSize ---
|
||||
XSetIconSizes :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
size_list: [^]XIconSize,
|
||||
count: i32,
|
||||
) ---
|
||||
XGetIconSizes :: proc(
|
||||
display: ^Display,
|
||||
window: Window,
|
||||
size_list: ^[^]XIconSize,
|
||||
count: ^i32,
|
||||
) -> Status ---
|
||||
}
|
||||
|
||||
Vendored
+4
-4
@@ -1162,7 +1162,7 @@ XcmsFunctionSet :: struct {
|
||||
/* ---- X11/Xutil.h --------------------------------------------------------*/
|
||||
|
||||
XSizeHints :: struct {
|
||||
flags: int,
|
||||
flags: SizeHints,
|
||||
x: i32,
|
||||
y: i32,
|
||||
width: i32,
|
||||
@@ -1181,9 +1181,9 @@ XSizeHints :: struct {
|
||||
}
|
||||
|
||||
XWMHints :: struct {
|
||||
flags: int,
|
||||
input: i32,
|
||||
initial_state: i32,
|
||||
flags: WMHints,
|
||||
input: b32,
|
||||
initial_state: WMHintState,
|
||||
icon_pixmap: Pixmap,
|
||||
icon_window: Window,
|
||||
icon_x: i32,
|
||||
|
||||
Reference in New Issue
Block a user