[Lemon-commits] [lemon_svn] hegyi: r2466 - hugo/trunk/gui
Lemon SVN
svn at lemon.cs.elte.hu
Mon Nov 6 20:52:53 CET 2006
Author: hegyi
Date: Thu Jan 12 14:28:54 2006
New Revision: 2466
Modified:
hugo/trunk/gui/map_win.cc
hugo/trunk/gui/map_win.h
hugo/trunk/gui/nbtab.cc
hugo/trunk/gui/nbtab.h
hugo/trunk/gui/new_map_win.h
Log:
Documentation of NoteBookTab. Redundant function parameters are removed from other classes as well.
Modified: hugo/trunk/gui/map_win.cc
==============================================================================
--- hugo/trunk/gui/map_win.cc (original)
+++ hugo/trunk/gui/map_win.cc Thu Jan 12 14:28:54 2006
@@ -29,7 +29,7 @@
(*table).attach((*(e_combo_array[i])),0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3);
e_combo_array[i]->signal_cbt_ch().connect(sigc::bind(sigc::mem_fun(*this, &MapWin::edgeMapChanged), i));
- e_combo_array[i]->signal_newmapwin_needed().connect(sigc::bind(sigc::mem_fun(*this, &MapWin::newMapWinNeeded), i));
+ e_combo_array[i]->signal_newmapwin_needed().connect(sigc::mem_fun(*this, &MapWin::newMapWinNeeded));
}
vbox.pack_start(*(new Gtk::Label("Edge properties")));
@@ -49,7 +49,7 @@
(*table).attach((*(n_combo_array[i])),0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3);
n_combo_array[i]->signal_cbt_ch().connect(sigc::bind(sigc::mem_fun(*this, &MapWin::nodeMapChanged), i));
- n_combo_array[i]->signal_newmapwin_needed().connect(sigc::bind(sigc::mem_fun(*this, &MapWin::newMapWinNeeded), i));
+ n_combo_array[i]->signal_newmapwin_needed().connect(sigc::mem_fun(*this, &MapWin::newMapWinNeeded));
}
add(vbox);
@@ -76,9 +76,9 @@
mytab.propertyChange(true, prop, mapname);
}
-void MapWin::newMapWinNeeded(bool itisedge, int prop)
+void MapWin::newMapWinNeeded(bool itisedge)
{
- mytab.popupNewMapWin(itisedge, prop);
+ mytab.popupNewMapWin(itisedge);
}
void MapWin::update(std::vector<std::string> eml, std::vector<std::string> nml)
Modified: hugo/trunk/gui/map_win.h
==============================================================================
--- hugo/trunk/gui/map_win.h (original)
+++ hugo/trunk/gui/map_win.h Thu Jan 12 14:28:54 2006
@@ -39,7 +39,7 @@
void edgeMapChanged(std::string, int);
- void newMapWinNeeded(bool, int);
+ void newMapWinNeeded(bool);
///This function inserts name of the new edgemap in the list in the combo box
void registerNewEdgeMap(std::string);
Modified: hugo/trunk/gui/nbtab.cc
==============================================================================
--- hugo/trunk/gui/nbtab.cc (original)
+++ hugo/trunk/gui/nbtab.cc Thu Jan 12 14:28:54 2006
@@ -164,9 +164,8 @@
return signal_newmap;
}
-void NoteBookTab::popupNewMapWin(bool itisedge, int prop)
+void NoteBookTab::popupNewMapWin(bool itisedge)
{
- prop=prop;
signal_newmap.emit(this, itisedge);
}
Modified: hugo/trunk/gui/nbtab.h
==============================================================================
--- hugo/trunk/gui/nbtab.h (original)
+++ hugo/trunk/gui/nbtab.h Thu Jan 12 14:28:54 2006
@@ -11,28 +11,78 @@
#include <libgnomecanvasmm.h>
#include <libgnomecanvasmm/polygon.h>
+///One tab in the Notebook that is placed in the main window (\ref MainWin).
+
+///One graph and all of its accessories like maps are assigned to one tab in the notebook.
+///\ref NoteBookTab is responsible for the user defined display of the graph: view can be
+///set by visualized maps, therefore \ref NoteBookTab must provide an interface to set the
+///view of graph. This is \ref Mapwin window.
+///
+///\ref NoteBookTab is also
+///responsible for modify the graph if it is
+///requested. Therefore it is responsible for translating user events to modifications to
+///do on graph, like node/edge addition/deletion, map modification, addition and so on.
+///
+///To be able to solve these tasks the help of \ref MainWin is also needed, for example to
+///know which editor-tool is active at the moment. Therefore \ref MainWin knows \ref NoteBookTab.
+///
+///Some information in the other direction is needed as well: for example when new map creation is requested for this tab
+///\ref NoteBookTab must ask \ref MainWin to pop-up a \ref NewMapWin. Communication in this direction is realized by signals
+///therefore \ref NoteBookTab does not know \ref MainWin at all, but in this way it is not necessary.
class NoteBookTab : public Gtk::VBox
{
public:
+
+ ///Constructor of \ref NoteBookTab
+
+ ///It initiates the \re GraphDisplayerCanvas, on which the graph will be drawn
+ ///Signals of \ref MapStorage will be bound to the appropriate callback functions here.
NoteBookTab();
+ ///Maps assigned to the graph displayed in this \ref NoteBookTab of notebook.
MapStorage mapstorage;
+ ///Title changement indicator.
+
+ ///If graph is loaded from disk or saved to disk or changed its name somehow
+ ///this signal will be emit to let
+ ///\ref MainWin know that it has to modify the title of the main window.
+ ///It contains the new title.
sigc::signal<void, std::string> signal_title;
+ ///Returns \ref signal_title to be the caller able to connect it to a callback function.
sigc::signal<void, std::string> signal_title_ch();
+ ///Indicates that new map window should be popped up.
+
+ ///\ref NoteBookTab can ask \ref MainWin to pop up a \ref NweMapWin ny emitting this signal.
+ ///The signal contains whether an edgemap or a nodemap should be popped up. \ref NewMapWin
+ ///is not popped up by \ref NoteBookTab, because not only \ref NoteBookTab needs \ref NewMapWin,
+ ///but for example \ref MainWin and \ref AlgoWin s as well.
sigc::signal<void, NoteBookTab *, bool> signal_newmap;
+ ///Returns \ref signal_newmap to be the caller able to connect it to a callback function.
sigc::signal<void, NoteBookTab *, bool> signal_newmap_needed();
+ ///Loads the given file.
+
+ ///The given file will be load in the \ref MapStorage and afeter that
+ ///\ref GraphDisplayerCanvas will be requested to display the graph.
+ ///\ref GraphDisplayer will get datas from the recently set \ref MapStorage.
void readFile(const std::string &);
///The graph will be drawn on this \ref GraphDisplayerCanvas
GraphDisplayerCanvas * gd_canvas;
+ ///Indicates whether the \ref MapWin is opened or not. See \ref mapwin.
bool mapwinexists;
+ ///Address of the only \ref MapWin that the \ref NoteBookTab can open.
+
+ ///Only one of this window can be opened at the same time (\ref mapwinexists),
+ ///because there is no need for more, one per tab is enough.
+ ///There won1t be benefit of more than one, but it would be
+ ///more complicated to synchronize them.
MapWin * mapwin;
public:
@@ -47,16 +97,64 @@
///Callback for 'Close' action.
virtual void close();
- void propertyChange(bool, int, std::string);
- void popupNewMapWin(bool, int);
-
- std::string getActiveEdgeMap(int);
- std::string getActiveNodeMap(int);
+ ///Handles changement of view of graph.
- void registerNewEdgeMap(std::string);
- void registerNewNodeMap(std::string);
+ ///If the user changes the map to show by a property to a nother in \ref MapWin,
+ ///\ref MapWin will call this function. This function will registrate in \ref MapStorage
+ ///the new map to display by the changed property. After that \ref MapStorage will
+ ///emits a signal that will be forwarded to \ref GraphDisplayerCanvas to update the
+ ///appropriate parts of graph.
+ ///\param itiesedge whether the changed property is edge property or node property
+ ///\param prop id of property, see all_include.h
+ ///\param mapname name of the recently selected map
+ void propertyChange(bool itisedge, int prop, std::string mapname);
+
+ ///Emits a signal that request \ref MainWin to pop up \ref NewMapWin
+
+ ///This function is called by \ref MapWin.
+ ///\param itisedge whether the new map should be an edgemap or a nodemap.
+ void popupNewMapWin(bool itisedge);
+
+ ///Returns the actually selected edgemap to visualize by the given property.
+
+ ///\ref MapWin calls this function, beacuse it does not know \ref MapStorage.
+ ///\param prop property to inquire.
+ std::string getActiveEdgeMap(int prop);
+
+ ///Returns the actually selected nodemap to visualize by the given property.
+
+ ///\ref MapWin calls this function, beacuse it does not know \ref MapStorage.
+ ///\param prop property to inquire.
+ std::string getActiveNodeMap(int prop);
+
+ ///Registers recently created edgemap in \ref MapWin.
+
+ ///After creation of new map \ref MapStorage emits a signal.
+ ///This signal is bound to this callback function, that will call
+ ///a function with the same name and same parameterin \ref MapWin.
+ ///This call-forwarder function is needed, because \ref Mapstorage does not know \ref MapWin
+ ///\param mapname name of new map
+ void registerNewEdgeMap(std::string mapname);
+
+ ///Registers recently created nodemap in \ref MapWin.
+
+ ///After creation of new map \ref MapStorage emits a signal.
+ ///This signal is bound to this callback function, that will call
+ ///a function with the same name and same parameter in \ref MapWin.
+ ///This call-forwarder function is needed, because \ref Mapstorage does not know \ref MapWin
+ ///\param mapname name of new map
+ void registerNewNodeMap(std::string mapname);
+ ///Pops up and registrates the \ref MapWin of \ref NoteBookTab.
+
+ ///See also
+ ///\ref mapwin.
void createMapWin(std::string);
+
+ ///Closes and deregistrates the \ref MapWin of \ref NoteBookTab.
+
+ ///See also
+ ///\ref mapwin.
void closeMapWin();
};
Modified: hugo/trunk/gui/new_map_win.h
==============================================================================
--- hugo/trunk/gui/new_map_win.h (original)
+++ hugo/trunk/gui/new_map_win.h Thu Jan 12 14:28:54 2006
@@ -26,7 +26,9 @@
///Initial values of map elements can be given
///by numbers or by expressions. From expressions
- ///we build first a tree. This is the data structure
+ ///we build first a tree according to the priorities
+ ///of operations in the expression. This is the data
+ ///structure
///that can store one tree element.
struct tree_node
{
More information about the Lemon-commits
mailing list