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 // ---------------------------------------------------------------------------
22 // ---------------------------------------------------------------------------
23 // wxWindow declaration for MGL
24 // ---------------------------------------------------------------------------
26 class WXDLLIMPEXP_CORE wxWindowMGL
: public wxWindowBase
29 wxWindowMGL() { Init(); }
31 wxWindowMGL(wxWindow
*parent
,
33 const wxPoint
& pos
= wxDefaultPosition
,
34 const wxSize
& size
= wxDefaultSize
,
36 const wxString
& name
= wxPanelNameStr
)
39 Create(parent
, id
, pos
, size
, style
, name
);
42 virtual ~wxWindowMGL();
44 bool Create(wxWindow
*parent
,
46 const wxPoint
& pos
= wxDefaultPosition
,
47 const wxSize
& size
= wxDefaultSize
,
49 const wxString
& name
= wxPanelNameStr
);
51 // implement base class (pure) virtual methods
52 // -------------------------------------------
54 virtual void SetLabel( const wxString
&WXUNUSED(label
) ) {}
55 virtual wxString
GetLabel() const { return wxEmptyString
; }
60 virtual bool Show(bool show
= true);
62 virtual void SetFocus();
64 virtual bool Reparent(wxWindowBase
*newParent
);
66 virtual void WarpPointer(int x
, int y
);
68 virtual void Refresh(bool eraseBackground
= true,
69 const wxRect
*rect
= (const wxRect
*) NULL
);
70 virtual void Update();
72 virtual bool SetCursor(const wxCursor
&cursor
);
73 virtual bool SetFont(const wxFont
&font
) { m_font
= font
; return true; }
75 virtual int GetCharHeight() const;
76 virtual int GetCharWidth() const;
77 virtual void GetTextExtent(const wxString
& string
,
80 int *externalLeading
= NULL
,
81 const wxFont
*theFont
= (const wxFont
*) NULL
)
84 #if wxUSE_DRAG_AND_DROP
85 virtual void SetDropTarget(wxDropTarget
*dropTarget
);
86 #endif // wxUSE_DRAG_AND_DROP
88 // Accept files for dragging
89 virtual void DragAcceptFiles(bool accept
);
91 virtual WXWidget
GetHandle() const { return m_wnd
; }
93 void SetMGLwindow_t(struct window_t
*wnd
);
95 // implementation from now on
96 // --------------------------
98 void OnInternalIdle();
101 virtual void DoFreeze();
102 virtual void DoThaw();
106 struct window_t
*m_wnd
;
107 // whether there should be wxEraseEvent before wxPaintEvent or not
108 // (see wxWindow::Refresh)
109 bool m_refreshAfterThaw
:1;
110 int m_eraseBackground
;
112 // implement the base class pure virtuals
113 virtual void DoClientToScreen( int *x
, int *y
) const;
114 virtual void DoScreenToClient( int *x
, int *y
) const;
115 virtual void DoGetPosition( int *x
, int *y
) const;
116 virtual void DoGetSize( int *width
, int *height
) const;
117 virtual void DoGetClientSize( int *width
, int *height
) const;
118 virtual void DoSetSize(int x
, int y
,
119 int width
, int height
,
120 int sizeFlags
= wxSIZE_AUTO
);
121 virtual void DoSetClientSize(int width
, int height
);
123 virtual void DoCaptureMouse();
124 virtual void DoReleaseMouse();
126 // move the window to the specified location and resize it: this is called
127 // from both DoSetSize() and DoSetClientSize() and would usually just call
128 // ::MoveWindow() except for composite controls which will want to arrange
129 // themselves inside the given rectangle
130 virtual void DoMoveWindow(int x
, int y
, int width
, int height
);
133 // common part of all ctors
135 // counterpart to SetFocus
138 MGLDevCtx
*m_paintMGLDC
;
139 friend class wxPaintDC
;
141 DECLARE_DYNAMIC_CLASS(wxWindowMGL
)
142 wxDECLARE_NO_COPY_CLASS(wxWindowMGL
);
143 DECLARE_EVENT_TABLE()
146 void HandlePaint(MGLDevCtx
*dc
);
147 // needed by wxWindowPainter
148 MGLDevCtx
*GetPaintMGLDC() const { return m_paintMGLDC
; }
152 #endif // _WX_WINDOW_H_