eps_win.h
author Akos Ladanyi <ladanyi@tmit.bme.hu>
Thu, 10 Jul 2008 18:53:00 +0100
changeset 4 244d8c60b997
permissions -rw-r--r--
Issue a custom error message when Lemon is not found.
     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