summaryrefslogtreecommitdiffstats
path: root/src/ui/widget
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2015-05-20 08:53:59 +0000
committertavmjong-free <tavmjong@free.fr>2015-05-20 08:53:59 +0000
commit421d13903f4ae30d1b536788e9b48b69398bf139 (patch)
tree97d7b0792f345525de24134ee5e14ac9e0d10567 /src/ui/widget
parentEnable setting of 'font-variant-ligatures' (rendering waits on new Pango libr... (diff)
downloadinkscape-421d13903f4ae30d1b536788e9b48b69398bf139.tar.gz
inkscape-421d13903f4ae30d1b536788e9b48b69398bf139.zip
Font-variants widget: Enable 'Apply' button. Add more tooltips.
(bzr r14163)
Diffstat (limited to 'src/ui/widget')
-rw-r--r--src/ui/widget/font-variants.cpp114
-rw-r--r--src/ui/widget/font-variants.h19
2 files changed, 104 insertions, 29 deletions
diff --git a/src/ui/widget/font-variants.cpp b/src/ui/widget/font-variants.cpp
index 56c24ea6f..637631fda 100644
--- a/src/ui/widget/font-variants.cpp
+++ b/src/ui/widget/font-variants.cpp
@@ -76,6 +76,8 @@ namespace Widget {
{
// Ligatures --------------------------
+
+ // Add tooltips
_ligatures_common.set_tooltip_text(
_("Common ligatures. On by default. OpenType tables: 'liga', 'clig'"));
_ligatures_discretionary.set_tooltip_text(
@@ -85,11 +87,13 @@ namespace Widget {
_ligatures_contextual.set_tooltip_text(
_("Contextual forms. On by default. OpenType table: 'calt'"));
-
+ // Add signals
_ligatures_common.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::ligatures_callback) );
_ligatures_discretionary.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::ligatures_callback) );
_ligatures_historical.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::ligatures_callback) );
_ligatures_contextual.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::ligatures_callback) );
+
+ // Add to frame
_ligatures_vbox.add( _ligatures_common );
_ligatures_vbox.add( _ligatures_discretionary );
_ligatures_vbox.add( _ligatures_historical );
@@ -100,32 +104,41 @@ namespace Widget {
ligatures_init();
// Position ----------------------------------
- _position_vbox.add( _position_normal );
- _position_vbox.add( _position_sub );
- _position_vbox.add( _position_super );
- _position_frame.add( _position_vbox );
- add( _position_frame );
+
+ // Add tooltips
+ _position_normal.set_tooltip_text( _("Normal position."));
+ _position_sub.set_tooltip_text( _("Subscript. OpenType table: 'subs'") );
+ _position_super.set_tooltip_text( _("Superscript. OpenType table: 'sups'") );
// Group buttons
Gtk::RadioButton::Group position_group = _position_normal.get_group();
_position_sub.set_group(position_group);
_position_super.set_group(position_group);
+
+ // Add signals
_position_normal.signal_pressed().connect ( sigc::mem_fun(*this, &FontVariants::position_callback) );
_position_sub.signal_pressed().connect ( sigc::mem_fun(*this, &FontVariants::position_callback) );
_position_super.signal_pressed().connect ( sigc::mem_fun(*this, &FontVariants::position_callback) );
+ // Add to frame
+ _position_vbox.add( _position_normal );
+ _position_vbox.add( _position_sub );
+ _position_vbox.add( _position_super );
+ _position_frame.add( _position_vbox );
+ add( _position_frame );
+
position_init();
// Caps ----------------------------------
- _caps_vbox.add( _caps_normal );
- _caps_vbox.add( _caps_small );
- _caps_vbox.add( _caps_all_small );
- _caps_vbox.add( _caps_petite );
- _caps_vbox.add( _caps_all_petite );
- _caps_vbox.add( _caps_unicase );
- _caps_vbox.add( _caps_titling );
- _caps_frame.add( _caps_vbox );
- add( _caps_frame );
+
+ // Add tooltips
+ _caps_normal.set_tooltip_text( _("Normal capitalization."));
+ _caps_small.set_tooltip_text( _("Small-caps (lowercase). OpenType table: 'smcp'"));
+ _caps_all_small.set_tooltip_text( _("All small-caps (uppercase and lowercase). OpenType tables: 'c2sc' and 'smcp'"));
+ _caps_petite.set_tooltip_text( _("Petite-caps (lowercase). OpenType table: 'pcap'"));
+ _caps_all_petite.set_tooltip_text( _("All petite-caps (uppercase and lowercase). OpenType tables: 'c2sc' and 'pcap'"));
+ _caps_unicase.set_tooltip_text( _("Unicase (small caps for uppercase, normal for lowercase). OpenType table: 'unic'"));
+ _caps_titling.set_tooltip_text( _("Titling caps (lighter-weight uppercase for use in titles). OpenType table: 'titl'"));
// Group buttons
Gtk::RadioButton::Group caps_group = _caps_normal.get_group();
@@ -135,6 +148,8 @@ namespace Widget {
_caps_all_petite.set_group(caps_group);
_caps_unicase.set_group(caps_group);
_caps_titling.set_group(caps_group);
+
+ // Add signals
_caps_normal.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) );
_caps_small.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) );
_caps_all_small.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) );
@@ -143,9 +158,61 @@ namespace Widget {
_caps_unicase.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) );
_caps_titling.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) );
+ // Add to frame
+ _caps_vbox.add( _caps_normal );
+ _caps_vbox.add( _caps_small );
+ _caps_vbox.add( _caps_all_small );
+ _caps_vbox.add( _caps_petite );
+ _caps_vbox.add( _caps_all_petite );
+ _caps_vbox.add( _caps_unicase );
+ _caps_vbox.add( _caps_titling );
+ _caps_frame.add( _caps_vbox );
+ add( _caps_frame );
+
caps_init();
// Numeric ------------------------------
+
+ // Add tooltips
+ _numeric_default_style.set_tooltip_text( _("Normal style."));
+ _numeric_lining.set_tooltip_text( _("Lining numerals. OpenType table: 'lnum'"));
+ _numeric_old_style.set_tooltip_text( _("Old style numerals. OpenType table: 'onum'"));
+ _numeric_default_width.set_tooltip_text( _("Normal widths."));
+ _numeric_proportional.set_tooltip_text( _("Proportional width numerals. OpenType table: 'pnum'"));
+ _numeric_tabular.set_tooltip_text( _("Same width numerals. OpenType table: 'tnum'"));
+ _numeric_default_fractions.set_tooltip_text( _("Normal fractions."));
+ _numeric_diagonal.set_tooltip_text( _("Diagonal fractions. OpenType table: 'frac'"));
+ _numeric_stacked.set_tooltip_text( _("Stacked fractions. OpenType table: 'afrc'"));
+ _numeric_ordinal.set_tooltip_text( _("Ordinals (raised 'th', etc.). OpenType table: 'ordn'"));
+ _numeric_slashed_zero.set_tooltip_text( _("Slashed zeros. OpenType table: 'zero'"));
+
+ // Group buttons
+ Gtk::RadioButton::Group style_group = _numeric_default_style.get_group();
+ _numeric_lining.set_group(style_group);
+ _numeric_old_style.set_group(style_group);
+
+ Gtk::RadioButton::Group width_group = _numeric_default_width.get_group();
+ _numeric_proportional.set_group(width_group);
+ _numeric_tabular.set_group(width_group);
+
+ Gtk::RadioButton::Group fraction_group = _numeric_default_fractions.get_group();
+ _numeric_diagonal.set_group(fraction_group);
+ _numeric_stacked.set_group(fraction_group);
+
+ // Add signals
+ _numeric_default_style.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) );
+ _numeric_lining.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) );
+ _numeric_old_style.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) );
+ _numeric_default_width.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) );
+ _numeric_proportional.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) );
+ _numeric_tabular.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) );
+ _numeric_default_fractions.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) );
+ _numeric_diagonal.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) );
+ _numeric_stacked.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) );
+ _numeric_ordinal.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) );
+ _numeric_slashed_zero.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) );
+
+ // Add to frame
_numeric_stylebox.add( _numeric_default_style );
_numeric_stylebox.add( _numeric_lining );
_numeric_stylebox.add( _numeric_old_style );
@@ -163,20 +230,9 @@ namespace Widget {
_numeric_frame.add( _numeric_vbox );
add( _numeric_frame );
- // Group buttons
- Gtk::RadioButton::Group style_group = _numeric_default_style.get_group();
- _numeric_lining.set_group(style_group);
- _numeric_old_style.set_group(style_group);
-
- Gtk::RadioButton::Group width_group = _numeric_default_width.get_group();
- _numeric_proportional.set_group(width_group);
- _numeric_tabular.set_group(width_group);
-
- Gtk::RadioButton::Group fraction_group = _numeric_default_fractions.get_group();
- _numeric_diagonal.set_group(fraction_group);
- _numeric_stacked.set_group(fraction_group);
show_all_children();
+
}
void
@@ -188,6 +244,7 @@ namespace Widget {
FontVariants::ligatures_callback() {
// std::cout << "FontVariants::ligatures_callback()" << std::endl;
_ligatures_changed = true;
+ _changed_signal.emit();
}
void
@@ -199,6 +256,7 @@ namespace Widget {
FontVariants::position_callback() {
// std::cout << "FontVariants::position_callback()" << std::endl;
_position_changed = true;
+ _changed_signal.emit();
}
void
@@ -210,6 +268,7 @@ namespace Widget {
FontVariants::caps_callback() {
// std::cout << "FontVariants::caps_callback()" << std::endl;
_caps_changed = true;
+ _changed_signal.emit();
}
void
@@ -221,6 +280,7 @@ namespace Widget {
FontVariants::numeric_callback() {
// std::cout << "FontVariants::numeric_callback()" << std::endl;
_numeric_changed = true;
+ _changed_signal.emit();
}
// Update GUI based on query.
diff --git a/src/ui/widget/font-variants.h b/src/ui/widget/font-variants.h
index 04c05d3c6..e6a9dd68b 100644
--- a/src/ui/widget/font-variants.h
+++ b/src/ui/widget/font-variants.h
@@ -10,8 +10,6 @@
#ifndef INKSCAPE_UI_WIDGET_FONT_VARIANT_H
#define INKSCAPE_UI_WIDGET_FONT_VARIANT_H
-// Temp: both frame and expander
-#include <gtkmm/frame.h>
#include <gtkmm/expander.h>
#include <gtkmm/checkbutton.h>
#include <gtkmm/radiobutton.h>
@@ -112,10 +110,27 @@ private:
bool _caps_changed;
bool _numeric_changed;
+ sigc::signal<void> _changed_signal;
+
public:
+
+ /**
+ * Update GUI based on query results.
+ */
void update( SPStyle const *query );
+ /**
+ * Fill SPCSSAttr based on settings of buttons.
+ */
void fill_css( SPCSSAttr* css );
+
+ /**
+ * Let others know that user has changed GUI settings.
+ * (Used to enable 'Apply' and 'Default' buttons.)
+ */
+ sigc::connection connectChanged(sigc::slot<void> slot) {
+ return _changed_signal.connect(slot);
+ }
};