preferences-widget.cpp revision 877345db2877c63364e8aa4dfa89cfd1a85ea41a
/**
* \brief Inkscape Preferences dialog
*
* Authors:
* Marco Scholten
* Bruno Dilly <bruno.dilly@gmail.com>
*
* Copyright (C) 2004, 2006, 2007 Authors
*
* Released under GNU GPL. Read the file 'COPYING' for more information.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <gtkmm/alignment.h>
#include "prefs-utils.h"
#include "ui/widget/preferences-widget.h"
#include "verbs.h"
#include "selcue.h"
#include <iostream>
#include "enums.h"
#include "inkscape.h"
#include "desktop-handles.h"
#include "message-stack.h"
#include "style.h"
#include "selection.h"
#include "selection-chemistry.h"
namespace Inkscape {
namespace UI {
namespace Widget {
{
this->set_border_width(12);
this->set_col_spacings(12);
this->set_row_spacings(6);
}
void DialogPage::add_line(bool indent, const Glib::ustring label, Gtk::Widget& widget, const Glib::ustring suffix, const Glib::ustring& tip, bool expand_widget)
{
int start_col;
int row = this->property_n_rows();
if (expand_widget)
{
w = &widget;
}
else
{
}
if (label != "")
{
if (indent)
{
}
else
start_col = 1;
}
else
start_col = 0;
{
this->attach(*alignment, start_col, 2, row, row + 1, Gtk::FILL | Gtk::EXPAND, Gtk::AttachOptions(), 0, 0);
}
else
{
}
if (suffix != "")
{
Gtk::Label* suffix_widget = Gtk::manage(new Gtk::Label(suffix , Gtk::ALIGN_LEFT , Gtk::ALIGN_CENTER, true));
if (expand_widget)
else
}
if (tip != "")
{
}
}
{
int row = this->property_n_rows();
if (name != "")
{
Gtk::Label* label_widget = Gtk::manage(new Gtk::Label(Glib::ustring(/*"<span size='large'>*/"<b>") + name +
label_widget->set_use_markup(true);
if (row != 1)
}
}
{
}
void PrefCheckButton::init(const Glib::ustring& label, const std::string& prefs_path, const std::string& attr,
bool default_value)
{
this->set_active( prefs_get_int_attribute (_prefs_path.c_str(), _attr.c_str(), (int)default_value) );
}
void PrefCheckButton::on_toggled()
{
if (this->is_visible()) //only take action if the user toggled it
{
}
}
void PrefRadioButton::init(const Glib::ustring& label, const std::string& prefs_path, const std::string& attr,
{
(void)default_value;
if (group_member)
{
}
if ( val )
else
this->set_active( false );
}
void PrefRadioButton::init(const Glib::ustring& label, const std::string& prefs_path, const std::string& attr,
{
if (group_member)
{
}
if (default_value)
this->set_active( prefs_get_int_attribute( _prefs_path.c_str(), _attr.c_str(), int_value ) == _int_value);
else
this->set_active( prefs_get_int_attribute( _prefs_path.c_str(), _attr.c_str(), int_value + 1 )== _int_value);
}
void PrefRadioButton::on_toggled()
{
{
if ( _value_type == VAL_STRING )
else if ( _value_type == VAL_INT )
}
}
{
double value;
if (is_int)
if (is_percent)
value = 100 * prefs_get_double_attribute_limited (prefs_path.c_str(), attr.c_str(), default_value, lower/100.0, upper/100.0);
else
value = (double) prefs_get_int_attribute_limited (prefs_path.c_str(), attr.c_str(), (int) default_value, (int) lower, (int) upper);
else
value = prefs_get_double_attribute_limited (prefs_path.c_str(), attr.c_str(), default_value, lower, upper);
this->set_numeric();
this->set_width_chars(6);
if (is_int)
this->set_digits(0);
else if (step_increment < 0.1)
this->set_digits(4);
else
this->set_digits(2);
}
void PrefSpinButton::on_value_changed()
{
if (this->is_visible()) //only take action if user changed value
{
if (_is_int)
if (_is_percent)
else
else
}
}
_unitconv(1.0),
_border(5)
{
}
void ZoomCorrRuler::set_size(int x, int y)
{
_min_width = x;
_height = y;
}
// The following two functions are borrowed from 2geom's toy-framework-2; if they are useful in
// other locations, we should perhaps make them (or adapted versions of them) publicly available
static void
// set font and size
}
static void
}
/*
* \arg dist The distance between consecutive minor marks
* \arg major_interval Number of marks after which to draw a major mark
*/
void
double mark = 0;
int i = 0;
while (mark <= _drawing_width) {
if ((i % major_interval) == 0) {
// major mark
} else {
// minor mark
}
++i;
}
}
void
ZoomCorrRuler::redraw() {
int w, h;
} else {
}
}
bool
this->redraw();
return true;
}
void
{
{
freeze = true;
freeze = false;
}
}
void
{
{
freeze = true;
freeze = false;
}
}
void
// when the unit menu is initialized, the unit is set to the default but
// it needs to be reset later so we don't perform the change in this case
return;
}
if (_ruler.is_visible()) {
}
}
void
{
double value = prefs_get_double_attribute_limited ("options.zoomcorrection", "value", default_value, lower, upper) * 100.0;
freeze = false;
_slider.signal_value_changed().connect(sigc::mem_fun(*this, &ZoomCorrRulerSlider::on_slider_value_changed));
_sb.signal_value_changed().connect(sigc::mem_fun(*this, &ZoomCorrRulerSlider::on_spinbutton_value_changed));
}
{
int row = 0;
for (int i = 0 ; i < num_items; ++i)
{
this->append_text(labels[i]);
row = i;
}
this->set_active(row);
}
void PrefCombo::on_changed()
{
if (this->is_visible()) //only take action if user changed value
{
prefs_set_int_attribute (_prefs_path.c_str(), _attr.c_str(), _values[this->get_active_row_number()]);
}
}
{
this->pack_start(*relatedEntry);
this->pack_start(*relatedButton);
}
{
if (this->is_visible()) //only take action if user changed value
{
}
}
{
if (this->is_visible()) //only take action if user changed value
{
}
}
{
select_filename(Glib::filename_from_utf8(prefs_get_string_attribute(_prefs_path.c_str(), _attr.c_str())));
}
void PrefFileButton::onFileChanged()
{
prefs_set_string_attribute(_prefs_path.c_str(), _attr.c_str(), Glib::filename_to_utf8(get_filename()).c_str());
}
bool visibility)
{
this->set_invisible_char('*');
this->set_visibility(visibility);
}
void PrefEntry::on_changed()
{
if (this->is_visible()) //only take action if user changed value
{
}
}
void PrefColorPicker::init(const Glib::ustring& label, const std::string& prefs_path, const std::string& attr,
{
}
{
if (this->is_visible()) //only take action if the user toggled it
{
}
}
{
}
void PrefUnit::on_changed()
{
if (this->is_visible()) //only take action if user changed value
{
}
}
} // namespace Widget
} // namespace UI
} // namespace Inkscape
/*
Local Variables:
mode:c++
c-file-style:"stroustrup"
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
indent-tabs-mode:nil
fill-column:99
End:
*/
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :