8 #include "afs_config.h"
9 #include "tab_advanced.h"
14 * DEFINITIONS ________________________________________________________________
18 #define ckCACHE_MIN 1024L // 1MB Cache Minimum
19 #define ckCACHE_MAX 2097152L // 2GB Cache Maximum (limited by space)
21 #define ckCHUNK_MIN 4L
22 #define ckCHUNK_MAX 1048576L
24 #define cSTATS_MIN 256L
25 #define cSTATS_MAX 10000L
29 * PROTOTYPES _________________________________________________________________
33 void AdvancedTab_OnInitDialog (HWND hDlg);
34 BOOL AdvancedTab_OnApply (HWND hDlg);
35 void AdvancedTab_OnRefresh (HWND hDlg);
37 // From dlg_automap.cpp
38 extern BOOL CALLBACK AutoMap_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
41 extern BOOL Misc_OnApply();
42 extern BOOL CALLBACK Misc_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
45 extern BOOL CALLBACK Logon_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
46 extern BOOL Logon_OnApply();
49 extern BOOL CALLBACK Diag_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
50 extern BOOL Diag_OnApply();
54 * ROUTINES ___________________________________________________________________
58 static DWORD log2 (DWORD dwValue)
60 for (DWORD dwLog = 0; (DWORD)(1<<dwLog) < dwValue; ++dwLog)
66 BOOL CALLBACK AdvancedTab_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
71 AdvancedTab_OnInitDialog (hDlg);
74 case WM_CTLCOLORSTATIC:
75 if ((HWND)lp == GetDlgItem (hDlg, IDC_CHUNK_SIZE))
77 if (IsWindowEnabled ((HWND)lp))
79 static HBRUSH hbrStatic = CreateSolidBrush (GetSysColor (COLOR_WINDOW));
80 SetTextColor ((HDC)wp, GetSysColor (COLOR_WINDOWTEXT));
81 SetBkColor ((HDC)wp, GetSysColor (COLOR_WINDOW));
82 return (BOOL)hbrStatic;
91 if (!AdvancedTab_OnApply (hDlg))
92 SetWindowLong (hDlg, DWL_MSGRESULT, TRUE);
96 AdvancedTab_OnRefresh (hDlg);
100 ModalDialog(IDD_MISC_CONFIG_PARMS, hDlg, (DLGPROC)Misc_DlgProc);
103 case IDC_LOGON_PARMS:
104 ModalDialog(IDD_LOGIN_CONFIG_PARMS, hDlg, (DLGPROC)Logon_DlgProc);
107 case IDC_AUTOMAP_PARMS:
108 ModalDialog(IDD_GLOBAL_DRIVES, hDlg, (DLGPROC)AutoMap_DlgProc);
112 ModalDialog(IDD_DIAG_PARMS, hDlg, (DLGPROC)Diag_DlgProc);
119 (*(LPDWORD)lp) <<= 1;
121 case SPN_CHANGE_DOWN:
122 (*(LPDWORD)lp) >>= 1;
125 (*(LPDWORD)lp) = 1 << (log2 (*(LPDWORD)lp));
131 AdvancedTab_DlgProc (hDlg, WM_HELP, 0, 0);
137 WinHelp (hDlg, g.szHelpFile, HELP_CONTEXT, IDH_AFSCONFIG_ADVANCED_NT);
145 void AdvancedTab_OnInitDialog (HWND hDlg)
147 Config_GetCacheSize (&g.Configuration.ckCache);
148 Config_GetCachePath (g.Configuration.szCachePath);
149 Config_GetChunkSize (&g.Configuration.ckChunk);
150 Config_GetStatEntries (&g.Configuration.cStatEntries);
152 ULONG ckCacheMin = ckCACHE_MIN;
153 ULONG ckCacheMax = ckCACHE_MAX;
155 CreateSpinner (GetDlgItem (hDlg, IDC_CACHE_SIZE), 10, FALSE, ckCacheMin, g.Configuration.ckCache, ckCacheMax);
156 CreateSpinner (GetDlgItem (hDlg, IDC_CHUNK_SIZE), 10, FALSE, ckCHUNK_MIN, g.Configuration.ckChunk, ckCHUNK_MAX);
157 CreateSpinner (GetDlgItem (hDlg, IDC_STAT_ENTRIES), 10, FALSE, cSTATS_MIN, g.Configuration.cStatEntries, cSTATS_MAX);
159 SetDlgItemText (hDlg, IDC_CACHE_PATH, g.Configuration.szCachePath);
160 SetDlgItemText (hDlg, IDC_SYSNAME, g.Configuration.szSysName);
162 AdvancedTab_OnRefresh (hDlg);
166 BOOL AdvancedTab_CommitChanges (BOOL fForce)
169 if ((hDlg = PropSheet_FindTabWindow (g.psh, (DLGPROC)AdvancedTab_DlgProc)) == NULL)
172 SetWindowLong (hDlg, DWL_MSGRESULT, FALSE); // Make sure we try to apply
173 if (AdvancedTab_OnApply (hDlg))
175 SetWindowLong (hDlg, DWL_MSGRESULT, TRUE);
180 BOOL AdvancedTab_OnApply (HWND hDlg)
182 // Don't try to do anything if we've already failed the apply
183 if (GetWindowLong (hDlg, DWL_MSGRESULT))
186 ULONG Value = SP_GetPos (GetDlgItem (hDlg, IDC_CACHE_SIZE));
187 if (Value != g.Configuration.ckCache)
189 if (!Config_SetCacheSize (Value))
191 g.Configuration.ckCache = Value;
194 Value = SP_GetPos (GetDlgItem (hDlg, IDC_CHUNK_SIZE));
195 if (Value != g.Configuration.ckChunk)
197 if (!Config_SetChunkSize (Value))
199 g.Configuration.ckChunk = Value;
202 Value = SP_GetPos (GetDlgItem (hDlg, IDC_STAT_ENTRIES));
203 if (Value != g.Configuration.cStatEntries)
205 if (!Config_SetStatEntries (Value))
207 g.Configuration.cStatEntries = Value;
210 TCHAR szText[ MAX_PATH ];
211 GetDlgItemText (hDlg, IDC_CACHE_PATH, szText, MAX_PATH);
212 if (lstrcmp (szText, g.Configuration.szCachePath))
214 if (!Config_SetCachePath (szText))
216 lstrcpy (g.Configuration.szCachePath, szText);
219 // Save the data from the advanced tab dialogs
223 if (!Logon_OnApply())
233 void AdvancedTab_OnRefresh (HWND hDlg)
236 if (!Config_GetCacheInUse (&ckCacheInUse))
241 pszInUse = FormatString (IDS_KB_IN_USE, TEXT("%ld"), ckCacheInUse);
243 pszInUse = FormatString (IDS_KB_ONLY);
244 SetDlgItemText (hDlg, IDC_INUSE, pszInUse);
245 FreeString (pszInUse);