eps_win.h
changeset 3 2cc5ed6e6255
equal deleted inserted replaced
-1:000000000000 0:578ed599e8f2
       
     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