]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/event.h
Fixed resizing of wxTextCtrl
[wxWidgets.git] / include / wx / event.h
index 0ddc69857378b472c8090ce61c2882c37590ebcd..e9eb695cd2889ac2c15a6e1224aff1ee0dae9336 100644 (file)
@@ -186,6 +186,8 @@ const wxEventType wxEVT_COMMAND_TAB_SEL_CHANGING =          wxEVT_FIRST + 801;
 const wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED =     wxEVT_FIRST + 802;
 const wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING =    wxEVT_FIRST + 803;
 
+const wxEventType wxEVT_USER_FIRST =                        wxEVT_FIRST + 2000;
+
 // Compatibility
 
 #if WXWIN_COMPATIBILITY
@@ -294,6 +296,8 @@ public:
  wxEVT_COMMAND_COMBOBOX_SELECTED
 */
 
+class WXDLLEXPORT wxClientData;
+
 class WXDLLEXPORT wxCommandEvent: public wxEvent
 {
   DECLARE_DYNAMIC_CLASS(wxCommandEvent)
@@ -306,9 +310,13 @@ class WXDLLEXPORT wxCommandEvent: public wxEvent
    *
    */
 
-  // Set/Get listbox/choice client data
-  inline void SetClientData(char* clientData) { m_clientData = clientData; }
-  inline char *GetClientData() const { return m_clientData; }
+  // Set/Get client data from controls
+  inline void SetClientData(void* clientData) { m_clientData = clientData; }
+  inline void *GetClientData() const { return m_clientData; }
+
+  // Set/Get client object from controls
+  inline void SetClientObject(wxClientData* clientObject) { m_clientObject = clientObject; }
+  inline void *GetClientObject() const { return m_clientObject; }
 
   // Get listbox selection if single-choice
   inline int GetSelection() const { return m_commandInt; }
@@ -332,8 +340,9 @@ class WXDLLEXPORT wxCommandEvent: public wxEvent
  public:
   char*             m_commandString; // String event argument
   int               m_commandInt;
-  long              m_extraLong;      // Additional information (e.g. select/deselect)
-  char*             m_clientData;    // Arbitrary client data
+  long              m_extraLong;     // Additional information (e.g. select/deselect)
+  void*             m_clientData;    // Arbitrary client data
+  wxClientData*     m_clientObject;  // Arbitrary client object
 };
 
 // Scroll event class
@@ -678,22 +687,27 @@ class WXDLLEXPORT wxCloseEvent: public wxEvent
 public:
 
   inline wxCloseEvent(wxEventType type = wxEVT_NULL, int id = 0)
-     { m_eventType = type; m_sessionEnding = TRUE; m_loggingOff = TRUE; m_veto = FALSE;
-       m_id = id; m_force = FALSE; }
+     { m_eventType = type; m_loggingOff = TRUE; m_veto = FALSE;
+       m_id = id; m_force = FALSE; m_canVeto = FALSE; }
 
-  inline bool GetSessionEnding(void) const { return m_sessionEnding; }
+  inline void SetLoggingOff(bool logOff) { m_loggingOff = logOff; }
   inline bool GetLoggingOff(void) const { return m_loggingOff; }
   inline void Veto(bool veto = TRUE) { m_veto = veto; }
+  inline void SetCanVeto(bool canVeto) { m_canVeto = canVeto; }
+  inline bool CanVeto() const { return m_canVeto; }
   inline bool GetVeto(void) const { return m_veto; }
+
+  // This is probably obsolete now, since we use CanVeto instead, in
+  // both OnCloseWindow and OnQueryEndSession.
+  // m_force == ! m_canVeto i.e., can't veto means we must force it to close.
   inline void SetForce(bool force) { m_force = force; }
   inline bool GetForce(void) const { return m_force; }
 
  protected:
-  bool m_sessionEnding;
   bool m_loggingOff;
   bool m_veto;
   bool m_force;
-
+  bool m_canVeto;
 };
 
 /*
@@ -863,7 +877,7 @@ protected:
 class WXDLLEXPORT wxMenu;
 class WXDLLEXPORT wxWindow;
 
-class WXDLLEXPORT wxUpdateUIEvent: public wxEvent
+class WXDLLEXPORT wxUpdateUIEvent: public wxCommandEvent
 {
   DECLARE_DYNAMIC_CLASS(wxUpdateUIEvent)
 
@@ -972,7 +986,7 @@ public:
   // the child which has the focus currently (may be NULL - use 
   // wxWindow::FindFocus then)
   wxWindow* GetCurrentFocus() const { return (wxWindow *)m_clientData; }
-  void SetCurrentFocus(wxWindow *win) { m_clientData = (char *)win; }
+  void SetCurrentFocus(wxWindow *win) { m_clientData = (void *)win; }
 };
 
 /* TODO
@@ -1035,9 +1049,6 @@ class WXDLLEXPORT wxEvtHandler: public wxObject
 
   virtual bool OnClose(void);
 
-  inline char *GetClientData(void) const { return m_clientData; }
-  inline void SetClientData(char *clientData) { m_clientData = clientData; }
-  
   virtual bool ProcessEvent(wxEvent& event);
   virtual bool SearchEventTable(wxEventTable& table, wxEvent& event);
   
@@ -1056,7 +1067,6 @@ protected:
 protected:
     wxEvtHandler*     m_nextHandler;
     wxEvtHandler*     m_previousHandler;
-    char*             m_clientData;                   // Any user client data
     bool              m_enabled;                      // Is event handler enabled?
     wxList*           m_dynamicEvents;
 
@@ -1119,6 +1129,8 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \
 #define EVT_SIZE(func)  { wxEVT_SIZE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxSizeEventFunction) & func, (wxObject *) NULL },
 #define EVT_MOVE(func)  { wxEVT_MOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMoveEventFunction) & func, (wxObject *) NULL },
 #define EVT_CLOSE(func)  { wxEVT_CLOSE_WINDOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCloseEventFunction) & func, (wxObject *) NULL },
+#define EVT_END_SESSION(func)  { wxEVT_END_SESSION, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCloseEventFunction) & func, (wxObject *) NULL },
+#define EVT_QUERY_END_SESSION(func)  { wxEVT_QUERY_END_SESSION, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCloseEventFunction) & func, (wxObject *) NULL },
 #define EVT_PAINT(func)  { wxEVT_PAINT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxPaintEventFunction) & func, (wxObject *) NULL },
 #define EVT_ERASE_BACKGROUND(func)  { wxEVT_ERASE_BACKGROUND, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxEraseEventFunction) & func, (wxObject *) NULL },
 #define EVT_CHAR(func)  { wxEVT_CHAR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, (wxObject *) NULL },
@@ -1172,7 +1184,7 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \
 
 // EVT_COMMAND
 #define EVT_COMMAND(id, cmd, fn)  { cmd, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL },
-#define EVT_COMMAND_RANGE(id1, id2, cmd, fn)  { cmd, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, N(wxObject *) ULL },
+#define EVT_COMMAND_RANGE(id1, id2, cmd, fn)  { cmd, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL },
 
 // Scrolling
 #define EVT_SCROLL(func) \