Toglet Class Reference

Toglet is an OpenGL Tk widget. More...

#include <tcl-gfx/toglet.h>

Inheritance diagram for Toglet:

Inheritance graph
[legend]
Collaboration diagram for Toglet:

Collaboration graph
[legend]

List of all members.

Public Member Functions

nub::soft_ref< Gfx::CanvasgetCanvas () const
 Return the associated canvas.
void makeCurrent () const
virtual void displayCallback ()
 Overridden from tcl::TkWidget.
virtual void reshapeCallback (int width, int height)
 Overridden from tcl::TkWidget.
void swapBuffers ()
 Swap buffers in a double-buffered GL context.
GxScenescene ()
void render ()
void fullRender ()
void clearscreen ()
void fullClearscreen ()
void undraw ()
void setVisibility (bool vis)
void setHold (bool hold_on)
void allowRefresh (bool allow)
const nub::ref< GxCamera > & getCamera () const
void setCamera (const nub::ref< GxCamera > &cam)
void setDrawable (const nub::ref< GxNode > &node)
void animate (unsigned int framesPerSecond)
void destroyWidget ()
void winInfo () throw ()
 Print this window's X11 tidbits to stderr.
int width () const
int height () const
geom::vec2< int > size () const
void setWidth (int w)
void setHeight (int h)
void setSize (geom::vec2< int > sz)
tcl::interpreterinterp () const
Tk_Window tkWin () const
const char * pathname () const
double pixelsPerInch () const
void setCursor (const char *cursor_spec)
 Change the cursor for this window to the one specified by the given string.
const char * getCursor () const
 Get a string describing the current cursor.
void warpPointer (int x, int y) const
 Move the mouse pointer (cursor) to the given coordinates within the widget.
void pack ()
 Pack this widget with default packing options.
void repack (const char *options)
 Re-pack this widget, with optional packing options.
void unpack ()
 Make the "packer" forget this widget.
void iconify ()
void grabKeyboard ()
 Grab the keyboard and take the keyboard focus.
void ungrabKeyboard ()
 Ungrab the keyboard.
void maximize ()
 Make the window fullscreen and grab the keyboard.
void minimize ()
 Make the window small (200x200 or less) and ungrab the keyboard.
void bind (const rutz::fstring &event_sequence, const rutz::fstring &script)
 Bind the given script to the event_sequence.
void takeFocus ()
 Force the keyboard focus to go to this window.
void loseFocus ()
 Drop the keyboard focus back to wherever the mouse pointer is.
void requestRedisplay ()
void hook ()
nub::uid id () const throw ()
rutz::fstring real_typename () const
 Returns the typename of the full object.
virtual rutz::fstring obj_typename () const
 Returns the (apparent) typename of the full object.
rutz::fstring unique_name () const
 Returns a short string describing the object by its typename and id.
void * operator new (size_t bytes)
void operator delete (void *space, size_t bytes)
void mark_as_volatile () throw ()
 Mark this object as a volatile (unshareable) object.
void incr_ref_count () const throw ()
 Increment the object's reference count.
void decr_ref_count () const throw ()
 Decrement the object's reference count.
void decr_ref_count_no_delete () const throw ()
 Decrement the object's reference count, but don't delete it.
bool is_shared () const throw ()
 Returns true if no external client has sole ownership of the object.
bool is_unshared () const throw ()
 Returns true if there is a sole external owner of the object.
bool is_not_shareable () const throw ()
ref_counts * get_counts () const throw ()
 Returns the object's reference count manager.
int dbg_ref_count () const throw ()
 FOR TEST/DEBUG ONLY! Returns the object's (strong) reference count.
int dbg_weak_ref_count () const throw ()
 FOR TEST/DEBUG ONLY! Returns the object's weak reference count.

Static Public Member Functions

static Togletmake ()
 Returns a new Toglet object.
static TogletmakeToplevel ()
 Returns a new top-level Toglet object.
static nub::soft_ref< TogletgetCurrent ()
 Find the Toglet that most recently had makeCurrent() called for it.
static void setCurrent (nub::soft_ref< Toglet > toglet)
 Equivalent to calling toglet->makeCurrent().
static void defaultParent (const char *pathname)
 Specify which Tk window should be the parent of new Toglet's.

Public Attributes

nub::Signal1< const
tcl::ButtonPressEvent & > 
sigButtonPressed
nub::Signal1< const
tcl::KeyPressEvent & > 
sigKeyPressed

Protected Member Functions

 Toglet (bool pack=true, bool topLevel=false)

Classes

class  Impl


Detailed Description

Toglet is an OpenGL Tk widget.

Definition at line 58 of file toglet.h.


Member Function Documentation

Toglet * Toglet::make (  )  [static]

Returns a new Toglet object.

Note that the object will be "volatile" -- it manages its own lifetime.

Definition at line 263 of file toglet.cc.

Toglet * Toglet::makeToplevel (  )  [static]

Returns a new top-level Toglet object.

Note that the object will be "volatile" -- it manages its own lifetime.

Definition at line 272 of file toglet.cc.

void tcl::TkWidget::repack ( const char *  options  )  [inherited]

Re-pack this widget, with optional packing options.

The options string is just an ordinary list of arguments to the Tk "pack" command.

Definition at line 645 of file widget.cc.

References rutz::sfmt().

nub::uid nub::object::id (  )  const throw () [inherited]

Returns the unique id for this object. The unique id will always be strictly positive; zero is always an invalid unique id.

Definition at line 62 of file object.cc.

rutz::fstring nub::object::real_typename (  )  const [inherited]

Returns the typename of the full object.

The result is a demangled version of typeid(*this).name(), which should very closely resemble the way the object was declared in source code.

Definition at line 67 of file object.cc.

References rutz::demangled_name().

Referenced by nub::object::obj_typename().

rutz::fstring nub::object::obj_typename (  )  const [virtual, inherited]

Returns the (apparent) typename of the full object.

The default implementation just returns real_typename(). However, certain kinds of objects -- e.g., proxy objects -- might usefully choose to have obj_typename() return something besides the real_typename(), in order to masquerade as a different type of object.

Reimplemented in io::proxy< C >, io::const_proxy< C >, MtxObj, and TrialMemFuncEvent.

Definition at line 73 of file object.cc.

References nub::object::real_typename().

Referenced by io::legacy_reader::read_root(), and nub::object::unique_name().

void * nub::ref_counted::operator new ( size_t  bytes  )  [inherited]

Class-specific operator new; protected to ensure that clients use factory functions.

Definition at line 157 of file refcounted.cc.

void nub::ref_counted::operator delete ( void *  space,
size_t  bytes 
) [inherited]

Class-specific operator delete; private since deletion should only happen in ref_counted::decr_ref_count.

Definition at line 163 of file refcounted.cc.

void nub::ref_counted::incr_ref_count (  )  const throw () [inherited]

Increment the object's reference count.

This operation (on the strong reference count) is not permitted if the object is unshareable. Unshareable objects can only have their weak reference counts manipulated.

Definition at line 207 of file refcounted.cc.

References nub::ref_counts::acquire_strong().

Referenced by GxEmptyNode::make().

void nub::ref_counted::decr_ref_count (  )  const throw () [inherited]

Decrement the object's reference count.

If this causes the reference count to fall to zero or below, the pointee and the pointer will be destroyed by a call to 'delete this'. This operation (on the strong reference count) is not permitted if the object is unshareable. Unshareable objects can only have their weak reference counts manipulated.

Definition at line 212 of file refcounted.cc.

References nub::ref_counts::release_strong().

void nub::ref_counted::decr_ref_count_no_delete (  )  const throw () [inherited]

Decrement the object's reference count, but don't delete it.

Unlike decr_ref_count(), the object will NOT be delete'd if the reference count falls to zero. This operation (on the strong reference count) is not permitted if the object is unshareable. Unshareable objects can only have their weak reference counts manipulated.

Definition at line 221 of file refcounted.cc.

References nub::ref_counts::release_strong_no_delete().

bool nub::ref_counted::is_shared (  )  const throw () [inherited]

Returns true if no external client has sole ownership of the object.

This may occur if either (1) the reference count is greater than one, or (2) the object is_not_shareable(), meaning that the object itself is the only "owner".

Definition at line 226 of file refcounted.cc.

References rutz::mutex_atomic_int::atomic_get(), nub::ref_counted::is_not_shareable(), and nub::ref_counts::m_strong.

Referenced by nub::ref_counted::is_unshared().

bool nub::ref_counted::is_unshared (  )  const throw () [inherited]

Returns true if there is a sole external owner of the object.

This occurs if the reference count is one or less and the object is shareable.

Definition at line 236 of file refcounted.cc.

References nub::ref_counted::is_shared().

bool nub::ref_counted::is_not_shareable (  )  const throw () [inherited]

Returns true if the object is not shareable for any reason. This could be because its lifespan is volatile (such as objects representing on-screen windows that can be dismissed by the user). The default is for objects to be shareable; objects can declare themselves as unshareable by calling mark_as_volatile().

Definition at line 242 of file refcounted.cc.

References nub::ref_counts::m_volatile.

Referenced by nub::ref_counted::is_shared().


The documentation for this class was generated from the following files:

The software described here is Copyright (c) 1998-2005, Rob Peters.
This page was generated Wed Dec 3 06:55:52 2008 by Doxygen version 1.5.5.