Revision: 2765 http://geany.svn.sourceforge.net/geany/?rev=2765&view=rev Author: ntrel Date: 2008-07-08 06:53:08 -0700 (Tue, 08 Jul 2008)
Log Message: ----------- Fix building editor.c, using GeanyEditor* instead of GeanyDocument* (most global editor functions still need conversion though).
Modified Paths: -------------- branches/editor-struct/ChangeLog branches/editor-struct/src/callbacks.c branches/editor-struct/src/document.c branches/editor-struct/src/editor.c branches/editor-struct/src/editor.h branches/editor-struct/src/keybindings.c branches/editor-struct/src/keyfile.c branches/editor-struct/src/navqueue.c branches/editor-struct/src/prefs.c branches/editor-struct/src/search.c
Modified: branches/editor-struct/ChangeLog =================================================================== --- branches/editor-struct/ChangeLog 2008-07-08 11:26:09 UTC (rev 2764) +++ branches/editor-struct/ChangeLog 2008-07-08 13:53:08 UTC (rev 2765) @@ -12,6 +12,11 @@ src/main.c, src/editor.c, src/ui_utils.c, plugins/export.c, plugins/vcdiff.c, plugins/htmlchars.c, plugins/classbuilder.c: Update for doc->editor->scintilla. + * src/keybindings.c, src/prefs.c, src/navqueue.c, src/callbacks.c, + src/keyfile.c, src/search.c, src/document.c, src/editor.c, + src/editor.h: + Fix building editor.c, using GeanyEditor* instead of GeanyDocument* + (most global editor functions still need conversion though).
2008-07-07 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: branches/editor-struct/src/callbacks.c =================================================================== --- branches/editor-struct/src/callbacks.c 2008-07-08 11:26:09 UTC (rev 2764) +++ branches/editor-struct/src/callbacks.c 2008-07-08 13:53:08 UTC (rev 2765) @@ -969,7 +969,7 @@ { GeanyDocument *doc = document_get_current(); if (doc != NULL) - editor_set_line_wrapping(doc, ! doc->line_wrapping); + editor_set_line_wrapping(doc->editor, ! doc->editor->line_wrapping); } }
@@ -1101,7 +1101,7 @@ change_direction ? forward : !forward, FALSE, NULL);
if (result > -1) - editor_display_current_line(doc, 0.3F); + editor_display_current_line(doc->editor, 0.3F);
set_search_bar_background((result > -1) ? TRUE : FALSE); } @@ -1192,7 +1192,7 @@
line--; /* the user counts lines from 1, we begin at 0 so bring the user line to our one */ pos = sci_get_position_from_line(doc->editor->scintilla, line); - editor_goto_pos(doc, pos, TRUE); + editor_goto_pos(doc->editor, pos, TRUE); } else { @@ -2074,7 +2074,7 @@ if (doc == NULL || ignore_callback) return;
- editor_set_use_tabs(doc, TRUE); + editor_set_use_tabs(doc->editor, TRUE); ui_update_statusbar(doc, -1); }
@@ -2088,7 +2088,7 @@ if (doc == NULL || ignore_callback) return;
- editor_set_use_tabs(doc, FALSE); + editor_set_use_tabs(doc->editor, FALSE); ui_update_statusbar(doc, -1); }
Modified: branches/editor-struct/src/document.c =================================================================== --- branches/editor-struct/src/document.c 2008-07-08 11:26:09 UTC (rev 2764) +++ branches/editor-struct/src/document.c 2008-07-08 13:53:08 UTC (rev 2765) @@ -569,7 +569,7 @@ if (text != NULL) sci_convert_eols(doc->editor->scintilla, file_prefs.default_eol_character);
- editor_set_use_tabs(doc, editor_prefs.use_tabs); + editor_set_use_tabs(doc->editor, editor_prefs.use_tabs); sci_set_undo_collection(doc->editor->scintilla, TRUE); sci_empty_undo_buffer(doc->editor->scintilla);
@@ -917,9 +917,9 @@ { /* force using tabs for indentation for Makefiles */ if (FILETYPE_ID(doc->file_type) == GEANY_FILETYPES_MAKE) - editor_set_use_tabs(doc, TRUE); + editor_set_use_tabs(doc->editor, TRUE); else if (! editor_prefs.detect_tab_mode) - editor_set_use_tabs(doc, editor_prefs.use_tabs); + editor_set_use_tabs(doc->editor, editor_prefs.use_tabs); else { /* detect & set tabs/spaces */ gboolean use_tabs = detect_use_tabs(doc->editor->scintilla); @@ -927,7 +927,7 @@ if (use_tabs != editor_prefs.use_tabs) ui_set_statusbar(TRUE, _("Setting %s indentation mode."), (use_tabs) ? _("Tabs") : _("Spaces")); - editor_set_use_tabs(doc, use_tabs); + editor_set_use_tabs(doc->editor, use_tabs); } }
@@ -1057,7 +1057,7 @@
/* set indentation settings after setting the filetype */ if (reload) - editor_set_use_tabs(doc, doc->use_tabs); /* resetup sci */ + editor_set_use_tabs(doc->editor, doc->use_tabs); /* resetup sci */ else set_indentation(doc);
Modified: branches/editor-struct/src/editor.c =================================================================== --- branches/editor-struct/src/editor.c 2008-07-08 11:26:09 UTC (rev 2764) +++ branches/editor-struct/src/editor.c 2008-07-08 13:53:08 UTC (rev 2765) @@ -71,13 +71,13 @@ static gchar indent[100];
-static void on_new_line_added(GeanyDocument *doc); -static gboolean handle_xml(GeanyDocument *doc, gchar ch); -static void get_indent(GeanyDocument *doc, gint pos, gboolean use_this_line); -static void auto_multiline(GeanyDocument *doc, gint pos); +static void on_new_line_added(GeanyEditor *editor); +static gboolean handle_xml(GeanyEditor *editor, gchar ch); +static void get_indent(GeanyEditor *editor, gint pos, gboolean use_this_line); +static void auto_multiline(GeanyEditor *editor, gint pos); static gboolean is_comment(gint lexer, gint prev_style, gint style); static void auto_close_bracket(ScintillaObject *sci, gint pos, gchar c); -static void editor_auto_table(GeanyDocument *doc, gint pos); +static void auto_table(GeanyEditor *editor, gint pos);
@@ -275,27 +275,27 @@ }
-static void on_update_ui(GeanyDocument *doc, G_GNUC_UNUSED SCNotification *nt) +static void on_update_ui(GeanyEditor *editor, G_GNUC_UNUSED SCNotification *nt) { - ScintillaObject *sci = doc->editor->scintilla; + ScintillaObject *sci = editor->scintilla; gint pos = sci_get_current_position(sci);
/* undo / redo menu update */ - ui_update_popup_reundo_items(doc); + ui_update_popup_reundo_items(editor->document);
/* brace highlighting */ editor_highlight_braces(sci, pos);
- ui_update_statusbar(doc, pos); + ui_update_statusbar(editor->document, pos);
/* Visible lines are only laid out accurately once [SCN_UPDATEUI] is sent, * so we need to only call sci_scroll_to_line here, because the document * may have line wrapping and folding enabled. * http://scintilla.sourceforge.net/ScintillaDoc.html#LineWrapping */ - if (doc->scroll_percent > 0.0F) + if (editor->scroll_percent > 0.0F) { - editor_scroll_to_line(sci, -1, doc->scroll_percent); - doc->scroll_percent = -1.0F; /* disable further scrolling */ + editor_scroll_to_line(sci, -1, editor->scroll_percent); + editor->scroll_percent = -1.0F; /* disable further scrolling */ } #if 0 /** experimental code for inverting selections */ @@ -314,12 +314,12 @@ }
-static void check_line_breaking(GeanyDocument *doc, gint pos, gchar c) +static void check_line_breaking(GeanyEditor *editor, gint pos, gchar c) { - ScintillaObject *sci = doc->editor->scintilla; + ScintillaObject *sci = editor->scintilla; gint line, lstart;
- if (!doc->line_breaking) + if (!editor->line_breaking) return;
if (c == GDK_space) @@ -340,7 +340,7 @@ if (c == GDK_space) { gint col, len, diff; - const gchar *eol = editor_get_eol_char(doc); + const gchar *eol = editor_get_eol_char(editor->document);
/* break the line after the space */ sci_insert_text(sci, pos + 1, eol); @@ -357,7 +357,7 @@ pos = sci_get_position_from_line(sci, line); sci_set_current_position(sci, pos, FALSE); /* add indentation, comment multilines, etc */ - on_new_line_added(doc); + on_new_line_added(editor);
/* correct cursor position (might not be at line end) */ pos = sci_get_position_from_line(sci, line); @@ -369,9 +369,9 @@ }
-static void on_char_added(GeanyDocument *doc, SCNotification *nt) +static void on_char_added(GeanyEditor *editor, SCNotification *nt) { - ScintillaObject *sci = doc->editor->scintilla; + ScintillaObject *sci = editor->scintilla; gint pos = sci_get_current_position(sci);
switch (nt->ch) @@ -379,23 +379,23 @@ case '\r': { /* simple indentation (only for CR format) */ if (sci_get_eol_mode(sci) == SC_EOL_CR) - on_new_line_added(doc); + on_new_line_added(editor); break; } case '\n': { /* simple indentation (for CR/LF and LF format) */ - on_new_line_added(doc); + on_new_line_added(editor); break; } case '>': case '/': { /* close xml-tags */ - handle_xml(doc, nt->ch); + handle_xml(editor, nt->ch); break; } case '(': { /* show calltips */ - editor_show_calltip(doc, --pos); + editor_show_calltip(editor->document, --pos); break; } case ')': @@ -417,19 +417,20 @@ if (sci_get_lexer(sci) == SCLEX_LATEX) { auto_close_bracket(sci, pos, nt->ch); /* Tex auto-closing */ - editor_show_calltip(doc, --pos); + editor_show_calltip(editor->document, --pos); } break; } case '}': { /* closing bracket handling */ - if (doc->auto_indent) - editor_close_block(doc, pos - 1); + if (editor->auto_indent) + editor_close_block(editor->document, pos - 1); break; } - default: editor_start_auto_complete(doc, pos, FALSE); + default: + editor_start_auto_complete(editor->document, pos, FALSE); } - check_line_breaking(doc, pos, nt->ch); + check_line_breaking(editor, pos, nt->ch); }
@@ -566,14 +567,15 @@
/* callback func called by all editors when a signal arises */ -void on_editor_notification(GtkWidget *editor, gint scn, gpointer lscn, gpointer user_data) +void on_editor_notification(GtkWidget *widget, gint scn, gpointer lscn, gpointer user_data) { SCNotification *nt; ScintillaObject *sci; - GeanyDocument *doc; + GeanyDocument *doc = user_data; + GeanyEditor *editor;
- doc = user_data; - sci = doc->editor->scintilla; + editor = doc->editor; + sci = editor->scintilla;
nt = lscn; switch (nt->nmhdr.code) @@ -598,7 +600,7 @@ break;
case SCN_UPDATEUI: - on_update_ui(doc, nt); + on_update_ui(editor, nt); break;
case SCN_MODIFIED: @@ -616,7 +618,7 @@ break; } case SCN_CHARADDED: - on_char_added(doc, nt); + on_char_added(editor, nt); break;
case SCN_USERLISTSELECTION: @@ -721,53 +723,54 @@ }
-static void check_python_indent(GeanyDocument *doc, gint pos) +static void check_python_indent(GeanyEditor *editor, gint pos) { - gint last_char = pos - editor_get_eol_char_len(doc) - 1; + ScintillaObject *sci = editor->scintilla; + gint last_char = pos - editor_get_eol_char_len(editor->document) - 1;
/* add extra indentation for Python after colon */ - if (sci_get_char_at(doc->editor->scintilla, last_char) == ':' && - sci_get_style_at(doc->editor->scintilla, last_char) == SCE_P_OPERATOR) + if (sci_get_char_at(sci, last_char) == ':' && + sci_get_style_at(sci, last_char) == SCE_P_OPERATOR) { /* creates and inserts one tabulator sign or * whitespace of the amount of the tab width */ - gchar *text = get_whitespace(editor_prefs.tab_width, doc->use_tabs); - sci_add_text(doc->editor->scintilla, text); + gchar *text = get_whitespace(editor_prefs.tab_width, editor->use_tabs); + sci_add_text(sci, text); g_free(text); } }
-static void on_new_line_added(GeanyDocument *doc) +static void on_new_line_added(GeanyEditor *editor) { - ScintillaObject *sci = doc->editor->scintilla; + ScintillaObject *sci = editor->scintilla; gint pos = sci_get_current_position(sci); gint line = sci_get_current_line(sci);
/* simple indentation */ - if (doc->auto_indent) + if (editor->auto_indent) { - get_indent(doc, pos, FALSE); + get_indent(editor, pos, FALSE); sci_add_text(sci, indent);
if (editor_prefs.indent_mode > INDENT_BASIC && - FILETYPE_ID(doc->file_type) == GEANY_FILETYPES_PYTHON) - check_python_indent(doc, pos); + FILETYPE_ID(editor->document->file_type) == GEANY_FILETYPES_PYTHON) + check_python_indent(editor, pos); }
if (editor_prefs.auto_continue_multiline) { /* " * " auto completion in multiline C/C++/D/Java comments */ - auto_multiline(doc, pos); + auto_multiline(editor, pos); }
if (editor_prefs.complete_snippets) { - editor_auto_latex(doc, pos); + editor_auto_latex(editor->document, pos); }
if (editor_prefs.newline_strip) { /* strip the trailing spaces on the previous line */ - editor_strip_line_trailing_spaces(doc, line - 1); + editor_strip_line_trailing_spaces(editor->document, line - 1); } }
@@ -814,9 +817,9 @@
/* "use_this_line" to auto-indent only if it is a real new line * and ignore the case of editor_close_block */ -static void get_indent(GeanyDocument *doc, gint pos, gboolean use_this_line) +static void get_indent(GeanyEditor *editor, gint pos, gboolean use_this_line) { - ScintillaObject *sci = doc->editor->scintilla; + ScintillaObject *sci = editor->scintilla; guint i, len, j = 0; gint prev_line; gchar *linebuf; @@ -845,7 +848,7 @@ * " { return bless({}, shift); }" (Perl) */ if (linebuf[i] == '{' && i == (len - 1)) { - do_indent(indent, sizeof(indent), &j, doc->use_tabs); + do_indent(indent, sizeof(indent), &j, editor->use_tabs); break; } else @@ -858,7 +861,7 @@ * e.g. for (...) { */ if (linebuf[k] == '{') { - do_indent(indent, sizeof(indent), &j, doc->use_tabs); + do_indent(indent, sizeof(indent), &j, editor->use_tabs); } break; } @@ -971,7 +974,7 @@ { gint line_start;
- get_indent(doc, start_brace, TRUE); + get_indent(doc->editor, start_brace, TRUE); text = g_strconcat(indent, "}", NULL); line_start = sci_get_position_from_line(sci, line); sci_set_anchor(sci, line_start); @@ -1401,6 +1404,7 @@
if (sci_get_char_at(sci, pos - 2) == '}') { + GeanyEditor *editor = doc->editor; gchar *eol, *buf, *construct; gchar env[50]; gint line = sci_get_line_from_position(sci, pos - 2); @@ -1451,8 +1455,8 @@ }
/* get the indentation */ - if (doc->auto_indent) - get_indent(doc, pos, TRUE); + if (editor->auto_indent) + get_indent(editor, pos, TRUE); eol = g_strconcat(editor_get_eol_char(doc), indent, NULL);
construct = g_strdup_printf("%s\end%s{%s}", eol, full_cmd, env); @@ -1518,16 +1522,16 @@ }
-static gboolean snippets_complete_constructs(GeanyDocument *doc, gint pos, const gchar *word) +static gboolean snippets_complete_constructs(GeanyEditor *editor, gint pos, const gchar *word) { gchar *str; gchar *pattern; gchar *lindent; gchar *whitespace; gint step, str_len; - gint ft_id = FILETYPE_ID(doc->file_type); + gint ft_id = FILETYPE_ID(editor->document->file_type); GHashTable *specials; - ScintillaObject *sci = doc->editor->scintilla; + ScintillaObject *sci = editor->scintilla;
str = g_strdup(word); g_strstrip(str); @@ -1539,9 +1543,9 @@ return FALSE; }
- get_indent(doc, pos, TRUE); - lindent = g_strconcat(editor_get_eol_char(doc), indent, NULL); - whitespace = get_whitespace(editor_prefs.tab_width, doc->use_tabs); + get_indent(editor, pos, TRUE); + lindent = g_strconcat(editor_get_eol_char(editor->document), indent, NULL); + whitespace = get_whitespace(editor_prefs.tab_width, editor->use_tabs);
/* remove the typed word, it will be added again by the used auto completion * (not really necessary but this makes the auto completion more flexible, @@ -1630,7 +1634,7 @@ if (! isspace(sci_get_char_at(sci, pos - 1))) /* pos points to the line end char so use pos -1 */ { sci_start_undo_action(sci); /* needed because we insert a space separately from construct */ - result = snippets_complete_constructs(doc, pos, current_word); + result = snippets_complete_constructs(doc->editor, pos, current_word); sci_end_undo_action(sci); if (result) SSM(sci, SCI_CANCEL, 0, 0); /* cancel any autocompletion list, etc */ @@ -1655,9 +1659,9 @@ }
-static void insert_closing_tag(GeanyDocument *doc, gint pos, gchar ch, const gchar *tag_name) +static void insert_closing_tag(GeanyEditor *editor, gint pos, gchar ch, const gchar *tag_name) { - ScintillaObject *sci = doc->editor->scintilla; + ScintillaObject *sci = editor->scintilla; gchar *to_insert = NULL;
if (ch == '/') @@ -1678,7 +1682,7 @@ { SSM(sci, SCI_SETSEL, pos, pos); if (utils_str_equal(tag_name, "table")) - editor_auto_table(doc, pos); + auto_table(editor, pos); } sci_end_undo_action(sci); g_free(to_insert); @@ -1691,9 +1695,9 @@ * @param ch The character we are dealing with, currently only works with the '>' character * @return True if handled, false otherwise */ -static gboolean handle_xml(GeanyDocument *doc, gchar ch) +static gboolean handle_xml(GeanyEditor *editor, gchar ch) { - ScintillaObject *sci = doc->editor->scintilla; + ScintillaObject *sci = editor->scintilla; gint lexer = SSM(sci, SCI_GETLEXER, 0, 0); gint pos, min; gchar *str_found, sel[512]; @@ -1707,7 +1711,7 @@ pos = sci_get_current_position(sci);
/* return if we are in PHP but not in a string or outside of <? ?> tags */ - if (doc->file_type->id == GEANY_FILETYPES_PHP) + if (editor->document->file_type->id == GEANY_FILETYPES_PHP) { gint style = sci_get_style_at(sci, pos); if (style != SCE_HPHP_SIMPLESTRING && style != SCE_HPHP_HSTRING && @@ -1750,7 +1754,7 @@ } else if (NZV(str_found)) { - insert_closing_tag(doc, pos, ch, str_found); + insert_closing_tag(editor, pos, ch, str_found); result = TRUE; } g_free(str_found); @@ -1758,15 +1762,15 @@ }
-static void editor_auto_table(GeanyDocument *doc, gint pos) +static void auto_table(GeanyEditor *editor, gint pos) { - ScintillaObject *sci = doc->editor->scintilla; + ScintillaObject *sci = editor->scintilla; gchar *table; gint indent_pos;
if (SSM(sci, SCI_GETLEXER, 0, 0) != SCLEX_HTML) return;
- get_indent(doc, pos, TRUE); + get_indent(editor, pos, TRUE); indent_pos = sci_get_line_indent_position(sci, sci_get_line_from_position(sci, pos)); if ((pos - 7) != indent_pos) /* 7 == strlen("<table>") */ { @@ -2154,7 +2158,7 @@ gint a = (first_line_was_comment) ? - co_len : co_len;
/* don't modify sel_start when the selection starts within indentation */ - get_indent(doc, sel_start, TRUE); + get_indent(doc->editor, sel_start, TRUE); if ((sel_start - first_line_start) <= (gint) strlen(indent)) a = 0;
@@ -2362,10 +2366,11 @@ }
-static void auto_multiline(GeanyDocument *doc, gint pos) +static void auto_multiline(GeanyEditor *editor, gint pos) { - ScintillaObject *sci = doc->editor->scintilla; - gint style = SSM(sci, SCI_GETSTYLEAT, pos - 1 - editor_get_eol_char_len(doc), 0); + ScintillaObject *sci = editor->scintilla; + gint eol_len = editor_get_eol_char_len(editor->document); + gint style = SSM(sci, SCI_GETSTYLEAT, pos - 1 - eol_len, 0); gint lexer = SSM(sci, SCI_GETLEXER, 0, 0);
if ((lexer == SCLEX_CPP && (style == SCE_C_COMMENT || style == SCE_C_COMMENTDOC)) || @@ -2642,22 +2647,25 @@ gint line; gint pos; gboolean have_multiline_comment = FALSE; + GeanyEditor *editor;
if (doc == NULL || doc->file_type == NULL || doc->file_type->comment_open == NULL) return; + editor = doc->editor;
if (doc->file_type->comment_close != NULL && strlen(doc->file_type->comment_close) > 0) have_multiline_comment = TRUE;
/* insert three lines one line above of the current position */ - line = sci_get_line_from_position(doc->editor->scintilla, editor_info.click_pos); - pos = sci_get_position_from_line(doc->editor->scintilla, line); + line = sci_get_line_from_position(editor->scintilla, editor_info.click_pos); + pos = sci_get_position_from_line(editor->scintilla, line);
/* use the indent on the current line but only when comment indentation is used * and we don't have multi line comment characters */ - if (doc->auto_indent && ! have_multiline_comment && doc->file_type->comment_use_indent) + if (editor->auto_indent && + ! have_multiline_comment && doc->file_type->comment_use_indent) { - get_indent(doc, editor_info.click_pos, TRUE); + get_indent(editor, editor_info.click_pos, TRUE); text = g_strdup_printf("%s\n%s\n%s\n", indent, indent, indent); text_len = strlen(text); } @@ -2666,13 +2674,13 @@ text = g_strdup("\n\n\n"); text_len = 3; } - sci_insert_text(doc->editor->scintilla, pos, text); + sci_insert_text(editor->scintilla, pos, text); g_free(text);
/* select the inserted lines for commenting */ - sci_set_selection_start(doc->editor->scintilla, pos); - sci_set_selection_end(doc->editor->scintilla, pos + text_len); + sci_set_selection_start(editor->scintilla, pos); + sci_set_selection_end(editor->scintilla, pos + text_len);
editor_do_comment(doc, -1, TRUE, FALSE);
@@ -2685,9 +2693,9 @@ else pos += strlen(indent);
- sci_set_current_position(doc->editor->scintilla, pos, TRUE); + sci_set_current_position(editor->scintilla, pos, TRUE); /* reset the selection */ - sci_set_anchor(doc->editor->scintilla, pos); + sci_set_anchor(editor->scintilla, pos); }
@@ -2717,11 +2725,11 @@ }
-void editor_insert_alternative_whitespace(GeanyDocument *doc) +void editor_insert_alternative_whitespace(GeanyEditor *editor) { - /* creates and inserts one tabulator sign or whitespace of the amount of the tab width */ - gchar *text = get_whitespace(editor_prefs.tab_width, ! doc->use_tabs); - sci_add_text(doc->editor->scintilla, text); + /* creates and inserts one tab or whitespace of the amount of the tab width */ + gchar *text = get_whitespace(editor_prefs.tab_width, ! editor->use_tabs); + sci_add_text(editor->scintilla, text); g_free(text); }
@@ -2904,7 +2912,7 @@
/* get previous line and use it for get_indent to use that line * (otherwise it would fail on a line only containing "{" in advanced indentation mode) */ - get_indent(doc, sci_get_position_from_line(sci, first_line - 1), TRUE); + get_indent(doc->editor, sci_get_position_from_line(sci, first_line - 1), TRUE);
smart_line_indentation(doc, first_line, last_line);
@@ -3051,17 +3059,17 @@
/* If the current line is outside the current view window, scroll the line * so it appears at percent_of_view. */ -void editor_display_current_line(GeanyDocument *doc, gfloat percent_of_view) +void editor_display_current_line(GeanyEditor *editor, gfloat percent_of_view) { - ScintillaObject *sci = doc->editor->scintilla; + ScintillaObject *sci = editor->scintilla; gint line = sci_get_current_line(sci);
/* unfold maybe folded results */ - sci_ensure_line_is_visible(doc->editor->scintilla, line); + sci_ensure_line_is_visible(editor->scintilla, line);
/* scroll the line if it's off screen */ if (! editor_line_in_view(sci, line)) - doc->scroll_percent = percent_of_view; + editor->scroll_percent = percent_of_view; }
@@ -3421,49 +3429,50 @@ }
-void editor_set_line_wrapping(GeanyDocument *doc, gboolean wrap) +void editor_set_line_wrapping(GeanyEditor *editor, gboolean wrap) { - g_return_if_fail(doc != NULL); + g_return_if_fail(editor != NULL);
- doc->line_wrapping = wrap; - sci_set_lines_wrapped(doc->editor->scintilla, wrap); + editor->line_wrapping = wrap; + sci_set_lines_wrapped(editor->scintilla, wrap); }
-void editor_set_use_tabs(GeanyDocument *doc, gboolean use_tabs) +void editor_set_use_tabs(GeanyEditor *editor, gboolean use_tabs) { - g_return_if_fail(doc != NULL); + g_return_if_fail(editor != NULL);
- doc->use_tabs = use_tabs; - sci_set_use_tabs(doc->editor->scintilla, use_tabs); + editor->use_tabs = use_tabs; + sci_set_use_tabs(editor->scintilla, use_tabs); /* remove indent spaces on backspace, if using spaces to indent */ - SSM(doc->editor->scintilla, SCI_SETBACKSPACEUNINDENTS, ! use_tabs, 0); + SSM(editor->scintilla, SCI_SETBACKSPACEUNINDENTS, ! use_tabs, 0); }
/* Move to position @a pos, switching to the document if necessary, * setting a marker if @a mark is set. */ -gboolean editor_goto_pos(GeanyDocument *doc, gint pos, gboolean mark) +gboolean editor_goto_pos(GeanyEditor *editor, gint pos, gboolean mark) { gint page_num;
- if (doc == NULL || pos < 0) + g_return_val_if_fail(editor, FALSE); + if (pos < 0) return FALSE;
if (mark) { - gint line = sci_get_line_from_position(doc->editor->scintilla, pos); + gint line = sci_get_line_from_position(editor->scintilla, pos);
/* mark the tag with the yellow arrow */ - sci_marker_delete_all(doc->editor->scintilla, 0); - sci_set_marker_at_line(doc->editor->scintilla, line, TRUE, 0); + sci_marker_delete_all(editor->scintilla, 0); + sci_set_marker_at_line(editor->scintilla, line, TRUE, 0); }
- sci_goto_pos(doc->editor->scintilla, pos, TRUE); - doc->scroll_percent = 0.25F; + sci_goto_pos(editor->scintilla, pos, TRUE); + editor->scroll_percent = 0.25F;
/* finally switch to the page */ - page_num = gtk_notebook_page_num(GTK_NOTEBOOK(main_widgets.notebook), GTK_WIDGET(doc->editor->scintilla)); + page_num = gtk_notebook_page_num(GTK_NOTEBOOK(main_widgets.notebook), GTK_WIDGET(editor->scintilla)); gtk_notebook_set_current_page(GTK_NOTEBOOK(main_widgets.notebook), page_num);
return TRUE;
Modified: branches/editor-struct/src/editor.h =================================================================== --- branches/editor-struct/src/editor.h 2008-07-08 11:26:09 UTC (rev 2764) +++ branches/editor-struct/src/editor.h 2008-07-08 13:53:08 UTC (rev 2765) @@ -155,7 +155,7 @@
void editor_insert_multiline_comment(GeanyDocument *doc);
-void editor_insert_alternative_whitespace(GeanyDocument *doc); +void editor_insert_alternative_whitespace(GeanyEditor *editor);
void editor_smart_line_indentation(GeanyDocument *doc, gint pos);
@@ -165,7 +165,7 @@
void editor_scroll_to_line(ScintillaObject *sci, gint line, gfloat percent_of_view);
-void editor_display_current_line(GeanyDocument *doc, gfloat percent_of_view); +void editor_display_current_line(GeanyEditor *editor, gfloat percent_of_view);
void editor_finalize(void);
@@ -216,10 +216,10 @@
void editor_insert_color(GeanyDocument *doc, const gchar *colour);
-void editor_set_use_tabs(GeanyDocument *doc, gboolean use_tabs); +void editor_set_use_tabs(GeanyEditor *editor, gboolean use_tabs);
-void editor_set_line_wrapping(GeanyDocument *doc, gboolean wrap); +void editor_set_line_wrapping(GeanyEditor *editor, gboolean wrap);
-gboolean editor_goto_pos(GeanyDocument *doc, gint pos, gboolean mark); +gboolean editor_goto_pos(GeanyEditor *editor, gint pos, gboolean mark);
#endif
Modified: branches/editor-struct/src/keybindings.c =================================================================== --- branches/editor-struct/src/keybindings.c 2008-07-08 11:26:09 UTC (rev 2764) +++ branches/editor-struct/src/keybindings.c 2008-07-08 13:53:08 UTC (rev 2765) @@ -1337,7 +1337,7 @@ if (new_pos != -1) { /* set the cursor at the brace */ sci_set_current_position(doc->editor->scintilla, new_pos, FALSE); - editor_display_current_line(doc, 0.5F); + editor_display_current_line(doc->editor, 0.5F); } }
@@ -1409,7 +1409,7 @@ if (mline != -1) { sci_set_current_line(doc->editor->scintilla, mline); - editor_display_current_line(doc, 0.5F); + editor_display_current_line(doc->editor, 0.5F); } return; } @@ -1420,7 +1420,7 @@ if (mline != -1) { sci_set_current_line(doc->editor->scintilla, mline); - editor_display_current_line(doc, 0.5F); + editor_display_current_line(doc->editor, 0.5F); } return; } @@ -1689,7 +1689,7 @@ switch (key_id) { case GEANY_KEYS_INSERT_ALTWHITESPACE: - editor_insert_alternative_whitespace(doc); + editor_insert_alternative_whitespace(doc->editor); break; case GEANY_KEYS_INSERT_DATE: gtk_menu_item_activate(GTK_MENU_ITEM(lookup_widget(main_widgets.window, "insert_date_custom1")));
Modified: branches/editor-struct/src/keyfile.c =================================================================== --- branches/editor-struct/src/keyfile.c 2008-07-08 11:26:09 UTC (rev 2764) +++ branches/editor-struct/src/keyfile.c 2008-07-08 13:53:08 UTC (rev 2765) @@ -890,8 +890,8 @@
if (DOC_VALID(doc)) { - editor_set_use_tabs(doc, use_tabs); - editor_set_line_wrapping(doc, line_wrapping); + editor_set_use_tabs(doc->editor, use_tabs); + editor_set_line_wrapping(doc->editor, line_wrapping); doc->auto_indent = auto_indent; ret = TRUE; }
Modified: branches/editor-struct/src/navqueue.c =================================================================== --- branches/editor-struct/src/navqueue.c 2008-07-08 11:26:09 UTC (rev 2764) +++ branches/editor-struct/src/navqueue.c 2008-07-08 13:53:08 UTC (rev 2765) @@ -167,7 +167,7 @@ add_new_position(new_doc->file_name, pos); }
- return editor_goto_pos(new_doc, pos, TRUE); + return editor_goto_pos(new_doc->editor, pos, TRUE); }
@@ -178,7 +178,7 @@ if (doc == NULL) return FALSE;
- return editor_goto_pos(doc, pos, TRUE); + return editor_goto_pos(doc->editor, pos, TRUE); }
Modified: branches/editor-struct/src/prefs.c =================================================================== --- branches/editor-struct/src/prefs.c 2008-07-08 11:26:09 UTC (rev 2764) +++ branches/editor-struct/src/prefs.c 2008-07-08 13:53:08 UTC (rev 2765) @@ -860,7 +860,7 @@ for (i = 0; i < documents_array->len; i++) { if (documents[i]->is_valid) - editor_set_use_tabs(documents[i], editor_prefs.use_tabs); + editor_set_use_tabs(documents[i]->editor, editor_prefs.use_tabs); } } }
Modified: branches/editor-struct/src/search.c =================================================================== --- branches/editor-struct/src/search.c 2008-07-08 11:26:09 UTC (rev 2764) +++ branches/editor-struct/src/search.c 2008-07-08 13:53:08 UTC (rev 2765) @@ -256,7 +256,7 @@ setup_find_next(s); /* allow find next/prev */
if (document_find_text(doc, s, 0, search_backwards, FALSE, NULL) > -1) - editor_display_current_line(doc, 0.3F); + editor_display_current_line(doc->editor, 0.3F); g_free(s); } }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.