]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/mgl/window.h
   1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        wx/mgl/window.h 
   3 // Purpose:     wxWindow class 
   4 // Author:      Vaclav Slavik 
   6 // Copyright:   (c) 2001-2002 SciTech Software, Inc. (www.scitechsoft.com) 
   7 // Licence:     wxWindows licence 
   8 ///////////////////////////////////////////////////////////////////////////// 
  13 // --------------------------------------------------------------------------- 
  15 // --------------------------------------------------------------------------- 
  18     #pragma interface "window.h" 
  26 // --------------------------------------------------------------------------- 
  27 // wxWindow declaration for MGL 
  28 // --------------------------------------------------------------------------- 
  30 class WXDLLEXPORT wxWindowMGL 
: public wxWindowBase
 
  33     wxWindowMGL() { Init(); } 
  35     wxWindowMGL(wxWindow 
*parent
, 
  37                 const wxPoint
& pos 
= wxDefaultPosition
, 
  38                 const wxSize
& size 
= wxDefaultSize
, 
  40                 const wxString
& name 
= wxPanelNameStr
) 
  43         Create(parent
, id
, pos
, size
, style
, name
); 
  46     virtual ~wxWindowMGL(); 
  48     bool Create(wxWindow 
*parent
, 
  50                 const wxPoint
& pos 
= wxDefaultPosition
, 
  51                 const wxSize
& size 
= wxDefaultSize
, 
  53                 const wxString
& name 
= wxPanelNameStr
); 
  58     virtual bool Show(bool show 
= TRUE
); 
  60     virtual void SetFocus(); 
  62     virtual bool Reparent(wxWindowBase 
*newParent
); 
  64     virtual void WarpPointer(int x
, int y
); 
  66     virtual void Refresh(bool eraseBackground 
= TRUE
, 
  67                          const wxRect 
*rect 
= (const wxRect 
*) NULL
); 
  68     virtual void Update(); 
  70     virtual void Freeze(); 
  73     virtual bool SetCursor(const wxCursor 
&cursor
); 
  74     virtual bool SetFont(const wxFont 
&font
) { m_font 
= font
; return TRUE
; } 
  76     virtual int GetCharHeight() const; 
  77     virtual int GetCharWidth() const; 
  78     virtual void GetTextExtent(const wxString
& string
, 
  80                                int *descent 
= (int *) NULL
, 
  81                                int *externalLeading 
= (int *) NULL
, 
  82                                const wxFont 
*theFont 
= (const wxFont 
*) NULL
) 
  85 #if wxUSE_DRAG_AND_DROP 
  86     virtual void SetDropTarget(wxDropTarget 
*dropTarget
); 
  87 #endif // wxUSE_DRAG_AND_DROP 
  89     // Accept files for dragging 
  90     virtual void DragAcceptFiles(bool accept
); 
  92 #if WXWIN_COMPATIBILITY 
  94         // Handle a control command 
  95     virtual void OnCommand(wxWindow
& win
, wxCommandEvent
& event
); 
  97         // Override to define new behaviour for default action (e.g. double 
  98         // clicking on a listbox) 
  99     virtual void OnDefaultAction(wxControl 
* WXUNUSED(initiatingItem
)) { } 
 100 #endif // WXWIN_COMPATIBILITY 
 102     virtual WXWidget 
GetHandle() const { return m_wnd
; } 
 104     void SetMGLwindow_t(struct window_t 
*wnd
); 
 106     // implementation from now on 
 107     // -------------------------- 
 111     struct window_t      
*m_wnd
; 
 112     // whether there should be wxEraseEvent before wxPaintEvent or not 
 113     // (see wxWindow::Refresh) 
 115     bool                  m_refreshAfterThaw
:1; 
 116     int                   m_eraseBackground
; 
 118     // implement the base class pure virtuals 
 119     virtual void DoClientToScreen( int *x
, int *y 
) const; 
 120     virtual void DoScreenToClient( int *x
, int *y 
) const; 
 121     virtual void DoGetPosition( int *x
, int *y 
) const; 
 122     virtual void DoGetSize( int *width
, int *height 
) const; 
 123     virtual void DoGetClientSize( int *width
, int *height 
) const; 
 124     virtual void DoSetSize(int x
, int y
, 
 125                            int width
, int height
, 
 126                            int sizeFlags 
= wxSIZE_AUTO
); 
 127     virtual void DoSetClientSize(int width
, int height
); 
 129     virtual void DoCaptureMouse(); 
 130     virtual void DoReleaseMouse(); 
 132     // move the window to the specified location and resize it: this is called 
 133     // from both DoSetSize() and DoSetClientSize() and would usually just call 
 134     // ::MoveWindow() except for composite controls which will want to arrange 
 135     // themselves inside the given rectangle 
 136     virtual void DoMoveWindow(int x
, int y
, int width
, int height
); 
 138     void OnInternalIdle(); 
 141     // common part of all ctors 
 143     // counterpart to SetFocus 
 146     MGLDevCtx 
*m_paintMGLDC
; 
 147     friend class wxPaintDC
; 
 149     DECLARE_DYNAMIC_CLASS(wxWindowMGL
) 
 150     DECLARE_NO_COPY_CLASS(wxWindowMGL
) 
 151     DECLARE_EVENT_TABLE() 
 154     void HandlePaint(MGLDevCtx 
*dc
); 
 155     // needed by wxWindowPainter 
 156     MGLDevCtx 
*GetPaintMGLDC() const { return m_paintMGLDC
; }