]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/x11/window.h
wxLaunchDefaultBrowser() now supports wxBROWSER_NEW_WINDOW flag (and it actually...
[wxWidgets.git] / include / wx / x11 / window.h
index e7ef074f99572bf7aed23287589b9e82b8775e2d..b665e97d2d0a718d5d76e6c9b24ac55eb1379624 100644 (file)
 #ifndef _WX_WINDOW_H_
 #define _WX_WINDOW_H_
 
 #ifndef _WX_WINDOW_H_
 #define _WX_WINDOW_H_
 
-#ifdef __GNUG__
-#pragma interface "window.h"
-#endif
-
 #include "wx/region.h"
 
 // ----------------------------------------------------------------------------
 // wxWindow class for Motif - see also wxWindowBase
 // ----------------------------------------------------------------------------
 
 #include "wx/region.h"
 
 // ----------------------------------------------------------------------------
 // wxWindow class for Motif - see also wxWindowBase
 // ----------------------------------------------------------------------------
 
-class wxWindowX11 : public wxWindowBase
+class WXDLLIMPEXP_CORE wxWindowX11 : public wxWindowBase
 {
     friend class WXDLLEXPORT wxDC;
     friend class WXDLLEXPORT wxWindowDC;
 {
     friend class WXDLLEXPORT wxDC;
     friend class WXDLLEXPORT wxWindowDC;
@@ -64,8 +60,6 @@ public:
         const wxRect *rect = (const wxRect *) NULL );
     virtual void Update();
     
         const wxRect *rect = (const wxRect *) NULL );
     virtual void Update();
     
-    virtual void Clear();
-    
     virtual bool SetBackgroundColour( const wxColour &colour );
     virtual bool SetForegroundColour( const wxColour &colour );
     
     virtual bool SetBackgroundColour( const wxColour &colour );
     virtual bool SetForegroundColour( const wxColour &colour );
     
@@ -84,9 +78,10 @@ public:
     virtual void ScrollWindow( int dx, int dy,
         const wxRect* rect = (wxRect *) NULL );
     
     virtual void ScrollWindow( int dx, int dy,
         const wxRect* rect = (wxRect *) NULL );
     
-    virtual void SetSizeHints(int minW, int minH,
+    virtual void DoSetSizeHints(int minW, int minH,
         int maxW = -1, int maxH = -1,
         int incW = -1, int incH = -1);
         int maxW = -1, int maxH = -1,
         int incW = -1, int incH = -1);
+
 #if wxUSE_DRAG_AND_DROP
     virtual void SetDropTarget( wxDropTarget *dropTarget );
 #endif // wxUSE_DRAG_AND_DROP
 #if wxUSE_DRAG_AND_DROP
     virtual void SetDropTarget( wxDropTarget *dropTarget );
 #endif // wxUSE_DRAG_AND_DROP
@@ -103,13 +98,12 @@ public:
     // accessors
     // ---------
     
     // accessors
     // ---------
     
-    // Get main widget for this window, e.g. a text widget
+    // Get main X11 window
     virtual WXWindow GetMainWindow() const;
     
     virtual WXWindow GetMainWindow() const;
     
-    // Get the underlying X window and display
-    WXWindow GetXWindow() const;
-    WXDisplay *GetXDisplay() const;
-    
+    // Get X11 window representing the client area
+    virtual WXWindow GetClientAreaWindow() const;
+
     void SetLastClick(int button, long timestamp)
         { m_lastButton = button; m_lastTS = timestamp; }
     
     void SetLastClick(int button, long timestamp)
         { m_lastButton = button; m_lastTS = timestamp; }
     
@@ -123,6 +117,9 @@ public:
     // Generates paint events from m_updateRegion
     void SendPaintEvents();
     
     // Generates paint events from m_updateRegion
     void SendPaintEvents();
     
+    // Generates paint events from flag
+    void SendNcPaintEvents();
+    
     // Generates erase events from m_clearRegion
     void SendEraseEvents();
     
     // Generates erase events from m_clearRegion
     void SendEraseEvents();
     
@@ -132,31 +129,24 @@ public:
     // Return clear region
     wxRegion &GetClearRegion() { return m_clearRegion; }
     
     // Return clear region
     wxRegion &GetClearRegion() { return m_clearRegion; }
     
+    void NeedUpdateNcAreaInIdle( bool update = TRUE ) { m_updateNcArea = update; }
+    
+    // Inserting into main window instead of client
+    // window. This is mostly for a wxWindow's own
+    // scrollbars.
+    void SetInsertIntoMain( bool insert = TRUE ) { m_insertIntoMain = insert; }
+    bool GetInsertIntoMain() { return m_insertIntoMain; }
+    
     // sets the fore/background colour for the given widget
     static void DoChangeForegroundColour(WXWindow widget, wxColour& foregroundColour);
     static void DoChangeBackgroundColour(WXWindow widget, wxColour& backgroundColour, bool changeArmColour = FALSE);
     
     // sets the fore/background colour for the given widget
     static void DoChangeForegroundColour(WXWindow widget, wxColour& foregroundColour);
     static void DoChangeBackgroundColour(WXWindow widget, wxColour& backgroundColour, bool changeArmColour = FALSE);
     
-    // For implementation purposes - sometimes decorations make the client area
-    // smaller
-    virtual wxPoint GetClientAreaOrigin() const;
-    
     // I don't want users to override what's done in idle so everything that
     // has to be done in idle time in order for wxX11 to work is done in
     // OnInternalIdle
     virtual void OnInternalIdle();
     
     // I don't want users to override what's done in idle so everything that
     // has to be done in idle time in order for wxX11 to work is done in
     // OnInternalIdle
     virtual void OnInternalIdle();
     
-    // For compatibility across platforms (not in event table)
-    void OnIdle(wxIdleEvent& WXUNUSED(event)) {}
-    
-    // Go up to a toplevel window and query which window has the focus.
-    // May return NULL.
-    wxWindow *GetFocusWidget();
-    
 protected:
 protected:
-    // Makes an adjustment to the window position (for example, a frame that has
-    // a toolbar that it manages itself).
-    virtual void AdjustForParentClientOrigin(int& x, int& y, int sizeFlags);
-    
     // Responds to colour changes: passes event on to children.
     void OnSysColourChanged(wxSysColourChangedEvent& event);
     
     // Responds to colour changes: passes event on to children.
     void OnSysColourChanged(wxSysColourChangedEvent& event);
     
@@ -165,10 +155,14 @@ protected:
     int    m_lastButton;     // last pressed button
     
 protected:
     int    m_lastButton;     // last pressed button
     
 protected:
-    WXWindow              m_mainWidget;
+    WXWindow              m_mainWindow;
+    WXWindow              m_clientWindow;
+    bool                  m_insertIntoMain;
+    
+    bool                  m_winCaptured;
     wxRegion              m_clearRegion;
     bool                  m_clipPaintRegion;
     wxRegion              m_clearRegion;
     bool                  m_clipPaintRegion;
-    bool                  m_winCaptured;  // ????
+    bool                  m_updateNcArea;
     bool                  m_needsInputFocus; // Input focus set in OnIdle
 
     // implement the base class pure virtuals
     bool                  m_needsInputFocus; // Input focus set in OnIdle
 
     // implement the base class pure virtuals