SF.net SVN: geany: [2720] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Fri Jun 20 17:10:52 UTC 2008
Revision: 2720
http://geany.svn.sourceforge.net/geany/?rev=2720&view=rev
Author: ntrel
Date: 2008-06-20 10:10:51 -0700 (Fri, 20 Jun 2008)
Log Message:
-----------
Move on_editor_expose_event(), create_new_sci() to editor.c.
Make on_editor_button_press_event() and on_editor_scroll_event()
static.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/document.c
trunk/src/editor.c
trunk/src/editor.h
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2008-06-20 14:19:57 UTC (rev 2719)
+++ trunk/ChangeLog 2008-06-20 17:10:51 UTC (rev 2720)
@@ -12,6 +12,10 @@
* src/callbacks.c, src/keyfile.c, src/document.c, src/document.h,
src/main.c, src/socket.c:
Remove document_delay_colourise(), document_colourise_all().
+ * src/document.c, src/editor.c, src/editor.h:
+ Move on_editor_expose_event(), create_new_sci() to editor.c.
+ Make on_editor_button_press_event() and on_editor_scroll_event()
+ static.
2008-06-19 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c 2008-06-20 14:19:57 UTC (rev 2719)
+++ trunk/src/document.c 2008-06-20 17:10:51 UTC (rev 2720)
@@ -65,7 +65,6 @@
#include "vte.h"
#include "build.h"
#include "symbols.h"
-#include "callbacks.h"
#include "geanyobject.h"
#include "highlighting.h"
#include "navqueue.h"
@@ -372,36 +371,6 @@
}
-static void setup_sci_keys(ScintillaObject *sci)
-{
- /* disable some Scintilla keybindings to be able to redefine them cleanly */
- sci_clear_cmdkey(sci, 'A' | (SCMOD_CTRL << 16)); /* select all */
- sci_clear_cmdkey(sci, 'D' | (SCMOD_CTRL << 16)); /* duplicate */
- sci_clear_cmdkey(sci, 'T' | (SCMOD_CTRL << 16)); /* line transpose */
- sci_clear_cmdkey(sci, 'T' | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16)); /* line copy */
- sci_clear_cmdkey(sci, 'L' | (SCMOD_CTRL << 16)); /* line cut */
- sci_clear_cmdkey(sci, 'L' | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16)); /* line delete */
- sci_clear_cmdkey(sci, SCK_UP | (SCMOD_CTRL << 16)); /* scroll line up */
- sci_clear_cmdkey(sci, SCK_DOWN | (SCMOD_CTRL << 16)); /* scroll line down */
-
- if (editor_prefs.use_gtk_word_boundaries)
- {
- /* use GtkEntry-like word boundaries */
- sci_assign_cmdkey(sci, SCK_RIGHT | (SCMOD_CTRL << 16), SCI_WORDRIGHTEND);
- sci_assign_cmdkey(sci, SCK_RIGHT | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16), SCI_WORDRIGHTENDEXTEND);
- sci_assign_cmdkey(sci, SCK_DELETE | (SCMOD_CTRL << 16), SCI_DELWORDRIGHTEND);
- }
- sci_assign_cmdkey(sci, SCK_UP | (SCMOD_ALT << 16), SCI_LINESCROLLUP);
- sci_assign_cmdkey(sci, SCK_DOWN | (SCMOD_ALT << 16), SCI_LINESCROLLDOWN);
- sci_assign_cmdkey(sci, SCK_UP | (SCMOD_CTRL << 16), SCI_PARAUP);
- sci_assign_cmdkey(sci, SCK_UP | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16), SCI_PARAUPEXTEND);
- sci_assign_cmdkey(sci, SCK_DOWN | (SCMOD_CTRL << 16), SCI_PARADOWN);
- sci_assign_cmdkey(sci, SCK_DOWN | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16), SCI_PARADOWNEXTEND);
-
- sci_clear_cmdkey(sci, SCK_BACK | (SCMOD_ALT << 16)); /* clear Alt-Backspace (Undo) */
-}
-
-
static void queue_colourise(GeanyDocument *doc)
{
/* Colourise the editor before it is next drawn */
@@ -415,75 +384,6 @@
}
-static void editor_colourise(ScintillaObject *sci)
-{
- sci_colourise(sci, 0, -1);
-
- /* now that the current document is colourised, fold points are now accurate,
- * so force an update of the current function/tag. */
- utils_get_current_function(NULL, NULL);
- ui_update_statusbar(NULL, -1);
-}
-
-
-static gboolean on_editor_expose_event(GtkWidget *widget, GdkEventExpose *event,
- gpointer user_data)
-{
- GeanyDocument *doc = user_data;
-
- if (DOCUMENT(doc)->colourise_needed)
- {
- editor_colourise(doc->sci);
- DOCUMENT(doc)->colourise_needed = FALSE;
- }
- return FALSE; /* propagate event */
-}
-
-
-/* Create new editor (the scintilla widget) */
-static ScintillaObject *create_new_sci(GeanyDocument *doc)
-{
- ScintillaObject *sci;
-
- sci = SCINTILLA(scintilla_new());
- scintilla_set_id(sci, doc->index);
-
- gtk_widget_show(GTK_WIDGET(sci));
-
- sci_set_codepage(sci, SC_CP_UTF8);
- /*SSM(sci, SCI_SETWRAPSTARTINDENT, 4, 0);*/
- /* disable scintilla provided popup menu */
- sci_use_popup(sci, FALSE);
-
- setup_sci_keys(sci);
-
- sci_set_tab_indents(sci, editor_prefs.use_tab_to_indent);
- sci_set_symbol_margin(sci, editor_prefs.show_markers_margin);
- sci_set_lines_wrapped(sci, editor_prefs.line_wrapping);
- sci_set_scrollbar_mode(sci, editor_prefs.show_scrollbars);
- sci_set_caret_policy_x(sci, CARET_JUMPS | CARET_EVEN, 0);
- /*sci_set_caret_policy_y(sci, CARET_JUMPS | CARET_EVEN, 0);*/
- SSM(sci, SCI_AUTOCSETSEPARATOR, '\n', 0);
- /* (dis)allow scrolling past end of document */
- SSM(sci, SCI_SETENDATLASTLINE, editor_prefs.scroll_stop_at_last_line, 0);
- SSM(sci, SCI_SETSCROLLWIDTHTRACKING, 1, 0);
-
- /* signal for insert-key(works without too, but to update the right status bar) */
- /*g_signal_connect((GtkWidget*) sci, "key-press-event",
- G_CALLBACK(keybindings_got_event), GINT_TO_POINTER(new_idx));*/
- /* signal for the popup menu */
- g_signal_connect(G_OBJECT(sci), "button-press-event",
- G_CALLBACK(on_editor_button_press_event), doc);
- g_signal_connect(G_OBJECT(sci), "scroll-event",
- G_CALLBACK(on_editor_scroll_event), doc);
- g_signal_connect(G_OBJECT(sci), "motion-notify-event", G_CALLBACK(on_motion_event), NULL);
- g_signal_connect(G_OBJECT(sci), "expose-event",
- G_CALLBACK(on_editor_expose_event), doc);
-
- return sci;
-}
-
-
/* Creates a new document and editor, adding a tab in the notebook.
* @return The index of the created document */
static GeanyDocument *document_create(const gchar *utf8_filename)
@@ -516,7 +416,7 @@
this->file_name = g_strdup(utf8_filename);
- this->sci = create_new_sci(this);
+ this->sci = editor_create_new_sci(this);
document_apply_update_prefs(this);
Modified: trunk/src/editor.c
===================================================================
--- trunk/src/editor.c 2008-06-20 14:19:57 UTC (rev 2719)
+++ trunk/src/editor.c 2008-06-20 17:10:51 UTC (rev 2720)
@@ -46,6 +46,7 @@
#include "utils.h"
#include "dialogs.h"
#include "symbols.h"
+#include "callbacks.h"
/* holds word under the mouse or keyboard cursor */
@@ -79,7 +80,7 @@
/* calls the edit popup menu in the editor */
-gboolean
+static gboolean
on_editor_button_press_event (GtkWidget *widget,
GdkEventButton *event,
gpointer user_data)
@@ -3325,7 +3326,8 @@
}
-gboolean on_editor_scroll_event(GtkWidget *widget, GdkEventScroll *event, gpointer user_data)
+static gboolean
+on_editor_scroll_event(GtkWidget *widget, GdkEventScroll *event, gpointer user_data)
{
/* Handle scroll events if Shift or Alt is pressed and scroll whole pages instead of a
* few lines only, maybe this could/should be done in Scintilla directly */
@@ -3340,3 +3342,103 @@
}
+static void editor_colourise(ScintillaObject *sci)
+{
+ sci_colourise(sci, 0, -1);
+
+ /* now that the current document is colourised, fold points are now accurate,
+ * so force an update of the current function/tag. */
+ utils_get_current_function(NULL, NULL);
+ ui_update_statusbar(NULL, -1);
+}
+
+
+static gboolean on_editor_expose_event(GtkWidget *widget, GdkEventExpose *event,
+ gpointer user_data)
+{
+ GeanyDocument *doc = user_data;
+
+ if (DOCUMENT(doc)->colourise_needed)
+ {
+ editor_colourise(doc->sci);
+ DOCUMENT(doc)->colourise_needed = FALSE;
+ }
+ return FALSE; /* propagate event */
+}
+
+
+static void setup_sci_keys(ScintillaObject *sci)
+{
+ /* disable some Scintilla keybindings to be able to redefine them cleanly */
+ sci_clear_cmdkey(sci, 'A' | (SCMOD_CTRL << 16)); /* select all */
+ sci_clear_cmdkey(sci, 'D' | (SCMOD_CTRL << 16)); /* duplicate */
+ sci_clear_cmdkey(sci, 'T' | (SCMOD_CTRL << 16)); /* line transpose */
+ sci_clear_cmdkey(sci, 'T' | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16)); /* line copy */
+ sci_clear_cmdkey(sci, 'L' | (SCMOD_CTRL << 16)); /* line cut */
+ sci_clear_cmdkey(sci, 'L' | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16)); /* line delete */
+ sci_clear_cmdkey(sci, SCK_UP | (SCMOD_CTRL << 16)); /* scroll line up */
+ sci_clear_cmdkey(sci, SCK_DOWN | (SCMOD_CTRL << 16)); /* scroll line down */
+
+ if (editor_prefs.use_gtk_word_boundaries)
+ {
+ /* use GtkEntry-like word boundaries */
+ sci_assign_cmdkey(sci, SCK_RIGHT | (SCMOD_CTRL << 16), SCI_WORDRIGHTEND);
+ sci_assign_cmdkey(sci, SCK_RIGHT | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16), SCI_WORDRIGHTENDEXTEND);
+ sci_assign_cmdkey(sci, SCK_DELETE | (SCMOD_CTRL << 16), SCI_DELWORDRIGHTEND);
+ }
+ sci_assign_cmdkey(sci, SCK_UP | (SCMOD_ALT << 16), SCI_LINESCROLLUP);
+ sci_assign_cmdkey(sci, SCK_DOWN | (SCMOD_ALT << 16), SCI_LINESCROLLDOWN);
+ sci_assign_cmdkey(sci, SCK_UP | (SCMOD_CTRL << 16), SCI_PARAUP);
+ sci_assign_cmdkey(sci, SCK_UP | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16), SCI_PARAUPEXTEND);
+ sci_assign_cmdkey(sci, SCK_DOWN | (SCMOD_CTRL << 16), SCI_PARADOWN);
+ sci_assign_cmdkey(sci, SCK_DOWN | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16), SCI_PARADOWNEXTEND);
+
+ sci_clear_cmdkey(sci, SCK_BACK | (SCMOD_ALT << 16)); /* clear Alt-Backspace (Undo) */
+}
+
+
+/* Create new editor widget (scintilla).
+ * @note The @c "sci-notify" signal is connected separately. */
+ScintillaObject *editor_create_new_sci(GeanyDocument *doc)
+{
+ ScintillaObject *sci;
+
+ sci = SCINTILLA(scintilla_new());
+ scintilla_set_id(sci, doc->index);
+
+ gtk_widget_show(GTK_WIDGET(sci));
+
+ sci_set_codepage(sci, SC_CP_UTF8);
+ /*SSM(sci, SCI_SETWRAPSTARTINDENT, 4, 0);*/
+ /* disable scintilla provided popup menu */
+ sci_use_popup(sci, FALSE);
+
+ setup_sci_keys(sci);
+
+ sci_set_tab_indents(sci, editor_prefs.use_tab_to_indent);
+ sci_set_symbol_margin(sci, editor_prefs.show_markers_margin);
+ sci_set_lines_wrapped(sci, editor_prefs.line_wrapping);
+ sci_set_scrollbar_mode(sci, editor_prefs.show_scrollbars);
+ sci_set_caret_policy_x(sci, CARET_JUMPS | CARET_EVEN, 0);
+ /*sci_set_caret_policy_y(sci, CARET_JUMPS | CARET_EVEN, 0);*/
+ SSM(sci, SCI_AUTOCSETSEPARATOR, '\n', 0);
+ /* (dis)allow scrolling past end of document */
+ SSM(sci, SCI_SETENDATLASTLINE, editor_prefs.scroll_stop_at_last_line, 0);
+ SSM(sci, SCI_SETSCROLLWIDTHTRACKING, 1, 0);
+
+ /* signal for insert-key(works without too, but to update the right status bar) */
+ /*g_signal_connect((GtkWidget*) sci, "key-press-event",
+ G_CALLBACK(keybindings_got_event), GINT_TO_POINTER(new_idx));*/
+ /* signal for the popup menu */
+ g_signal_connect(G_OBJECT(sci), "button-press-event",
+ G_CALLBACK(on_editor_button_press_event), doc);
+ g_signal_connect(G_OBJECT(sci), "scroll-event",
+ G_CALLBACK(on_editor_scroll_event), doc);
+ g_signal_connect(G_OBJECT(sci), "motion-notify-event", G_CALLBACK(on_motion_event), NULL);
+ g_signal_connect(G_OBJECT(sci), "expose-event",
+ G_CALLBACK(on_editor_expose_event), doc);
+
+ return sci;
+}
+
+
Modified: trunk/src/editor.h
===================================================================
--- trunk/src/editor.h 2008-06-20 14:19:57 UTC (rev 2719)
+++ trunk/src/editor.h 2008-06-20 17:10:51 UTC (rev 2720)
@@ -110,8 +110,7 @@
-gboolean on_editor_button_press_event(GtkWidget *widget, GdkEventButton *event,
- gpointer user_data);
+ScintillaObject *editor_create_new_sci(GeanyDocument *doc);
void on_editor_notification(GtkWidget* editor, gint scn, gpointer lscn, gpointer user_data);
@@ -205,6 +204,4 @@
gboolean editor_goto_pos(GeanyDocument *doc, gint pos, gboolean mark);
-gboolean on_editor_scroll_event(GtkWidget *widget, GdkEventScroll *event, gpointer user_data);
-
#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list