[gimp] app: add signals bindings to change baseline and spacing
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: add signals bindings to change baseline and spacing
- Date: Sat, 27 Feb 2010 12:16:08 +0000 (UTC)
commit 4171d9c77448f668a759a8146e117a59539f80bf
Author: Michael Natterer <mitch gimp org>
Date: Sat Feb 27 13:14:28 2010 +0100
app: add signals bindings to change baseline and spacing
Bind them to Alt+up/down/left/right and connect to the signals in
the text tool editor. The callbacks do nothing yet.
app/tools/gimptexttool-editor.c | 25 +++++++++++++++++++
app/widgets/gimptextproxy.c | 50 +++++++++++++++++++++++++++++++++++++++
app/widgets/gimptextproxy.h | 5 ++++
3 files changed, 80 insertions(+), 0 deletions(-)
---
diff --git a/app/tools/gimptexttool-editor.c b/app/tools/gimptexttool-editor.c
index e4f8906..9e5c1b5 100644
--- a/app/tools/gimptexttool-editor.c
+++ b/app/tools/gimptexttool-editor.c
@@ -68,6 +68,11 @@ static void gimp_text_tool_backspace (GimpTextTool *text_tool);
static void gimp_text_tool_toggle_overwrite (GimpTextTool *text_tool);
static void gimp_text_tool_select_all (GimpTextTool *text_tool,
gboolean select);
+static void gimp_text_tool_change_baseline (GimpTextTool *text_tool,
+ gint count);
+static void gimp_text_tool_change_spacing (GimpTextTool *text_tool,
+ gint count);
+
static void gimp_text_tool_options_notify (GimpTextOptions *options,
GParamSpec *pspec,
GimpTextTool *text_tool);
@@ -601,6 +606,12 @@ gimp_text_tool_ensure_proxy (GimpTextTool *text_tool)
g_signal_connect_swapped (text_tool->proxy_text_view, "select-all",
G_CALLBACK (gimp_text_tool_select_all),
text_tool);
+ g_signal_connect_swapped (text_tool->proxy_text_view, "change-baseline",
+ G_CALLBACK (gimp_text_tool_change_baseline),
+ text_tool);
+ g_signal_connect_swapped (text_tool->proxy_text_view, "change-spacing",
+ G_CALLBACK (gimp_text_tool_change_spacing),
+ text_tool);
}
}
@@ -1020,6 +1031,20 @@ gimp_text_tool_select_all (GimpTextTool *text_tool,
}
static void
+gimp_text_tool_change_baseline (GimpTextTool *text_tool,
+ gint count)
+{
+ g_printerr ("%s: count = %d\n", G_STRFUNC, count);
+}
+
+static void
+gimp_text_tool_change_spacing (GimpTextTool *text_tool,
+ gint count)
+{
+ g_printerr ("%s: count = %d\n", G_STRFUNC, count);
+}
+
+static void
gimp_text_tool_options_notify (GimpTextOptions *options,
GParamSpec *pspec,
GimpTextTool *text_tool)
diff --git a/app/widgets/gimptextproxy.c b/app/widgets/gimptextproxy.c
index 1d3fe55..b7dab8e 100644
--- a/app/widgets/gimptextproxy.c
+++ b/app/widgets/gimptextproxy.c
@@ -21,10 +21,21 @@
#include "config.h"
#include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
+
+#include "core/gimpmarshal.h"
#include "gimptextproxy.h"
+enum
+{
+ CHANGE_BASELINE,
+ CHANGE_SPACING,
+ LAST_SIGNAL
+};
+
+
static void gimp_text_proxy_move_cursor (GtkTextView *text_view,
GtkMovementStep step,
gint count,
@@ -43,11 +54,14 @@ static void gimp_text_proxy_toggle_overwrite (GtkTextView *text_view);
G_DEFINE_TYPE (GimpTextProxy, gimp_text_proxy, GTK_TYPE_TEXT_VIEW)
+static guint proxy_signals[LAST_SIGNAL] = { 0 };
+
static void
gimp_text_proxy_class_init (GimpTextProxyClass *klass)
{
GtkTextViewClass *tv_class = GTK_TEXT_VIEW_CLASS (klass);
+ GtkBindingSet *binding_set;
tv_class->move_cursor = gimp_text_proxy_move_cursor;
tv_class->insert_at_cursor = gimp_text_proxy_insert_at_cursor;
@@ -57,6 +71,42 @@ gimp_text_proxy_class_init (GimpTextProxyClass *klass)
tv_class->copy_clipboard = gimp_text_proxy_copy_clipboard;
tv_class->paste_clipboard = gimp_text_proxy_paste_clipboard;
tv_class->toggle_overwrite = gimp_text_proxy_toggle_overwrite;
+
+ proxy_signals[CHANGE_BASELINE] =
+ g_signal_new ("change-baseline",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (GimpTextProxyClass, change_baseline),
+ NULL, NULL,
+ gimp_marshal_VOID__INT,
+ G_TYPE_NONE, 1,
+ G_TYPE_INT);
+
+ proxy_signals[CHANGE_SPACING] =
+ g_signal_new ("change-spacing",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (GimpTextProxyClass, change_spacing),
+ NULL, NULL,
+ gimp_marshal_VOID__INT,
+ G_TYPE_NONE, 1,
+ G_TYPE_INT);
+
+ binding_set = gtk_binding_set_by_class (klass);
+
+ gtk_binding_entry_add_signal (binding_set, GDK_Up, GDK_MOD1_MASK,
+ "change-baseline", 1,
+ G_TYPE_INT, 1);
+ gtk_binding_entry_add_signal (binding_set, GDK_Down, GDK_MOD1_MASK,
+ "change-baseline", 1,
+ G_TYPE_INT, -1);
+
+ gtk_binding_entry_add_signal (binding_set, GDK_Left, GDK_MOD1_MASK,
+ "change-spacing", 1,
+ G_TYPE_INT, -1);
+ gtk_binding_entry_add_signal (binding_set, GDK_Right, GDK_MOD1_MASK,
+ "change-spacing", 1,
+ G_TYPE_INT, 1);
}
static void
diff --git a/app/widgets/gimptextproxy.h b/app/widgets/gimptextproxy.h
index fa2c03d..554840f 100644
--- a/app/widgets/gimptextproxy.h
+++ b/app/widgets/gimptextproxy.h
@@ -40,6 +40,11 @@ struct _GimpTextProxy
struct _GimpTextProxyClass
{
GtkTextViewClass parent_class;
+
+ void (* change_baseline) (GimpTextProxy *proxy,
+ gint count);
+ void (* change_spacing) (GimpTextProxy *proxy,
+ gint count);
};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]