[gnome-builder] keybindings: allow keybindings to set a mode display name
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] keybindings: allow keybindings to set a mode display name
- Date: Mon, 30 Mar 2015 00:02:35 +0000 (UTC)
commit e82de61ee2208c5be86134736b2362bf168cfb96
Author: Christian Hergert <christian hergert me>
Date: Sun Mar 29 17:01:55 2015 -0700
keybindings: allow keybindings to set a mode display name
libide/ide-source-view-mode.c | 19 +++++++++++++++++++
libide/ide-source-view-mode.h | 1 +
libide/ide-source-view.c | 29 +++++++++++++++++++++++++++++
libide/ide-source-view.h | 1 +
4 files changed, 50 insertions(+), 0 deletions(-)
---
diff --git a/libide/ide-source-view-mode.c b/libide/ide-source-view-mode.c
index fd14d68..4e79889 100644
--- a/libide/ide-source-view-mode.c
+++ b/libide/ide-source-view-mode.c
@@ -29,6 +29,7 @@ typedef struct
{
GtkWidget *view;
char *name;
+ char *display_name;
gchar *default_mode;
IdeSourceViewModeType type;
} IdeSourceViewModePrivate;
@@ -101,6 +102,14 @@ ide_source_view_mode_get_default_mode (IdeSourceViewMode *self)
return priv->default_mode;
}
+const gchar *
+ide_source_view_mode_get_display_name (IdeSourceViewMode *self)
+{
+ IdeSourceViewModePrivate *priv = ide_source_view_mode_get_instance_private (self);
+
+ return priv->display_name;
+}
+
gboolean
ide_source_view_mode_get_repeat_insert_with_count (IdeSourceViewMode *self)
{
@@ -147,6 +156,7 @@ ide_source_view_mode_finalize (GObject *object)
g_clear_object (&priv->view);
g_clear_pointer (&priv->name, g_free);
g_clear_pointer (&priv->default_mode, g_free);
+ g_clear_pointer (&priv->display_name, g_free);
priv->type = 0;
G_OBJECT_CLASS (ide_source_view_mode_parent_class)->finalize (object);
@@ -280,6 +290,14 @@ ide_source_view_mode_class_init (IdeSourceViewModeClass *klass)
G_PARAM_STATIC_STRINGS)));
gtk_widget_class_install_style_property (GTK_WIDGET_CLASS (klass),
+ g_param_spec_string ("display-name",
+ "Display Name",
+ "Display name for mode",
+ NULL,
+ (G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS)));
+
+ gtk_widget_class_install_style_property (GTK_WIDGET_CLASS (klass),
g_param_spec_string ("default-mode",
"Default Mode",
"Suggest a followup default mode",
@@ -443,6 +461,7 @@ _ide_source_view_mode_new (GtkWidget *view,
priv->name = g_strdup (name);
priv->type = type;
priv->default_mode = get_string_param (mode, "default-mode");
+ priv->display_name = get_string_param (mode, "display-name");
IDE_TRACE_MSG ("supress_unbound = %d", ide_source_view_mode_get_suppress_unbound (mode));
IDE_TRACE_MSG ("block_cursor = %d", ide_source_view_mode_get_block_cursor (mode));
diff --git a/libide/ide-source-view-mode.h b/libide/ide-source-view-mode.h
index 65ff978..e68a508 100644
--- a/libide/ide-source-view-mode.h
+++ b/libide/ide-source-view-mode.h
@@ -52,6 +52,7 @@ gboolean ide_source_view_mode_get_block_cursor (IdeSou
gboolean ide_source_view_mode_get_suppress_unbound (IdeSourceViewMode *self);
const gchar *ide_source_view_mode_get_name (IdeSourceViewMode *self);
const gchar *ide_source_view_mode_get_default_mode (IdeSourceViewMode *self);
+const gchar *ide_source_view_mode_get_display_name (IdeSourceViewMode *self);
gboolean ide_source_view_mode_get_keep_mark_on_char (IdeSourceViewMode *self);
IdeSourceViewModeType ide_source_view_mode_get_mode_type (IdeSourceViewMode *self);
diff --git a/libide/ide-source-view.c b/libide/ide-source-view.c
index 392cad8..330f7d2 100644
--- a/libide/ide-source-view.c
+++ b/libide/ide-source-view.c
@@ -178,6 +178,7 @@ enum {
PROP_FONT_DESC,
PROP_HIGHLIGHT_CURRENT_LINE,
PROP_INSERT_MATCHING_BRACE,
+ PROP_MODE_DISPLAY_NAME,
PROP_OVERWRITE,
PROP_OVERWRITE_BRACES,
PROP_RUBBERBAND_SEARCH,
@@ -3093,6 +3094,8 @@ ide_source_view_real_set_mode (IdeSourceView *self,
gtk_text_view_set_overwrite (GTK_TEXT_VIEW (self), overwrite);
g_object_notify (G_OBJECT (self), "overwrite");
+ g_object_notify_by_pspec (G_OBJECT (self), gParamSpecs [PROP_MODE_DISPLAY_NAME]);
+
IDE_EXIT;
}
@@ -4886,6 +4889,10 @@ ide_source_view_get_property (GObject *object,
g_value_set_boolean (value, ide_source_view_get_insert_matching_brace (self));
break;
+ case PROP_MODE_DISPLAY_NAME:
+ g_value_set_string (value, ide_source_view_get_mode_display_name (self));
+ break;
+
case PROP_OVERWRITE:
g_value_set_boolean (value, ide_source_view_get_overwrite (self));
break;
@@ -5161,6 +5168,15 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
g_object_class_override_property (object_class, PROP_OVERWRITE, "overwrite");
+ gParamSpecs [PROP_MODE_DISPLAY_NAME] =
+ g_param_spec_string ("mode-display-name",
+ _("Mode Display Name"),
+ _("The display name of the keybinding mode."),
+ NULL,
+ (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (object_class, PROP_MODE_DISPLAY_NAME,
+ gParamSpecs [PROP_MODE_DISPLAY_NAME]);
+
gParamSpecs [PROP_OVERWRITE_BRACES] =
g_param_spec_boolean ("overwrite-braces",
_("Overwrite Braces"),
@@ -5929,6 +5945,19 @@ ide_source_view_get_insert_matching_brace (IdeSourceView *self)
return priv->insert_matching_brace;
}
+const gchar *
+ide_source_view_get_mode_display_name (IdeSourceView *self)
+{
+ IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
+
+ g_return_val_if_fail (IDE_IS_SOURCE_VIEW (self), NULL);
+
+ if (priv->mode != NULL)
+ return ide_source_view_mode_get_display_name (priv->mode);
+
+ return NULL;
+}
+
gboolean
ide_source_view_get_overwrite_braces (IdeSourceView *self)
{
diff --git a/libide/ide-source-view.h b/libide/ide-source-view.h
index 2db6cf4..63651de 100644
--- a/libide/ide-source-view.h
+++ b/libide/ide-source-view.h
@@ -289,6 +289,7 @@ IdeFileSettings *ide_source_view_get_file_settings (IdeSource
const PangoFontDescription *ide_source_view_get_font_desc (IdeSourceView *self);
gboolean ide_source_view_get_highlight_current_line(IdeSourceView *self);
gboolean ide_source_view_get_insert_matching_brace (IdeSourceView *self);
+const gchar *ide_source_view_get_mode_display_name (IdeSourceView *self);
gboolean ide_source_view_get_overwrite_braces (IdeSourceView *self);
gboolean ide_source_view_get_rubberband_search (IdeSourceView *self);
guint ide_source_view_get_scroll_offset (IdeSourceView *self);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]