-/*\r
-Copyright (c) 2001, Loki software, inc.\r
-All rights reserved.\r
-\r
-Redistribution and use in source and binary forms, with or without modification, \r
-are permitted provided that the following conditions are met:\r
-\r
-Redistributions of source code must retain the above copyright notice, this list \r
-of conditions and the following disclaimer.\r
-\r
-Redistributions in binary form must reproduce the above copyright notice, this\r
-list of conditions and the following disclaimer in the documentation and/or\r
-other materials provided with the distribution.\r
-\r
-Neither the name of Loki software nor the names of its contributors may be used \r
-to endorse or promote products derived from this software without specific prior \r
-written permission. \r
-\r
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' \r
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE \r
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY \r
-DIRECT,INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES \r
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; \r
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON \r
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT \r
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS \r
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
-*/\r
-\r
-#ifndef _GLWINDOW_H_\r
-#define _GLWINDOW_H_\r
-\r
-class GLWindow\r
-{\r
- public:\r
- GLWindow (bool zbuffer);\r
- virtual ~GLWindow ();\r
-\r
- bool MakeCurrent ();\r
- void SwapBuffers ();\r
- void SetTimer (guint millisec);\r
- void KillTimer ();\r
- bool HasTimer ()\r
- { return m_nTimer != 0; }\r
- void DestroyContext ();\r
- void CreateContext ();\r
-\r
- virtual void OnCreate () { }\r
- virtual void OnExpose () { }\r
-\r
- virtual void OnLButtonDown (guint32 flags, int x, int y) { }\r
- virtual void OnRButtonDown (guint32 flags, int x, int y) { }\r
- virtual void OnMButtonDown (guint32 flags, int x, int y) { }\r
- virtual void OnLButtonUp (guint32 flags, int pointx, int pointy) { }\r
- virtual void OnRButtonUp (guint32 flags, int pointx, int pointy) { }\r
- virtual void OnMButtonUp (guint32 flags, int pointx, int pointy) { }\r
- virtual void OnMouseMove (guint32 flags, int pointx, int pointy) { }\r
-\r
- \r
- virtual void OnSize (int cx, int cy) { }\r
- virtual void OnTimer () { }\r
-\r
- virtual void OnMouseWheel (bool bUp) { }\r
-\r
- void RedrawWindow ()\r
- {\r
- gtk_widget_queue_draw(m_pWidget);\r
- }\r
-\r
- void SetFocus ()\r
- {\r
- /* gdk_window_raise (m_pWidget->window); */\r
- }\r
-\r
- void SetCapture ()\r
- {\r
- m_bMouseCapture = TRUE;\r
- }\r
-\r
- void ReleaseCapture ()\r
- {\r
- m_bMouseCapture = FALSE;\r
- }\r
-\r
- bool HasCapture ()\r
- {\r
- return m_bMouseCapture;\r
- }\r
-\r
- GtkWidget* GetWidget ()\r
- {\r
- return m_pWidget;\r
- }\r
-\r
- // member variables\r
- public:\r
- GtkWidget* m_pParent; // for floating windows only\r
-\r
- protected:\r
- bool m_bMouseCapture;\r
- GtkWidget* m_pWidget;\r
-\r
- private:\r
- guint m_nTimer; // only one timer supported\r
-};\r
-\r
-#endif //_GLWINDOW_H_\r
+/*
+Copyright (c) 2001, Loki software, inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list
+of conditions and the following disclaimer.
+
+Redistributions in binary form must reproduce the above copyright notice, this
+list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+Neither the name of Loki software nor the names of its contributors may be used
+to endorse or promote products derived from this software without specific prior
+written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT,INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef _GLWINDOW_H_
+#define _GLWINDOW_H_
+
+class GLWindow
+{
+ public:
+ GLWindow (bool zbuffer);
+ virtual ~GLWindow ();
+
+ bool MakeCurrent ();
+ void SwapBuffers ();
+ void SetTimer (guint millisec);
+ void KillTimer ();
+ bool HasTimer ()
+ { return m_nTimer != 0; }
+ void DestroyContext ();
+ void CreateContext ();
+
+ virtual void OnCreate () { }
+ virtual void OnExpose () { }
+
+ virtual void OnLButtonDown (guint32 flags, int x, int y) { }
+ virtual void OnRButtonDown (guint32 flags, int x, int y) { }
+ virtual void OnMButtonDown (guint32 flags, int x, int y) { }
+ virtual void OnLButtonUp (guint32 flags, int pointx, int pointy) { }
+ virtual void OnRButtonUp (guint32 flags, int pointx, int pointy) { }
+ virtual void OnMButtonUp (guint32 flags, int pointx, int pointy) { }
+ virtual void OnMouseMove (guint32 flags, int pointx, int pointy) { }
+
+
+ virtual void OnSize (int cx, int cy) { }
+ virtual void OnTimer () { }
+
+ virtual void OnMouseWheel (bool bUp) { }
+
+ void RedrawWindow ()
+ {
+ gtk_widget_queue_draw(m_pWidget);
+ }
+
+ void SetFocus ()
+ {
+ /* gdk_window_raise (m_pWidget->window); */
+ }
+
+ void SetCapture ()
+ {
+ m_bMouseCapture = TRUE;
+ }
+
+ void ReleaseCapture ()
+ {
+ m_bMouseCapture = FALSE;
+ }
+
+ bool HasCapture ()
+ {
+ return m_bMouseCapture;
+ }
+
+ GtkWidget* GetWidget ()
+ {
+ return m_pWidget;
+ }
+
+ // member variables
+ public:
+ GtkWidget* m_pParent; // for floating windows only
+
+ protected:
+ bool m_bMouseCapture;
+ GtkWidget* m_pWidget;
+
+ private:
+ guint m_nTimer; // only one timer supported
+};
+
+#endif //_GLWINDOW_H_