Main Page   Class Hierarchy   Data Structures   File List   Data Fields  

editstockmarketnames.cpp

00001 /***************************************************************************
00002                           editstockmarketnames.cpp  -  description
00003                              -------------------
00004     begin                : Sat Jan 18 2002
00005     copyright            : (C) 2002 by Michael Otto
00006     email                : Michael.Otto@saskathex.de
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 #include "editstockmarketnames.h"
00019 
00020 #include "stockmarketvector.h"
00021 #include "stockmarket.h"
00022 
00023 #include <gtkmm/stock.h>
00024 
00025 #include "config.h"
00026 
00027 
00028 
00032 EditStockMarketNames::EditStockMarketNames(const StockMarketVector * const stockMarketVector) {
00033 
00034   EditStockMarketNames::stockMarketVector = stockMarketVector;
00035 
00036   Gtk::VBox *vbox;
00037   Gtk::Button *buttonNext, *buttonCancel, *buttonFinish;
00038   Gtk::HButtonBox *hButtonBox;
00039   Gtk::Table *tableEditStockMarketNames;
00040   Gtk::Label *label;
00041   Gtk::HSeparator *hSep;
00042   
00043   set_title("editing market names");
00044   set_border_width(5);
00045   set_resizable(false);
00046   set_modal(false);
00047 
00048   vbox = manage(new Gtk::VBox(false, 0));
00049   vbox->set_spacing(5);
00050   add(*vbox);
00051 
00052   if (stockMarketVector->getNumberOfStockMarkets() > 0) {
00053     label = manage (new Gtk::Label("Edit the market names:", 0));
00054     vbox->pack_start(*label, Gtk::PACK_SHRINK, 0);
00055     hSep = manage(new Gtk::HSeparator());
00056     vbox->pack_start(*hSep, Gtk::PACK_SHRINK, 0);
00057 
00058     tableEditStockMarketNames = manage(new Gtk::Table(2, stockMarketVector->getNumberOfStockMarkets(), false));
00059     tableEditStockMarketNames->set_spacings(5);
00060     vbox->pack_start(*tableEditStockMarketNames, Gtk::PACK_EXPAND_WIDGET, 0);
00061     entryStockMarketName.clear();
00062     for (int i = 0; i < stockMarketVector->getNumberOfStockMarkets(); i++) {
00063       stockMarket = stockMarketVector->getStockMarket(i);
00064       label = manage (new Gtk::Label("Market name:", 0));
00065       tableEditStockMarketNames->attach(*label, 0, 1, i+0, i+1);
00066       entryName = manage (new Gtk::Entry());
00067       entryName->set_text(stockMarket->getMarketName());
00068       entryName->set_max_length(20);
00069       entryName->set_width_chars(20);
00070       tableEditStockMarketNames->attach(*entryName, 1, 2, i+0, i+1);
00071       entryStockMarketName.push_back(entryName);
00072     }
00073     hSep = manage(new Gtk::HSeparator());
00074     vbox->pack_start(*hSep, Gtk::PACK_SHRINK, 0);
00075 
00076     hButtonBox = manage( new Gtk::HButtonBox());
00077     hButtonBox->set_spacing(5);
00078     vbox->pack_start(*hButtonBox, Gtk::PACK_SHRINK, 0);
00079 
00080     buttonCancel = manage( new Gtk::Button(Gtk::Stock::CANCEL));
00081     buttonCancel->signal_clicked().connect(slot(*this,&EditStockMarketNames::quit));
00082     hButtonBox->pack_start(*buttonCancel, Gtk::PACK_SHRINK, 0);
00083     buttonFinish = manage( new Gtk::Button(Gtk::Stock::SAVE));
00084     buttonFinish->signal_clicked().connect(slot(*this,&EditStockMarketNames::finishEditStockMarketNames));
00085     hButtonBox->pack_start(*buttonFinish, Gtk::PACK_SHRINK, 0);
00086   } else {
00087     set_title("Message");
00088     label = manage (new Gtk::Label("There are no markets!"));
00089     vbox->pack_start(*label, Gtk::PACK_SHRINK, 0);
00090 
00091     buttonCancel = manage(new Gtk::Button(Gtk::Stock::OK));
00092     buttonCancel->signal_clicked().connect(slot(*this,&EditStockMarketNames::quit));
00093     vbox->pack_start(*buttonCancel, Gtk::PACK_SHRINK, 0);
00094   }
00095   show_all();
00096 }
00097 
00101 EditStockMarketNames::~EditStockMarketNames() {}
00102 
00103 
00107 void EditStockMarketNames::quit() {
00108   delete this;
00109 }
00110 
00114 void EditStockMarketNames::finishEditStockMarketNames() {
00115   for (int i = 0; i < stockMarketVector->getNumberOfStockMarkets(); i++) {
00116     stockMarket = stockMarketVector->getStockMarket(i);
00117     entryName = entryStockMarketName[i];
00118     Glib::ustring c1 = entryName->get_text();
00119     string name = locale_from_utf8 (c1);
00120     stockMarket->setMarketName(name);
00121     delete entryName;
00122   }
00123   entryStockMarketName.clear();
00124   quit();
00125 }
00126 
00131 bool EditStockMarketNames::on_delete_event(GdkEventAny *event) {
00132   quit();
00133   return true;
00134 }

Generated on Tue May 27 21:24:01 2003 for gstockcalc by doxygen1.3-rc3