mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-04 14:48:47 +00:00
A few extra gdi procs for icons, cursors and drawing
This commit is contained in:
@@ -47,6 +47,7 @@ foreign user32 {
|
|||||||
UpdateWindow :: proc(hWnd: HWND) -> BOOL ---
|
UpdateWindow :: proc(hWnd: HWND) -> BOOL ---
|
||||||
SetActiveWindow :: proc(hWnd: HWND) -> HWND ---
|
SetActiveWindow :: proc(hWnd: HWND) -> HWND ---
|
||||||
GetActiveWindow :: proc() -> HWND ---
|
GetActiveWindow :: proc() -> HWND ---
|
||||||
|
RedrawWindow :: proc(hwnd: HWND, lprcUpdate: LPRECT, hrgnUpdate: HRGN, flags: RedrawWindowFlags) -> BOOL ---
|
||||||
|
|
||||||
GetMessageW :: proc(lpMsg: ^MSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT) -> BOOL ---
|
GetMessageW :: proc(lpMsg: ^MSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT) -> BOOL ---
|
||||||
|
|
||||||
@@ -85,6 +86,15 @@ foreign user32 {
|
|||||||
LoadCursorW :: proc(hInstance: HINSTANCE, lpCursorName: LPCWSTR) -> HCURSOR ---
|
LoadCursorW :: proc(hInstance: HINSTANCE, lpCursorName: LPCWSTR) -> HCURSOR ---
|
||||||
LoadImageW :: proc(hInst: HINSTANCE, name: LPCWSTR, type: UINT, cx: c_int, cy: c_int, fuLoad: UINT) -> HANDLE ---
|
LoadImageW :: proc(hInst: HINSTANCE, name: LPCWSTR, type: UINT, cx: c_int, cy: c_int, fuLoad: UINT) -> HANDLE ---
|
||||||
|
|
||||||
|
CreateIcon :: proc(hInstance: HINSTANCE, nWidth: c_int, nHeight: c_int, cPlanes: BYTE, cBitsPixel: BYTE, lpbANDbits: PBYTE, lpbXORbits: PBYTE) -> HICON ---
|
||||||
|
CreateIconFromResource :: proc(presbits: PBYTE, dwResSize: DWORD, fIcon: BOOL, dwVer: DWORD) -> HICON ---
|
||||||
|
DestroyIcon :: proc(hIcon: HICON) -> BOOL ---
|
||||||
|
DrawIcon :: proc(hDC: HDC, X: c_int, Y: c_int, hIcon: HICON) -> BOOL ---
|
||||||
|
|
||||||
|
CreateCursor :: proc(hInst: HINSTANCE, xHotSpot: c_int, yHotSpot: c_int, nWidth: c_int, nHeight: c_int, pvANDPlane: PVOID, pvXORPlane: PVOID) -> HCURSOR ---
|
||||||
|
DestroyCursor :: proc(hCursor: HCURSOR) -> BOOL ---
|
||||||
|
ShowCursor :: proc(bShow: BOOL) -> c_int ---
|
||||||
|
|
||||||
GetWindowRect :: proc(hWnd: HWND, lpRect: LPRECT) -> BOOL ---
|
GetWindowRect :: proc(hWnd: HWND, lpRect: LPRECT) -> BOOL ---
|
||||||
GetClientRect :: proc(hWnd: HWND, lpRect: LPRECT) -> BOOL ---
|
GetClientRect :: proc(hWnd: HWND, lpRect: LPRECT) -> BOOL ---
|
||||||
ClientToScreen :: proc(hWnd: HWND, lpPoint: LPPOINT) -> BOOL ---
|
ClientToScreen :: proc(hWnd: HWND, lpPoint: LPPOINT) -> BOOL ---
|
||||||
@@ -239,6 +249,9 @@ foreign user32 {
|
|||||||
|
|
||||||
GetSystemMenu :: proc(hWnd: HWND, bRevert: BOOL) -> HMENU ---
|
GetSystemMenu :: proc(hWnd: HWND, bRevert: BOOL) -> HMENU ---
|
||||||
EnableMenuItem :: proc(hMenu: HMENU, uIDEnableItem: UINT, uEnable: UINT) -> BOOL ---
|
EnableMenuItem :: proc(hMenu: HMENU, uIDEnableItem: UINT, uEnable: UINT) -> BOOL ---
|
||||||
|
|
||||||
|
DrawTextW :: proc(hdc: HDC, lpchText: LPCWSTR, cchText: INT, lprc: LPRECT, format: DrawTextFormat) -> INT ---
|
||||||
|
DrawTextExW :: proc(hdc: HDC, lpchText: LPCWSTR, cchText: INT, lprc: LPRECT, format: DrawTextFormat, lpdtp: PDRAWTEXTPARAMS) -> INT ---
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateWindowW :: #force_inline proc "system" (
|
CreateWindowW :: #force_inline proc "system" (
|
||||||
@@ -493,3 +506,54 @@ WINDOWINFO :: struct {
|
|||||||
wCreatorVersion: WORD,
|
wCreatorVersion: WORD,
|
||||||
}
|
}
|
||||||
PWINDOWINFO :: ^WINDOWINFO
|
PWINDOWINFO :: ^WINDOWINFO
|
||||||
|
|
||||||
|
DRAWTEXTPARAMS :: struct {
|
||||||
|
cbSize : UINT ,
|
||||||
|
iTabLength: int ,
|
||||||
|
iLeftMargin: int ,
|
||||||
|
iRightMargin: int ,
|
||||||
|
uiLengthDrawn: UINT ,
|
||||||
|
}
|
||||||
|
PDRAWTEXTPARAMS :: ^DRAWTEXTPARAMS
|
||||||
|
|
||||||
|
DrawTextFormat :: enum UINT {
|
||||||
|
DT_TOP = 0x00000000,
|
||||||
|
DT_LEFT = 0x00000000,
|
||||||
|
DT_CENTER = 0x00000001,
|
||||||
|
DT_RIGHT = 0x00000002,
|
||||||
|
DT_VCENTER = 0x00000004,
|
||||||
|
DT_BOTTOM = 0x00000008,
|
||||||
|
DT_WORDBREAK = 0x00000010,
|
||||||
|
DT_SINGLELINE = 0x00000020,
|
||||||
|
DT_EXPANDTABS = 0x00000040,
|
||||||
|
DT_TABSTOP = 0x00000080,
|
||||||
|
DT_NOCLIP = 0x00000100,
|
||||||
|
DT_EXTERNALLEADING = 0x00000200,
|
||||||
|
DT_CALCRECT = 0x00000400,
|
||||||
|
DT_NOPREFIX = 0x00000800,
|
||||||
|
DT_INTERNAL = 0x00001000,
|
||||||
|
DT_EDITCONTROL = 0x00002000,
|
||||||
|
DT_PATH_ELLIPSIS = 0x00004000,
|
||||||
|
DT_END_ELLIPSIS = 0x00008000,
|
||||||
|
DT_MODIFYSTRING = 0x00010000,
|
||||||
|
DT_RTLREADING = 0x00020000,
|
||||||
|
DT_WORD_ELLIPSIS = 0x00040000,
|
||||||
|
DT_NOFULLWIDTHCHARBREAK = 0x00080000,
|
||||||
|
DT_HIDEPREFIX = 0x00100000,
|
||||||
|
DT_PREFIXONLY = 0x00200000,
|
||||||
|
}
|
||||||
|
|
||||||
|
RedrawWindowFlags :: enum UINT {
|
||||||
|
RDW_INVALIDATE = 0x0001,
|
||||||
|
RDW_INTERNALPAINT = 0x0002,
|
||||||
|
RDW_ERASE = 0x0004,
|
||||||
|
RDW_VALIDATE = 0x0008,
|
||||||
|
RDW_NOINTERNALPAINT = 0x0010,
|
||||||
|
RDW_NOERASE = 0x0020,
|
||||||
|
RDW_NOCHILDREN = 0x0040,
|
||||||
|
RDW_ALLCHILDREN = 0x0080,
|
||||||
|
RDW_UPDATENOW = 0x0100,
|
||||||
|
RDW_ERASENOW = 0x0200,
|
||||||
|
RDW_FRAME = 0x0400,
|
||||||
|
RDW_NOFRAME = 0x0800,
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user