Revision: 5727 http://geany.svn.sourceforge.net/geany/?rev=5727&view=rev Author: eht16 Date: 2011-04-17 13:40:04 +0000 (Sun, 17 Apr 2011)
Log Message: ----------- Add document_compare_by_tab_order() and document_compare_by_tab_order_reverse() to the plugin API.
Modified Paths: -------------- trunk/ChangeLog trunk/plugins/geanyfunctions.h trunk/src/document.c trunk/src/document.h trunk/src/plugindata.h trunk/src/plugins.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2011-04-15 16:59:15 UTC (rev 5726) +++ trunk/ChangeLog 2011-04-17 13:40:04 UTC (rev 5727) @@ -1,3 +1,11 @@ +2011-04-17 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de> + + * src/plugindata.h, src/document.c, src/plugins.c, src/document.h, + plugins/geanyfunctions.h: + Add document_compare_by_tab_order() and + document_compare_by_tab_order_reverse() to the plugin API. + + 2011-04-15 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/utils.c, src/utils.h, src/editor.c:
Modified: trunk/plugins/geanyfunctions.h =================================================================== --- trunk/plugins/geanyfunctions.h 2011-04-15 16:59:15 UTC (rev 5726) +++ trunk/plugins/geanyfunctions.h 2011-04-17 13:40:04 UTC (rev 5727) @@ -74,6 +74,10 @@ geany_functions->p_document->document_get_notebook_page #define document_compare_by_display_name \ geany_functions->p_document->document_compare_by_display_name +#define document_compare_by_tab_order \ + geany_functions->p_document->document_compare_by_tab_order +#define document_compare_by_tab_order_reverse \ + geany_functions->p_document->document_compare_by_tab_order_reverse #define editor_get_indent_prefs \ geany_functions->p_editor->editor_get_indent_prefs #define editor_create_widget \
Modified: trunk/src/document.c =================================================================== --- trunk/src/document.c 2011-04-15 16:59:15 UTC (rev 5726) +++ trunk/src/document.c 2011-04-17 13:40:04 UTC (rev 5727) @@ -3043,3 +3043,61 @@ }
+/** Compares documents by their tab order. + * This matches @c GCompareFunc for use with e.g. @c g_ptr_array_sort(). + * + * @param a @c GeanyDocument**. + * @param b @c GeanyDocument**. + * @warning The arguments take the address of each document pointer. + * @return Negative value if a < b; zero if a = b; positive value if a > b. + * + * @since 0.21 (GEANY_API_VERSION 209) + */ +gint document_compare_by_tab_order(gconstpointer a, gconstpointer b) +{ + GeanyDocument *doc_a = *((GeanyDocument**) a); + GeanyDocument *doc_b = *((GeanyDocument**) b); + gint notebook_position_doc_a; + gint notebook_position_doc_b; + + notebook_position_doc_a = document_get_notebook_page(doc_a); + notebook_position_doc_b = document_get_notebook_page(doc_b); + + if (notebook_position_doc_a < notebook_position_doc_b) + return -1; + if (notebook_position_doc_a > notebook_position_doc_b) + return 1; + /* equality */ + return 0; +} + + +/** Compares documents by their tab order, in reverse order. + * This matches @c GCompareFunc for use with e.g. @c g_ptr_array_sort(). + * + * @param a @c GeanyDocument**. + * @param b @c GeanyDocument**. + * @warning The arguments take the address of each document pointer. + * @return Negative value if a < b; zero if a = b; positive value if a > b. + * + * @since 0.21 (GEANY_API_VERSION 209) + */ +gint document_compare_by_tab_order_reverse(gconstpointer a, gconstpointer b) +{ + GeanyDocument *doc_a = *((GeanyDocument**) a); + GeanyDocument *doc_b = *((GeanyDocument**) b); + gint notebook_position_doc_a; + gint notebook_position_doc_b; + + notebook_position_doc_a = document_get_notebook_page(doc_a); + notebook_position_doc_b = document_get_notebook_page(doc_b); + + if (notebook_position_doc_a < notebook_position_doc_b) + return 1; + if (notebook_position_doc_a > notebook_position_doc_b) + return -1; + /* equality */ + return 0; +} + +
Modified: trunk/src/document.h =================================================================== --- trunk/src/document.h 2011-04-15 16:59:15 UTC (rev 5726) +++ trunk/src/document.h 2011-04-17 13:40:04 UTC (rev 5727) @@ -261,4 +261,8 @@
gint document_compare_by_display_name(gconstpointer a, gconstpointer b);
+gint document_compare_by_tab_order(gconstpointer a, gconstpointer b); + +gint document_compare_by_tab_order_reverse(gconstpointer a, gconstpointer b); + #endif
Modified: trunk/src/plugindata.h =================================================================== --- trunk/src/plugindata.h 2011-04-15 16:59:15 UTC (rev 5726) +++ trunk/src/plugindata.h 2011-04-17 13:40:04 UTC (rev 5727) @@ -54,7 +54,7 @@ * @warning You should not test for values below 200 as previously * @c GEANY_API_VERSION was defined as an enum value, not a macro. */ -#define GEANY_API_VERSION 208 +#define GEANY_API_VERSION 209
/** The Application Binary Interface (ABI) version, incremented whenever * existing fields in the plugin data types have to be changed or reordered. @@ -311,6 +311,8 @@ gchar* (*document_get_basename_for_display) (struct GeanyDocument *doc, gint length); gint (*document_get_notebook_page) (struct GeanyDocument *doc); gint (*document_compare_by_display_name) (gconstpointer a, gconstpointer b); + gint (*document_compare_by_tab_order) (gconstpointer a, gconstpointer b); + gint (*document_compare_by_tab_order_reverse) (gconstpointer a, gconstpointer b); } DocumentFuncs;
Modified: trunk/src/plugins.c =================================================================== --- trunk/src/plugins.c 2011-04-15 16:59:15 UTC (rev 5726) +++ trunk/src/plugins.c 2011-04-17 13:40:04 UTC (rev 5727) @@ -112,7 +112,9 @@ &document_get_status_color, &document_get_basename_for_display, &document_get_notebook_page, - &document_compare_by_display_name + &document_compare_by_display_name, + &document_compare_by_tab_order, + &document_compare_by_tab_order_reverse };
static EditorFuncs editor_funcs = {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.