]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/stubs/window.h
gtkfeatures.h does not exist under gtk+ 1.3.1, #ifndef it out
[wxWidgets.git] / include / wx / stubs / window.h
index 28c3441317963b792774d1dd2e7dcfd5cb0a1e7c..b94c1afe41313e7089c5b6c910a020fffe5ca960 100644 (file)
@@ -26,6 +26,8 @@
 #include "wx/string.h"
 #include "wx/list.h"
 #include "wx/region.h"
+#include "wx/accel.h"
+#include "wx/intl.h"
 
 #define wxKEY_SHIFT     1
 #define wxKEY_CTRL      2
@@ -52,7 +54,7 @@ class WXDLLEXPORT wxCursor;
 class WXDLLEXPORT wxColourMap;
 class WXDLLEXPORT wxFont;
 class WXDLLEXPORT wxMenu;
-class WXDLLEXPORT wxRectangle;
+class WXDLLEXPORT wxRect;
 class WXDLLEXPORT wxBitmap;
 class WXDLLEXPORT wxSizer;
 class WXDLLEXPORT wxList;
@@ -66,11 +68,11 @@ class WXDLLEXPORT wxIcon;
 class WXDLLEXPORT wxDC;
 class WXDLLEXPORT wxValidator;
 
-#if USE_DRAG_AND_DROP
-class wxDropTarget;
+#if wxUSE_DRAG_AND_DROP
+class WXDLLEXPORT wxDropTarget;
 #endif
 
-#if USE_WX_RESOURCES
+#if wxUSE_WX_RESOURCES
 class WXDLLEXPORT wxResourceTable;
 class WXDLLEXPORT wxItemResource;
 #endif
@@ -80,6 +82,33 @@ WXDLLEXPORT_DATA(extern const char*) wxPanelNameStr;
 WXDLLEXPORT_DATA(extern const wxSize) wxDefaultSize;
 WXDLLEXPORT_DATA(extern const wxPoint) wxDefaultPosition;
 
+//-----------------------------------------------------------------------------
+// wxClientData
+//-----------------------------------------------------------------------------
+
+class wxClientData
+{
+public:
+    wxClientData() { }
+    virtual ~wxClientData() { }
+};
+
+//-----------------------------------------------------------------------------
+// wxStringClientData
+//-----------------------------------------------------------------------------
+
+class wxStringClientData: public wxClientData
+{
+public:
+    wxStringClientData() { }
+    wxStringClientData( wxString &data ) { m_data = data; }
+    void SetData( wxString &data ) { m_data = data; }
+    wxString GetData() const { return m_data; }
+    
+private:
+    wxString  m_data;
+};
+
 class WXDLLEXPORT wxWindow: public wxEvtHandler
 {
   DECLARE_ABSTRACT_CLASS(wxWindow)
@@ -192,7 +221,7 @@ public:
   // Enable or disable the window
   virtual void Enable(bool enable);
 
-#if USE_DRAG_AND_DROP
+#if wxUSE_DRAG_AND_DROP
   // Associate a drop target with this window (if the window already had a drop
   // target, it's deleted!) and return the current drop target (may be NULL).
   void          SetDropTarget(wxDropTarget *pDropTarget);
@@ -202,6 +231,18 @@ public:
   // Accept files for dragging
   virtual void DragAcceptFiles(bool accept);
 
+  // tooltips
+    // create a tooltip with this text
+  void SetToolTip(const wxString& tip);
+
+  // TODO
+#if 0
+    // pointer may be NULL to remove the tooltip
+  void SetToolTip(wxToolTip *tooltip);
+    // get the current tooltip (may return NULL if none)
+  wxToolTip* GetToolTip() const { return m_tooltip; }
+#endif
+
   // Update region access
   virtual wxRegion GetUpdateRegion() const;
   virtual bool IsExposed(int x, int y, int w, int h) const;
@@ -227,7 +268,7 @@ public:
   virtual bool PopupMenu(wxMenu *menu, int x, int y);
 
   // Send the window a refresh event
-  virtual void Refresh(bool eraseBack = TRUE, const wxRectangle *rect = NULL);
+  virtual void Refresh(bool eraseBack = TRUE, const wxRect *rect = NULL);
 
   // New functions that will replace the above.
   virtual void SetScrollbar(int orient, int pos, int thumbVisible,
@@ -238,7 +279,7 @@ public:
   virtual int GetScrollRange(int orient) const;
   virtual int GetScrollThumb(int orient) const;
 
-  virtual void ScrollWindow(int dx, int dy, const wxRectangle *rect = NULL);
+  virtual void ScrollWindow(int dx, int dy, const wxRect *rect = NULL);
 
   // Caret manipulation
   virtual void CreateCaret(int w, int h);
@@ -255,6 +296,9 @@ public:
   inline int GetId() const;
   inline void SetId(int id);
 
+  virtual void SetAcceleratorTable(const wxAcceleratorTable& accel);
+  inline virtual wxAcceleratorTable& GetAcceleratorTable() const { return (wxAcceleratorTable&) m_acceleratorTable; }
+
   // Make the window modal (all other windows unresponsive)
   virtual void MakeModal(bool modal);
 
@@ -265,11 +309,11 @@ public:
   inline wxWindow *GetParent() const;
   inline void SetParent(wxWindow *p) ;
   inline wxWindow *GetGrandParent() const;
-  inline wxList *GetChildren() const;
+  inline wxListGetChildren() const;
 
   // Set/get the window's font
   virtual void SetFont(const wxFont& f);
-  inline virtual wxFont *GetFont() const;
+  inline virtual wxFontGetFont() const;
 
   // Set/get the window's validator
   void SetValidator(const wxValidator& validator);
@@ -279,6 +323,9 @@ public:
   inline void SetWindowStyleFlag(long flag);
   inline long GetWindowStyleFlag() const;
 
+  // Handle a control command
+  virtual void OnCommand(wxWindow& win, wxCommandEvent& event);
+
   // Set/get event handler
   inline void SetEventHandler(wxEvtHandler *handler);
   inline wxEvtHandler *GetEventHandler() const;
@@ -320,17 +367,12 @@ public:
   virtual void OnDefaultAction(wxControl *initiatingItem);
 
   // Resource loading
-#if USE_WX_RESOURCES
+#if wxUSE_WX_RESOURCES
   virtual bool LoadFromResource(wxWindow *parent, const wxString& resourceName, const wxResourceTable *table = NULL);
-  virtual wxControl *CreateItem(const wxItemResource *childResource, const wxResourceTable *table = NULL);
+  virtual wxControl *CreateItem(const wxItemResource* childResource, const wxItemResource* parentResource,
+                                 const wxResourceTable *table = (const wxResourceTable *) NULL);
 #endif
 
-  // Native resource loading
-  virtual bool LoadNativeDialog(wxWindow* parent, wxWindowID& id);
-  virtual bool LoadNativeDialog(wxWindow* parent, const wxString& name);
-  virtual wxWindow* GetWindowChild1(wxWindowID& id);
-  virtual wxWindow* GetWindowChild(wxWindowID& id);
-
   virtual void GetTextExtent(const wxString& string, int *x, int *y,
                              int *descent = NULL,
                              int *externalLeading = NULL,
@@ -361,12 +403,17 @@ public:
 
   void OnEraseBackground(wxEraseEvent& event);
   void OnChar(wxKeyEvent& event);
+  void OnKeyDown(wxKeyEvent& event);
+  void OnKeyUp(wxKeyEvent& event);
   void OnPaint(wxPaintEvent& event);
   void OnIdle(wxIdleEvent& event);
 
   // Does this window want to accept keyboard focus?
   virtual bool AcceptsFocus() const;
 
+  virtual void PrepareDC( wxDC &dc ) {};
+
+
 public:
   ////////////////////////////////////////////////////////////////////////
   //// IMPLEMENTATION
@@ -382,11 +429,6 @@ public:
   // Executes the default message
   virtual long Default();
 
-/* TODO: implement your own data access
-  virtual WXHWND GetHWND() const ;
-  virtual void SetHWND(WXHWND hWnd);
-*/
-
 /* TODO: you may need something like this
   // Determine whether 3D effects are wanted
   virtual WXDWORD Determine3DEffects(WXDWORD defaultBorderStyle, bool *want3D);
@@ -397,6 +439,8 @@ public:
                                        // (but doesn't delete the child object)
   virtual void DestroyChildren();  // Removes and destroys all children
 
+  inline bool IsBeingDeleted() const { return FALSE; } // TODO: Should probably eliminate this
+
   // Constraint implementation
   void UnsetConstraints(wxLayoutConstraints *c);
   inline wxList *GetConstraintsInvolvedIn() const ;
@@ -426,11 +470,18 @@ public:
   virtual void GetClientSizeConstraint(int *w, int *h) const ;
   virtual void GetPositionConstraint(int *x, int *y) const ;
 
+  // Dialog units translations. Implemented in wincmn.cpp.
+  wxPoint ConvertPixelsToDialog(const wxPoint& pt) ;
+  wxPoint ConvertDialogToPixels(const wxPoint& pt) ;
+  inline wxSize ConvertPixelsToDialog(const wxSize& sz)
+  { wxPoint pt(ConvertPixelsToDialog(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); }
+  inline wxSize ConvertDialogToPixels(const wxSize& sz)
+  { wxPoint pt(ConvertDialogToPixels(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); }
+
   wxObject *GetChild(int number) const ;
 
-  inline void SetShowing(bool show);
-  inline bool IsUserEnabled() const;
-  inline bool GetTransparentBackground() const ;
+  // Generates a new id for controls
+  static int NewControlId();
 
   // Responds to colour changes: passes event on to children.
   void OnSysColourChanged(wxSysColourChangedEvent& event);
@@ -455,8 +506,6 @@ protected:
   bool                  m_autoLayout;                            // Whether to call Layout() in OnSize
   wxWindow *            m_windowParent;                     // Each window always knows its parent
   wxValidator *         m_windowValidator;
-  bool                  m_inOnSize;                    // Protection against OnSize reentry
-  bool                  m_winEnabled;
   int                   m_minSizeX;
   int                   m_minSizeY;
   int                   m_maxSizeX;
@@ -468,7 +517,6 @@ protected:
   bool                  m_caretEnabled;
   bool                  m_caretShown;
   wxFont                m_windowFont;                               // Window's font
-  bool                  m_isShown;
   wxCursor              m_windowCursor;                        // Window's cursor
   wxString              m_windowName;                            // Window name
 
@@ -476,31 +524,13 @@ protected:
 
   wxColour              m_backgroundColour ;
   wxColour              m_foregroundColour ;
-  bool                  m_backgroundTransparent;
-
-  int                   m_xThumbSize;
-  int                   m_yThumbSize;
-
-  float                 m_lastXPos;
-  float                 m_lastYPos;
-  int                   m_lastEvent;
-
-  bool                  m_mouseInWindow;
+  wxAcceleratorTable    m_acceleratorTable;
 
-#if USE_DRAG_AND_DROP
+#if wxUSE_DRAG_AND_DROP
   wxDropTarget         *m_pDropTarget;    // the current drop target or NULL
 #endif  //USE_DRAG_AND_DROP
 
 public:
-/* TODO: implementation of window handle, note of last message, etc.
-  WXHWND                m_hWnd;                        // MS Windows window handle
-  WXUINT                m_lastMsg;
-  WXWPARAM              m_lastWParam;
-  WXLPARAM              m_lastLParam;
-  WXHMENU               m_hMenu; // Menu, if any
-
-*/
-
   wxRegion              m_updateRegion;
   wxList *              m_children;                           // Window's children
   int                   m_returnCode;
@@ -516,15 +546,13 @@ inline int wxWindow::GetId() const { return m_windowId; }
 inline void wxWindow::SetId(int id) { m_windowId = id; }
 inline wxWindow *wxWindow::GetParent() const { return m_windowParent; }
 inline void wxWindow::SetParent(wxWindow *p) { m_windowParent = p; }
-inline wxWindow *wxWindow::GetGrandParent() const { return (m_windowParent ? m_windowParent->m_windowParent : NULL); }
-inline wxList *wxWindow::GetChildren() const { return m_children; }
-inline wxFont *wxWindow::GetFont() const { return (wxFont *) & m_windowFont; }
+inline wxWindow *wxWindow::GetGrandParent() const { return (m_windowParent ? m_windowParent->m_windowParent : (wxWindow*) NULL); }
+inline wxList& wxWindow::GetChildren() const { return (wxList&) * m_children; }
+inline wxFont& wxWindow::GetFont() const { return (wxFont&) m_windowFont; }
 inline wxString wxWindow::GetName() const { return m_windowName; }
 inline void wxWindow::SetName(const wxString& name) { m_windowName = name; }
 inline long wxWindow::GetWindowStyleFlag() const { return m_windowStyle; }
 inline void wxWindow::SetWindowStyleFlag(long flag) { m_windowStyle = flag; }
-inline void wxWindow::SetDoubleClick(bool flag) { m_doubleClickAllowed = flag; }
-inline bool wxWindow::GetDoubleClick() const { return m_doubleClickAllowed; }
 inline void wxWindow::SetEventHandler(wxEvtHandler *handler) { m_windowEventHandler = handler; }
 inline wxEvtHandler *wxWindow::GetEventHandler() const { return m_windowEventHandler; }
 inline void wxWindow::SetAutoLayout(bool a) { m_autoLayout = a; }
@@ -539,14 +567,11 @@ inline wxButton *wxWindow::GetDefaultItem() const { return m_defaultItem; }
 inline void wxWindow::SetDefaultItem(wxButton *but) { m_defaultItem = but; }
 inline bool wxWindow::IsRetained() const { return ((m_windowStyle & wxRETAINED) == wxRETAINED); }
 
-inline void wxWindow::SetShowing(bool show) { m_isShown = show; }
 inline wxList *wxWindow::GetConstraintsInvolvedIn() const { return m_constraintsInvolvedIn; }
 inline wxSizer *wxWindow::GetSizer() const { return m_windowSizer; }
 inline wxWindow *wxWindow::GetSizerParent() const { return m_sizerParent; }
 inline void wxWindow::SetSizerParent(wxWindow *win) { m_sizerParent = win; }
 inline wxValidator *wxWindow::GetValidator() const { return m_windowValidator; }
-inline bool wxWindow::IsUserEnabled() const { return m_winEnabled; }
-inline bool wxWindow::GetTransparentBackground() const { return m_backgroundTransparent; }
 inline void wxWindow::SetReturnCode(int retCode) { m_returnCode = retCode; }
 inline int wxWindow::GetReturnCode() { return m_returnCode; }