MENU_NODE Class Reference

#include <sbdmenu.h>

Inheritance diagram for MENU_NODE:

LEAF_MENU_NODE NON_LEAF_MENU_NODE BOOL_VAR_MENU_LEAF DBL_VAR_MENU_LEAF INT_VAR_MENU_LEAF SIMPLE_MENU_LEAF STR_VAR_MENU_LEAF TOGGLE_MENU_LEAF VAR_SUB_MENU VARIABLE_MENU_LEAF MENU_ROOT NON_RADIO_MENU RADIO_MENU VAR_NON_RADIO_MENU List of all members.

Detailed Description

Generic menu item - an abstract class (Command Window).

Definition at line 69 of file sbdmenu.h.

Public Member Functions

Protected Member Functions

Protected Attributes

Private Member Functions

Friends


Constructor & Destructor Documentation

MENU_NODE::MENU_NODE ( const char *  txt  )  [inline, protected]

Definition at line 79 of file sbdmenu.h.

References name.

00080                                {
00081       name = STRING (txt);
00082     }


Member Function Documentation

virtual const char* MENU_NODE::cmp_str (  )  [inline, virtual]

Reimplemented in BOOL_VAR_MENU_LEAF, DBL_VAR_MENU_LEAF, INT_VAR_MENU_LEAF, and STR_VAR_MENU_LEAF.

Definition at line 108 of file sbdmenu.h.

References name, and STRING::string().

Referenced by menu_item_sorter().

00108                                   { 
00109       return name.string ();
00110     }

virtual void MENU_NODE::event ( COMMAND_WINDOW cmd_win,
FCOORD  pt,
INT32 cmd_event_id,
char *  new_value 
) [protected, pure virtual]

Implemented in SIMPLE_MENU_LEAF, TOGGLE_MENU_LEAF, VARIABLE_MENU_LEAF, NON_LEAF_MENU_NODE, MENU_ROOT, RADIO_MENU, VAR_SUB_MENU, BOOL_VAR_MENU_LEAF, DBL_VAR_MENU_LEAF, INT_VAR_MENU_LEAF, and STR_VAR_MENU_LEAF.

virtual INT8 MENU_NODE::max_num_chars (  )  [protected, pure virtual]

Implemented in LEAF_MENU_NODE, and NON_LEAF_MENU_NODE.

void MENU_NODE::new_label ( const char *  label  )  [inline]

Definition at line 115 of file sbdmenu.h.

References name.

Referenced by COMMAND_WINDOW::replace_menu_text().

00116                                       {
00117       name = label;
00118     }

void MENU_NODE::plot ( WINDOW  window  ) 

Initialise, then call plotx to do the real work.

This means that we can initialise plotting once only REGARDLESS of what menu subclass we start plotting.

e.g., we don't always start with a MENU_ROOT.

Definition at line 79 of file sbdmenu.cpp.

References character_height, fill_color_index, GREY, INT_SOLID, interior_style, LIGHT_GREY, perimeter_color_index, plotx(), text_color_index, TRUE, and WHITE.

Referenced by COMMAND_WINDOW::plot(), COMMAND_WINDOW::replace_menu_text(), and COMMAND_WINDOW::set_toggle().

00081                       {
00082   character_height(window, menu_char_height); 
00083   interior_style(window, INT_SOLID, TRUE); 
00084   perimeter_color_index(window, LIGHT_GREY); 
00085   text_color_index(window, WHITE); 
00086   fill_color_index(window, GREY); 
00087   plotx(window); 
00088 }

virtual void MENU_NODE::plotx ( WINDOW  window  )  [protected, pure virtual]

Implemented in LEAF_MENU_NODE, TOGGLE_MENU_LEAF, NON_LEAF_MENU_NODE, MENU_ROOT, and BOOL_VAR_MENU_LEAF.

Referenced by plot().

BOX & MENU_NODE::recalc_bounding_box ( INT16  tl_x,
INT16  tl_y 
) [protected, virtual]

SHOULD NEVER BE CALLED.

Compiler needs it as this can't be a pure virtual function as not all classes provide it and the compiler will not let you do "new" on a class which inherits a pure virtual function which it cannot resolve into a real function.

Reimplemented in NON_LEAF_MENU_NODE, and MENU_ROOT.

Definition at line 99 of file sbdmenu.cpp.

References ABORT, box, ERRCODE::error(), NULL, and SHOULDNT_BE_CALLED.

00102                                      {
00103   SHOULDNT_BE_CALLED.error ("MENU_ROOT::recalc_bounding_box", ABORT, NULL);
00104   return box;
00105 }

BOX & MENU_NODE::recalc_fixed_width_bb ( INT16  tl_x,
INT16  tl_y,
INT16  width 
) [private]

Calculate the selectable area of the menu item and hence its display position; the width is predetermined.

Definition at line 112 of file sbdmenu.cpp.

References box, and MENU_ITEM_HEIGHT.

00116                                        {
00117   box = BOX (ICOORD (tl_x, tl_y - MENU_ITEM_HEIGHT),
00118     ICOORD (tl_x + width, tl_y));
00119   return box;
00120 }

virtual void MENU_NODE::write_vars ( FILE *  ,
BOOL8   
) [inline, virtual]

Reimplemented in MENU_ROOT, VAR_SUB_MENU, BOOL_VAR_MENU_LEAF, DBL_VAR_MENU_LEAF, INT_VAR_MENU_LEAF, STR_VAR_MENU_LEAF, and VAR_NON_RADIO_MENU.

Definition at line 120 of file sbdmenu.h.

00122                                    {  //Changed vars only?
00123                                  //default do nothing
00124     }


Friends And Related Function Documentation

friend class LEAF_MENU_NODE [friend]

Definition at line 73 of file sbdmenu.h.

friend class MENU_ROOT [friend]

Definition at line 71 of file sbdmenu.h.

Referenced by build_menu().

friend class NON_LEAF_MENU_NODE [friend]

Definition at line 72 of file sbdmenu.h.

friend class RADIO_MENU [friend]

Reimplemented in TOGGLE_MENU_LEAF.

Definition at line 74 of file sbdmenu.h.

Referenced by build_menu().


Member Data Documentation

BOX MENU_NODE::box [protected]

Definition at line 77 of file sbdmenu.h.

Referenced by block_space_stat(), VAR_SUB_MENU::event(), STR_VAR_MENU_LEAF::event(), INT_VAR_MENU_LEAF::event(), DBL_VAR_MENU_LEAF::event(), BOOL_VAR_MENU_LEAF::event(), VARIABLE_MENU_LEAF::event(), TOGGLE_MENU_LEAF::event(), SIMPLE_MENU_LEAF::event(), RADIO_MENU::event(), NON_LEAF_MENU_NODE::event(), NON_LEAF_MENU_NODE::plotx(), LEAF_MENU_NODE::plotx(), re_scale_and_move_bln_word(), NON_LEAF_MENU_NODE::recalc_bounding_box(), MENU_ROOT::recalc_bounding_box(), recalc_bounding_box(), recalc_fixed_width_bb(), row_space_stat(), and show_point().

STRING MENU_NODE::name [protected]

Definition at line 76 of file sbdmenu.h.

Referenced by cmp_str(), VAR_SUB_MENU::event(), VARIABLE_MENU_LEAF::event(), LEAF_MENU_NODE::max_num_chars(), NON_LEAF_MENU_NODE::max_num_chars(), MENU_NODE(), new_label(), pgeditor_read_file(), NON_LEAF_MENU_NODE::plotx(), and LEAF_MENU_NODE::plotx().


The documentation for this class was generated from the following files:
Generated on Wed Feb 28 19:49:32 2007 for Tesseract by  doxygen 1.5.1