2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
11 * INCLUDES ___________________________________________________________________
18 #include <afs/param.h>
23 #include <WINNT\afsapplib.h>
29 * EXPORTED FUNCTIONS _________________________________________________________
32 void SetEnable(HWND hDlg, UINT nControl, ENABLE_STATE eState)
34 HWND hControl = GetDlgItem(hDlg, nControl);
39 case ES_ENABLE: bEnable = TRUE;
42 case ES_DISABLE: bEnable = FALSE;
45 case ES_TOGGLE: bEnable = !IsWindowEnabled(hControl);
49 EnableWindow(hControl, bEnable);
52 void SetElapsedTime(HWND hwnd, DWORD nCtrlID, ULONG ulMin, ULONG ulMax, ULONG ulTime)
55 SET_ELAPSED_TIME_FROM_SECONDS (&stMin, ulMin);
58 SET_ELAPSED_TIME_FROM_SECONDS (&stMax, ulMax);
61 SET_ELAPSED_TIME_FROM_SECONDS (&st, ulTime);
63 HWND hElapsed = ::GetDlgItem(hwnd, nCtrlID);
64 EL_SetRange (hElapsed, &stMin, &stMax);
65 EL_SetTime (hElapsed, &st);
68 void GetElapsedTime(HWND hwnd, DWORD nCtrlID, DWORD& dwTime)
72 HWND hElapsed = ::GetDlgItem(hwnd, nCtrlID);
73 EL_GetTime (hElapsed, &stFinal);
75 dwTime = GET_SECONDS_FROM_ELAPSED_TIME(&stFinal);
78 LPCTSTR SecondsToElapsedTime(UINT uiNumSeconds)
80 static TCHAR szTime[64], sz[32];
85 int nHours, nMinutes, nSeconds;
87 nHours = uiNumSeconds / 3600;
88 nMinutes = (uiNumSeconds % 3600) / 60;
89 nSeconds = (uiNumSeconds % 3600) % 60;
92 _stprintf(szTime, TEXT("%d hours"), nHours);
96 lstrcat(szTime, TEXT(", "));
97 _stprintf(sz, TEXT("%d minutes"), nMinutes);
102 if (nHours || nMinutes)
103 lstrcat(szTime, TEXT(", "));
104 _stprintf(sz, TEXT("%d seconds"), nSeconds);
111 BOOL IsButtonChecked(HWND hDlg, UINT uiCtrlID)
113 return SendMessage(GetDlgItem(hDlg, uiCtrlID), BM_GETCHECK, 0, 0) == BST_CHECKED;
116 int GetButtonState(HWND hDlg, UINT uiCtrlID)
118 return SendMessage(GetDlgItem(hDlg, uiCtrlID), BM_GETCHECK, 0, 0);
121 void SetCheck(HWND hDlg, UINT uiCtrlID, int nChecked)
123 SendMessage(GetDlgItem(hDlg, uiCtrlID), BM_SETCHECK, nChecked, 0);
126 TCHAR *GetResString(UINT nMsgID, TCHAR *pszMsg, UINT nLen)
128 GetString(pszMsg, nMsgID, nLen);
133 void ShowWnd(HWND hDlg, UINT uiCtrlID, BOOL bShow)
135 ShowWindow(GetDlgItem(hDlg, uiCtrlID), bShow ? SW_SHOW : SW_HIDE);
138 void EnableWnd(HWND hDlg, UINT uiCtrlID, BOOL bEnable)
140 EnableWindow(GetDlgItem(hDlg, uiCtrlID), bEnable);
143 void SetWndText(HWND hDlg, UINT uiCtrlID, LPCTSTR pszMsg)
145 SetWindowText(GetDlgItem(hDlg, uiCtrlID), pszMsg);
148 void SetWndText(HWND hDlg, UINT uiCtrlID, UINT nMsgID)
150 TCHAR szMsg[cchRESOURCE];
152 GetString(szMsg, nMsgID);
154 SetWndText(hDlg, uiCtrlID, szMsg);
157 TCHAR *GetWndText(HWND hDlg, UINT uiCtrlID, TCHAR *pszTextBuffer, int nTextLen)
159 GetWindowText(GetDlgItem(hDlg, uiCtrlID), pszTextBuffer, nTextLen);
161 return pszTextBuffer;
164 void ForceUpdateWindow(HWND hWnd)
166 InvalidateRect(hWnd, 0, TRUE);
170 void ForceUpdateWindow(HWND hDlg, UINT uiCtrlID)
172 ForceUpdateWindow(GetDlgItem(hDlg, uiCtrlID));
175 int AddLBString(HWND hDlg, UINT uiCtrlID, LPCTSTR pszString)
177 return SendMessage(GetDlgItem(hDlg, uiCtrlID), LB_ADDSTRING, 0, (LONG)pszString);
180 int ClearListBox(HWND hDlg, UINT uiCtrlID)
182 return SendMessage(GetDlgItem(hDlg, uiCtrlID), LB_RESETCONTENT, 0, 0);
185 void SetUpDownRange(HWND hDlg, UINT uiCtrlID, int nMinVal, int nMaxVal)
187 SendMessage(GetDlgItem(hDlg, uiCtrlID), UDM_SETRANGE, 0, (LPARAM)MAKELONG((short)nMaxVal, (short)nMinVal));
190 void MakeBold(HWND hWnd)
192 HFONT hFont = (HFONT)SendMessage(hWnd, WM_GETFONT, 0, 0);
196 GetObject(hFont, sizeof(LOGFONT), &logFont);
198 logFont.lfWeight = FW_BOLD;
200 HFONT hNewFont = CreateFontIndirect(&logFont);
203 SendMessage(hWnd, WM_SETFONT, (WPARAM)hNewFont, MAKELPARAM(TRUE, 0));
206 int MsgBox(HWND hParent, UINT uiTextID, UINT uiCaptionID, UINT uType)
208 TCHAR szText[cchRESOURCE];
209 TCHAR szCaption[cchRESOURCE];
211 GetString(szText, uiTextID);
212 GetString(szCaption, uiCaptionID);
214 return MessageBox(hParent, szText, szCaption, uType);
217 void HideAndDisable(HWND hDlg, UINT uiCtrlID)
219 ShowWnd(hDlg, uiCtrlID, SW_HIDE);
220 SetEnable(hDlg, uiCtrlID, ES_DISABLE);
223 void ShowAndEnable(HWND hDlg, UINT uiCtrlID, BOOL bShowAndEnable)
226 ENABLE_STATE es = ES_ENABLE;
228 if (!bShowAndEnable) {
233 ShowWnd(hDlg, uiCtrlID, nShow);
234 SetEnable(hDlg, uiCtrlID, es);
237 void MoveWnd(HWND hDlg, UINT nCtrlID, int xOffset, int yOffset)
239 HWND hCtrl = GetDlgItem(hDlg, nCtrlID);
242 GetWindowRect(hCtrl, &rect);
250 ScreenToClient(hDlg, &p1);
251 ScreenToClient(hDlg, &p2);
258 MoveWindow(hCtrl, rect.left + xOffset, rect.top + yOffset, rect.right - rect.left, rect.bottom - rect.top, TRUE);