COIN-OR::LEMON - Graph Library

Changeset 125:e8bf8bbcf75a in glemon-0.x for algobox.h


Ignore:
Timestamp:
01/14/06 14:42:37 (18 years ago)
Author:
Hegyi Péter
Branch:
gui
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk/gui@2471
Message:

Documentation of classes realizing algorithm running.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • algobox.h

    r116 r125  
    1212#include <libgnomecanvasmm/polygon.h>
    1313
     14///Ancestor class of algorithm graphical interface classes.
     15
     16///It also demonstrates, how should an algorithm graphical interface
     17///work. Children of this class have the same functions and attributes,
     18///therefore with all of them can the holder \ref AlgoWin communicate
     19///in the same way.
     20///
     21///IMPORTANT! In a child class only the following tasks are to do:
     22///
     23///-call \ref init function with correct parameters from correctly parametrized constructor
     24///
     25///-implement \ref build_box function
     26///
     27///-implement \ref run function
     28///
     29///because all other thing is automatically done in \ref init function!
     30
    1431class AlgoBox : public Gtk::VBox
    1532{
    16   sigc::signal<void, std::string> signal_maplist_need; 
    17   sigc::signal<void, std::string, bool> signal_newmapwin_need; 
     33  ///Signal emitted in case of need for list of maps.
     34
     35  ///If the user has selected different tab to work on
     36  ///new maps are selected as well. These new maps should be
     37  ///provided for \ref AlgoBox. To get these maps, \ref AlgoBox
     38  ///emits this signal.
     39  sigc::signal<void, std::string> signal_maplist_need;
     40
     41  ///Signal emitted in case of need for \ref NewMapWin.
     42
     43  ///If user wants to create a new for an input, or output
     44  ///it can let \ref NewMapWin popped up from here as well.
     45  ///In that case will be this signal emitted.
     46  sigc::signal<void, std::string, bool> signal_newmapwin_need;
    1847
    1948protected:
     49  ///Holder of tabnames.
    2050  Gtk::ComboBoxText tabcbt;
     51
     52  ///Holder of widgets, in which nodemaps can be selected to work on.
    2153  std::vector<MapSelector *> nodemapcbts;
     54
     55  ///Holder of widgets, in which edgemaps can be selected to work on.
    2256  std::vector<MapSelector *> edgemapcbts;
    2357
     58  ///Maps of selected tabs.
    2459  MapStorage * mapstorage;
    2560
    2661public:
     62  ///Empty constructor called by children.
    2763  AlgoBox(){};
    28   AlgoBox(std::vector<std::string>);
    2964
     65  ///Constructor
     66
     67  ///Calls \ref init function
     68  ///with the provided parameters. \ref init function
     69  ///is needed, because it is virtual, therefore the
     70  ///functions of the proper class will be called when
     71  ///running.
     72  ///\param tablist list of tabs in \ref MainWin
     73  AlgoBox(std::vector<std::string> tablist);
     74
     75  ///Initiates \ref AlgoBox.
     76
     77  ///Creates the graphical interface for the realized algorithm, initiates variables, connects signals.
     78  ///
     79  ///List of tabs in \ref MainWin is required, but no one
     80  ///will be selected automatically. Every other
     81  ///entry field remains empty (unselected), until a \ref NoteBookTab
     82  ///is selected.
     83  ///
     84  ///It also have to bind all the signals to the correct place.
     85  ///This function is virtual, in all type of children of
     86  ///\ref AlgoBox the correct function willbe called.
     87  ///
     88  ///Therefore it is IMPORTANT that only \ref run and \ref build_box
     89  ///has to be implemented in children of \ref AlgoBox, every other
     90  ///thing will automatically work properly by the help of this
     91  ///function that must be called in constructor of child!!!
    3092  virtual void init(std::vector<std::string>);
    3193
    32   sigc::signal<void, std::string> signal_maplist_needed(); 
    33   sigc::signal<void, std::string, bool> signal_newmapwin_needed(){return signal_newmapwin_need;}; 
     94  ///Signal emitted, when selected tab changes, and new list of maps required.
     95  sigc::signal<void, std::string> signal_maplist_needed();
     96
     97  ///Emitted if user wants to create a new map for inpuit or output.
     98  sigc::signal<void, std::string, bool> signal_newmapwin_needed(){return signal_newmapwin_need;};
     99
     100  ///Emits signal that requires list of maps for the recently selected \ref NoteBookTab.
    34101  void emit_tab_change();
    35102
     103  ///Interface, through which \ref AlgoBox can be notified about tab addition, deletion in \ref MainWin
     104
     105  ///\param tl list
     106  ///of new tab state.
    36107  void update_tablist( std::vector< std::string > tl );
    37   void update_maplist( MapStorage * );
    38108
     109  ///Interface, through which \ref AlgoBox can get the maps of the recently selected \ref NoteBookTab
     110
     111  ///\param ms the maps
     112  ///of the recently selected \ref NoteBookTab
     113  void update_maplist( MapStorage * ms);
     114
     115  ///Interface, through which \ref AlgoBox can be notified about nodemap addition.
     116
     117  ///If new map was added to \ref MapStorage of currently selected \ref NoteBookTab
     118  ///a signal is emitted by it. This signal is connected to this function, so \ref MapSelector s
     119  ///in \ref nodemapcbts can be notified, and those can registrate the new map. (\ref MapSelector::append_text)
    39120  void nodemaplist_changed(std::string);
     121
     122  ///Interface, through which \ref AlgoBox can be notified about edgemap addition.
     123
     124  ///If new map was added to \ref MapStorage of currently selected \ref NoteBookTab
     125  ///a signal is emitted by it. This signal is connected to this function, so \ref MapSelector s
     126  ///in \ref edgemapcbts can be notified, and those can registrate the new map. (\ref MapSelector::append_text)
    40127  void edgemaplist_changed(std::string);
    41128
    42   void update_cbt( std::vector< std::string > tl, Gtk::ComboBoxText &);
    43  
     129  ///Aid function to provide data for a given entry.
     130
     131  ///At the moment it is only used for updating info
     132  ///in \ref tabcbt. It clears it first, after that
     133  ///inserts the data got from caller, and if there
     134  ///was previously selected item it switches entry
     135  ///to that.
     136  ///\param tl list of entries (at the moment tabs in \ref MainWin)
     137  ///\param cbt the entry to update (at the moment only \ref tabcbt)
     138  void update_cbt( std::vector< std::string > tl, Gtk::ComboBoxText & cbt);
     139
     140  ///Runs the ralized algorithm.
     141
     142  ///Prepare the data for it
     143  ///and after that postprocess it if necessary.
     144  ///This is only a demo here, but in children it
     145  ///runs the algorithm really.
    44146  virtual void run();
    45  
     147
     148  ///Creates the layout of the \ref AlgoBox
     149
     150  ///Place all the entries
     151  ///required. Run and close button is not
     152  ///its responsibility!
    46153  virtual void build_box();
    47154
    48   virtual void emit_new_map_signal(bool);
     155  ///Emits \ref signal_newmapwin_need if user wants to create new input or output map.
    49156
    50   void addMapSelector(std::string, bool);
     157  ///Called in case of pressing \ref MapSelector::newbut.
     158  ///\param itisedge edge or nodemap is required.
     159  virtual void emit_new_map_signal(bool itisedge);
     160
     161  ///Aid function to make addition of \ref MapSelector easy in \ref build_box.
     162
     163  ///\param label label to show in \ref MapSelector
     164  ///\param itisedge whether edge or nodemaps stored in \ref MapSelector
     165  void addMapSelector(std::string label, bool itisedge);
    51166};
    52167#endif //ALGOBOX_H
Note: See TracChangeset for help on using the changeset viewer.