Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes
vgui_shell_tableau Class Reference

Tableau to go at the top of one's tableau hierarchy. More...

#include <vgui_shell_tableau.h>

Inheritance diagram for vgui_shell_tableau:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 vgui_shell_tableau ()
 vgui_shell_tableau (vgui_tableau_sptr const &)
 vgui_shell_tableau (vgui_tableau_sptr const &, vgui_tableau_sptr const &)
 vgui_shell_tableau (vgui_tableau_sptr const &, vgui_tableau_sptr const &, vgui_tableau_sptr const &)
 vgui_shell_tableau (vgui_tableau_sptr const &, vgui_tableau_sptr const &, vgui_tableau_sptr const &, vgui_tableau_sptr const &)
bool handle (vgui_event const &)
 Handle all events sent to this tableau.
vcl_string type_name () const
 Returns the type of this tableau ('vgui_composite_tableau').
void get_popup (vgui_popup_params const &, vgui_menu &)
 Get the default popup menu for the tableau.
void set_quit (bool on)
void set_enable_key_bindings (bool on)
 Enable (if true) or disable (if false) key bindings.
vgui_clear_tableau_sptr get_clear () const
vgui_tview_launcher_tableau_sptr get_graph () const
virtual bool help ()
 Prints info about this tableau - called when '?'is pressed.
vcl_string file_name () const
 There is no obvious filename, so this just returns the type.
vcl_string pretty_name () const
 Returns a nice version of the name, including info on the children.
virtual void notify () const
 Calls notify for the observers.
void add (vgui_tableau_sptr const &t)
 Add a tableau to the list of child tableaux.
void remove (vgui_tableau_sptr const &)
 Remove a tableau from the list of child tableaux.
void clear ()
 Clear the list of child tableaux.
bool toggle (int)
 Toggle the child tableau in the given position between active/inactive.
bool is_active (int)
 Returns true if the child tableau in the given position is active.
virtual vcl_string name () const
 Return the name of the tableau.
void get_parents (vcl_vector< vgui_tableau_sptr > *out) const
 Get the parent tableaux for this tableau.
void get_children (vcl_vector< vgui_tableau_sptr > *out) const
 Get the child tableaux for this tableau.
vgui_tableau_sptr get_child (unsigned i) const
 Get the ith child or return 0.
virtual bool notify_replaced_child (vgui_tableau_sptr const &old_child, vgui_tableau_sptr const &new_child)
 Called whenever a child of this tableau is about to be forcibly replaced.
virtual void add_popup (vgui_menu &)
 Add the given menu to the popup menu for the tableau.
virtual void post_message (char const *, void const *)
 Post a message event.
virtual void post_redraw ()
 Post a draw event.
virtual void post_overlay_redraw ()
 Post an overlay-redraw event.
virtual void post_idle_request ()
 Post an idle request event.
virtual bool draw ()
 Called by default handle when it receives a draw event.
virtual bool mouse_down (int x, int y, vgui_button, vgui_modifier)
 Called by default handle when it receives a mouse down event.
virtual bool mouse_up (int x, int y, vgui_button, vgui_modifier)
 Called by default handle when it receives a mouse up event.
virtual bool motion (int x, int y)
 Called by handle when it receives a mouse motion event.
virtual bool key_press (int x, int y, vgui_key, vgui_modifier)
 Called by default handle when it receives a key-press event.
virtual bool idle ()
 Called when the application is otherwise idle.
void ref () const
 Increase the reference count by one (for smart pointers).
void unref () const
 Decrease the reference count by one (for smart pointers).

Static Public Member Functions

static void get_all (vcl_vector< vgui_tableau_sptr > *out)
 Push all tableaux onto the given vector.
static bool exists (vgui_tableau_sptr const &)
 Returns true if the given address points to a valid tableau.

Public Attributes

vgui_observable observers
 Conceptually, this is a list on which observers can put themselves.
vgui_event_condition c_enable_key_bindings
 The event which occurs to toggle enable/disable key bindings.

Protected Member Functions

 ~vgui_shell_tableau ()
bool get_bounding_box (float low[3], float high[3]) const
 Returns a bounding box large enough to contain all child bounding boxes.
bool add_child (vgui_tableau_sptr const &t)
 Add to list of child tableaux.
bool remove_child (vgui_tableau_sptr const &)
 Remove given tableau from list of child tableaux.
bool index_ok (int)
 Returns true if the given integer could be an index to the child tableaux.

Protected Attributes

vcl_vector
< vgui_parent_child_link
children
 List of child tableaux.
vcl_vector< bool > active
 Whether each child is active or not (ie. using events).

Private Types

typedef vgui_shell_tableau_bindings key_bindings_type

Private Member Functions

void init ()

Private Attributes

bool do_quit
bool enable_key_bindings
key_bindings_type bindings
vgui_clear_tableau_sptr clear
vgui_tview_launcher_tableau_sptr graph

Detailed Description

Tableau to go at the top of one's tableau hierarchy.

A shell tableau is a handy collection of things one often wants at the very top of one's tableau hierarchy. It is essentially an acetate with m utility tableaux at the bottom :

      m+n your_tableau_n <--- last user added child.
      .   ...
      .   ...
      m=3 your_tableau_0 <--- first user added child.
   ^  2   clear_tableau
   |  1   quit_tableau
   |  0   tview_launch_tableau <--- first child.
   

Definition at line 94 of file vgui_shell_tableau.h.


Member Typedef Documentation

Definition at line 96 of file vgui_shell_tableau.h.


Constructor & Destructor Documentation

vgui_shell_tableau::vgui_shell_tableau ( ) [inline]

Definition at line 104 of file vgui_shell_tableau.h.

vgui_shell_tableau::vgui_shell_tableau ( vgui_tableau_sptr const &  t0)

Definition at line 18 of file vgui_shell_tableau.cxx.

vgui_shell_tableau::vgui_shell_tableau ( vgui_tableau_sptr const &  t0,
vgui_tableau_sptr const &  t1 
)

Definition at line 24 of file vgui_shell_tableau.cxx.

vgui_shell_tableau::vgui_shell_tableau ( vgui_tableau_sptr const &  t0,
vgui_tableau_sptr const &  t1,
vgui_tableau_sptr const &  t2 
)

Definition at line 32 of file vgui_shell_tableau.cxx.

vgui_shell_tableau::vgui_shell_tableau ( vgui_tableau_sptr const &  t0,
vgui_tableau_sptr const &  t1,
vgui_tableau_sptr const &  t2,
vgui_tableau_sptr const &  t3 
)

Definition at line 42 of file vgui_shell_tableau.cxx.

vgui_shell_tableau::~vgui_shell_tableau ( ) [protected]

Definition at line 66 of file vgui_shell_tableau.cxx.


Member Function Documentation

void vgui_composite_tableau::add ( vgui_tableau_sptr const &  t) [inline, inherited]

Add a tableau to the list of child tableaux.

Same as add_child().

Definition at line 93 of file vgui_composite_tableau.h.

bool vgui_composite_tableau::add_child ( vgui_tableau_sptr const &  t) [protected, virtual, inherited]

Add to list of child tableaux.

virtual

Reimplemented from vgui_tableau.

Definition at line 192 of file vgui_composite_tableau.cxx.

void vgui_tableau::add_popup ( vgui_menu ) [virtual, inherited]

Add the given menu to the popup menu for the tableau.

Add given menu to the tableau popup menu.

This method is for tableaux to implement if they want to _add_ some items to the popup menu. They can assign to or clear 'menu', but that is not recommended as it would remove what other tableaux put there. The recommended usage is to .add() items or to .include() another menu.

** This is an interface method. it abstracts a behaviour. **

Reimplemented in vgui_satellite_tableau_t< object, data >, vgui_active_tableau, and vgui_clear_tableau.

Definition at line 316 of file vgui_tableau.cxx.

void vgui_composite_tableau::clear ( ) [inherited]

Clear the list of child tableaux.

Definition at line 209 of file vgui_composite_tableau.cxx.

bool vgui_tableau::draw ( ) [virtual, inherited]

Called by default handle when it receives a draw event.

Reimplemented in vgui_function_tableau.

Definition at line 176 of file vgui_tableau.cxx.

bool vgui_tableau::exists ( vgui_tableau_sptr const &  ptr) [static, inherited]

Returns true if the given address points to a valid tableau.

Definition at line 385 of file vgui_tableau.cxx.

vcl_string vgui_composite_tableau::file_name ( ) const [inline, virtual, inherited]

There is no obvious filename, so this just returns the type.

Reimplemented from vgui_tableau.

Definition at line 80 of file vgui_composite_tableau.h.

void vgui_tableau::get_all ( vcl_vector< vgui_tableau_sptr > *  out) [static, inherited]

Push all tableaux onto the given vector.

Definition at line 376 of file vgui_tableau.cxx.

bool vgui_composite_tableau::get_bounding_box ( float  low[3],
float  high[3] 
) const [protected, virtual, inherited]

Returns a bounding box large enough to contain all child bounding boxes.

Returns a bounding box large enough to contain all the child bounding boxes.

Reimplemented from vgui_tableau.

Definition at line 164 of file vgui_composite_tableau.cxx.

vgui_tableau_sptr vgui_tableau::get_child ( unsigned  i) const [inherited]

Get the ith child or return 0.

Get the ith child, or return 0.

Definition at line 274 of file vgui_tableau.cxx.

void vgui_tableau::get_children ( vcl_vector< vgui_tableau_sptr > *  out) const [inherited]

Get the child tableaux for this tableau.

Push children onto the given vcl_vector.

Definition at line 267 of file vgui_tableau.cxx.

vgui_clear_tableau_sptr vgui_shell_tableau::get_clear ( ) const [inline]

Definition at line 124 of file vgui_shell_tableau.h.

vgui_tview_launcher_tableau_sptr vgui_shell_tableau::get_graph ( ) const [inline]

Definition at line 125 of file vgui_shell_tableau.h.

void vgui_tableau::get_parents ( vcl_vector< vgui_tableau_sptr > *  out) const [inherited]

Get the parent tableaux for this tableau.

Push parents onto the given vcl_vector.

Definition at line 260 of file vgui_tableau.cxx.

void vgui_shell_tableau::get_popup ( vgui_popup_params const &  params,
vgui_menu menu 
) [virtual]

Get the default popup menu for the tableau.

Gets popup menu for this tableau.

If recurse is, true, recursively add the popup menus for children and children's children etc.

** this is a mixin method. it does some work for you. **

Reimplemented from vgui_tableau.

Definition at line 118 of file vgui_shell_tableau.cxx.

bool vgui_shell_tableau::handle ( vgui_event const &  event) [virtual]

Handle all events sent to this tableau.

All events (except key-presses '0'-'9' and draw events) are passed to each child until the event is handled. Key presses '0'-'9' toggle the activeness of the children and draw events are sent to all children. Key-press '?' prints info on this file, before being sent to the children.

Reimplemented from vgui_composite_tableau.

Definition at line 76 of file vgui_shell_tableau.cxx.

bool vgui_composite_tableau::help ( ) [virtual, inherited]

Prints info about this tableau - called when '?'is pressed.

Prints info about this tableau - called when '?' is pressed.

Reimplemented from vgui_tableau.

Definition at line 27 of file vgui_composite_tableau.cxx.

bool vgui_tableau::idle ( ) [virtual, inherited]

Called when the application is otherwise idle.

Override if you want to do idle processing. Return false once your idle processing is complete, or if you have no need for more idle processing. Return true if you need more idle processing time.

Definition at line 185 of file vgui_tableau.cxx.

bool vgui_composite_tableau::index_ok ( int  v) [protected, inherited]

Returns true if the given integer could be an index to the child tableaux.

Returns true if given integer could be an index to the child tableaux.

Definition at line 234 of file vgui_composite_tableau.cxx.

void vgui_shell_tableau::init ( ) [private]

Definition at line 54 of file vgui_shell_tableau.cxx.

bool vgui_composite_tableau::is_active ( int  v) [inherited]

Returns true if the child tableau in the given position is active.

Definition at line 251 of file vgui_composite_tableau.cxx.

bool vgui_tableau::key_press ( int  x,
int  y,
vgui_key  ,
vgui_modifier   
) [virtual, inherited]

Called by default handle when it receives a key-press event.

Caled by default handle when it receives a key press event.

Reimplemented in vgui_deck_tableau, vgui_listmanager2D_tableau, vgui_viewer2D_tableau, vgui_function_tableau, and vgui_viewer3D_tableau.

Definition at line 156 of file vgui_tableau.cxx.

bool vgui_tableau::motion ( int  x,
int  y 
) [virtual, inherited]

Called by handle when it receives a mouse motion event.

Called by default handle when it receives a mouse motion event.

Reimplemented in vgui_listmanager2D_tableau, vgui_function_tableau, and vgui_displaylist2D_tableau.

Definition at line 146 of file vgui_tableau.cxx.

bool vgui_tableau::mouse_down ( int  x,
int  y,
vgui_button  ,
vgui_modifier   
) [virtual, inherited]

Called by default handle when it receives a mouse down event.

Reimplemented in vgui_listmanager2D_tableau, vgui_viewer2D_tableau, vgui_function_tableau, vgui_viewer3D_tableau, vgui_displaylist3D_tableau, and vgui_displaylist2D_tableau.

Definition at line 126 of file vgui_tableau.cxx.

bool vgui_tableau::mouse_up ( int  x,
int  y,
vgui_button  ,
vgui_modifier   
) [virtual, inherited]

Called by default handle when it receives a mouse up event.

Reimplemented in vgui_viewer2D_tableau, vgui_function_tableau, and vgui_viewer3D_tableau.

Definition at line 136 of file vgui_tableau.cxx.

virtual vcl_string vgui_tableau::name ( void  ) const [inline, virtual, inherited]

Return the name of the tableau.

Reimplemented in vgui_easy2D_tableau.

Definition at line 90 of file vgui_tableau.h.

void vgui_composite_tableau::notify ( ) const [virtual, inherited]

Calls notify for the observers.

Definition at line 157 of file vgui_composite_tableau.cxx.

bool vgui_tableau::notify_replaced_child ( vgui_tableau_sptr const &  old_child,
vgui_tableau_sptr const &  new_child 
) [virtual, inherited]

Called whenever a child of this tableau is about to be forcibly replaced.

Called when a child of this tableau is forcibly replaced.

This method is called when some part of the program (typically the parent_child_link mechanism) is about to forcibly replace a child of this tableau. The canonical reason to override this is in order to invalidate caches.

Definition at line 302 of file vgui_tableau.cxx.

void vgui_tableau::post_idle_request ( void  ) [virtual, inherited]

Post an idle request event.

The fact that this is virtual does not imply that you should go and override it.

Posting an idle event request means that your tableau has some idle processing that it'd like to do. This means that your tableau will continue to receive vgui_IDLE events until the event handler returns false (i.e. all idle processing is complete). The idle event handler should return false when it has no idle processing, or has completed its idle processing. It may return true if has only partially completed its idle processing; in this case, it will receive more idle event to allow it to complete processing.

Reimplemented in vgui_adaptor_tableau.

Definition at line 235 of file vgui_tableau.cxx.

void vgui_tableau::post_message ( char const *  msg,
void const *  data 
) [virtual, inherited]

Post a message event.

The fact that this is virtual does not imply that you should go and override it.

Reimplemented in vgui_adaptor_tableau.

Definition at line 205 of file vgui_tableau.cxx.

void vgui_tableau::post_overlay_redraw ( void  ) [virtual, inherited]

Post an overlay-redraw event.

Post an overlay redraw event.

The fact that this is virtual does not imply that you should go and override it.

Reimplemented in vgui_adaptor_tableau.

Definition at line 225 of file vgui_tableau.cxx.

void vgui_tableau::post_redraw ( void  ) [virtual, inherited]

Post a draw event.

The fact that this is virtual does not imply that you should go and override it.

Reimplemented in vgui_adaptor_tableau.

Definition at line 215 of file vgui_tableau.cxx.

vcl_string vgui_composite_tableau::pretty_name ( ) const [virtual, inherited]

Returns a nice version of the name, including info on the children.

Reimplemented from vgui_tableau.

Definition at line 84 of file vgui_composite_tableau.cxx.

void vgui_tableau::ref ( ) const [inherited]

Increase the reference count by one (for smart pointers).

Increase the reference count by one (for smart-pointers).

"const" is for convenience, it is cast away internally.

Definition at line 79 of file vgui_tableau.cxx.

void vgui_composite_tableau::remove ( vgui_tableau_sptr const &  t) [inherited]

Remove a tableau from the list of child tableaux.

Remove given tableau from list of child tableaux.

Definition at line 202 of file vgui_composite_tableau.cxx.

bool vgui_composite_tableau::remove_child ( vgui_tableau_sptr const &  t) [protected, virtual, inherited]

Remove given tableau from list of child tableaux.

Reimplemented from vgui_tableau.

Definition at line 218 of file vgui_composite_tableau.cxx.

void vgui_shell_tableau::set_enable_key_bindings ( bool  on)

Enable (if true) or disable (if false) key bindings.

If key bindings is enabled then key presses '0'-'9' will be used by this tableau to toggle the activeness of child tableaux.

Reimplemented from vgui_composite_tableau.

Definition at line 151 of file vgui_shell_tableau.cxx.

void vgui_shell_tableau::set_quit ( bool  on)

Definition at line 137 of file vgui_shell_tableau.cxx.

bool vgui_composite_tableau::toggle ( int  v) [inherited]

Toggle the child tableau in the given position between active/inactive.

Definition at line 241 of file vgui_composite_tableau.cxx.

vcl_string vgui_shell_tableau::type_name ( ) const [inline, virtual]

Returns the type of this tableau ('vgui_composite_tableau').

Reimplemented from vgui_composite_tableau.

Definition at line 118 of file vgui_shell_tableau.h.

void vgui_tableau::unref ( ) const [inherited]

Decrease the reference count by one (for smart pointers).

Decrease the reference count by one (for smart-pointers).

"const" is for convenience, it is cast away internally. If the reference count reaches zero then delete the object.

If the reference count reaches zero then delete the object.

Definition at line 87 of file vgui_tableau.cxx.


Member Data Documentation

vcl_vector<bool> vgui_composite_tableau::active [protected, inherited]

Whether each child is active or not (ie. using events).

Definition at line 139 of file vgui_composite_tableau.h.

Definition at line 100 of file vgui_shell_tableau.h.

The event which occurs to toggle enable/disable key bindings.

Default is Alt-C enables / disables key bindings

Definition at line 114 of file vgui_composite_tableau.h.

vcl_vector<vgui_parent_child_link> vgui_composite_tableau::children [protected, inherited]

List of child tableaux.

Definition at line 136 of file vgui_composite_tableau.h.

Definition at line 101 of file vgui_shell_tableau.h.

Definition at line 98 of file vgui_shell_tableau.h.

Reimplemented from vgui_composite_tableau.

Definition at line 99 of file vgui_shell_tableau.h.

Definition at line 102 of file vgui_shell_tableau.h.

Conceptually, this is a list on which observers can put themselves.

Definition at line 89 of file vgui_composite_tableau.h.


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