|
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 EPS_WIN_H |
|
20 #define EPS_WIN_H |
|
21 |
|
22 class MapSelector; |
|
23 |
|
24 #include <all_include.h> |
|
25 #include <libgnomecanvasmm.h> |
|
26 #include <libgnomecanvasmm/polygon.h> |
|
27 #include "map_value.h" |
|
28 |
|
29 ///Digraph visualization setup window. |
|
30 |
|
31 ///This class is responsible for creating a window, |
|
32 ///on which the visualization attributes can be |
|
33 ///assigned to maps. |
|
34 class EpsWin : public Gtk::Dialog |
|
35 { |
|
36 protected: |
|
37 ///Designing element |
|
38 Gtk::Table * table; |
|
39 |
|
40 ///Information holder |
|
41 Gtk::Label * label; |
|
42 |
|
43 ///configuration |
|
44 std::vector<Gtk::CheckButton *> options; |
|
45 |
|
46 ///OK, Cancel |
|
47 Gtk::Button * ok, * cancel; |
|
48 |
|
49 ///Container in which filename entry are organized. |
|
50 Gtk::HBox hbox; |
|
51 |
|
52 ///Filename |
|
53 Gtk::Entry name; |
|
54 |
|
55 MapSelector * mapselector; |
|
56 public: |
|
57 ///Constructor |
|
58 |
|
59 ///It creates the widgets shown in \ref EpsWin and |
|
60 ///binds the needed signal to the correct place. |
|
61 ///\param title title of window |
|
62 ///\param eml arcmap list |
|
63 ///\param nml nodemap list |
|
64 ///\param mw the owner \ref NoteBookTab (\ref mytab) |
|
65 EpsWin(const std::string& title, std::vector<std::string>, std::vector<std::string>); |
|
66 |
|
67 ///Deregistrates \ref EpsWin in its \ref NoteBookTab (\ref mytab) |
|
68 virtual bool on_delete_event(GdkEventAny *); |
|
69 |
|
70 ///Close window if Esc key pressed. |
|
71 virtual bool closeIfEscapeIsPressed(GdkEventKey*); |
|
72 |
|
73 ///Callback function for OK button. It creates the map. |
|
74 |
|
75 ///If OK is pressed this function |
|
76 ///transmits the collected data to |
|
77 ///appropriate functions to be able |
|
78 ///to create EPS |
|
79 virtual void on_response(int response_id); |
|
80 |
|
81 ///indicates that user is ready to export EPS file |
|
82 sigc::signal<void, std::vector<bool>, std::string, std::string > signal_eps_details; |
|
83 |
|
84 ///returns \ref signal_eps_details |
|
85 sigc::signal<void, std::vector<bool>, std::string, std::string > signal_eps_details_ch(){return signal_eps_details;}; |
|
86 |
|
87 ///indicates that the windows can be closed |
|
88 sigc::signal<void> signal_eps_close; |
|
89 |
|
90 ///returns \ref signal_eps_close |
|
91 sigc::signal<void> signal_eps_close_ch(){return signal_eps_close;}; |
|
92 |
|
93 ///indicates that the windows can be closed |
|
94 sigc::signal<void, bool> signal_new_map; |
|
95 |
|
96 ///returns \ref signal_eps_close |
|
97 sigc::signal<void, bool> signal_new_map_ch(){return signal_new_map;}; |
|
98 |
|
99 ///Function is called when new map is required. |
|
100 void newMapWinNeeded(bool); |
|
101 |
|
102 ///This function inserts name of the new nodemap in the name list in \ref MapSelector s |
|
103 |
|
104 ///\param new_name |
|
105 ///name of new map |
|
106 void registerNewNodeMap(std::string new_name, MapValue::Type type); |
|
107 }; |
|
108 |
|
109 #endif //EPS_WIN_H |