#ifndef __DSKQUOTA_USER_PROPSHEET_H #define __DSKQUOTA_USER_PROPSHEET_H /////////////////////////////////////////////////////////////////////////////// /* File: userprop.h Description: Provides declarations for quota user property page. Revision History: Date Description Programmer -------- --------------------------------------------------- ---------- 08/15/96 Initial creation. BrianAu 06/25/98 Replaced AddUserPropSheet with AddUserDialog. BrianAu Now that we're getting user info from the DS object picker, the prop sheet idea doesn't work so well. A std dialog is better. */ /////////////////////////////////////////////////////////////////////////////// #ifndef _INC_DSKQUOTA_H # include "dskquota.h" #endif #ifndef _INC_DSKQUOTA_USER_H # include "user.h" #endif #ifndef _INC_DSKQUOTA_UNDO_H # include "undo.h" #endif #ifndef _INC_DSKQUOTA_DETAILS_H # include "details.h" // For LVSelection #endif #ifndef __OBJSEL_H_ # include #endif #include "resource.h" // // User property page. // class UserPropSheet { private: enum { iICON_USER_SINGLE, iICON_USER_MULTIPLE, cUSER_ICONS }; enum { iICON_STATUS_OK, iICON_STATUS_OVER_THRESHOLD, iICON_STATUS_OVER_LIMIT, cSTATUS_ICONS }; // // Prevent copying. // UserPropSheet(const UserPropSheet&); void operator = (const UserPropSheet&); LONGLONG m_cVolumeMaxBytes; LONGLONG m_llQuotaUsed; LONGLONG m_llQuotaLimit; LONGLONG m_llQuotaThreshold; int m_idCtlNextFocus; PDISKQUOTA_CONTROL m_pQuotaControl; UndoList& m_UndoList; LVSelection& m_LVSelection; HWND m_hWndParent; CVolumeID m_idVolume; CString m_strPageTitle; BOOL m_bIsDirty; BOOL m_bHomogeneousSelection; // All selected, same limit/threshold. HICON m_hIconUser[cUSER_ICONS]; // 0=Single, 1=Multi-user. HICON m_hIconStatus[cSTATUS_ICONS]; // 0=OK,1=Warn,2=Error XBytes *m_pxbQuotaLimit; XBytes *m_pxbQuotaThreshold; static INT_PTR OnInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam); INT_PTR OnCommand(HWND hDlg, WPARAM wParam, LPARAM lParam); INT_PTR OnNotify(HWND hDlg, WPARAM wParam, LPARAM lParam); INT_PTR OnHelp(HWND hDlg, WPARAM wParam, LPARAM lParam); INT_PTR OnContextMenu(HWND hwndItem, int xPos, int yPos); // // PSN_xxxx handlers. // INT_PTR OnSheetNotifyApply(HWND hDlg, WPARAM wParam, LPARAM lParam); INT_PTR OnSheetNotifyKillActive(HWND hDlg, WPARAM wParam, LPARAM lParam); INT_PTR OnSheetNotifySetActive(HWND hDlg, WPARAM wParam, LPARAM lParam); // // EN_xxxx handlers. // INT_PTR OnEditNotifyUpdate(HWND hDlg, WPARAM wParam, LPARAM lParam); INT_PTR OnEditNotifyKillFocus(HWND hDlg, WPARAM wParam, LPARAM lParam); // // CBN_xxxx handlers. // INT_PTR OnComboNotifySelChange(HWND hDlg, WPARAM wParam, LPARAM lParam); HRESULT UpdateControls(HWND hDlg) const; HRESULT InitializeControls(HWND hDlg); HRESULT RefreshCachedUserQuotaInfo(VOID); HRESULT ApplySettings(HWND hDlg, bool bUndo = true); HRESULT RefreshCachedQuotaInfo(VOID); VOID UpdateSpaceUsed(HWND hDlg, LONGLONG iUsed, LONGLONG iLimit, INT cUsers); VOID UpdateUserName(HWND hDlg, PDISKQUOTA_USER pUser); VOID UpdateUserName(HWND hDlg, INT cUsers); VOID UpdateUserStatusIcon(HWND hDlg, LONGLONG iUsed, LONGLONG iThreshold, LONGLONG iLimit); INT QueryUserIcon(HWND hDlg) const; INT QueryUserStatusIcon(HWND hDlg) const; public: // // Prop sheet for editing users. // UserPropSheet(PDISKQUOTA_CONTROL pQuotaControl, const CVolumeID& idVolume, HWND hWndParent, LVSelection& LVSelection, UndoList& UndoList); ~UserPropSheet(VOID); HRESULT Run(VOID); // // Dialog Proc callback. // static INT_PTR APIENTRY DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); }; #endif // __DSKQUOTA_USER_PROPSHEET_H