23#ifndef _SO_WIN_GDI_WIDGET_H_
24#define _SO_WIN_GDI_WIDGET_H_
26#include <Inventor/Win/SoWinBeginStrict.h>
28#include <Inventor/Win/SoWinComponent.h>
40 virtual Window getNormalWindow();
42 Hdc getNormalDC() {
return hdcNormal; }
43 Hdc copyWindowBits() ;
45 SoWidget getNormalWidget() {
return singleBufferWidget; }
51 void setBorder(
SbBool onOrOff);
52 int getBorderSize() {
return borderSize;} ;
53 SbBool isBorder()
const {
return borderSize != 0; }
58 SoWidget parent = NULL,
59 const char *name = NULL,
60 SbBool buildInsideParent = TRUE,
64 virtual ~SoWinGDIWidget();
67 virtual void redraw() = 0;
68 virtual void processEvent(XAnyEvent *anyevent);
75 virtual void initGraphic();
76 virtual void sizeChanged(
const SbVec2s &newSize);
77 virtual void widgetChanged(SoWidget newWidget);
83 void setGlxSize(
SbVec2s newSize);
84 const SbVec2s & getGlxSize()
const {
return glxSize; }
89 static void eventHandler(SoWidget, SoWinGDIWidget *, XAnyEvent *,
Boolean *);
91 SbBool isRGBMode() {
return (TRUE); }
97 SoWidget buildWidget(SoWidget parent);
98 SoWidget getGlxMgrWidget() {
return singleBufferWidget; }
100 Pixmap XCreatePixmap(
112 int width,
int height);
130 unsigned int height ,
138 SoWidget singleBufferWidget;
157 virtual void onExpose();
185 void destroyNormalWindows();
186 void destroyGDIWidget(SoWidget &w);
189 static void ginitCB(SoWidget, SoWinGDIWidget *,
XtPointer);
190 static void exposeCB(SoWidget, SoWinGDIWidget *,
XtPointer);
191 static void resizeCB(SoWidget, SoWinGDIWidget *,
XtPointer);
192 static void mgrStructureNotifyCB(SoWidget, SoWinGDIWidget *, XAnyEvent *,
Boolean *);
195 static LRESULT CALLBACK gdiWindowProc( Hwnd hwnd, UINT message,
196 WPARAM wParam, LPARAM lParam );
199#include <Inventor/Win/SoWinEndStrict.h>