blob: 9eedff5d7bb519115634c7d98f7bd28d8c7f0373 [file] [log] [blame]
/* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _GUI_H_INCLUDED_
#define _GUI_H_INCLUDED_
__APXBEGIN_DECLS
#define IDC_STATIC -1
#define IDC_APPLICATION 100
#define IDI_MAINICON 101
#define IDC_STATBAR 102
#define IDB_SUSERS 103
#define IDS_APPLICATION 150
#define IDS_APPDESCRIPTION 151
#define IDS_APPVERSION 152
#define IDS_APPCOPYRIGHT 153
#define IDS_APPFULLNAME 154
#define IDD_ABOUTBOX 250
#define IDC_LICENSE 251
#define IDR_LICENSE 252
#define IAB_SYSINF 253
#define IDC_ABOUTAPP 254
#define IDD_PROGRESS 260
#define IDDP_HEAD 261
#define IDDP_TEXT 262
#define IDDP_PROGRESS 263
#define IDD_SELUSER 270
#define IDSU_SELNAME 271
#define IDSU_SELECTED 272
#define IDSU_LIST 273
#define IDSU_COMBO 274
#define WM_TRAYMESSAGE (WM_APP+1)
#define SNDMSGW SendMessageW
#define SNDMSGA SendMessageA
#define ComboBox_AddStringW(hwndCtl, lpsz) ((int)(DWORD)SNDMSGW((hwndCtl), CB_ADDSTRING, 0L, (LPARAM)(LPCWSTR)(lpsz)))
#define ListView_SetItemTextW(hwndLV, i, iSubItem_, pszText_) \
{ LV_ITEMW _ms_lvi;\
_ms_lvi.iSubItem = iSubItem_;\
_ms_lvi.pszText = pszText_;\
SNDMSG((hwndLV), LVM_SETITEMTEXTW, (WPARAM)(i), (LPARAM)(LV_ITEMW *)&_ms_lvi);\
} ((void)0)
#define ListView_GetItemTextA(hwndLV, i, iSubItem_, pszText_, cchTextMax_) \
{ LV_ITEMA _ms_lvi;\
_ms_lvi.iSubItem = iSubItem_;\
_ms_lvi.cchTextMax = cchTextMax_;\
_ms_lvi.pszText = pszText_;\
SNDMSGA((hwndLV), LVM_GETITEMTEXTA, (WPARAM)(i), (LPARAM)(LV_ITEMA *)&_ms_lvi);\
} ((void)0)
#define ListView_GetItemTextW(hwndLV, i, iSubItem_, pszText_, cchTextMax_) \
{ LV_ITEMW _ms_lvi;\
_ms_lvi.iSubItem = iSubItem_;\
_ms_lvi.cchTextMax = cchTextMax_;\
_ms_lvi.pszText = pszText_;\
SNDMSG((hwndLV), LVM_GETITEMTEXTW, (WPARAM)(i), (LPARAM)(LV_ITEMW *)&_ms_lvi);\
} ((void)0)
#define ListView_InsertItemW(hwnd, pitem) \
(int)SNDMSGW((hwnd), LVM_INSERTITEMW, 0, (LPARAM)(const LV_ITEMW *)(pitem))
typedef struct APXLVITEM {
INT iPosition;
BOOL bSortable;
INT iWidth;
INT iDefault;
INT iFmt;
LPTSTR szLabel;
} APXLVITEM, *LPAPXLVITEM;
typedef struct APXGUISTATE {
DWORD dwShow;
RECT rcPosition;
COLORREF bgColor;
COLORREF fgColor;
COLORREF txColor;
INT nColumnWidth[32];
INT nUser[8];
} APXGUISTATE, *LPAPXGUISTATE;
typedef struct APXGUISTORE {
HANDLE hInstance;
HICON hIcon;
HICON hIconSm;
HICON hIconHg;
HWND hMainWnd;
HACCEL hAccel;
TCHAR szWndClass[256];
TCHAR szWndMutex[256];
APXGUISTATE stState;
STARTUPINFO stStartupInfo;
UINT nWhellScroll;
} APXGUISTORE, *LPAPXGUISTORE;
LPAPXGUISTORE apxGuiInitialize(WNDPROC lpfnWndProc, LPCTSTR szAppName);
BOOL apxCenterWindow(HWND hwndChild, HWND hwndParent);
LPSTR apxLoadResourceA(UINT wID, UINT nBuf);
LPWSTR apxLoadResourceW(UINT wID, UINT nBuf);
void apxAppendMenuItem(HMENU hMenu, UINT idMenu, LPCTSTR szName,
BOOL bDefault, BOOL bEnabled);
void apxAppendMenuItemBmp(HMENU hMenu, UINT idMenu, LPCTSTR szName);
void apxManageTryIconA(HWND hWnd, DWORD dwMessage, LPCSTR szInfoTitle,
LPCSTR szInfo, HICON hIcon);
void apxManageTryIconW(HWND hWnd, DWORD dwMessage, LPCWSTR szInfoTitle,
LPCWSTR szInfo, HICON hIcon);
void apxAboutBox(HWND hWnd);
int apxProgressBox(HWND hWnd, LPCTSTR szHeader,
LPCWSTR szText,
LPAPXFNCALLBACK fnProgressCallback,
LPVOID cbData);
BOOL apxYesNoMessage(LPCTSTR szTitle, LPCTSTR szMessage, BOOL bStop);
BOOL apxCalcStringEllipsis(HDC hDC, LPTSTR szString,
int cchMax, UINT uColWidth);
LPWSTR apxBrowseForFolderW(HWND hWnd, LPCWSTR szTitle);
LPWSTR apxGetFileNameW(HWND hWnd, LPCWSTR szTitle, LPCWSTR szFilter,
LPCWSTR szDefExt, LPCWSTR szDefPath, BOOL bOpenOrSave,
LPDWORD lpdwFindex);
LPCWSTR apxDlgSelectUser(HWND hWnd, LPWSTR szUser);
__APXEND_DECLS
#endif /* _GUI_H_INCLUDED_ */