mirror of https://github.com/GNOME/gimp.git
app/tools/gimptexttool.c app/widgets/gimpfontselection.[ch] started to
2002-10-09 Sven Neumann <sven@gimp.org> * app/tools/gimptexttool.c * app/widgets/gimpfontselection.[ch] * app/widgets/gimpwidgets-utils.[ch]: started to implement the text tool GUI as suggested in #84151.
This commit is contained in:
parent
0c586b3044
commit
4c7b8a374b
|
@ -1,3 +1,10 @@
|
|||
2002-10-09 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/tools/gimptexttool.c
|
||||
* app/widgets/gimpfontselection.[ch]
|
||||
* app/widgets/gimpwidgets-utils.[ch]: started to implement the
|
||||
text tool GUI as suggested in #84151.
|
||||
|
||||
2002-10-09 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/core/gimppalette.c (gimp_palette_get_new_preview): adjust
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "core/gimptoolinfo.h"
|
||||
|
||||
#include "widgets/gimpfontselection.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
|
||||
|
@ -73,6 +74,14 @@ struct _TextOptions
|
|||
GimpUnit unit;
|
||||
GimpUnit unit_d;
|
||||
GtkWidget *unit_w;
|
||||
|
||||
gdouble line_spacing;
|
||||
gdouble line_spacing_d;
|
||||
GtkObject *line_spacing_w;
|
||||
|
||||
gdouble letter_spacing;
|
||||
gdouble letter_spacing_d;
|
||||
GtkObject *letter_spacing_w;
|
||||
};
|
||||
|
||||
|
||||
|
@ -370,6 +379,7 @@ text_tool_options_new (GimpToolInfo *tool_info)
|
|||
GtkWidget *table;
|
||||
GtkWidget *size_spinbutton;
|
||||
GtkWidget *border_spinbutton;
|
||||
GtkWidget *spin_button;
|
||||
|
||||
options = g_new0 (TextOptions, 1);
|
||||
|
||||
|
@ -377,18 +387,22 @@ text_tool_options_new (GimpToolInfo *tool_info)
|
|||
|
||||
((GimpToolOptions *) options)->reset_func = text_tool_options_reset;
|
||||
|
||||
options->fontname_d = DEFAULT_FONT;
|
||||
options->border = options->border_d = 0;
|
||||
options->size = options->size_d = DEFAULT_FONT_SIZE;
|
||||
options->unit = options->unit_d = GIMP_UNIT_PIXEL;
|
||||
options->fontname_d = DEFAULT_FONT;
|
||||
options->border = options->border_d = 0;
|
||||
options->size = options->size_d = DEFAULT_FONT_SIZE;
|
||||
options->unit = options->unit_d = GIMP_UNIT_PIXEL;
|
||||
options->line_spacing = options->line_spacing_d = 1.0;
|
||||
options->letter_spacing = options->letter_spacing_d = 1.0;
|
||||
|
||||
/* the main vbox */
|
||||
vbox = options->tool_options.main_vbox;
|
||||
|
||||
table = gtk_table_new (4, 3, FALSE);
|
||||
table = gtk_table_new (4, 5, FALSE);
|
||||
gtk_table_set_col_spacings (GTK_TABLE (table), 2);
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table), 2);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (table), 3, 12);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (table), FALSE, FALSE, 0);
|
||||
gtk_widget_show (table);
|
||||
|
||||
pango_context = pango_ft2_get_context (gimprc.monitor_xres,
|
||||
gimprc.monitor_yres);
|
||||
|
@ -405,7 +419,7 @@ text_tool_options_new (GimpToolInfo *tool_info)
|
|||
options->font_selection, 2, FALSE);
|
||||
|
||||
options->size_w = gimp_scale_entry_new (GTK_TABLE (table), 0, 1,
|
||||
_("Size:"), -1, 5,
|
||||
_("_Size:"), -1, 5,
|
||||
options->size,
|
||||
1.0, 256.0, 1.0, 50.0, 1,
|
||||
FALSE, 1e-5, 32767.0,
|
||||
|
@ -418,7 +432,7 @@ text_tool_options_new (GimpToolInfo *tool_info)
|
|||
&options->size);
|
||||
|
||||
options->border_w = gimp_scale_entry_new (GTK_TABLE (table), 0, 2,
|
||||
_("Border:"), -1, 5,
|
||||
_("_Border:"), -1, 5,
|
||||
options->border,
|
||||
0.0, 100.0, 1.0, 50.0, 1,
|
||||
FALSE, 0.0, 32767.0,
|
||||
|
@ -446,7 +460,27 @@ text_tool_options_new (GimpToolInfo *tool_info)
|
|||
G_CALLBACK (gimp_unit_menu_update),
|
||||
&options->unit);
|
||||
|
||||
gtk_widget_show (table);
|
||||
spin_button = gimp_spin_button_new (&options->letter_spacing_w,
|
||||
options->letter_spacing,
|
||||
0.0, 64.0, 0.1, 1.0, 0.0, 1.0, 2);
|
||||
gtk_entry_set_width_chars (GTK_ENTRY (spin_button), 5);
|
||||
gimp_table_attach_stock (GTK_TABLE (table), 0, 4,
|
||||
GIMP_STOCK_LETTER_SPACING, spin_button);
|
||||
|
||||
g_signal_connect (G_OBJECT (options->letter_spacing_w), "value_changed",
|
||||
G_CALLBACK (gimp_double_adjustment_update),
|
||||
&options->letter_spacing);
|
||||
|
||||
spin_button = gimp_spin_button_new (&options->line_spacing_w,
|
||||
options->line_spacing,
|
||||
0.0, 64.0, 0.1, 1.0, 0.0, 1.0, 2);
|
||||
gtk_entry_set_width_chars (GTK_ENTRY (spin_button), 5);
|
||||
gimp_table_attach_stock (GTK_TABLE (table), 0, 5,
|
||||
GIMP_STOCK_LINE_SPACING, spin_button);
|
||||
|
||||
g_signal_connect (G_OBJECT (options->line_spacing_w), "value_changed",
|
||||
G_CALLBACK (gimp_double_adjustment_update),
|
||||
&options->line_spacing);
|
||||
|
||||
return (GimpToolOptions *) options;
|
||||
}
|
||||
|
@ -478,4 +512,9 @@ text_tool_options_reset (GimpToolOptions *tool_options)
|
|||
spinbutton =
|
||||
g_object_get_data (G_OBJECT (spinbutton), "set_digits");
|
||||
}
|
||||
|
||||
gtk_adjustment_set_value (GTK_ADJUSTMENT (options->line_spacing_w),
|
||||
options->line_spacing_d);
|
||||
gtk_adjustment_set_value (GTK_ADJUSTMENT (options->letter_spacing_w),
|
||||
options->letter_spacing_d);
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ static void gimp_font_selection_class_init (GimpFontSelectionClass *k
|
|||
static void gimp_font_selection_init (GimpFontSelection *fontsel);
|
||||
static void gimp_font_selection_finalize (GObject *object);
|
||||
static void gimp_font_selection_real_font_changed (GimpFontSelection *fontsel);
|
||||
|
||||
static void gimp_font_selection_real_activate (GimpFontSelection *fontsel);
|
||||
static void gimp_font_selection_browse_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
static void gimp_font_selection_entry_callback (GtkWidget *widget,
|
||||
|
@ -60,6 +60,7 @@ static gboolean gimp_font_selection_entry_focus_out (GtkWidget *widget,
|
|||
enum
|
||||
{
|
||||
FONT_CHANGED,
|
||||
ACTIVATE,
|
||||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
|
@ -99,9 +100,11 @@ gimp_font_selection_get_type (void)
|
|||
static void
|
||||
gimp_font_selection_class_init (GimpFontSelectionClass *klass)
|
||||
{
|
||||
GObjectClass *object_class;
|
||||
GObjectClass *object_class;
|
||||
GtkWidgetClass *widget_class;
|
||||
|
||||
object_class = G_OBJECT_CLASS (klass);
|
||||
widget_class = GTK_WIDGET_CLASS (klass);
|
||||
|
||||
parent_class = g_type_class_peek_parent (klass);
|
||||
|
||||
|
@ -109,15 +112,26 @@ gimp_font_selection_class_init (GimpFontSelectionClass *klass)
|
|||
g_signal_new ("font_changed",
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_FIRST,
|
||||
G_STRUCT_OFFSET (GimpFontSelectionClass,
|
||||
font_changed),
|
||||
G_STRUCT_OFFSET (GimpFontSelectionClass, font_changed),
|
||||
NULL, NULL,
|
||||
gimp_marshal_VOID__VOID,
|
||||
G_TYPE_NONE, 0);
|
||||
|
||||
gimp_font_selection_signals[ACTIVATE] =
|
||||
g_signal_new ("activate",
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
|
||||
G_STRUCT_OFFSET (GimpFontSelectionClass, activate),
|
||||
NULL, NULL,
|
||||
gimp_marshal_VOID__VOID,
|
||||
G_TYPE_NONE, 0);
|
||||
|
||||
object_class->finalize = gimp_font_selection_finalize;
|
||||
|
||||
widget_class->activate_signal = gimp_font_selection_signals[ACTIVATE];
|
||||
|
||||
klass->font_changed = gimp_font_selection_real_font_changed;
|
||||
klass->activate = gimp_font_selection_real_activate;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -126,7 +140,7 @@ gimp_font_selection_init (GimpFontSelection *fontsel)
|
|||
GtkWidget *button;
|
||||
GtkWidget *image;
|
||||
|
||||
fontsel->context = NULL;
|
||||
fontsel->context = NULL;
|
||||
|
||||
fontsel->valid = gtk_image_new_from_stock (GTK_STOCK_NO, GTK_ICON_SIZE_MENU);
|
||||
gtk_box_pack_start (GTK_BOX (fontsel), fontsel->valid, FALSE, FALSE, 0);
|
||||
|
@ -204,6 +218,12 @@ gimp_font_selection_font_changed (GimpFontSelection *fontsel)
|
|||
gimp_font_selection_signals[FONT_CHANGED], 0);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_font_selection_real_activate (GimpFontSelection *fontsel)
|
||||
{
|
||||
gtk_widget_activate (fontsel->entry);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_font_selection_real_font_changed (GimpFontSelection *fontsel)
|
||||
{
|
||||
|
@ -339,9 +359,7 @@ gimp_font_selection_browse_callback (GtkWidget *widget,
|
|||
GimpFontSelection *fontsel = GIMP_FONT_SELECTION (data);
|
||||
|
||||
if (!fontsel->dialog)
|
||||
{
|
||||
fontsel->dialog = gimp_font_selection_dialog_new (fontsel);
|
||||
}
|
||||
fontsel->dialog = gimp_font_selection_dialog_new (fontsel);
|
||||
|
||||
gimp_font_selection_dialog_show (fontsel->dialog);
|
||||
}
|
||||
|
|
|
@ -53,6 +53,7 @@ struct _GimpFontSelectionClass
|
|||
GtkHBoxClass parent_class;
|
||||
|
||||
void (* font_changed) (GimpFontSelection *fontsel);
|
||||
void (* activate) (GimpFontSelection *fontsel);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -346,3 +346,43 @@ gimp_widget_get_callback_context (GtkWidget *widget)
|
|||
|
||||
return accel_context;
|
||||
}
|
||||
|
||||
void
|
||||
gimp_table_attach_stock (GtkTable *table,
|
||||
gint column,
|
||||
gint row,
|
||||
const gchar *stock_id,
|
||||
GtkWidget *widget)
|
||||
{
|
||||
GtkStockItem item;
|
||||
GtkWidget *label;
|
||||
GtkWidget *image;
|
||||
|
||||
g_return_if_fail (GTK_IS_TABLE (table));
|
||||
g_return_if_fail (stock_id != NULL);
|
||||
|
||||
if (! gtk_stock_lookup (stock_id, &item))
|
||||
return;
|
||||
|
||||
image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON);
|
||||
gtk_table_attach (table, image, column, column + 1, row, row + 1,
|
||||
GTK_SHRINK, GTK_SHRINK, 0, 0);
|
||||
gtk_widget_show (image);
|
||||
|
||||
label = gtk_label_new_with_mnemonic (item.label);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (table, label, column + 1, column + 2, row, row + 1,
|
||||
GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
if (!widget)
|
||||
return;
|
||||
|
||||
g_return_if_fail (GTK_IS_WIDGET (widget));
|
||||
|
||||
gtk_table_attach (table, widget, column + 2, column + 3, row, row + 1,
|
||||
GTK_SHRINK, GTK_SHRINK, 0, 0);
|
||||
gtk_widget_show (widget);
|
||||
|
||||
gtk_label_set_mnemonic_widget (GTK_LABEL (label), widget);
|
||||
}
|
||||
|
|
|
@ -43,7 +43,12 @@ void gimp_window_add_accel_group (GtkWindow *window,
|
|||
void gimp_window_remove_accel_group (GtkWindow *window,
|
||||
GtkItemFactory *item_factory);
|
||||
|
||||
gpointer gimp_widget_get_callback_context (GtkWidget *widget);
|
||||
gpointer gimp_widget_get_callback_context (GtkWidget *widget);
|
||||
|
||||
void gimp_table_attach_stock (GtkTable *table,
|
||||
gint column,
|
||||
gint row,
|
||||
const gchar *stock_id,
|
||||
GtkWidget *widget);
|
||||
|
||||
#endif /* __GIMP_WIDGETS_UTILS_H__ */
|
||||
|
|
Loading…
Reference in New Issue