[gimp] app: use a size entry instead of a spinbutton in GimpTextStyleEditor
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: use a size entry instead of a spinbutton in GimpTextStyleEditor
- Date: Sun, 20 Mar 2011 11:38:07 +0000 (UTC)
commit 6d97fd3887938ab50380881f6c83e1cefd1b481b
Author: Michael Natterer <mitch gimp org>
Date: Sun Mar 20 12:37:01 2011 +0100
app: use a size entry instead of a spinbutton in GimpTextStyleEditor
so it's finally clear what unit the text size has.
app/widgets/gimptextstyleeditor.c | 63 +++++++++++++++++++++----------------
app/widgets/gimptextstyleeditor.h | 4 +--
2 files changed, 37 insertions(+), 30 deletions(-)
---
diff --git a/app/widgets/gimptextstyleeditor.c b/app/widgets/gimptextstyleeditor.c
index 9cebd22..1a80dc6 100644
--- a/app/widgets/gimptextstyleeditor.c
+++ b/app/widgets/gimptextstyleeditor.c
@@ -96,7 +96,7 @@ static void gimp_text_style_editor_set_toggle (GimpTextStyleEditor *
GtkToggleButton *toggle,
gboolean active);
-static void gimp_text_style_editor_size_changed (GtkAdjustment *adjustment,
+static void gimp_text_style_editor_size_changed (GimpSizeEntry *entry,
GimpTextStyleEditor *editor);
static void gimp_text_style_editor_set_size (GimpTextStyleEditor *editor,
GtkTextTag *size_tag);
@@ -204,19 +204,18 @@ gimp_text_style_editor_init (GimpTextStyleEditor *editor)
gimp_help_set_help_data (editor->font_entry,
_("Change font of selected text"), NULL);
- editor->size_adjustment =
- GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 1000.0, 1.0, 10.0, 0.0));
- editor->size_spinbutton = gtk_spin_button_new (editor->size_adjustment,
- 1.0, 1);
- gtk_entry_set_width_chars (GTK_ENTRY (editor->size_spinbutton), 5);
- gtk_box_pack_start (GTK_BOX (editor->upper_hbox), editor->size_spinbutton,
+ editor->size_entry =
+ gimp_size_entry_new (1, 0, "%a", TRUE, FALSE, FALSE, 10,
+ GIMP_SIZE_ENTRY_UPDATE_SIZE);
+ gtk_table_set_col_spacing (GTK_TABLE (editor->size_entry), 1, 0);
+ gtk_box_pack_start (GTK_BOX (editor->upper_hbox), editor->size_entry,
FALSE, FALSE, 0);
- gtk_widget_show (editor->size_spinbutton);
+ gtk_widget_show (editor->size_entry);
- gimp_help_set_help_data (editor->size_spinbutton,
+ gimp_help_set_help_data (editor->size_entry,
_("Change size of selected text"), NULL);
- g_signal_connect (editor->size_adjustment, "value-changed",
+ g_signal_connect (editor->size_entry, "value-changed",
G_CALLBACK (gimp_text_style_editor_size_changed),
editor);
@@ -763,45 +762,55 @@ gimp_text_style_editor_set_toggle (GimpTextStyleEditor *editor,
}
static void
-gimp_text_style_editor_size_changed (GtkAdjustment *adjustment,
+gimp_text_style_editor_size_changed (GimpSizeEntry *entry,
GimpTextStyleEditor *editor)
{
GtkTextBuffer *buffer = GTK_TEXT_BUFFER (editor->buffer);
GtkTextIter start, end;
+ gdouble points;
if (! gtk_text_buffer_get_selection_bounds (buffer, &start, &end))
{
return;
}
+ points = gimp_units_to_points (gimp_size_entry_get_refval (entry, 0),
+ GIMP_UNIT_PIXEL,
+ editor->resolution_y);
+
gimp_text_buffer_set_size (editor->buffer, &start, &end,
- gtk_adjustment_get_value (adjustment) *
- PANGO_SCALE);
+ PANGO_SCALE * points);
}
static void
gimp_text_style_editor_set_size (GimpTextStyleEditor *editor,
GtkTextTag *size_tag)
{
- gint size = 0;
+ gint size = 0;
+ gdouble pixels;
if (size_tag)
size = gimp_text_tag_get_size (size_tag);
- g_signal_handlers_block_by_func (editor->size_adjustment,
+ g_signal_handlers_block_by_func (editor->size_entry,
gimp_text_style_editor_size_changed,
editor);
- gtk_adjustment_set_value (editor->size_adjustment,
- (gdouble) size / PANGO_SCALE);
+ pixels = gimp_units_to_pixels ((gdouble) size / PANGO_SCALE,
+ GIMP_UNIT_POINT,
+ editor->resolution_y);
+ gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (editor->size_entry), 0, pixels);
- if (size != 0)
- /* make sure the "" really gets replaced */
- gtk_adjustment_value_changed (editor->size_adjustment);
- else
- gtk_entry_set_text (GTK_ENTRY (editor->size_spinbutton), "");
+ if (size == 0)
+ {
+ GtkWidget *spinbutton;
+
+ spinbutton = gimp_size_entry_get_help_widget (GIMP_SIZE_ENTRY (editor->size_entry), 0);
+
+ gtk_entry_set_text (GTK_ENTRY (spinbutton), "");
+ }
- g_signal_handlers_unblock_by_func (editor->size_adjustment,
+ g_signal_handlers_unblock_by_func (editor->size_entry,
gimp_text_style_editor_size_changed,
editor);
}
@@ -809,17 +818,17 @@ gimp_text_style_editor_set_size (GimpTextStyleEditor *editor,
static void
gimp_text_style_editor_set_default_size (GimpTextStyleEditor *editor)
{
- gdouble points = gimp_units_to_points (editor->text->font_size,
+ gdouble pixels = gimp_units_to_pixels (editor->text->font_size,
editor->text->unit,
editor->resolution_y);
- g_signal_handlers_block_by_func (editor->size_adjustment,
+ g_signal_handlers_block_by_func (editor->size_entry,
gimp_text_style_editor_size_changed,
editor);
- gtk_adjustment_set_value (editor->size_adjustment, points);
+ gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (editor->size_entry), 0, pixels);
- g_signal_handlers_unblock_by_func (editor->size_adjustment,
+ g_signal_handlers_unblock_by_func (editor->size_entry,
gimp_text_style_editor_size_changed,
editor);
}
diff --git a/app/widgets/gimptextstyleeditor.h b/app/widgets/gimptextstyleeditor.h
index de78861..f2ef84e 100644
--- a/app/widgets/gimptextstyleeditor.h
+++ b/app/widgets/gimptextstyleeditor.h
@@ -50,14 +50,12 @@ struct _GimpTextStyleEditor
GtkWidget *lower_hbox;
GtkWidget *font_entry;
+ GtkWidget *size_entry;
GtkWidget *color_button;
GtkWidget *clear_button;
- GtkWidget *size_spinbutton;
- GtkAdjustment *size_adjustment;
-
GtkWidget *baseline_spinbutton;
GtkAdjustment *baseline_adjustment;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]