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);