dpiadj_ = spin->get_adjustment();
xml_->get_widget("Zoom", spin);
zoomadj_ = spin->get_adjustment();
-
-/*
- inlineradio_->signal_toggled().connect(
- sigc::mem_fun(*this, &GPreferences::apply));
- bcview().addReadOnly(inlineradio_);*/
-
+
+ // *** Graphics ***
+ xml_->get_widget("GraphicsColor", graphicscolorradio_);
+ xml_->get_widget("GraphicsGrayscale", graphicsgrayscaleradio_);
+ xml_->get_widget("GraphicsMonochrome", graphicsmonoradio_);
+ xml_->get_widget("GraphicsDoNotDisplay", graphicsnoneradio_);
+
+ xml_->get_widget("InstantPreviewOn", instprevonradio_);
+ xml_->get_widget("InstantPreviewOff", instprevoffradio_);
+ xml_->get_widget("InstantPreviewNoMath", instprevnomathradio_);
+
+ // *** Keyboard ***
+ xml_->get_widget("UseKeyboardMap", keyboardmapcheck_);
+ Gtk::HBox *box;
+ xml_->get_widget("FirstKeyboardMap", box);
+ box->pack_start(keyboardmap1fcbutton_);
+ keyboardmap1fcbutton_.set_action(Gtk::FILE_CHOOSER_ACTION_OPEN);
+ keyboardmap1fcbutton_.show();
+ xml_->get_widget("SecondKeyboardMap", box);
+ box->pack_start(keyboardmap2fcbutton_);
+ keyboardmap2fcbutton_.set_action(Gtk::FILE_CHOOSER_ACTION_OPEN);
+ keyboardmap2fcbutton_.show();
+
+ Gtk::FileFilter kmapfilter;
+ kmapfilter.set_name ("LyX keyboard maps");
+ kmapfilter.add_pattern ("*.kmap");
+ Gtk::FileFilter allfilter;
+ allfilter.set_name ("All files");
+ allfilter.add_pattern ("*");
+
+ keyboardmap1fcbutton_.add_filter (kmapfilter);
+ keyboardmap1fcbutton_.add_filter (allfilter);
+ keyboardmap1fcbutton_.set_filter (kmapfilter);
+ keyboardmap2fcbutton_.add_filter (kmapfilter);
+ keyboardmap2fcbutton_.add_filter (allfilter);
+ keyboardmap2fcbutton_.set_filter (kmapfilter);
+
+ keyboardmapcheck_->signal_toggled().connect(
+ sigc::mem_fun(*this, &GPreferences::keyboard_sensitivity));
}
void GPreferences::update()
{
- applylock_ = true;
-
LyXRC const & rc(controller().rc());
// *** Screen fonts ***
zoomadj_->set_value (rc.zoom);
dpiadj_->set_value (rc.dpi);
+ // *** Graphics ***
+ switch (rc.display_graphics) {
+ case graphics::NoDisplay:
+ graphicsnoneradio_->set_active();
+ break;
+ case graphics::MonochromeDisplay:
+ graphicsmonoradio_->set_active();
+ break;
+ case graphics::GrayscaleDisplay:
+ graphicsgrayscaleradio_->set_active();
+ break;
+ default:
+ case graphics::ColorDisplay:
+ graphicscolorradio_->set_active();
+ break;
+ }
+
+ switch (rc.preview) {
+ case LyXRC::PREVIEW_ON:
+ instprevonradio_->set_active();
+ break;
+ case LyXRC::PREVIEW_NO_MATH:
+ instprevnomathradio_->set_active();
+ break;
+ default:
+ case LyXRC::PREVIEW_OFF:
+ instprevoffradio_->set_active();
+ break;
+ }
+
+ // *** Keyboard ***
+ keyboardmapcheck_->set_active (rc.use_kbmap);
+ keyboardmap1fcbutton_.set_filename (rc.primary_kbmap);
+ keyboardmap2fcbutton_.set_filename (rc.secondary_kbmap);
+ keyboardmap1fcbutton_.set_sensitive (rc.use_kbmap);
+ keyboardmap2fcbutton_.set_sensitive (rc.use_kbmap);
+
bc().valid();
- applylock_ = false;
}
void GPreferences::apply()
{
- if (applylock_)
- return;
-
LyXRC & rc(controller().rc());
// *** Screen fonts ***
+ LyXRC const oldrc(rc);
+
rc.roman_font_name = Pango::FontDescription(
romanfontbutton_->get_font_name()).get_family ();
rc.roman_font_foundry = "";
typewriterfontbutton_->get_font_name()).get_family ();
rc.typewriter_font_foundry = "";
- rc.zoom = zoomadj_->get_value();
- rc.dpi = dpiadj_->get_value();
+ rc.zoom = static_cast<int>(zoomadj_->get_value());
+ rc.dpi = static_cast<int>(dpiadj_->get_value());
+
+ if (rc.font_sizes != oldrc.font_sizes
+ || rc.roman_font_name != oldrc.roman_font_name
+ || rc.sans_font_name != oldrc.sans_font_name
+ || rc.typewriter_font_name != oldrc.typewriter_font_name
+ || rc.zoom != oldrc.zoom || rc.dpi != oldrc.dpi) {
+ controller().updateScreenFonts();
+ }
+
+ // *** Graphics ***
+ if (graphicsnoneradio_->get_active())
+ rc.display_graphics = graphics::NoDisplay;
+ else if (graphicsgrayscaleradio_->get_active())
+ rc.display_graphics = graphics::GrayscaleDisplay;
+ else if (graphicsmonoradio_->get_active())
+ rc.display_graphics = graphics::MonochromeDisplay;
+ else
+ rc.display_graphics = graphics::ColorDisplay;
+
+ if (instprevonradio_->get_active())
+ rc.preview = LyXRC::PREVIEW_ON;
+ else if (instprevnomathradio_->get_active())
+ rc.preview = LyXRC::PREVIEW_NO_MATH;
+ else
+ rc.preview = LyXRC::PREVIEW_OFF;
+
+ // *** Keyboard ***
+ rc.use_kbmap = keyboardmapcheck_->get_active();
+ if (rc.use_kbmap) {
+ rc.primary_kbmap = keyboardmap1fcbutton_.get_filename();
+ rc.secondary_kbmap = keyboardmap2fcbutton_.get_filename();
+ }
// Prevent Apply button ever getting disabled
bc().valid();
}
+
+void GPreferences::keyboard_sensitivity ()
+{
+ bool const kbmap = keyboardmapcheck_->get_active();
+ keyboardmap1fcbutton_.set_sensitive(kbmap);
+ keyboardmap2fcbutton_.set_sensitive(kbmap);
+}
+
} // namespace frontend
} // namespace lyx
<property name="scrollable">False</property>
<property name="enable_popup">False</property>
- <child>
- <placeholder/>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">label1</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
<child>
<widget class="GtkTable" id="table1">
<property name="border_width">6</property>
</child>
<child>
- <placeholder/>
+ <widget class="GtkTable" id="table2">
+ <property name="border_width">6</property>
+ <property name="visible">True</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">12</property>
+ <property name="column_spacing">6</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkRadioButton" id="GraphicsColor">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Co_lor</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkRadioButton" id="GraphicsGrayscale">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Grayscale</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">GraphicsColor</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkRadioButton" id="GraphicsMonochrome">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Monochrome</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">GraphicsColor</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkRadioButton" id="GraphicsDoNotDisplay">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Do not display</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">GraphicsColor</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label9">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Display g_raphics:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label10">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Instant _preview:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox2">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkRadioButton" id="InstantPreviewOn">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">O_n</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkRadioButton" id="InstantPreviewOff">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">O_ff</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">InstantPreviewOn</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkRadioButton" id="InstantPreviewNoMath">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_No math</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">InstantPreviewOn</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Graphics</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkTable" id="table3">
+ <property name="border_width">6</property>
+ <property name="visible">True</property>
+ <property name="n_rows">3</property>
+ <property name="n_columns">2</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">6</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="UseKeyboardMap">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Use k_eyboard map</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label11">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_First:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label12">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Second:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="FirstKeyboardMap">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <placeholder/>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="SecondKeyboardMap">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <placeholder/>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
</child>
<child>
<widget class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="label" translatable="yes">label3</property>
- <property name="use_underline">False</property>
+ <property name="label" translatable="yes">_Keyboard</property>
+ <property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>