]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dfb/toplevel.h
Get/Set LayoutDirection
[wxWidgets.git] / include / wx / dfb / toplevel.h
index 82e797b7abc86c2e47dd8851a7d3f89d96f4aa72..4d71aa7aac4df8f63a03ff3c05bf3060b1d4a73e 100644 (file)
@@ -11,7 +11,7 @@
 #ifndef _WX_DFB_TOPLEVEL_H_
 #define _WX_DFB_TOPLEVEL_H_
 
-#include "wx/dfb/ifacehelpers.h"
+#include "wx/dfb/dfbptr.h"
 
 wxDFB_DECLARE_INTERFACE(IDirectFBWindow);
 
@@ -75,20 +75,29 @@ public:
 
     void OnInternalIdle();
 
-    IDirectFBWindowPtr GetDirectFBWindow() const { return m_dfbwin; }
+    wxIDirectFBWindowPtr GetDirectFBWindow() const { return m_dfbwin; }
+
+    // Returns true if some invalidated area of the TLW is currently being
+    // painted
+    bool IsPainting() const { return m_isPainting; }
 
 protected:
     // common part of all ctors
     void Init();
 
-    virtual IDirectFBSurfacePtr ObtainDfbSurface() const;
+    virtual wxIDirectFBSurfacePtr ObtainDfbSurface() const;
 
     // overriden wxWindow methods
     virtual void DoGetPosition(int *x, int *y) const;
     virtual void DoGetSize(int *width, int *height) const;
     virtual void DoMoveWindow(int x, int y, int width, int height);
 
-    virtual void DoRefreshRect(const wxRect& rect, bool eraseBack = true);
+    virtual void DoRefreshRect(const wxRect& rect);
+
+    // sets DirectFB keyboard focus to this toplevel window (note that DFB
+    // focus is different from wx: only shown TLWs can have it and not any
+    // wxWindows as in wx
+    void SetDfbFocus();
 
 private:
     // do queued painting in idle time
@@ -116,12 +125,16 @@ protected:
     wxByte        m_opacity;
 
     // interface to the underlying DirectFB window
-    IDirectFBWindowPtr m_dfbwin;
+    wxIDirectFBWindowPtr m_dfbwin;
 
 private:
+    // invalidated areas of the TLW that need repainting
     wxDfbQueuedPaintRequests *m_toPaint;
+    // are we currently painting some area of this TLW?
+    bool m_isPainting;
 
     friend class wxEventLoop; // for HandleDFBWindowEvent
+    friend class wxWindowDFB; // for SetDfbFocus
 };
 
 #endif // _WX_DFB_TOPLEVEL_H_