map_win.h
author hegyi
Fri, 13 Oct 2006 13:53:44 +0000
changeset 163 443bc769b344
parent 121 637c12cbd64c
child 172 fc1e478697d3
permissions -rw-r--r--
Dijkstra in GUI - and the body...
     1 // -*- C++ -*- //
     2 
     3 #ifndef MAP_WIN_H
     4 #define MAP_WIN_H
     5 
     6 class MapWin;
     7 
     8 #include <all_include.h>
     9 #include <nbtab.h>
    10 #include <mapselector.h>
    11 #include <libgnomecanvasmm.h>
    12 #include <libgnomecanvasmm/polygon.h>
    13 
    14 ///Graph visualization setup window.
    15 
    16 ///This class is responsible for creating a window,
    17 ///on which the visualization attributes can be
    18 ///assigned to maps.
    19 class MapWin : public Gtk::Window
    20 {
    21 protected:
    22   ///\ref NoteBookTab to that the \ref MapWin belongs to.
    23   NoteBookTab & mytab;
    24 
    25   ///Designing element
    26   Gtk::Table * table;
    27   
    28   ///\ref MapSelectors for each property
    29 
    30   ///Each property has an own \ref MapSelector through which
    31   ///the map to visualize by the property van be set.
    32   MapSelector ** e_combo_array;
    33 
    34   ///\ref MapSelectors for each property
    35 
    36   ///Each property has an own \ref MapSelector through which
    37   ///the map to visualize by the property van be set.
    38   MapSelector ** n_combo_array;
    39 
    40   ///Information holder
    41   Gtk::Label * label;
    42 
    43   ///Container in which elements are organized.
    44   Gtk::VBox vbox;
    45 
    46 public:
    47   ///Constructor
    48 
    49   ///It creates the widgets shown in \ref MapWin and
    50   ///binds the needed signal to the correct place.
    51   ///\param title title of window
    52   ///\param eml edgemap list
    53   ///\param nml nodemap list
    54   ///\param mw the owner \ref NoteBookTab (\ref mytab)
    55   MapWin(const std::string& title, std::vector<std::string> eml, std::vector<std::string> nml, NoteBookTab & mw);
    56 
    57   ///Deregistrates \ref MapWin in its \ref NoteBookTab (\ref mytab)
    58   virtual bool on_delete_event(GdkEventAny *);
    59 
    60   ///Handles changement in nodemap selection
    61 
    62   ///If \ref MapSelector emits a signal that indicates
    63   ///changement in nodemap selection this function will
    64   ///be called. It calls the appropriate handler function,
    65   ///\ref NoteBookTab::propertyChange with parameters describing the changement.
    66   ///\param mapname the recently selected map
    67   ///\param prop the changed property
    68   void nodeMapChanged(std::string mapname, int prop);
    69 
    70   ///Handles changement in edgemap selection
    71 
    72   ///If \ref MapSelector emits a signal that indicates
    73   ///changement in edgemap selection this function will
    74   ///be called. It calls the appropriate handler function,
    75   ///\ref NoteBookTab::propertyChange with parameters describing the changement.
    76   ///\param mapname the recently selected map
    77   ///\param prop the changed property
    78   void edgeMapChanged(std::string mapname, int prop);
    79 
    80   ///Indicates to the owner \ref NoteBookTab that a \ref NewMapWin should be opened.
    81 
    82   ///This function is bound to the
    83   ///signal emitted by the \ref MapSelector in case of
    84   ///the user wants to create a new map. It only pass the
    85   ///information further to the tab owning this \ref MapWin that is needed to open the
    86   ///\ref NewMapWin. (\ref NoteBookTab::popupNewMapWin)
    87   ///\param itisedge should the new map will be an edgemap? (or nodemap)
    88   void newMapWinNeeded(bool itisedge);
    89 
    90   ///This function inserts name of the new edgemap in the name list in \ref MapSelector s
    91 
    92   ///\param new_name
    93   ///name of new map
    94   void registerNewEdgeMap(std::string new_name);
    95 
    96   ///This function inserts name of the new nodemap in the name list in \ref MapSelector s
    97 
    98   ///\param new_name
    99   ///name of new map
   100   void registerNewNodeMap(std::string new_name);
   101 
   102   ///Close window if Esc key pressed.
   103   virtual bool closeIfEscapeIsPressed(GdkEventKey*);
   104 
   105   ///Updates list of maps in all \ref MapSelector
   106 
   107   ///This function is called by \ref NoteBookTab, when the file
   108   ///showed in it has changed, therefore the contained maps
   109   ///have changed as well. \ref NoteBookTab knows, whether it
   110   ///has to call this function or not from the \ref NoteBookTab::mapwinexists
   111   ///variable.
   112   ///\param eml edge map list
   113   ///\param nml node map list
   114   void update(std::vector<std::string> eml, std::vector<std::string> nml);
   115 };
   116 
   117 #endif //MAP_WIN_H