map_win.h
changeset 163 443bc769b344
parent 121 637c12cbd64c
child 172 fc1e478697d3
equal deleted inserted replaced
16:8ff228a8140f 17:125e46830052
     9 #include <nbtab.h>
     9 #include <nbtab.h>
    10 #include <mapselector.h>
    10 #include <mapselector.h>
    11 #include <libgnomecanvasmm.h>
    11 #include <libgnomecanvasmm.h>
    12 #include <libgnomecanvasmm/polygon.h>
    12 #include <libgnomecanvasmm/polygon.h>
    13 
    13 
       
    14 ///Graph visualization setup window.
       
    15 
    14 ///This class is responsible for creating a window,
    16 ///This class is responsible for creating a window,
    15 ///on which the visualization attributes can be
    17 ///on which the visualization attributes can be
    16 ///assigned to maps.
    18 ///assigned to maps.
    17 class MapWin : public Gtk::Window
    19 class MapWin : public Gtk::Window
    18 {
    20 {
    19 protected:
    21 protected:
       
    22   ///\ref NoteBookTab to that the \ref MapWin belongs to.
    20   NoteBookTab & mytab;
    23   NoteBookTab & mytab;
    21 
    24 
       
    25   ///Designing element
    22   Gtk::Table * table;
    26   Gtk::Table * table;
    23   
    27   
    24   MapSelector ** e_combo_array, ** n_combo_array;
    28   ///\ref MapSelectors for each property
    25 
    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
    26   Gtk::Label * label;
    41   Gtk::Label * label;
    27 
    42 
       
    43   ///Container in which elements are organized.
    28   Gtk::VBox vbox;
    44   Gtk::VBox vbox;
    29 
    45 
    30 public:
    46 public:
    31   ///Constructor of MapWin creates the widgets shown in MapWin.
    47   ///Constructor
    32   MapWin(const std::string& title, std::vector<std::string>, std::vector<std::string>, NoteBookTab & mw);
       
    33 
    48 
    34   ~MapWin();
    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);
    35 
    56 
       
    57   ///Deregistrates \ref MapWin in its \ref NoteBookTab (\ref mytab)
    36   virtual bool on_delete_event(GdkEventAny *);
    58   virtual bool on_delete_event(GdkEventAny *);
    37 
    59 
    38   void nodeMapChanged(std::string, int);
    60   ///Handles changement in nodemap selection
    39 
    61 
    40   void edgeMapChanged(std::string, int);
    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);
    41 
    69 
    42   void newMapWinNeeded(bool);
    70   ///Handles changement in edgemap selection
    43 
    71 
    44   ///This function inserts name of the new edgemap in the list in the combo box
    72   ///If \ref MapSelector emits a signal that indicates
    45   void registerNewEdgeMap(std::string);
    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);
    46 
    79 
    47   ///This function inserts name of the new nodemap in the list in the combo box
    80   ///Indicates to the owner \ref NoteBookTab that a \ref NewMapWin should be opened.
    48   void registerNewNodeMap(std::string);
       
    49 
    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.
    50   virtual bool closeIfEscapeIsPressed(GdkEventKey*);
   103   virtual bool closeIfEscapeIsPressed(GdkEventKey*);
    51 
   104 
    52   void update(std::vector<std::string>, std::vector<std::string>);
   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);
    53 };
   115 };
    54 
   116 
    55 #endif //MAP_WIN_H
   117 #endif //MAP_WIN_H