Main Page | Class Hierarchy | Class List | File List | Class Members

Flu_GL_Window.h

00001 // $Id: Flu_GL_Window.h,v 1.11 2004/07/27 19:34:29 jbryan Exp $
00002 
00003 /***************************************************************
00004  *                FLU - FLTK Utility Widgets 
00005  *  Copyright (C) 2002 Ohio Supercomputer Center, Ohio State University
00006  *
00007  * This file and its content is protected by a software license.
00008  * You should have received a copy of this license with this file.
00009  * If not, please contact the Ohio Supercomputer Center immediately:
00010  * Attn: Jason Bryan Re: FLU 1224 Kinnear Rd, Columbus, Ohio 43212
00011  * 
00012  ***************************************************************/
00013 
00014 
00015 
00016 #ifndef _FLU_GL_WINDOW_H
00017 #define _FLU_GL_WINDOW_H
00018 
00019 #include <stdio.h>
00020 
00021 /* fltk includes */
00022 #include <FL/Fl.H>
00023 #include <FL/Fl_Gl_Window.H>
00024 
00025 #include "FLU/Flu_Enumerations.h"
00026 
00028 class FLU_EXPORT  Flu_GL_Window : public Fl_Gl_Window
00029 {
00030 
00031  public:
00032 
00034   Flu_GL_Window( int x, int y, int w, int h, const char *label = 0 );
00035 
00037   Flu_GL_Window( int w, int h, const char *label = 0 );
00038 
00040   virtual ~Flu_GL_Window();
00041 
00043   void redraw();
00044 
00046 
00048   inline bool is_context_valid()
00049     { return( can_do() > 0 ); }
00050 
00052 
00053   inline void cartesianInput( bool b )
00054     { _cartesian = b; }
00055 
00057   inline bool cartesianInput() const
00058     { return _cartesian; }
00059 
00064 
00065   inline void setInitFunc( void (*cb)(void*), void* cbd = NULL )
00066     { _initCB = cb; _initCBD = cbd; }
00067 
00068   inline void setResizeFunc( void (*cb)(int, int, void*), void* cbd = NULL )
00069     { _resizeCB = cb; _resizeCBD = cbd; }
00070 
00071   inline void setDrawFunc( void (*cb)(void*), void* cbd = NULL )
00072     { _drawCB = cb; _drawCBD = cbd; }
00073 
00074   inline void setMouseWheelFunc( void (*cb)(int, int, int, int, void*), void* cbd = NULL )
00075     { _mouseWheelCB = cb; _mouseWheelCBD = cbd; }
00076 
00077   inline void setMouseDownFunc( void (*cb)(int, int, int, void*), void* cbd = NULL )
00078     { _mouseDownCB = cb; _mouseDownCBD = cbd; }
00079 
00080   inline void setMouseUpFunc( void (*cb)(int, int, int, void*), void* cbd = NULL )
00081     { _mouseUpCB = cb; _mouseUpCBD = cbd; }
00082 
00083   inline void setMouseDragFunc( void (*cb)(int, int, void*), void* cbd = NULL )
00084     { _mouseDragCB = cb; _mouseDragCBD = cbd; }
00085 
00086   inline void setMouseMoveFunc( void (*cb)(int, int, void*), void* cbd = NULL )
00087     { _mouseMoveCB = cb; _mouseMoveCBD = cbd; }
00088 
00089   inline void setMouseEnterFunc( void (*cb)(void*), void* cbd = NULL )
00090     { _enterCB = cb; _enterCBD = cbd; }
00091 
00092   inline void setMouseExitFunc( void (*cb)(void*), void* cbd = NULL )
00093     { _exitCB = cb; _exitCBD = cbd; }
00094 
00095   inline void setKeyboardFunc( void (*cb)(int, int, int, void*), void* cbd = NULL )
00096     { _keyboardCB = cb; _keyboardCBD = cbd; }
00097 
00099 
00101 
00103   inline static void setAllInitFunc( void (*cb)(void*), void* cbd = NULL )
00104     { allInitCB = cb; allInitCBD = cbd; }
00105 
00106  protected:
00107 
00108   void (*_drawCB)(void*);
00109   void* _drawCBD;
00110 
00111   void (*_resizeCB)(int, int, void*);
00112   void* _resizeCBD;
00113 
00114   void (*_initCB)(void*);
00115   void* _initCBD;
00116 
00117   void (*_mouseWheelCB)(int, int, int, int, void*);
00118   void* _mouseWheelCBD;
00119 
00120   void (*_mouseDownCB)(int, int, int, void*);
00121   void* _mouseDownCBD;
00122 
00123   void (*_mouseUpCB)(int, int, int, void*);
00124   void* _mouseUpCBD;
00125 
00126   void (*_mouseDragCB)(int, int, void*);
00127   void* _mouseDragCBD;
00128 
00129   void (*_mouseMoveCB)(int, int, void*);
00130   void* _mouseMoveCBD;
00131 
00132   void (*_keyboardCB)(int, int, int, void*);
00133   void* _keyboardCBD;
00134 
00135   void (*_enterCB)(void*);
00136   void* _enterCBD;
00137 
00138   void (*_exitCB)(void*);
00139   void* _exitCBD;
00140 
00141  private:
00142 
00143   typedef void (*AllInitProto)(void*);
00144 
00145   static AllInitProto allInitCB;
00146   static void* allInitCBD;
00147 
00148   bool _firstDraw;
00149   bool _cartesian;
00150 
00151   /* overridden from Fl_Gl_Window */
00152   int handle( int event );
00153   void draw();
00154 
00155 };
00156 
00157 #endif

Generated on Mon Aug 2 10:27:46 2004 for FLTK Utility Library and Widget Collection (FLU) by doxygen 1.3.5