preferences-widget.cpp revision 5cf332777b4c27336d64c273ac63bce3ee27a53d
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm * Inkscape Preferences dialog.
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm * Authors:
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm * Marco Scholten
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm * Bruno Dilly <bruno.dilly@gmail.com>
032f369baeef7d4a3b8769997df5dcd6dd874830jfbarraud * Copyright (C) 2004, 2006, 2007 Authors
f4a94b19c3c5d7d1e7bd926de1eb7e6c077babb2johanengelen * Released under GNU GPL. Read the file 'COPYING' for more information.
3515994554d167522343ce57417648b39370ccabcilixnamespace UI {
1b3a8414f17dc95fc921d999ea715c99d10dd4aaAlex Valavanisvoid DialogPage::add_line(bool indent, Glib::ustring const &label, Gtk::Widget &widget, Glib::ustring const &suffix, const Glib::ustring &tip, bool expand_widget)
1b3a8414f17dc95fc921d999ea715c99d10dd4aaAlex Valavanis Gtk::HBox* hb = Gtk::manage(new Gtk::HBox());
1b3a8414f17dc95fc921d999ea715c99d10dd4aaAlex Valavanis label_widget = Gtk::manage(new Gtk::Label(label , Gtk::ALIGN_LEFT , Gtk::ALIGN_CENTER, true));
1c88ed492df4a0bcb37006a6cc36127897cd847ejfbarraud Gtk::Alignment* alignment = Gtk::manage(new Gtk::Alignment());
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm this->attach(*alignment , 0, 1, row, row + 1, Gtk::FILL, Gtk::AttachOptions(), 0, 0);
06cd6b0ab2dbe286184e35d1078bab18c966b0d2jfbarraud this->attach(*label_widget , 0, 1, row, row + 1, Gtk::FILL, Gtk::AttachOptions(), 0, 0);
4d2f452da50c83a3bced2bab8cb9e2b287c6efd1johanengelen Gtk::Alignment* alignment = Gtk::manage(new Gtk::Alignment());
3515994554d167522343ce57417648b39370ccabcilix this->attach(*alignment, start_col, 2, row, row + 1, Gtk::FILL | Gtk::EXPAND, Gtk::AttachOptions(), 0, 0);
ecf048161ae0284d01d34ca5844204775c0d3fdecilix this->attach(*w, start_col, 2, row, row + 1, Gtk::FILL | Gtk::EXPAND, Gtk::AttachOptions(), 0, 0);
9de5f3bfa8e35ad5e6adcd6eaad4d0d49e7043a3johanengelen Gtk::Label* suffix_widget = Gtk::manage(new Gtk::Label(suffix , Gtk::ALIGN_LEFT , Gtk::ALIGN_CENTER, true));
4d2f452da50c83a3bced2bab8cb9e2b287c6efd1johanengelen this->attach(*suffix_widget, 2, 3, row, row + 1, Gtk::FILL, Gtk::AttachOptions(), 0, 0);
4d2f452da50c83a3bced2bab8cb9e2b287c6efd1johanengelen ((Gtk::HBox*)w)->pack_start(*suffix_widget,false,false);
1ba2d157b7006f2f1a6043bc29e9c66be6386373johanengelenvoid DialogPage::add_group_header(Glib::ustring name)
a2887d4a3493b24349a0f1390ed069ca1d2b1d61JazzyNico Gtk::Label* label_widget = Gtk::manage(new Gtk::Label(Glib::ustring(/*"<span size='large'>*/"<b>") + name +
a2887d4a3493b24349a0f1390ed069ca1d2b1d61JazzyNico Glib::ustring("</b>"/*</span>"*/) , Gtk::ALIGN_LEFT , Gtk::ALIGN_CENTER, true));
72b7b31db250f20b90730d2888e6a554b434a407johanengelen this->attach(*label_widget , 0, 4, row, row + 1, Gtk::FILL, Gtk::AttachOptions(), 0, 0);
a45e91fd09273632e9acf849bb72621832156f07cilixvoid DialogPage::set_tip(Gtk::Widget& widget, Glib::ustring const &tip)
a45e91fd09273632e9acf849bb72621832156f07cilixvoid PrefCheckButton::init(Glib::ustring const &label, Glib::ustring const &prefs_path,
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm Inkscape::Preferences *prefs = Inkscape::Preferences::get();
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm this->set_active( prefs->getBool(_prefs_path, default_value) );
29f9623ba77fc735b89765ae3a13e0c06aabafcecilix if (this->is_visible()) //only take action if the user toggled it
92fe3142613d000eff89db8a983b3b18b14eee79johanengelen Inkscape::Preferences *prefs = Inkscape::Preferences::get();
42e99769805c14a5cc01c805faa3c3b03f9dd1c0johanengelen prefs->setBool(_prefs_path, this->get_active());
06cd6b0ab2dbe286184e35d1078bab18c966b0d2jfbarraudvoid PrefRadioButton::init(Glib::ustring const &label, Glib::ustring const &prefs_path,
06cd6b0ab2dbe286184e35d1078bab18c966b0d2jfbarraud Glib::ustring const &string_value, bool default_value, PrefRadioButton* group_member)
92fe3142613d000eff89db8a983b3b18b14eee79johanengelen Gtk::RadioButtonGroup rbg = group_member->get_group();
92fe3142613d000eff89db8a983b3b18b14eee79johanengelen Inkscape::Preferences *prefs = Inkscape::Preferences::get();
0563fd55cbad59e8a878e6d4cbbdd8e47f74488djohanengelen this->set_active( false );
8d9f5d586a04809427ce1df284a5720112177991cilixvoid PrefRadioButton::init(Glib::ustring const &label, Glib::ustring const &prefs_path,
92fe3142613d000eff89db8a983b3b18b14eee79johanengelen int int_value, bool default_value, PrefRadioButton* group_member)
6f4a90e526af850ffc36064f58f09c190f3b633fjohanengelen Gtk::RadioButtonGroup rbg = group_member->get_group();
f4db63be4e929f4706410914295deccaceea19cdcilix Inkscape::Preferences *prefs = Inkscape::Preferences::get();
f4db63be4e929f4706410914295deccaceea19cdcilix this->set_active( prefs->getInt(_prefs_path, int_value) == _int_value );
ab99111a42436818e6902e044c8f3af2b724263bcilix this->set_active( prefs->getInt(_prefs_path, int_value + 1) == _int_value );
3d0482af18ffb591c1d8ddecf516629e1bcd2ae4cilix Inkscape::Preferences *prefs = Inkscape::Preferences::get();
64aee804a6a47424f7994e60558351b8cf2ea4dbcilix if (this->is_visible() && this->get_active() ) //only take action if toggled by user (to active)
61cfd957cd023c4f432ea0c7307784a56bf978e9cilixvoid PrefSpinButton::init(Glib::ustring const &prefs_path,
61cfd957cd023c4f432ea0c7307784a56bf978e9cilix double lower, double upper, double step_increment, double /*page_increment*/,
add2ffae3c4686b50d888775bbdf083a4726a210johanengelen Inkscape::Preferences *prefs = Inkscape::Preferences::get();
0a75b58e47d3de42550c4f7960e253ea3befc09ajohanengelen value = 100 * prefs->getDoubleLimited(prefs_path, default_value, lower/100.0, upper/100.0);
4afe3fc6b9c122bc5c02b27aea3845ba41384d2acilix value = (double) prefs->getIntLimited(prefs_path, (int) default_value, (int) lower, (int) upper);
ecf048161ae0284d01d34ca5844204775c0d3fdecilix value = prefs->getDoubleLimited(prefs_path, default_value, lower, upper);
4fe8248cd521387d0829c423bf4492e2cbdfd7cdJohan Engelen Inkscape::Preferences *prefs = Inkscape::Preferences::get();
4fe8248cd521387d0829c423bf4492e2cbdfd7cdJohan Engelen if (this->is_visible()) //only take action if user changed value
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm prefs->setDouble(_prefs_path, this->get_value()/100.0);
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrmvoid PrefSpinUnit::init(Glib::ustring const &prefs_path,
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm double default_value, UnitType unit_type, Glib::ustring const &default_unit)
6656f193fdace606d1b162d6dea0223bc295f0a6cilix setRange (lower, upper); /// @fixme this disregards changes of units
6656f193fdace606d1b162d6dea0223bc295f0a6cilix Inkscape::Preferences *prefs = Inkscape::Preferences::get();
6656f193fdace606d1b162d6dea0223bc295f0a6cilix double value = prefs->getDoubleLimited(prefs_path, default_value, lower, upper);
6656f193fdace606d1b162d6dea0223bc295f0a6cilix // write the assumed unit to preferences:
3cfad782faf34c654ec837780ed7b3fe95e82c2eJohan B. C. Engelen signal_value_changed().connect_notify(sigc::mem_fun(*this, &PrefSpinUnit::on_my_value_changed));
c27006137a3ad49e074b97b3297db753e1ac8eefcilix Inkscape::Preferences *prefs = Inkscape::Preferences::get();
c27006137a3ad49e074b97b3297db753e1ac8eefcilix if (getWidget()->is_visible()) //only take action if user changed value
71146abe8aba032d73788a625fee5769a581bd3ccilix prefs->setDoubleUnit(_prefs_path, getValue(getUnit().abbr), getUnit().abbr);
507f5de177a9e789927e7ac3e80ac05b27720084Johan B. C. Engelen set_size_request(x + _border*2, y + _border*2);
c90010388b0d4045c26e81c2be28beedcb36c7d3cilix// The following two functions are borrowed from 2geom's toy-framework-2; if they are useful in
77a4a003111bd5cfb771d4849801c898aeb889b0cilix// other locations, we should perhaps make them (or adapted versions of them) publicly available
77a4a003111bd5cfb771d4849801c898aeb889b0cilixdraw_text(cairo_t *cr, Geom::Point loc, const char* txt, bool bottom = false,
262d0c3f05130d86368d95f110aa8ccab5f83e5ccilix double fontsize = ZoomCorrRuler::textsize, std::string fontdesc = "Sans") {
a39c187369a59e887255e3f704a3ababf2b10678Johan B. C. Engelen PangoLayout* layout = pango_cairo_create_layout (cr);
262d0c3f05130d86368d95f110aa8ccab5f83e5ccilix // set font and size
23d859f2ce09c04ed802cb4912cc9c50f512f0a2bgk PangoFontDescription *font_desc = pango_font_description_from_string(fontdesc.c_str());
0b2d8abc1011ad865fce3b883ccb2587cb15cc90Johan B. C. Engelen pango_layout_set_font_description(layout, font_desc);
23d859f2ce09c04ed802cb4912cc9c50f512f0a2bgk pango_layout_get_pixel_extents(layout, NULL, &logical_extent);
77a4a003111bd5cfb771d4849801c898aeb889b0cilix cairo_move_to(cr, loc[Geom::X], loc[Geom::Y] - (bottom ? logical_extent.height : 0));
77a4a003111bd5cfb771d4849801c898aeb889b0cilixdraw_number(cairo_t *cr, Geom::Point pos, double num) {
77a4a003111bd5cfb771d4849801c898aeb889b0cilix * \arg dist The distance between consecutive minor marks
77a4a003111bd5cfb771d4849801c898aeb889b0cilix * \arg major_interval Number of marks after which to draw a major mark
494c671e141564431d7d05f141c885d9a2789db5cilixZoomCorrRuler::draw_marks(Cairo::RefPtr<Cairo::Context> cr, double dist, int major_interval) {
77a4a003111bd5cfb771d4849801c898aeb889b0cilix Inkscape::Preferences *prefs = Inkscape::Preferences::get();
77a4a003111bd5cfb771d4849801c898aeb889b0cilix const double zoomcorr = prefs->getDouble("/options/zoomcorrection/value", 1.0);
77a4a003111bd5cfb771d4849801c898aeb889b0cilix double mark = 0;
494c671e141564431d7d05f141c885d9a2789db5cilix if ((i % major_interval) == 0) {
77a4a003111bd5cfb771d4849801c898aeb889b0cilix // major mark
97a20864afec63a0b7bb757b628ee2ae596cf648cilix Geom::Point textpos(mark + 3, ZoomCorrRuler::textsize + ZoomCorrRuler::textpadding);
97a20864afec63a0b7bb757b628ee2ae596cf648cilix // minor mark
97a20864afec63a0b7bb757b628ee2ae596cf648cilix cr->line_to(mark, ZoomCorrRuler::textsize + 2 * ZoomCorrRuler::textpadding);
0b2d8abc1011ad865fce3b883ccb2587cb15cc90Johan B. C. Engelen Cairo::RefPtr<Cairo::Context> cr = window->create_cairo_context();
a2fbdfc8e80d3d1845bf0d5df989726ae2ffd5bfjohanengelen cr->translate(_border, _border); // so that we have a small white border around the ruler
ecda720053ff791e35dae3c5c1177bc225b6cdf1johanengelen Inkscape::Preferences *prefs = Inkscape::Preferences::get();
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm Glib::ustring abbr = prefs->getString("/options/zoomcorrection/unit");
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrmZoomCorrRuler::on_expose_event(GdkEventExpose */*event*/) {
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm return true;
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm if (this->is_visible() || freeze) //only take action if user changed value
0b2d8abc1011ad865fce3b883ccb2587cb15cc90Johan B. C. Engelen Inkscape::Preferences *prefs = Inkscape::Preferences::get();
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm prefs->setDouble("/options/zoomcorrection/value", _slider.get_value() / 100.0);
93bb287e28a818fd5ba61b99d012e0500a49ccf6johanengelen if (this->is_visible() || freeze) //only take action if user changed value
93bb287e28a818fd5ba61b99d012e0500a49ccf6johanengelen Inkscape::Preferences *prefs = Inkscape::Preferences::get();
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm prefs->setDouble("/options/zoomcorrection/value", _sb.get_value() / 100.0);
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm if (GPOINTER_TO_INT(_unit.get_data("sensitive")) == 0) {
93bb287e28a818fd5ba61b99d012e0500a49ccf6johanengelen // when the unit menu is initialized, the unit is set to the default but
93bb287e28a818fd5ba61b99d012e0500a49ccf6johanengelen // it needs to be reset later so we don't perform the change in this case
2d107ef9730aff3f4d776ae0c2f7d983e289ce02joncruz Inkscape::Preferences *prefs = Inkscape::Preferences::get();
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm prefs->setString("/options/zoomcorrection/unit", _unit.getUnitAbbr());
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm double conv = _unit.getConversion(_unit.getUnitAbbr(), "px");
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrmZoomCorrRulerSlider::init(int ruler_width, int ruler_height, double lower, double upper,
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm double step_increment, double page_increment, double default_value)
93bb287e28a818fd5ba61b99d012e0500a49ccf6johanengelen Inkscape::Preferences *prefs = Inkscape::Preferences::get();
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm double value = prefs->getDoubleLimited("/options/zoomcorrection/value", default_value, lower, upper) * 100.0;
797bee69297bbdd86c5cff2e0771a71d1e2ac69dcilix _slider.set_increments (step_increment, page_increment);
25ad3718fb4b96b39930af8e043c8ee1e624fd10cilix _slider.signal_value_changed().connect(sigc::mem_fun(*this, &ZoomCorrRulerSlider::on_slider_value_changed));
25ad3718fb4b96b39930af8e043c8ee1e624fd10cilix _sb.signal_value_changed().connect(sigc::mem_fun(*this, &ZoomCorrRulerSlider::on_spinbutton_value_changed));
25ad3718fb4b96b39930af8e043c8ee1e624fd10cilix _unit.signal_changed().connect(sigc::mem_fun(*this, &ZoomCorrRulerSlider::on_unit_changed));
0b2d8abc1011ad865fce3b883ccb2587cb15cc90Johan B. C. Engelen _unit.setUnit(prefs->getString("/options/zoomcorrection/unit"));
2e2b8bd323e3693f9d86f545ce049d3f1b45d1c2cilix Gtk::Alignment *alignment1 = Gtk::manage(new Gtk::Alignment(0.5,1,0,0));
2e2b8bd323e3693f9d86f545ce049d3f1b45d1c2cilix Gtk::Alignment *alignment2 = Gtk::manage(new Gtk::Alignment(0.5,1,0,0));
2e2b8bd323e3693f9d86f545ce049d3f1b45d1c2cilix table->attach(*alignment1, 1, 2, 0, 1, static_cast<Gtk::AttachOptions>(0));
2e2b8bd323e3693f9d86f545ce049d3f1b45d1c2cilix table->attach(*alignment2, 1, 2, 1, 2, static_cast<Gtk::AttachOptions>(0));
3160bbbab034cde9669d9dbe736bd834b9cb0352Abhishek Sharma Public this->pack_start(*table, Gtk::PACK_EXPAND_WIDGET);
2e2b8bd323e3693f9d86f545ce049d3f1b45d1c2cilix if (this->is_visible() || freeze) //only take action if user changed value
2e2b8bd323e3693f9d86f545ce049d3f1b45d1c2cilix Inkscape::Preferences *prefs = Inkscape::Preferences::get();
04c99c338ffdc6e10cb6f5c18f6f06b3f555e8ebcilix if (this->is_visible() || freeze) //only take action if user changed value
04c99c338ffdc6e10cb6f5c18f6f06b3f555e8ebcilix Inkscape::Preferences *prefs = Inkscape::Preferences::get();
c0cd5511d3b975ebe07d019c1f5528108725e438johanengelen double lower, double upper, double step_increment, double page_increment, double default_value, int digits)
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm Inkscape::Preferences *prefs = Inkscape::Preferences::get();
c0cd5511d3b975ebe07d019c1f5528108725e438johanengelen double value = prefs->getDoubleLimited(prefs_path, default_value, lower, upper);
96ef6190a69e8101a3c3a8ef8b01cb35042d1f9dcilix _slider.set_increments (step_increment, page_increment);
6192db41ab6e422a6193affbd3e68d61e184627bJon A. Cruz _slider.signal_value_changed().connect(sigc::mem_fun(*this, &PrefSlider::on_slider_value_changed));
6192db41ab6e422a6193affbd3e68d61e184627bJon A. Cruz _sb.signal_value_changed().connect(sigc::mem_fun(*this, &PrefSlider::on_spinbutton_value_changed));
c0cd5511d3b975ebe07d019c1f5528108725e438johanengelen Gtk::Table *table = Gtk::manage(new Gtk::Table());
84d6d1f7365e49f2936df9df890ce49d2c000ce2Kris Gtk::Alignment *alignment1 = Gtk::manage(new Gtk::Alignment(0.5,1,0,0));
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm table->attach(*alignment1, 1, 2, 0, 1, static_cast<Gtk::AttachOptions>(0));
f68aabe351946119c80978525cd86564dd33e02fJon A. Cruzvoid PrefCombo::init(Glib::ustring const &prefs_path,
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm Glib::ustring labels[], int values[], int num_items, int default_value)
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm Inkscape::Preferences *prefs = Inkscape::Preferences::get();
f68aabe351946119c80978525cd86564dd33e02fJon A. Cruz int value = prefs->getInt(_prefs_path, default_value);
f68aabe351946119c80978525cd86564dd33e02fJon A. Cruz for (int i = 0 ; i < num_items; ++i)
93bb287e28a818fd5ba61b99d012e0500a49ccf6johanengelenvoid PrefCombo::init(Glib::ustring const &prefs_path,
93bb287e28a818fd5ba61b99d012e0500a49ccf6johanengelen Glib::ustring labels[], Glib::ustring values[], int num_items, Glib::ustring default_value)
93bb287e28a818fd5ba61b99d012e0500a49ccf6johanengelen Inkscape::Preferences *prefs = Inkscape::Preferences::get();
56542e2b97ec8826cc692153b0e2d4f5ac8ef913johanengelen Glib::ustring value = prefs->getString(_prefs_path);
fb5a72174252e0e79107dcad3bf5a2bbd73e349cjohanengelen for (int i = 0 ; i < num_items; ++i)
a0334366488989ef25fb812d7030d298c0917c96johanengelen if (this->is_visible()) //only take action if user changed value
fb5a72174252e0e79107dcad3bf5a2bbd73e349cjohanengelen Inkscape::Preferences *prefs = Inkscape::Preferences::get();
f9504c822b72a774b910958446fd1e730235b7cbjoncruz prefs->setInt(_prefs_path, _values[this->get_active_row_number()]);
fb5a72174252e0e79107dcad3bf5a2bbd73e349cjohanengelen prefs->setString(_prefs_path, _ustr_values[this->get_active_row_number()]);
fb5a72174252e0e79107dcad3bf5a2bbd73e349cjohanengelenvoid PrefEntryButtonHBox::init(Glib::ustring const &prefs_path,
fb5a72174252e0e79107dcad3bf5a2bbd73e349cjohanengelen bool visibility, Glib::ustring const &default_string)
fb5a72174252e0e79107dcad3bf5a2bbd73e349cjohanengelen Inkscape::Preferences *prefs = Inkscape::Preferences::get();
fb5a72174252e0e79107dcad3bf5a2bbd73e349cjohanengelen relatedEntry->set_text(prefs->getString(_prefs_path));
fb5a72174252e0e79107dcad3bf5a2bbd73e349cjohanengelen sigc::mem_fun(*this, &PrefEntryButtonHBox::onRelatedButtonClickedCallback));
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm sigc::mem_fun(*this, &PrefEntryButtonHBox::onRelatedEntryChangedCallback));
42e99769805c14a5cc01c805faa3c3b03f9dd1c0johanengelenvoid PrefEntryButtonHBox::onRelatedEntryChangedCallback()
a39c187369a59e887255e3f704a3ababf2b10678Johan B. C. Engelen if (this->is_visible()) //only take action if user changed value
a69e3ca5fcc8acacf862c577620d75f472d58cecjohanengelen Inkscape::Preferences *prefs = Inkscape::Preferences::get();
a69e3ca5fcc8acacf862c577620d75f472d58cecjohanengelen prefs->setString(_prefs_path, relatedEntry->get_text());
42e99769805c14a5cc01c805faa3c3b03f9dd1c0johanengelenvoid PrefEntryButtonHBox::onRelatedButtonClickedCallback()
ddc251b3cf95b0097b6a5ee39ea132bd4d7d5cbcjohanengelen if (this->is_visible()) //only take action if user changed value
ddc251b3cf95b0097b6a5ee39ea132bd4d7d5cbcjohanengelen Inkscape::Preferences *prefs = Inkscape::Preferences::get();
ddc251b3cf95b0097b6a5ee39ea132bd4d7d5cbcjohanengelen prefs->setString(_prefs_path, _default_string);
ddc251b3cf95b0097b6a5ee39ea132bd4d7d5cbcjohanengelenvoid PrefEntryFileButtonHBox::init(Glib::ustring const &prefs_path,
42ba1b712b7b430669fc49aa9facb439181081becilix Inkscape::Preferences *prefs = Inkscape::Preferences::get();
3cfad782faf34c654ec837780ed7b3fe95e82c2eJohan B. C. Engelen relatedEntry->set_visibility(visibility);
42ba1b712b7b430669fc49aa9facb439181081becilix relatedEntry->set_text(prefs->getString(_prefs_path));
42ba1b712b7b430669fc49aa9facb439181081becilix Gtk::Image *im = new Gtk::Image(Gtk::StockID(Gtk::Stock::INDEX),
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm sigc::mem_fun(*this, &PrefEntryFileButtonHBox::onRelatedButtonClickedCallback));
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm sigc::mem_fun(*this, &PrefEntryFileButtonHBox::onRelatedEntryChangedCallback));
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrmvoid PrefEntryFileButtonHBox::onRelatedEntryChangedCallback()
f07bfd5a05d43a6d11f7cd442f085149092dea88pjrm if (this->is_visible()) //only take action if user changed value
#ifdef WIN32
if(utf8path)
if (!selectPrefsFileInstance) {
if (!success) {