gui/map_win.h
author deba
Wed, 01 Mar 2006 10:17:25 +0000
changeset 1990 15fb7a4ea6be
parent 1891 56a718d144c4
permissions -rw-r--r--
Some classes assumed that the GraphMaps should be inherited
from an ObserverBase. These classes parents replaced with
DefaultMap which cause that the graph maps should not be
inherited from the ObserverBase.
     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