mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00: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
|
CurrentTime :: 0
|
||||||
NoSymbol :: 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
|
// NOTE(flysand): Some implementations return Status as enum, other return it
|
||||||
// as an integer. I will make it a status.
|
// as an integer. I will make it a status.
|
||||||
Status :: enum i32 {
|
Status :: enum i32 {
|
||||||
@@ -569,3 +581,45 @@ KeyboardLedMode :: enum i32 {
|
|||||||
LedModeOff = 0,
|
LedModeOff = 0,
|
||||||
LedModeOn = 1,
|
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) ---
|
XFreeModifiermap :: proc(modmap: ^XModifierKeymap) ---
|
||||||
XSetModifierMapping :: proc(display: ^Display, modmap: ^XModifierKeymap) -> i32 ---
|
XSetModifierMapping :: proc(display: ^Display, modmap: ^XModifierKeymap) -> i32 ---
|
||||||
XGetModifierMapping :: proc(display: ^Display) -> ^XModifierKeymap ---
|
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 --------------------------------------------------------*/
|
/* ---- X11/Xutil.h --------------------------------------------------------*/
|
||||||
|
|
||||||
XSizeHints :: struct {
|
XSizeHints :: struct {
|
||||||
flags: int,
|
flags: SizeHints,
|
||||||
x: i32,
|
x: i32,
|
||||||
y: i32,
|
y: i32,
|
||||||
width: i32,
|
width: i32,
|
||||||
@@ -1181,9 +1181,9 @@ XSizeHints :: struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
XWMHints :: struct {
|
XWMHints :: struct {
|
||||||
flags: int,
|
flags: WMHints,
|
||||||
input: i32,
|
input: b32,
|
||||||
initial_state: i32,
|
initial_state: WMHintState,
|
||||||
icon_pixmap: Pixmap,
|
icon_pixmap: Pixmap,
|
||||||
icon_window: Window,
|
icon_window: Window,
|
||||||
icon_x: i32,
|
icon_x: i32,
|
||||||
|
|||||||
Reference in New Issue
Block a user