COIN-OR::LEMON - Graph Library

source: glemon-0.x/map_win.h @ 201:879e47e5b731

Last change on this file since 201:879e47e5b731 was 201:879e47e5b731, checked in by Akos Ladanyi, 16 years ago

Merge branches/akos to trunk.

File size: 4.5 KB
Line 
1/* -*- C++ -*-
2 *
3 * This file is a part of LEMON, a generic C++ optimization library
4 *
5 * Copyright (C) 2003-2006
6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
7 * (Egervary Research Group on Combinatorial Optimization, EGRES).
8 *
9 * Permission to use, modify and distribute this software is granted
10 * provided that this copyright notice appears in all copies. For
11 * precise terms see the accompanying LICENSE file.
12 *
13 * This software is provided "AS IS" with no warranty of any kind,
14 * express or implied, and with no claim as to its suitability for any
15 * purpose.
16 *
17 */
18
19#ifndef MAP_WIN_H
20#define MAP_WIN_H
21
22class NoteBookTab;
23class MapSelector;
24
25#include <all_include.h>
26#include <libgnomecanvasmm.h>
27#include <libgnomecanvasmm/polygon.h>
28#include "map_value.h"
29
30///Graph visualization setup window.
31
32///This class is responsible for creating a window,
33///on which the visualization attributes can be
34///assigned to maps.
35class MapWin : public Gtk::Window
36{
37protected:
38  ///\ref NoteBookTab to that the \ref MapWin belongs to.
39  NoteBookTab & mytab;
40
41  ///Designing element
42  Gtk::Table * table;
43 
44  ///\ref MapSelectors for each property
45
46  ///Each property has an own \ref MapSelector through which
47  ///the map to visualize by the property van be set.
48  MapSelector ** e_combo_array;
49
50  ///\ref MapSelectors for each property
51
52  ///Each property has an own \ref MapSelector through which
53  ///the map to visualize by the property van be set.
54  MapSelector ** n_combo_array;
55
56  ///Information holder
57  Gtk::Label * label;
58
59  ///Container in which elements are organized.
60  Gtk::VBox vbox;
61
62public:
63  ///Constructor
64
65  ///It creates the widgets shown in \ref MapWin and
66  ///binds the needed signal to the correct place.
67  ///\param title title of window
68  ///\param mw the owner \ref NoteBookTab (\ref mytab)
69  MapWin(const std::string& title,
70      std::vector<std::string> n_eml,
71      std::vector<std::string> s_eml,
72      std::vector<std::string> n_nml,
73      std::vector<std::string> s_nml,
74      NoteBookTab & mw);
75
76  ///Deregistrates \ref MapWin in its \ref NoteBookTab (\ref mytab)
77  virtual bool on_delete_event(GdkEventAny *);
78
79  ///Handles changement in nodemap selection
80
81  ///If \ref MapSelector emits a signal that indicates
82  ///changement in nodemap selection this function will
83  ///be called. It calls the appropriate handler function,
84  ///\ref NoteBookTab::propertyChange with parameters describing the changement.
85  ///\param mapname the recently selected map
86  ///\param prop the changed property
87  void nodeMapChanged(std::string mapname, int prop);
88
89  ///Handles changement in edgemap selection
90
91  ///If \ref MapSelector emits a signal that indicates
92  ///changement in edgemap selection this function will
93  ///be called. It calls the appropriate handler function,
94  ///\ref NoteBookTab::propertyChange with parameters describing the changement.
95  ///\param mapname the recently selected map
96  ///\param prop the changed property
97  void edgeMapChanged(std::string mapname, int prop);
98
99  ///Indicates to the owner \ref NoteBookTab that a \ref NewMapWin should be opened.
100
101  ///This function is bound to the
102  ///signal emitted by the \ref MapSelector in case of
103  ///the user wants to create a new map. It only pass the
104  ///information further to the tab owning this \ref MapWin that is needed to open the
105  ///\ref NewMapWin. (\ref NoteBookTab::popupNewMapWin)
106  ///\param itisedge should the new map will be an edgemap? (or nodemap)
107  void newMapWinNeeded(bool itisedge);
108
109  ///This function inserts name of the new edgemap in the name list in \ref MapSelector s
110
111  ///\param new_name
112  ///name of new map
113  void registerNewEdgeMap(std::string new_name, MapValue::Type type);
114
115  ///This function inserts name of the new nodemap in the name list in \ref MapSelector s
116
117  ///\param new_name
118  ///name of new map
119  void registerNewNodeMap(std::string new_name, MapValue::Type type);
120
121  ///Close window if Esc key pressed.
122  virtual bool closeIfEscapeIsPressed(GdkEventKey*);
123
124  ///Updates list of maps in all \ref MapSelector
125
126  ///This function is called by \ref NoteBookTab, when the file
127  ///showed in it has changed, therefore the contained maps
128  ///have changed as well. \ref NoteBookTab knows, whether it
129  ///has to call this function or not from the \ref NoteBookTab::mapwinexists
130  ///variable.
131  void update(
132    std::vector<std::string> n_eml,
133    std::vector<std::string> s_eml,
134    std::vector<std::string> n_nml,
135    std::vector<std::string> s_nml);
136
137  void changeEntry(bool, int, std::string);
138
139  void set_title(std::string);
140};
141
142#endif //MAP_WIN_H
Note: See TracBrowser for help on using the repository browser.