background_chooser_dialog.cc
author Peter Hegyi <hegyi@tmit.bme.hu>
Wed, 13 Aug 2008 17:24:25 +0100
changeset 6 3a44a2bb6da8
permissions -rw-r--r--
Remove lemon/graph_utils.h include.
hegyi@1
     1
#include <background_chooser_dialog.h>
hegyi@1
     2
#include <gtkmm/stock.h>
hegyi@1
     3
#include <mapstorage.h>
hegyi@1
     4
hegyi@1
     5
BackgroundChooserDialog::BackgroundChooserDialog(MapStorage* ms) :
hegyi@1
     6
  mapstorage(ms),
hegyi@1
     7
  btnClear(Gtk::Stock::CLEAR)
hegyi@1
     8
{
hegyi@1
     9
  set_has_separator(false);
hegyi@1
    10
hegyi@1
    11
  Gtk::VBox* pVBox = get_vbox();
hegyi@1
    12
hegyi@1
    13
  lblBackground.set_text("<b>Background image file</b>");
hegyi@1
    14
  lblBackground.set_use_markup();
hegyi@1
    15
  lblBackground.set_alignment(Gtk::ALIGN_LEFT);
hegyi@1
    16
  lblScaling.set_text("<b>Scaling factor</b>");
hegyi@1
    17
  lblScaling.set_use_markup();
hegyi@1
    18
  lblScaling.set_alignment(Gtk::ALIGN_LEFT);
hegyi@1
    19
  fcbBackground.set_width_chars(30);
hegyi@1
    20
  fcbBackground.set_action(Gtk::FILE_CHOOSER_ACTION_OPEN);
hegyi@1
    21
  if (mapstorage->isBackgroundSet())
hegyi@1
    22
  {
hegyi@1
    23
    fcbBackground.set_filename(mapstorage->getBackgroundFilename());
hegyi@1
    24
  }
hegyi@1
    25
hegyi@1
    26
  fcbBackground.signal_selection_changed().connect(
hegyi@1
    27
    sigc::mem_fun(*this, &BackgroundChooserDialog::setBackground));
hegyi@1
    28
hegyi@1
    29
  btnClear.signal_clicked().connect(
hegyi@1
    30
    sigc::mem_fun(*this, &BackgroundChooserDialog::clearBackground));
hegyi@1
    31
hegyi@1
    32
  pVBox->pack_start(lblBackground, Gtk::PACK_SHRINK);
hegyi@1
    33
  pVBox->pack_start(box, Gtk::PACK_SHRINK);
hegyi@1
    34
  box.pack_start(fcbBackground, Gtk::PACK_EXPAND_WIDGET);
hegyi@1
    35
  box.pack_start(btnClear, Gtk::PACK_SHRINK);
hegyi@1
    36
  pVBox->pack_start(lblScaling, Gtk::PACK_SHRINK);
hegyi@1
    37
  pVBox->pack_start(sbScaling, Gtk::PACK_SHRINK);
hegyi@1
    38
hegyi@1
    39
  add_button(Gtk::Stock::CLOSE, Gtk::RESPONSE_CLOSE);
hegyi@1
    40
hegyi@1
    41
  show_all_children();
hegyi@1
    42
}
hegyi@1
    43
hegyi@1
    44
void BackgroundChooserDialog::clearBackground()
hegyi@1
    45
{
hegyi@1
    46
  fcbBackground.unselect_all();
hegyi@1
    47
}
hegyi@1
    48
hegyi@1
    49
void BackgroundChooserDialog::setBackground()
hegyi@1
    50
{
hegyi@1
    51
  mapstorage->setBackground(fcbBackground.get_filename());
hegyi@1
    52
}