00001
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00033
00034 #ifndef GROOVX_GFX_TOGLET_H_UTC20050626084023_DEFINED
00035 #define GROOVX_GFX_TOGLET_H_UTC20050626084023_DEFINED
00036
00037 #include "tk/widget.h"
00038
00039 class GxCamera;
00040 class GxNode;
00041 class GxScene;
00042
00043 namespace Gfx
00044 {
00045 class Canvas;
00046 }
00047
00048 namespace nub
00049 {
00050 template <class T> class ref;
00051 template <class T> class soft_ref;
00052 }
00053
00054
00055
00057
00058 class Toglet : public tcl::TkWidget
00059 {
00060 protected:
00061 Toglet(bool pack=true, bool topLevel=false);
00062
00063 public:
00064
00065 virtual ~Toglet() throw();
00066
00068
00070 static Toglet* make();
00071
00073
00075 static Toglet* makeToplevel();
00076
00078 static nub::soft_ref<Toglet> getCurrent();
00079
00081 static void setCurrent(nub::soft_ref<Toglet> toglet);
00082
00084 static void defaultParent(const char* pathname);
00085
00087 nub::soft_ref<Gfx::Canvas> getCanvas() const;
00088
00089 void makeCurrent() const;
00090
00092 virtual void displayCallback();
00093
00095 virtual void reshapeCallback(int width, int height);
00096
00098 void swapBuffers();
00099
00100
00101
00102 GxScene& scene();
00103
00104 void render();
00105 void fullRender();
00106 void clearscreen();
00107 void fullClearscreen();
00108 void undraw();
00109 void setVisibility(bool vis);
00110 void setHold(bool hold_on);
00111 void allowRefresh(bool allow);
00112 const nub::ref<GxCamera>& getCamera() const;
00113 void setCamera(const nub::ref<GxCamera>& cam);
00114 void setDrawable(const nub::ref<GxNode>& node);
00115 void animate(unsigned int framesPerSecond);
00116
00117
00118 private:
00119 Toglet(const Toglet&);
00120 Toglet& operator=(const Toglet&);
00121
00122 class Impl;
00123 Impl* const rep;
00124 };
00125
00126 static const char __attribute__((used)) vcid_groovx_gfx_toglet_h_utc20050626084023[] = "$Id: toglet.h 10065 2007-04-12 05:54:56Z rjpeters $ $HeadURL: file:
00127 #endif // !GROOVX_GFX_TOGLET_H_UTC20050626084023_DEFINED