| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/dfb/window.h
 
- // Purpose:     wxWindow class
 
- // Author:      Vaclav Slavik
 
- // Created:     2006-08-10
 
- // Copyright:   (c) 2006 REA Elektronik GmbH
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_DFB_WINDOW_H_
 
- #define _WX_DFB_WINDOW_H_
 
- // ---------------------------------------------------------------------------
 
- // headers
 
- // ---------------------------------------------------------------------------
 
- #include "wx/dfb/dfbptr.h"
 
- wxDFB_DECLARE_INTERFACE(IDirectFBSurface);
 
- struct wxDFBWindowEvent;
 
- class WXDLLIMPEXP_FWD_CORE wxFont;
 
- class WXDLLIMPEXP_FWD_CORE wxNonOwnedWindow;
 
- class wxOverlayImpl;
 
- class wxDfbOverlaysList;
 
- // ---------------------------------------------------------------------------
 
- // wxWindow
 
- // ---------------------------------------------------------------------------
 
- class WXDLLIMPEXP_CORE wxWindowDFB : public wxWindowBase
 
- {
 
- public:
 
-     wxWindowDFB() { Init(); }
 
-     wxWindowDFB(wxWindow *parent,
 
-                 wxWindowID id,
 
-                 const wxPoint& pos = wxDefaultPosition,
 
-                 const wxSize& size = wxDefaultSize,
 
-                 long style = 0,
 
-                 const wxString& name = wxPanelNameStr)
 
-     {
 
-         Init();
 
-         Create(parent, id, pos, size, style, name);
 
-     }
 
-     virtual ~wxWindowDFB();
 
-     bool Create(wxWindow *parent,
 
-                 wxWindowID id,
 
-                 const wxPoint& pos = wxDefaultPosition,
 
-                 const wxSize& size = wxDefaultSize,
 
-                 long style = 0,
 
-                 const wxString& name = wxPanelNameStr);
 
-     // implement base class (pure) virtual methods
 
-     // -------------------------------------------
 
-     virtual void SetLabel( const wxString &WXUNUSED(label) ) {}
 
-     virtual wxString GetLabel() const { return wxEmptyString; }
 
-     virtual void Raise();
 
-     virtual void Lower();
 
-     virtual bool Show(bool show = true);
 
-     virtual void SetFocus();
 
-     virtual bool Reparent(wxWindowBase *newParent);
 
-     virtual void WarpPointer(int x, int y);
 
-     virtual void Refresh(bool eraseBackground = true,
 
-                          const wxRect *rect = (const wxRect *) NULL);
 
-     virtual void Update();
 
-     virtual bool SetCursor(const wxCursor &cursor);
 
-     virtual bool SetFont(const wxFont &font) { m_font = font; return true; }
 
-     virtual int GetCharHeight() const;
 
-     virtual int GetCharWidth() const;
 
- #if wxUSE_DRAG_AND_DROP
 
-     virtual void SetDropTarget(wxDropTarget *dropTarget);
 
-     // Accept files for dragging
 
-     virtual void DragAcceptFiles(bool accept);
 
- #endif // wxUSE_DRAG_AND_DROP
 
-     virtual WXWidget GetHandle() const { return this; }
 
-     // implementation from now on
 
-     // --------------------------
 
-     // Returns DirectFB surface used for rendering of this window
 
-     wxIDirectFBSurfacePtr GetDfbSurface();
 
-     // returns toplevel window the window belongs to
 
-     wxNonOwnedWindow *GetTLW() const { return m_tlw; }
 
-     virtual bool IsDoubleBuffered() const { return true; }
 
- protected:
 
-     // implement the base class pure virtuals
 
-     virtual void DoGetTextExtent(const wxString& string,
 
-                                  int *x, int *y,
 
-                                  int *descent = NULL,
 
-                                  int *externalLeading = NULL,
 
-                                  const wxFont *theFont = NULL) const;
 
-     virtual void DoClientToScreen(int *x, int *y) const;
 
-     virtual void DoScreenToClient(int *x, int *y) const;
 
-     virtual void DoGetPosition(int *x, int *y) const;
 
-     virtual void DoGetSize(int *width, int *height) const;
 
-     virtual void DoGetClientSize(int *width, int *height) const;
 
-     virtual void DoSetSize(int x, int y,
 
-                            int width, int height,
 
-                            int sizeFlags = wxSIZE_AUTO);
 
-     virtual void DoSetClientSize(int width, int height);
 
-     virtual void DoCaptureMouse();
 
-     virtual void DoReleaseMouse();
 
-     virtual void DoThaw();
 
-     // move the window to the specified location and resize it: this is called
 
-     // from both DoSetSize() and DoSetClientSize() and would usually just call
 
-     // ::MoveWindow() except for composite controls which will want to arrange
 
-     // themselves inside the given rectangle
 
-     virtual void DoMoveWindow(int x, int y, int width, int height);
 
-     // return DFB surface used to render this window (will be assigned to
 
-     // m_surface if the window is visible)
 
-     virtual wxIDirectFBSurfacePtr ObtainDfbSurface() const;
 
-     // this method must be called when window's position, size or visibility
 
-     // changes; it resets m_surface so that ObtainDfbSurface has to be called
 
-     // next time GetDfbSurface is called
 
-     void InvalidateDfbSurface();
 
-     // called by parent to render (part of) the window
 
-     void PaintWindow(const wxRect& rect);
 
-     // paint window's overlays (if any) on top of window's surface
 
-     void PaintOverlays(const wxRect& rect);
 
-     // refreshes the entire window (including non-client areas)
 
-     void DoRefreshWindow();
 
-     // refreshes given rectangle of the window (in window, _not_ client coords)
 
-     virtual void DoRefreshRect(const wxRect& rect);
 
-     // refreshes given rectangle; unlike RefreshRect(), the argument is in
 
-     // window, not client, coords and unlike DoRefreshRect() and like Refresh(),
 
-     // does nothing if the window is hidden or frozen
 
-     void RefreshWindowRect(const wxRect& rect);
 
-     // add/remove overlay for this window
 
-     void AddOverlay(wxOverlayImpl *overlay);
 
-     void RemoveOverlay(wxOverlayImpl *overlay);
 
-     // DirectFB events handling
 
-     void HandleKeyEvent(const wxDFBWindowEvent& event_);
 
- private:
 
-     // common part of all ctors
 
-     void Init();
 
-     // counterpart to SetFocus
 
-     void DFBKillFocus();
 
- protected:
 
-     // toplevel window (i.e. DirectFB window) this window belongs to
 
-     wxNonOwnedWindow *m_tlw;
 
- private:
 
-     // subsurface of TLW's surface covered by this window
 
-     wxIDirectFBSurfacePtr m_surface;
 
-     // position of the window (relative to the parent, not used by wxTLW, so
 
-     // don't access it directly)
 
-     wxRect m_rect;
 
-     // overlays for this window (or NULL if it doesn't have any)
 
-     wxDfbOverlaysList *m_overlays;
 
-     friend class wxNonOwnedWindow; // for HandleXXXEvent
 
-     friend class wxOverlayImpl; // for Add/RemoveOverlay
 
-     friend class wxWindowDCImpl; // for PaintOverlays
 
-     DECLARE_DYNAMIC_CLASS(wxWindowDFB)
 
-     wxDECLARE_NO_COPY_CLASS(wxWindowDFB);
 
-     DECLARE_EVENT_TABLE()
 
- };
 
- #endif // _WX_DFB_WINDOW_H_
 
 
  |