hegyi@192: /* -*- C++ -*- hegyi@192: * hegyi@192: * This file is a part of LEMON, a generic C++ optimization library hegyi@192: * hegyi@192: * Copyright (C) 2003-2006 hegyi@192: * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport hegyi@192: * (Egervary Research Group on Combinatorial Optimization, EGRES). hegyi@192: * hegyi@192: * Permission to use, modify and distribute this software is granted hegyi@192: * provided that this copyright notice appears in all copies. For hegyi@192: * precise terms see the accompanying LICENSE file. hegyi@192: * hegyi@192: * This software is provided "AS IS" with no warranty of any kind, hegyi@192: * express or implied, and with no claim as to its suitability for any hegyi@192: * purpose. hegyi@192: * hegyi@192: */ hegyi@192: hegyi@192: #include "eps_win.h" hegyi@192: #include hegyi@192: hegyi@192: bool EpsWin::closeIfEscapeIsPressed(GdkEventKey* e) hegyi@192: { hegyi@192: if(e->keyval==GDK_Escape) hegyi@192: { hegyi@192: hide(); hegyi@192: } hegyi@192: return true; hegyi@192: } hegyi@192: hegyi@192: EpsWin::EpsWin(const std::string& title, NoteBookTab & mw):Gtk::Dialog(title, true, true),mytab(mw) hegyi@192: { hegyi@192: set_default_size(200, 50); hegyi@192: hegyi@192: set_resizable(false); hegyi@192: hegyi@192: signal_key_press_event().connect(sigc::mem_fun(*this, &EpsWin::closeIfEscapeIsPressed)); hegyi@192: hegyi@192: mytab.signal_title_ch().connect(sigc::mem_fun(*this, &EpsWin::set_title)); hegyi@192: hegyi@192: table=new Gtk::Table(EPS_PROPERTY_NUM, 1, false); hegyi@192: hegyi@192: std::vector labels; hegyi@192: labels.resize(EPS_PROPERTY_NUM); hegyi@192: hegyi@192: labels[N_MAPS]="Dump visualized nodemaps"; hegyi@192: labels[E_MAPS]="Dump visualizes edgemaps"; hegyi@192: labels[ARROWS]="Show arrows in directed graphs"; hegyi@192: labels[PAR]="Indicate parallel edges"; hegyi@192: hegyi@192: options.resize(EPS_PROPERTY_NUM); hegyi@192: hegyi@192: for(int i=0;ipack_start(*table); hegyi@192: vbox->pack_start(hbox); hegyi@192: hegyi@192: //OK button hegyi@192: add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); hegyi@192: add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK); hegyi@192: hegyi@192: show_all_children(); hegyi@192: hegyi@192: } hegyi@192: hegyi@192: bool EpsWin::on_delete_event(GdkEventAny * event) hegyi@192: { hegyi@192: event=event; hegyi@192: mytab.closeEpsWin(); hegyi@192: return true; hegyi@192: } hegyi@192: hegyi@192: void EpsWin::on_response(int response_id) hegyi@192: { hegyi@192: if(response_id==Gtk::RESPONSE_OK) hegyi@192: { hegyi@192: std::vector values; hegyi@192: values.resize(EPS_PROPERTY_NUM); hegyi@192: for(int i=0;iget_active(); hegyi@192: } hegyi@192: mytab.exportGraphToEPS(values, name.get_text()); hegyi@192: } hegyi@192: on_delete_event(NULL); hegyi@192: }