[gnome-builder/editor-layout] some dummy vertical split code
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/editor-layout] some dummy vertical split code
- Date: Wed, 26 Nov 2014 10:55:59 +0000 (UTC)
commit afbf7bce45e2c0adebc0653d24cb75a72a6e6112
Author: Christian Hergert <christian hergert me>
Date: Wed Nov 26 02:55:53 2014 -0800
some dummy vertical split code
src/editor/gb-editor-commands.c | 10 +++++++
src/editor/gb-editor-tab-private.h | 3 ++
src/editor/gb-editor-tab.c | 45 ++++++++++++++++++++++++++++++---
src/editor/gb-editor-tab.h | 1 +
src/resources/keybindings/default.ini | 1 +
src/resources/ui/gb-editor-tab.ui | 37 +++++++++++++++++++++------
6 files changed, 85 insertions(+), 12 deletions(-)
---
diff --git a/src/editor/gb-editor-commands.c b/src/editor/gb-editor-commands.c
index 0f5f162..004ba4d 100644
--- a/src/editor/gb-editor-commands.c
+++ b/src/editor/gb-editor-commands.c
@@ -813,6 +813,15 @@ gb_editor_commands_scroll_down (GbEditorWorkspace *workspace,
}
static void
+gb_editor_commands_toggle_split (GbEditorWorkspace *workspace,
+ GbEditorTab *tab)
+{
+ g_return_if_fail (GB_IS_EDITOR_TAB (tab));
+
+ gb_editor_tab_toggle_split (tab);
+}
+
+static void
gb_editor_commands_scroll_up (GbEditorWorkspace *workspace,
GbEditorTab *tab)
{
@@ -924,6 +933,7 @@ gb_editor_commands_init (GbEditorWorkspace *workspace)
{ "trim-trailing-space", gb_editor_commands_trim_trailing_space, TRUE },
{ "scroll-down", gb_editor_commands_scroll_down, TRUE },
{ "scroll-up", gb_editor_commands_scroll_up, TRUE },
+ { "toggle-split", gb_editor_commands_toggle_split, TRUE },
{ NULL }
};
GSimpleAction *action;
diff --git a/src/editor/gb-editor-tab-private.h b/src/editor/gb-editor-tab-private.h
index fd597b6..bd6deee 100644
--- a/src/editor/gb-editor-tab-private.h
+++ b/src/editor/gb-editor-tab-private.h
@@ -82,9 +82,12 @@ struct _GbEditorTabPrivate
GtkProgressBar *progress_bar;
GtkRevealer *revealer;
GtkScrolledWindow *scroller;
+ GtkScrolledWindow *scroller2;
GbSourceView *source_view;
+ GbSourceView *source_view2;
GdTaggedEntry *search_entry;
GdTaggedEntryTag *search_entry_tag;
+ GtkToggleButton *split_button;
/*
* Information about our target file and encoding.
diff --git a/src/editor/gb-editor-tab.c b/src/editor/gb-editor-tab.c
index b083022..773c43f 100644
--- a/src/editor/gb-editor-tab.c
+++ b/src/editor/gb-editor-tab.c
@@ -394,6 +394,17 @@ on_search_entry_focus_out (GdTaggedEntry *entry,
return FALSE;
}
+void
+gb_editor_tab_toggle_split (GbEditorTab *tab)
+{
+ gboolean active;
+
+ g_return_if_fail (GB_IS_EDITOR_TAB (tab));
+
+ active = gtk_toggle_button_get_active (tab->priv->split_button);
+ gtk_toggle_button_set_active (tab->priv->split_button, !active);
+}
+
static gboolean
do_delayed_animation (gpointer data)
{
@@ -936,6 +947,20 @@ transform_file_to_title (GBinding *binding,
}
static void
+gb_editor_tab_split_toggled (GbEditorTab *tab,
+ GtkToggleButton *button)
+{
+ gboolean active;
+
+ g_return_if_fail (GB_IS_EDITOR_TAB (tab));
+ g_return_if_fail (GTK_IS_TOGGLE_BUTTON (button));
+
+ active = gtk_toggle_button_get_active (button);
+
+ gtk_widget_set_visible (GTK_WIDGET (tab->priv->scroller2), active);
+}
+
+static void
gb_editor_tab_constructed (GObject *object)
{
GtkSourceCompletion *comp;
@@ -957,6 +982,8 @@ gb_editor_tab_constructed (GObject *object)
gtk_text_view_set_buffer (GTK_TEXT_VIEW (priv->source_view),
GTK_TEXT_BUFFER (priv->document));
+ gtk_text_view_set_buffer (GTK_TEXT_VIEW (priv->source_view2),
+ GTK_TEXT_BUFFER (priv->document));
if (!priv->file)
priv->file = gtk_source_file_new ();
@@ -980,9 +1007,13 @@ gb_editor_tab_constructed (GObject *object)
"search-context", priv->search_context,
"search-settings", priv->search_settings,
NULL);
+
g_object_set (priv->source_view,
"search-highlighter", priv->search_highlighter,
NULL);
+ g_object_set (priv->source_view2,
+ "search-highlighter", priv->search_highlighter,
+ NULL);
g_signal_connect_swapped (priv->document,
"notify::language",
@@ -997,6 +1028,8 @@ gb_editor_tab_constructed (GObject *object)
G_CALLBACK (gb_editor_tab_cursor_moved),
tab);
+ /* TODO: attach source view abstraction */
+
g_signal_connect (priv->source_view,
"focus-in-event",
G_CALLBACK (on_source_view_focus_in_event),
@@ -1105,10 +1138,11 @@ gb_editor_tab_constructed (GObject *object)
G_CALLBACK (on_vim_notify_mode),
tab);
-#if 0
- g_settings_bind (settings, "word-completion", tab, "enable-word-completion",
- G_SETTINGS_BIND_DEFAULT);
-#endif
+ g_signal_connect_object (priv->split_button,
+ "toggled",
+ G_CALLBACK (gb_editor_tab_split_toggled),
+ tab,
+ G_CONNECT_SWAPPED);
gb_editor_tab_cursor_moved (tab, priv->document);
@@ -1336,8 +1370,11 @@ gb_editor_tab_class_init (GbEditorTabClass *klass)
gtk_widget_class_bind_template_child_private (widget_class, GbEditorTab, progress_bar);
gtk_widget_class_bind_template_child_private (widget_class, GbEditorTab, revealer);
gtk_widget_class_bind_template_child_private (widget_class, GbEditorTab, scroller);
+ gtk_widget_class_bind_template_child_private (widget_class, GbEditorTab, scroller2);
gtk_widget_class_bind_template_child_private (widget_class, GbEditorTab, search_entry);
gtk_widget_class_bind_template_child_private (widget_class, GbEditorTab, source_view);
+ gtk_widget_class_bind_template_child_private (widget_class, GbEditorTab, source_view2);
+ gtk_widget_class_bind_template_child_private (widget_class, GbEditorTab, split_button);
g_type_ensure (GB_TYPE_EDITOR_DOCUMENT);
g_type_ensure (GB_TYPE_SOURCE_CHANGE_MONITOR);
diff --git a/src/editor/gb-editor-tab.h b/src/editor/gb-editor-tab.h
index b7e2625..4f64fbd 100644
--- a/src/editor/gb-editor-tab.h
+++ b/src/editor/gb-editor-tab.h
@@ -53,6 +53,7 @@ GType gb_editor_tab_get_type (void) G_GNUC_CONST;
GtkWidget *gb_editor_tab_new (void);
GbEditorDocument *gb_editor_tab_get_document (GbEditorTab *tab);
GtkSourceFile *gb_editor_tab_get_file (GbEditorTab *tab);
+void gb_editor_tab_toggle_split (GbEditorTab *tab);
void gb_editor_tab_set_font_desc (GbEditorTab *tab,
const PangoFontDescription *font_desc);
gboolean gb_editor_tab_get_is_default (GbEditorTab *tab);
diff --git a/src/resources/keybindings/default.ini b/src/resources/keybindings/default.ini
index 65fb4ef..893ae69 100644
--- a/src/resources/keybindings/default.ini
+++ b/src/resources/keybindings/default.ini
@@ -30,6 +30,7 @@ save-as = <Control><Shift>S
toggle-preview = <Control><Alt>P
scroll-up = <Control>Y
scroll-down = <Control>E
+toggle-split = <Control><Shift>J
[tabs]
next = <Control>J
diff --git a/src/resources/ui/gb-editor-tab.ui b/src/resources/ui/gb-editor-tab.ui
index a62f876..a5b894b 100644
--- a/src/resources/ui/gb-editor-tab.ui
+++ b/src/resources/ui/gb-editor-tab.ui
@@ -21,7 +21,7 @@
</object>
</child>
<child>
- <object class="GtkButton" id="split_button">
+ <object class="GtkToggleButton" id="split_button">
<property name="visible">True</property>
<property name="tooltip_text">Split tab vertically</property>
<style>
@@ -45,16 +45,37 @@
<object class="GtkOverlay" id="overlay">
<property name="visible">True</property>
<child>
- <object class="GtkScrolledWindow" id="scroller">
+ <object class="GtkPaned">
<property name="visible">True</property>
- <property name="expand">True</property>
+ <property name="orientation">vertical</property>
<child>
- <object class="GbSourceView" id="source_view">
+ <object class="GtkScrolledWindow" id="scroller">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="show_line_numbers">True</property>
- <property name="show_right_margin">True</property>
- <property name="right_margin_position">80</property>
+ <property name="expand">True</property>
+ <child>
+ <object class="GbSourceView" id="source_view">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="show_line_numbers">True</property>
+ <property name="show_right_margin">True</property>
+ <property name="right_margin_position">80</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="scroller2">
+ <property name="visible">False</property>
+ <property name="expand">True</property>
+ <child>
+ <object class="GbSourceView" id="source_view2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="show_line_numbers">True</property>
+ <property name="show_right_margin">True</property>
+ <property name="right_margin_position">80</property>
+ </object>
+ </child>
</object>
</child>
</object>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]