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 ___________________________________________________________________
15 #include <afs/param.h>
20 #include <WINNT\afsapplib.h>
26 * EXPORTED FUNCTIONS _________________________________________________________
29 void SetEnable(HWND hDlg, UINT nControl, ENABLE_STATE eState)
31 HWND hControl = GetDlgItem(hDlg, nControl);
36 case ES_ENABLE: bEnable = TRUE;
39 case ES_DISABLE: bEnable = FALSE;
42 case ES_TOGGLE: bEnable = !IsWindowEnabled(hControl);
46 EnableWindow(hControl, bEnable);
49 void SetElapsedTime(HWND hwnd, DWORD nCtrlID, ULONG ulMin, ULONG ulMax, ULONG ulTime)
52 SET_ELAPSED_TIME_FROM_SECONDS (&stMin, ulMin);
55 SET_ELAPSED_TIME_FROM_SECONDS (&stMax, ulMax);
58 SET_ELAPSED_TIME_FROM_SECONDS (&st, ulTime);
60 HWND hElapsed = ::GetDlgItem(hwnd, nCtrlID);
61 EL_SetRange (hElapsed, &stMin, &stMax);
62 EL_SetTime (hElapsed, &st);
65 void GetElapsedTime(HWND hwnd, DWORD nCtrlID, DWORD& dwTime)
69 HWND hElapsed = ::GetDlgItem(hwnd, nCtrlID);
70 EL_GetTime (hElapsed, &stFinal);
72 dwTime = GET_SECONDS_FROM_ELAPSED_TIME(&stFinal);
75 LPCTSTR SecondsToElapsedTime(UINT uiNumSeconds)
77 static TCHAR szTime[64], sz[32];
82 int nHours, nMinutes, nSeconds;
84 nHours = uiNumSeconds / 3600;
85 nMinutes = (uiNumSeconds % 3600) / 60;
86 nSeconds = (uiNumSeconds % 3600) % 60;
89 _stprintf(szTime, TEXT("%d hours"), nHours);
93 lstrcat(szTime, TEXT(", "));
94 _stprintf(sz, TEXT("%d minutes"), nMinutes);
99 if (nHours || nMinutes)
100 lstrcat(szTime, TEXT(", "));
101 _stprintf(sz, TEXT("%d seconds"), nSeconds);
108 BOOL IsButtonChecked(HWND hDlg, UINT uiCtrlID)
110 return SendMessage(GetDlgItem(hDlg, uiCtrlID), BM_GETCHECK, 0, 0) == BST_CHECKED;
113 int GetButtonState(HWND hDlg, UINT uiCtrlID)
115 return SendMessage(GetDlgItem(hDlg, uiCtrlID), BM_GETCHECK, 0, 0);
118 void SetCheck(HWND hDlg, UINT uiCtrlID, int nChecked)
120 SendMessage(GetDlgItem(hDlg, uiCtrlID), BM_SETCHECK, nChecked, 0);
123 TCHAR *GetResString(UINT nMsgID, TCHAR *pszMsg, UINT nLen)
125 GetString(pszMsg, nMsgID, nLen);
130 void ShowWnd(HWND hDlg, UINT uiCtrlID, BOOL bShow)
132 ShowWindow(GetDlgItem(hDlg, uiCtrlID), bShow ? SW_SHOW : SW_HIDE);
135 void EnableWnd(HWND hDlg, UINT uiCtrlID, BOOL bEnable)
137 EnableWindow(GetDlgItem(hDlg, uiCtrlID), bEnable);
140 void SetWndText(HWND hDlg, UINT uiCtrlID, LPCTSTR pszMsg)
142 SetWindowText(GetDlgItem(hDlg, uiCtrlID), pszMsg);
145 void SetWndText(HWND hDlg, UINT uiCtrlID, UINT nMsgID)
147 TCHAR szMsg[cchRESOURCE];
149 GetString(szMsg, nMsgID);
151 SetWndText(hDlg, uiCtrlID, szMsg);
154 TCHAR *GetWndText(HWND hDlg, UINT uiCtrlID, TCHAR *pszTextBuffer, int nTextLen)
156 GetWindowText(GetDlgItem(hDlg, uiCtrlID), pszTextBuffer, nTextLen);
158 return pszTextBuffer;
161 void ForceUpdateWindow(HWND hWnd)
163 InvalidateRect(hWnd, 0, TRUE);
167 void ForceUpdateWindow(HWND hDlg, UINT uiCtrlID)
169 ForceUpdateWindow(GetDlgItem(hDlg, uiCtrlID));
172 int AddLBString(HWND hDlg, UINT uiCtrlID, LPCTSTR pszString)
174 return SendMessage(GetDlgItem(hDlg, uiCtrlID), LB_ADDSTRING, 0, (LONG)pszString);
177 int ClearListBox(HWND hDlg, UINT uiCtrlID)
179 return SendMessage(GetDlgItem(hDlg, uiCtrlID), LB_RESETCONTENT, 0, 0);
182 void SetUpDownRange(HWND hDlg, UINT uiCtrlID, int nMinVal, int nMaxVal)
184 SendMessage(GetDlgItem(hDlg, uiCtrlID), UDM_SETRANGE, 0, (LPARAM)MAKELONG((short)nMaxVal, (short)nMinVal));
187 void MakeBold(HWND hWnd)
189 HFONT hFont = (HFONT)SendMessage(hWnd, WM_GETFONT, 0, 0);
193 GetObject(hFont, sizeof(LOGFONT), &logFont);
195 logFont.lfWeight = FW_BOLD;
197 HFONT hNewFont = CreateFontIndirect(&logFont);
200 SendMessage(hWnd, WM_SETFONT, (WPARAM)hNewFont, MAKELPARAM(TRUE, 0));
203 int MsgBox(HWND hParent, UINT uiTextID, UINT uiCaptionID, UINT uType)
205 TCHAR szText[cchRESOURCE];
206 TCHAR szCaption[cchRESOURCE];
208 GetString(szText, uiTextID);
209 GetString(szCaption, uiCaptionID);
211 return MessageBox(hParent, szText, szCaption, uType);
214 void HideAndDisable(HWND hDlg, UINT uiCtrlID)
216 ShowWnd(hDlg, uiCtrlID, SW_HIDE);
217 SetEnable(hDlg, uiCtrlID, ES_DISABLE);
220 void ShowAndEnable(HWND hDlg, UINT uiCtrlID, BOOL bShowAndEnable)
223 ENABLE_STATE es = ES_ENABLE;
225 if (!bShowAndEnable) {
230 ShowWnd(hDlg, uiCtrlID, nShow);
231 SetEnable(hDlg, uiCtrlID, es);
234 void MoveWnd(HWND hDlg, UINT nCtrlID, int xOffset, int yOffset)
236 HWND hCtrl = GetDlgItem(hDlg, nCtrlID);
239 GetWindowRect(hCtrl, &rect);
247 ScreenToClient(hDlg, &p1);
248 ScreenToClient(hDlg, &p2);
255 MoveWindow(hCtrl, rect.left + xOffset, rect.top + yOffset, rect.right - rect.left, rect.bottom - rect.top, TRUE);