ladanyi@184: #include "background_chooser_dialog.h" ladanyi@184: #include ladanyi@184: #include "mapstorage.h" ladanyi@184: ladanyi@184: BackgroundChooserDialog::BackgroundChooserDialog(MapStorage* ms) : ladanyi@184: mapstorage(ms), ladanyi@184: btnClear(Gtk::Stock::CLEAR) ladanyi@184: { ladanyi@184: set_has_separator(false); ladanyi@184: ladanyi@184: Gtk::VBox* pVBox = get_vbox(); ladanyi@184: ladanyi@184: lblBackground.set_text("Background image file"); ladanyi@184: lblBackground.set_use_markup(); ladanyi@184: lblBackground.set_alignment(Gtk::ALIGN_LEFT); ladanyi@184: lblScaling.set_text("Scaling factor"); ladanyi@184: lblScaling.set_use_markup(); ladanyi@184: lblScaling.set_alignment(Gtk::ALIGN_LEFT); ladanyi@184: fcbBackground.set_width_chars(30); ladanyi@184: fcbBackground.set_action(Gtk::FILE_CHOOSER_ACTION_OPEN); ladanyi@184: if (mapstorage->isBackgroundSet()) ladanyi@184: { ladanyi@184: fcbBackground.set_filename(mapstorage->getBackgroundFilename()); ladanyi@184: } ladanyi@184: ladanyi@184: fcbBackground.signal_selection_changed().connect( ladanyi@184: sigc::mem_fun(*this, &BackgroundChooserDialog::setBackground)); ladanyi@184: ladanyi@184: btnClear.signal_clicked().connect( ladanyi@184: sigc::mem_fun(*this, &BackgroundChooserDialog::clearBackground)); ladanyi@184: ladanyi@184: pVBox->pack_start(lblBackground, Gtk::PACK_SHRINK); ladanyi@184: pVBox->pack_start(box, Gtk::PACK_SHRINK); ladanyi@184: box.pack_start(fcbBackground, Gtk::PACK_EXPAND_WIDGET); ladanyi@184: box.pack_start(btnClear, Gtk::PACK_SHRINK); ladanyi@184: pVBox->pack_start(lblScaling, Gtk::PACK_SHRINK); ladanyi@184: pVBox->pack_start(sbScaling, Gtk::PACK_SHRINK); ladanyi@184: ladanyi@184: add_button(Gtk::Stock::CLOSE, Gtk::RESPONSE_CLOSE); ladanyi@184: ladanyi@184: show_all_children(); ladanyi@184: } ladanyi@184: ladanyi@184: void BackgroundChooserDialog::clearBackground() ladanyi@184: { ladanyi@184: fcbBackground.unselect_all(); ladanyi@184: } ladanyi@184: ladanyi@184: void BackgroundChooserDialog::setBackground() ladanyi@184: { ladanyi@184: mapstorage->setBackground(fcbBackground.get_filename()); ladanyi@184: }