Home | History | Annotate | Download | only in Control
      1 // Windows/Control/PropertyPage.h
      2 
      3 #ifndef __WINDOWS_CONTROL_PROPERTYPAGE_H
      4 #define __WINDOWS_CONTROL_PROPERTYPAGE_H
      5 
      6 #include <prsht.h>
      7 
      8 #include "Dialog.h"
      9 
     10 namespace NWindows {
     11 namespace NControl {
     12 
     13 INT_PTR APIENTRY ProperyPageProcedure(HWND dialogHWND, UINT message, WPARAM wParam, LPARAM lParam);
     14 
     15 class CPropertyPage: public CDialog
     16 {
     17 public:
     18   CPropertyPage(HWND window = NULL): CDialog(window){};
     19 
     20   void Changed() { PropSheet_Changed(GetParent(), (HWND)*this); }
     21   void UnChanged() { PropSheet_UnChanged(GetParent(), (HWND)*this); }
     22 
     23   virtual bool OnNotify(UINT controlID, LPNMHDR lParam);
     24 
     25   virtual bool OnKillActive() { return false; } // false = OK
     26   virtual bool OnKillActive(const PSHNOTIFY *) { return OnKillActive(); }
     27   virtual LONG OnSetActive() { return false; } // false = OK
     28   virtual LONG OnSetActive(const PSHNOTIFY *) { return OnSetActive(); }
     29   virtual LONG OnApply() { return PSNRET_NOERROR; }
     30   virtual LONG OnApply(const PSHNOTIFY *) { return OnApply(); }
     31   virtual void OnNotifyHelp() {}
     32   virtual void OnNotifyHelp(const PSHNOTIFY *) { OnNotifyHelp(); }
     33   virtual void OnReset() {}
     34   virtual void OnReset(const PSHNOTIFY *) { OnReset(); }
     35 };
     36 
     37 struct CPageInfo
     38 {
     39   CPropertyPage *Page;
     40   UString Title;
     41   UINT ID;
     42 };
     43 
     44 INT_PTR MyPropertySheet(const CObjectVector<CPageInfo> &pagesInfo, HWND hwndParent, const UString &title);
     45 
     46 }}
     47 
     48 #endif
     49