Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions
vgui_viewer2D_tableau Class Reference

Tableau with functions to view 2D objects (eg, zoom, drag, centre). More...

#include <vgui_viewer2D_tableau.h>

Inheritance diagram for vgui_viewer2D_tableau:
Inheritance graph
[legend]

List of all members.

Classes

struct  token_t
 Data on the current state of vgui_viewer2D_tableau (eg the amount we are zoomed). More...

Public Types

enum  { normal_zoom, smooth_zoom }

Public Member Functions

 vgui_viewer2D_tableau (vgui_tableau_sptr const &)
 Constructor - don't use this, use vgui_viewer2D_tableau_new.
virtual bool handle (const vgui_event &event)
 Handle all events sent to this tableau.
virtual vcl_string type_name () const
 Returns the type of this tableau ('vgui_viewer2D_tableau').
void setup_gl_matrices ()
 Set the correct projection matrix for GL (take account of zoom, drag etc).
void zoomin (float zoom_factor, int x, int y)
 Modify the token to zoom in by the given factor, about the given (x,y).
void zoomout (float zoom_factor, int x, int y)
 Modify the token to zoom out by the given factor, about the given (x,y).
void center_image (int w, int h)
 Centre the image with the given width and height inside the tableau.
void center_event ()
 Find the image (if it exists) and center it inside the tableau.
bool mouse_down (int x, int y, vgui_button button, vgui_modifier modifier)
 Called when the user presses a mouse button in the rendering area.
bool mouse_drag (int x, int y, vgui_button button, vgui_modifier modifier)
 Called when the user drags a mouse inside the rendering area.
bool mouse_up (int x, int y, vgui_button button, vgui_modifier modifier)
 Called when the user releases a mouse button in the rendering area.
bool help ()
 Called when the user presses the '?' key.
bool key_press (int x, int y, vgui_key key, vgui_modifier)
 Called when the user presses a key.
bool add_child (vgui_tableau_sptr const &)
 Adds given tableau as child if none exists, else causes error.
bool remove_child (vgui_tableau_sptr const &)
 The child tableau is removed if it is the same as the given tableau.
vcl_string file_name () const
 Returns the child's file_name if it exists.
vcl_string pretty_name () const
 Returns nice version of the name which also includes details of the child.
bool get_bounding_box (float low[3], float high[3]) const
 Get the bounding box for this tableau.
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 get_popup (vgui_popup_params const &, vgui_menu &)
 Get the default 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 motion (int x, int y)
 Called by handle when it receives a mouse motion 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

struct
vgui_viewer2D_tableau::token_t 
token
bool nice_points
bool nice_lines
enum vgui_viewer2D_tableau:: { ... }  zoom_type
bool panning
bool smooth_zooming
bool sweep_zooming
bool sweep_next
float prev_x
float prev_y
float zoom_x
float zoom_y
float new_x
float new_y
float zoom_factor
int npos_x
int npos_y
vgui_parent_child_link child
 The single child of this tableau.

Static Public Attributes

static vgui_DLLDATA const void
*const 
CENTER_EVENT = "x"

Protected Member Functions

bool image_size (int &width, int &height)
 get the image size.
 ~vgui_viewer2D_tableau ()
 Destructor - called by vgui_viewer2D_tableau_sptr.

Detailed Description

Tableau with functions to view 2D objects (eg, zoom, drag, centre).

Definition at line 31 of file vgui_viewer2D_tableau.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
normal_zoom 
smooth_zoom 

Definition at line 95 of file vgui_viewer2D_tableau.h.


Constructor & Destructor Documentation

vgui_viewer2D_tableau::vgui_viewer2D_tableau ( vgui_tableau_sptr const &  s)

Constructor - don't use this, use vgui_viewer2D_tableau_new.

Takes a child tableau as parameter.

Definition at line 45 of file vgui_viewer2D_tableau.cxx.

vgui_viewer2D_tableau::~vgui_viewer2D_tableau ( ) [protected]

Destructor - called by vgui_viewer2D_tableau_sptr.

Definition at line 62 of file vgui_viewer2D_tableau.cxx.


Member Function Documentation

bool vgui_wrapper_tableau::add_child ( vgui_tableau_sptr const &  c) [virtual, inherited]

Adds given tableau as child if none exists, else causes error.

Reimplemented from vgui_tableau.

Definition at line 42 of file vgui_wrapper_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_viewer2D_tableau::center_event ( )

Find the image (if it exists) and center it inside the tableau.

Definition at line 507 of file vgui_viewer2D_tableau.cxx.

void vgui_viewer2D_tableau::center_image ( int  w,
int  h 
)

Centre the image with the given width and height inside the tableau.

Definition at line 120 of file vgui_viewer2D_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_wrapper_tableau::file_name ( ) const [virtual, inherited]

Returns the child's file_name if it exists.

Reimplemented from vgui_tableau.

Definition at line 37 of file vgui_wrapper_tableau.cxx.

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_wrapper_tableau::get_bounding_box ( float  low[3],
float  high[3] 
) const [virtual, inherited]

Get the bounding box for this tableau.

Defaults to getting the bounding box of the child.

Reimplemented from vgui_tableau.

Definition at line 71 of file vgui_wrapper_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.

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_tableau::get_popup ( vgui_popup_params const &  params,
vgui_menu menu 
) [virtual, inherited]

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 in vgui_image_tableau, vgui_shell_tableau, vgui_deck_tableau, vgui_poly_tableau, vgui_selector_tableau, vgui_tview_launcher_tableau, and vgui_tview_tableau.

Definition at line 327 of file vgui_tableau.cxx.

bool vgui_viewer2D_tableau::handle ( const vgui_event event) [virtual]

Handle all events sent to this tableau.

In particular, uses gestures from the user to zoom, drag and centre the display.

Reimplemented from vgui_drag_mixin.

Definition at line 148 of file vgui_viewer2D_tableau.cxx.

bool vgui_viewer2D_tableau::help ( ) [virtual]

Called when the user presses the '?' key.

Reimplemented from vgui_tableau.

Definition at line 467 of file vgui_viewer2D_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_viewer2D_tableau::image_size ( int &  width,
int &  height 
) [protected]

get the image size.

Definition at line 487 of file vgui_viewer2D_tableau.cxx.

bool vgui_viewer2D_tableau::key_press ( int  x,
int  y,
vgui_key  key,
vgui_modifier  modifier 
) [virtual]

Called when the user presses a key.

Reimplemented from vgui_tableau.

Definition at line 514 of file vgui_viewer2D_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_viewer2D_tableau::mouse_down ( int  x,
int  y,
vgui_button  button,
vgui_modifier  modifier 
) [virtual]

Called when the user presses a mouse button in the rendering area.

Reimplemented from vgui_tableau.

Definition at line 242 of file vgui_viewer2D_tableau.cxx.

bool vgui_viewer2D_tableau::mouse_drag ( int  x,
int  y,
vgui_button  button,
vgui_modifier  modifier 
) [virtual]

Called when the user drags a mouse inside the rendering area.

Reimplemented from vgui_drag_mixin.

Definition at line 317 of file vgui_viewer2D_tableau.cxx.

bool vgui_viewer2D_tableau::mouse_up ( int  x,
int  y,
vgui_button  button,
vgui_modifier  modifier 
) [virtual]

Called when the user releases a mouse button in the rendering area.

Reimplemented from vgui_tableau.

Definition at line 421 of file vgui_viewer2D_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.

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_wrapper_tableau::pretty_name ( ) const [virtual, inherited]

Returns nice version of the name which also includes details of the child.

Reimplemented from vgui_tableau.

Definition at line 32 of file vgui_wrapper_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.

bool vgui_wrapper_tableau::remove_child ( vgui_tableau_sptr const &  c) [virtual, inherited]

The child tableau is removed if it is the same as the given tableau.

Reimplemented from vgui_tableau.

Definition at line 54 of file vgui_wrapper_tableau.cxx.

void vgui_viewer2D_tableau::setup_gl_matrices ( )

Set the correct projection matrix for GL (take account of zoom, drag etc).

Definition at line 66 of file vgui_viewer2D_tableau.cxx.

vcl_string vgui_viewer2D_tableau::type_name ( ) const [virtual]

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

Reimplemented from vgui_wrapper_tableau.

Definition at line 133 of file vgui_viewer2D_tableau.cxx.

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.

void vgui_viewer2D_tableau::zoomin ( float  zoom_factor,
int  x,
int  y 
)

Modify the token to zoom in by the given factor, about the given (x,y).

(x, y) are in viewport coordinates.

Definition at line 96 of file vgui_viewer2D_tableau.cxx.

void vgui_viewer2D_tableau::zoomout ( float  zoom_factor,
int  x,
int  y 
)

Modify the token to zoom out by the given factor, about the given (x,y).

(x, y) are in viewport coordinates.

Definition at line 115 of file vgui_viewer2D_tableau.cxx.


Member Data Documentation

const void *const vgui_viewer2D_tableau::CENTER_EVENT = "x" [static]

Definition at line 89 of file vgui_viewer2D_tableau.h.

The single child of this tableau.

Definition at line 65 of file vgui_wrapper_tableau.h.

Definition at line 103 of file vgui_viewer2D_tableau.h.

Definition at line 103 of file vgui_viewer2D_tableau.h.

Definition at line 93 of file vgui_viewer2D_tableau.h.

Definition at line 92 of file vgui_viewer2D_tableau.h.

Definition at line 105 of file vgui_viewer2D_tableau.h.

Definition at line 106 of file vgui_viewer2D_tableau.h.

Definition at line 97 of file vgui_viewer2D_tableau.h.

Definition at line 101 of file vgui_viewer2D_tableau.h.

Definition at line 101 of file vgui_viewer2D_tableau.h.

Definition at line 98 of file vgui_viewer2D_tableau.h.

Definition at line 100 of file vgui_viewer2D_tableau.h.

Definition at line 99 of file vgui_viewer2D_tableau.h.

Definition at line 104 of file vgui_viewer2D_tableau.h.

Definition at line 102 of file vgui_viewer2D_tableau.h.

Definition at line 102 of file vgui_viewer2D_tableau.h.


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