From 4a258dbc0009cdeec88922db0e33cbbf18ae51e3 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Mon, 19 Feb 2018 23:46:30 -0600 Subject: [PATCH] windows: Add some words that would be useful for Windows notifications. --- basis/windows/shell32/shell32.factor | 65 ++++++++- basis/windows/user32/user32.factor | 189 +++++++++++++++++++++++++-- 2 files changed, 244 insertions(+), 10 deletions(-) diff --git a/basis/windows/shell32/shell32.factor b/basis/windows/shell32/shell32.factor index 864663bd40..387d11824b 100644 --- a/basis/windows/shell32/shell32.factor +++ b/basis/windows/shell32/shell32.factor @@ -1,8 +1,9 @@ ! Copyright (C) 2006, 2008 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. USING: alien alien.c-types alien.data alien.strings alien.syntax -classes.struct io.backend kernel windows windows.com -windows.com.syntax windows.kernel32 windows.ole32 windows.types ; +classes.struct io.backend kernel literals math windows +windows.com windows.com.syntax windows.kernel32 windows.messages +windows.ole32 windows.types ; IN: windows.shell32 CONSTANT: CSIDL_DESKTOP 0x00 @@ -318,3 +319,63 @@ FUNCTION: BOOL DragQueryPoint ( HDROP hDrop, POINT* lppt ) FUNCTION: void DragFinish ( HDROP hDrop ) FUNCTION: BOOL IsUserAnAdmin ( ) + + +CONSTANT: NIM_ADD 0 +CONSTANT: NIM_MODIFY 1 +CONSTANT: NIM_DELETE 2 +CONSTANT: NIM_SETFOCUS 3 +CONSTANT: NIM_SETVERSION 4 + +CONSTANT: NIF_MESSAGE 0x1 +CONSTANT: NIF_ICON 0x2 +CONSTANT: NIF_TIP 0x4 +CONSTANT: NIF_STATE 0x8 +CONSTANT: NIF_INFO 0x10 +CONSTANT: NIF_GUID 0x20 +CONSTANT: NIF_REALTIME 0x40 +CONSTANT: NIF_SHOWTIP 0x80 + +CONSTANT: NIIF_NONE 0x0 +CONSTANT: NIIF_INFO 0x1 +CONSTANT: NIIF_WARNING 0x2 +CONSTANT: NIIF_ERROR 0x3 +CONSTANT: NIIF_USER 0x4 +CONSTANT: NIIF_ICON_MASK 0xF +CONSTANT: NIIF_NOSOUND 0x10 + +CONSTANT: NIS_HIDDEN 1 +CONSTANT: NIS_SHAREDICON 2 + +CONSTANT: NOTIFYICON_VERSION 3 +CONSTANT: NOTIFYICON_VERSION_4 4 + +! >= 0x0500 +CONSTANT: NIN_SELECT $[ WM_USER 0 + ] +CONSTANT: NIN_KEYSELECT $[ WM_USER 1 + ] +! >= 0x0501 +CONSTANT: NIN_BALLOONSHOW $[ WM_USER 2 + ] +CONSTANT: NIN_BALLOONHIDE $[ WM_USER 3 + ] +CONSTANT: NIN_BALLOONTIMEOUT $[ WM_USER 4 + ] +CONSTANT: NIN_BALLOONUSERCLICK $[ WM_USER 5 + ] + +STRUCT: NOTIFYICONDATA + { cbSize DWORD } + { hWnd HWND } + { uID UINT } + { uFlags UINT } + { uCallbackMessage UINT } + { hIcon HICON } + { szTip TCHAR[64] } + { dwState DWORD } + { dwStateMask DWORD } + { szInfo TCHAR[256] } + { uTimeout UINT } ! { uVersion UINT } ! c-union here1 + { szInfoTitle TCHAR[64] } + { dwInfoFlags DWORD } + { guidItem GUID } + { hBalloonIcon HICON } ; + +TYPEDEF: NOTIFYICONDATA* PNOTIFYICONDATA + +FUNCTION: BOOL Shell_NotifyIcon ( DWORD dwMessage, PNOTIFYICONDATA lpdata ) diff --git a/basis/windows/user32/user32.factor b/basis/windows/user32/user32.factor index 2e5f78899f..d3afdc95c1 100644 --- a/basis/windows/user32/user32.factor +++ b/basis/windows/user32/user32.factor @@ -116,13 +116,6 @@ CONSTANT: COLOR_BTNTEXT 18 CONSTANT: COLOR_INACTIVECAPTIONTEXT 19 CONSTANT: COLOR_BTNHIGHLIGHT 20 -CONSTANT: IDI_APPLICATION 32512 -CONSTANT: IDI_HAND 32513 -CONSTANT: IDI_QUESTION 32514 -CONSTANT: IDI_EXCLAMATION 32515 -CONSTANT: IDI_ASTERISK 32516 -CONSTANT: IDI_WINLOGO 32517 - ! ShowWindow() Commands CONSTANT: SW_HIDE 0 CONSTANT: SW_SHOWNORMAL 1 @@ -1020,6 +1013,185 @@ STRUCT: CHANGEFILTERSTRUCT { ExtStatus DWORD } ; TYPEDEF: CHANGEFILTERSTRUCT* PCHANGEFILTERSTRUCT +CONSTANT: LR_DEFAULTCOLOR 0x00 +CONSTANT: LR_MONOCHROME 0x01 +CONSTANT: LR_COLOR 0x02 +CONSTANT: LR_COPYRETURNORG 0x04 +CONSTANT: LR_COPYDELETEORG 0x08 +CONSTANT: LR_LOADFROMFILE 0x10 +CONSTANT: LR_LOADTRANSPARENT 0x20 +CONSTANT: LR_DEFAULTSIZE 0x40 +CONSTANT: LR_VGACOLOR 0x80 +CONSTANT: LR_LOADMAP3DCOLORS 0x1000 +CONSTANT: LR_CREATEDIBSECTION 0x2000 +CONSTANT: LR_COPYFROMRESOURCE 0x4000 +CONSTANT: LR_SHARED 0x8000 + +CONSTANT: IMAGE_BITMAP 0 +CONSTANT: IMAGE_ICON 1 +CONSTANT: IMAGE_CURSOR 2 + +CONSTANT: IDI_APPLICATION 32512 +CONSTANT: IDI_ASTERISK 21516 +CONSTANT: IDI_ERROR 32513 +CONSTANT: IDI_EXCLAMATION 32515 +CONSTANT: IDI_HAND 32513 +CONSTANT: IDI_INFORMATION 32516 +CONSTANT: IDI_QUESTION 32514 +CONSTANT: IDI_SHIELD 32518 +CONSTANT: IDI_WARNING 32515 +CONSTANT: IDI_WINLOGO 32517 + +CONSTANT: OBM_BTNCORNERS 32758 +CONSTANT: OBM_BTSIZE 32761 +CONSTANT: OBM_CHECK 32760 +CONSTANT: OBM_CHECKBOXES 32759 +CONSTANT: OBM_CLOSE 32754 +CONSTANT: OBM_COMBO 32738 +CONSTANT: OBM_DNARROW 32752 +CONSTANT: OBM_DNARROWD 32742 +CONSTANT: OBM_DNARROWI 32736 +CONSTANT: OBM_LFARROW 32750 +CONSTANT: OBM_LFARROWI 32734 +CONSTANT: OBM_LFARROWD 32740 +CONSTANT: OBM_MNARROW 32739 +CONSTANT: OBM_OLD_CLOSE 32767 +CONSTANT: OBM_OLD_DNARROW 32764 +CONSTANT: OBM_OLD_LFARROW 32762 +CONSTANT: OBM_OLD_REDUCE 32757 +CONSTANT: OBM_OLD_RESTORE 32755 +CONSTANT: OBM_OLD_RGARROW 32763 +CONSTANT: OBM_OLD_UPARROW 32765 +CONSTANT: OBM_OLD_ZOOM 32756 +CONSTANT: OBM_REDUCE 32749 +CONSTANT: OBM_REDUCED 32746 +CONSTANT: OBM_RESTORE 32747 +CONSTANT: OBM_RESTORED 32744 +CONSTANT: OBM_RGARROW 32751 +CONSTANT: OBM_RGARROWD 32741 +CONSTANT: OBM_RGARROWI 32735 +CONSTANT: OBM_SIZE 32766 +CONSTANT: OBM_UPARROW 32753 +CONSTANT: OBM_UPARROWD 32743 +CONSTANT: OBM_UPARROWI 32737 +CONSTANT: OBM_ZOOM 32748 +CONSTANT: OBM_ZOOMD 32745 +CONSTANT: OCR_NORMAL 32512 +CONSTANT: OCR_IBEAM 32513 +CONSTANT: OCR_WAIT 32514 +CONSTANT: OCR_CROSS 32515 +CONSTANT: OCR_UP 32516 +CONSTANT: OCR_SIZE 32640 +CONSTANT: OCR_ICON 32641 +CONSTANT: OCR_SIZENWSE 32642 +CONSTANT: OCR_SIZENESW 32643 +CONSTANT: OCR_SIZEWE 32644 +CONSTANT: OCR_SIZENS 32645 +CONSTANT: OCR_SIZEALL 32646 +CONSTANT: OCR_NO 32648 +CONSTANT: OCR_APPSTARTING 32650 +CONSTANT: OIC_SAMPLE 32512 +CONSTANT: OIC_HAND 32513 +CONSTANT: OIC_QUES 32514 +CONSTANT: OIC_BANG 32515 +CONSTANT: OIC_NOTE 32516 +CONSTANT: OIC_WINLOGO 32517 +CONSTANT: OIC_WARNING 32515 +CONSTANT: OIC_ERROR 32513 +CONSTANT: OIC_INFORMATION 32516 + +CONSTANT: SM_CXSCREEN 0 +CONSTANT: SM_CYSCREEN 1 +CONSTANT: SM_CXVSCROLL 2 +CONSTANT: SM_CYHSCROLL 3 +CONSTANT: SM_CYCAPTION 4 +CONSTANT: SM_CXBORDER 5 +CONSTANT: SM_CYBORDER 6 +CONSTANT: SM_CXDLGFRAME 7 +CONSTANT: SM_CXFIXEDFRAME 7 +CONSTANT: SM_CYDLGFRAME 8 +CONSTANT: SM_CYFIXEDFRAME 8 +CONSTANT: SM_CYVTHUMB 9 +CONSTANT: SM_CXHTHUMB 10 +CONSTANT: SM_CXICON 11 +CONSTANT: SM_CYICON 12 +CONSTANT: SM_CXCURSOR 13 +CONSTANT: SM_CYCURSOR 14 +CONSTANT: SM_CYMENU 15 +CONSTANT: SM_CXFULLSCREEN 16 +CONSTANT: SM_CYFULLSCREEN 17 +CONSTANT: SM_CYKANJIWINDOW 18 +CONSTANT: SM_MOUSEPRESENT 19 +CONSTANT: SM_CYVSCROLL 20 +CONSTANT: SM_CXHSCROLL 21 +CONSTANT: SM_DEBUG 22 +CONSTANT: SM_SWAPBUTTON 23 +CONSTANT: SM_RESERVED1 24 +CONSTANT: SM_RESERVED2 25 +CONSTANT: SM_RESERVED3 26 +CONSTANT: SM_RESERVED4 27 +CONSTANT: SM_CXMIN 28 +CONSTANT: SM_CYMIN 29 +CONSTANT: SM_CXSIZE 30 +CONSTANT: SM_CYSIZE 31 +CONSTANT: SM_CXSIZEFRAME 32 +CONSTANT: SM_CXFRAME 32 +CONSTANT: SM_CYSIZEFRAME 33 +CONSTANT: SM_CYFRAME 33 +CONSTANT: SM_CXMINTRACK 34 +CONSTANT: SM_CYMINTRACK 35 +CONSTANT: SM_CXDOUBLECLK 36 +CONSTANT: SM_CYDOUBLECLK 37 +CONSTANT: SM_CXICONSPACING 38 +CONSTANT: SM_CYICONSPACING 39 +CONSTANT: SM_MENUDROPALIGNMENT 40 +CONSTANT: SM_PENWINDOWS 41 +CONSTANT: SM_DBCSENABLED 42 +CONSTANT: SM_CMOUSEBUTTONS 43 +CONSTANT: SM_SECURE 44 +CONSTANT: SM_CXEDGE 45 +CONSTANT: SM_CYEDGE 46 +CONSTANT: SM_CXMINSPACING 47 +CONSTANT: SM_CYMINSPACING 48 +CONSTANT: SM_CXSMICON 49 +CONSTANT: SM_CYSMICON 50 +CONSTANT: SM_CYSMCAPTION 51 +CONSTANT: SM_CXSMSIZE 52 +CONSTANT: SM_CYSMSIZE 53 +CONSTANT: SM_CXMENUSIZE 54 +CONSTANT: SM_CYMENUSIZE 55 +CONSTANT: SM_ARRANGE 56 +CONSTANT: SM_CXMINIMIZED 57 +CONSTANT: SM_CYMINIMIZED 58 +CONSTANT: SM_CXMAXTRACK 59 +CONSTANT: SM_CYMAXTRACK 60 +CONSTANT: SM_CXMAXIMIZED 61 +CONSTANT: SM_CYMAXIMIZED 62 +CONSTANT: SM_NETWORK 63 +! CONSTANT: LR_DEFAULTSIZE 64 +CONSTANT: SM_CLEANBOOT 67 +CONSTANT: SM_CXDRAG 68 +CONSTANT: SM_CYDRAG 69 +CONSTANT: SM_SHOWSOUNDS 70 +CONSTANT: SM_CXMENUCHECK 71 +CONSTANT: SM_CYMENUCHECK 72 +CONSTANT: SM_SLOWMACHINE 73 +CONSTANT: SM_MIDEASTENABLED 74 +CONSTANT: SM_MOUSEWHEELPRESENT 75 +CONSTANT: SM_XVIRTUALSCREEN 76 +CONSTANT: SM_YVIRTUALSCREEN 77 +CONSTANT: SM_CXVIRTUALSCREEN 78 +CONSTANT: SM_CYVIRTUALSCREEN 79 +CONSTANT: SM_CMONITORS 80 +CONSTANT: SM_SAMEDISPLAYFORMAT 81 +CONSTANT: SM_IMMENABLED 82 +CONSTANT: SM_CXFOCUSBORDER 83 +CONSTANT: SM_CYFOCUSBORDER 84 +CONSTANT: SM_TABLETPC 86 +CONSTANT: SM_MEDIACENTER 87 +CONSTANT: SM_CMETRICS 88 +CONSTANT: SM_REMOTESESSION 0X1000 + LIBRARY: user32 FUNCTION: HKL ActivateKeyboardLayout ( HKL hkl, UINT Flags ) @@ -1538,7 +1710,8 @@ FUNCTION: HICON LoadIconW ( HINSTANCE hInstance, LPCTSTR lpIconName ) ALIAS: LoadIcon LoadIconW ! FUNCTION: LoadImageA -! FUNCTION: LoadImageW +FUNCTION: HANDLE LoadImageW ( HINSTANCE hinst, LPCTSTR lpszName, UINT uType, int cxDesired, int cyDesired, UINT fuLoad ) +ALIAS: LoadImage LoadImageW ! FUNCTION: LoadKeyboardLayoutA ! FUNCTION: LoadKeyboardLayoutEx ! FUNCTION: LoadKeyboardLayoutW -- 2.34.1