SF.net SVN: geany:[4178] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Sat Sep 12 17:39:49 UTC 2009


Revision: 4178
          http://geany.svn.sourceforge.net/geany/?rev=4178&view=rev
Author:   ntrel
Date:     2009-09-12 17:39:49 +0000 (Sat, 12 Sep 2009)

Log Message:
-----------
Add sci_set_marker_at_line(), sci_delete_marker_at_line(),
sci_is_marker_set_at_line() to the plugin API (thanks to Yura
Siamashka).
Add sci_toggle_marker_at_line().
Fix SciFuncs alignment.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/plugins/geanyfunctions.h
    trunk/src/editor.c
    trunk/src/keybindings.c
    trunk/src/plugindata.h
    trunk/src/plugins.c
    trunk/src/sciwrappers.c
    trunk/src/sciwrappers.h

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2009-09-12 16:19:03 UTC (rev 4177)
+++ trunk/ChangeLog	2009-09-12 17:39:49 UTC (rev 4178)
@@ -1,3 +1,15 @@
+2009-09-12  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * src/keybindings.c, src/sciwrappers.c, src/sciwrappers.h,
+   src/plugindata.h, src/plugins.c, src/editor.c,
+   plugins/geanyfunctions.h:
+   Add sci_set_marker_at_line(), sci_delete_marker_at_line(),
+   sci_is_marker_set_at_line() to the plugin API (thanks to Yura
+   Siamashka).
+   Add sci_toggle_marker_at_line().
+   Fix SciFuncs alignment.
+
+
 2009-09-11  Lex Trotman  <elextr(at)gmail(dot)com>
 
  * src/build.c

Modified: trunk/plugins/geanyfunctions.h
===================================================================
--- trunk/plugins/geanyfunctions.h	2009-09-12 16:19:03 UTC (rev 4177)
+++ trunk/plugins/geanyfunctions.h	2009-09-12 17:39:49 UTC (rev 4178)
@@ -168,6 +168,12 @@
 	geany_functions->p_sci->set_target_end
 #define sci_replace_target \
 	geany_functions->p_sci->replace_target
+#define sci_set_marker_at_line \
+	geany_functions->p_sci->set_marker_at_line
+#define sci_delete_marker_at_line \
+	geany_functions->p_sci->delete_marker_at_line
+#define sci_is_marker_set_at_line \
+	geany_functions->p_sci->is_marker_set_at_line
 #define templates_get_template_fileheader \
 	geany_functions->p_templates->get_template_fileheader
 #define utils_str_equal \

Modified: trunk/src/editor.c
===================================================================
--- trunk/src/editor.c	2009-09-12 16:19:03 UTC (rev 4177)
+++ trunk/src/editor.c	2009-09-12 17:39:49 UTC (rev 4178)
@@ -316,10 +316,9 @@
 	if (nt->margin == 1)
 	{
 		gint line = sci_get_line_from_position(sci, nt->position);
-		gboolean set = sci_is_marker_set_at_line(sci, line, 1);
 
 		/*sci_marker_delete_all(editor->sci, 1);*/
-		sci_set_marker_at_line(sci, line, ! set, 1);	/* toggle the marker */
+		sci_toggle_marker_at_line(sci, line, 1);	/* toggle the marker */
 	}
 	/* left click on the folding margin to toggle folding state of current line */
 	else if (nt->margin == 2 && editor_prefs.folding)
@@ -4471,7 +4470,7 @@
 
 		/* mark the tag with the yellow arrow */
 		sci_marker_delete_all(editor->sci, 0);
-		sci_set_marker_at_line(editor->sci, line, TRUE, 0);
+		sci_set_marker_at_line(editor->sci, line, 0);
 	}
 
 	sci_goto_pos(editor->sci, pos, TRUE);

Modified: trunk/src/keybindings.c
===================================================================
--- trunk/src/keybindings.c	2009-09-12 16:19:03 UTC (rev 4177)
+++ trunk/src/keybindings.c	2009-09-12 17:39:49 UTC (rev 4178)
@@ -1811,9 +1811,7 @@
 			return;
 		case GEANY_KEYS_GOTO_TOGGLEMARKER:
 		{
-			gboolean set = sci_is_marker_set_at_line(doc->editor->sci, cur_line, 1);
-
-			sci_set_marker_at_line(doc->editor->sci, cur_line, ! set, 1);
+			sci_toggle_marker_at_line(doc->editor->sci, cur_line, 1);
 			return;
 		}
 		case GEANY_KEYS_GOTO_NEXTMARKER:

Modified: trunk/src/plugindata.h
===================================================================
--- trunk/src/plugindata.h	2009-09-12 16:19:03 UTC (rev 4177)
+++ trunk/src/plugindata.h	2009-09-12 17:39:49 UTC (rev 4178)
@@ -50,7 +50,7 @@
 enum {
 	/** The Application Programming Interface (API) version, incremented
 	 * whenever any plugin data types are modified or appended to. */
-	GEANY_API_VERSION = 155,
+	GEANY_API_VERSION = 156,
 
 	/** The Application Binary Interface (ABI) version, incremented whenever
 	 * existing fields in the plugin data types have to be changed or reordered. */
@@ -293,39 +293,39 @@
 typedef struct SciFuncs
 {
 	/** @deprecated Use @ref ScintillaFuncs::send_message() instead. */
-	long int (*send_message) (struct _ScintillaObject* sci, unsigned int iMessage,
+	long int (*send_message) (struct _ScintillaObject *sci, unsigned int iMessage,
 			long unsigned int wParam, long int lParam);
-	void	(*send_command) (struct _ScintillaObject* sci, gint cmd);
+	void	(*send_command) (struct _ScintillaObject *sci, gint cmd);
 
-	void	(*start_undo_action) (struct _ScintillaObject* sci);
-	void	(*end_undo_action) (struct _ScintillaObject* sci);
+	void	(*start_undo_action) (struct _ScintillaObject *sci);
+	void	(*end_undo_action) (struct _ScintillaObject *sci);
 	void	(*set_text) (struct _ScintillaObject *sci, const gchar *text);
 	void	(*insert_text) (struct _ScintillaObject *sci, gint pos, const gchar *text);
 	void	(*get_text) (struct _ScintillaObject *sci, gint len, gchar *text);
 	gint	(*get_length) (struct _ScintillaObject *sci);
 	gint	(*get_current_position) (struct _ScintillaObject *sci);
-	void	(*set_current_position) (struct _ScintillaObject* sci, gint position,
+	void	(*set_current_position) (struct _ScintillaObject *sci, gint position,
 			 gboolean scroll_to_caret);
-	gint	(*get_col_from_position) (struct _ScintillaObject* sci, gint position);
-	gint	(*get_line_from_position) (struct _ScintillaObject* sci, gint position);
-	gint	(*get_position_from_line) (struct _ScintillaObject* sci, gint line);
-	void	(*replace_sel) (struct _ScintillaObject* sci, const gchar *text);
-	void	(*get_selected_text) (struct _ScintillaObject* sci, gchar *text);
-	gint	(*get_selected_text_length) (struct _ScintillaObject* sci);
-	gint	(*get_selection_start) (struct _ScintillaObject* sci);
-	gint	(*get_selection_end) (struct _ScintillaObject* sci);
-	gint	(*get_selection_mode) (struct _ScintillaObject* sci);
-	void	(*set_selection_mode) (struct _ScintillaObject* sci, gint mode);
-	void	(*set_selection_start) (struct _ScintillaObject* sci, gint position);
-	void	(*set_selection_end) (struct _ScintillaObject* sci, gint position);
-	void	(*get_text_range) (struct _ScintillaObject* sci, gint start, gint end, gchar *text);
-	gchar*	(*get_line) (struct _ScintillaObject* sci, gint line_num);
-	gint	(*get_line_length) (struct _ScintillaObject* sci, gint line);
-	gint	(*get_line_count) (struct _ScintillaObject* sci);
-	gboolean (*get_line_is_visible) (struct _ScintillaObject* sci, gint line);
-	void	(*ensure_line_is_visible) (struct _ScintillaObject* sci, gint line);
-	void	(*scroll_caret) (struct _ScintillaObject* sci);
-	gint	(*find_matching_brace) (struct _ScintillaObject* sci, gint pos);
+	gint	(*get_col_from_position) (struct _ScintillaObject *sci, gint position);
+	gint	(*get_line_from_position) (struct _ScintillaObject *sci, gint position);
+	gint	(*get_position_from_line) (struct _ScintillaObject *sci, gint line);
+	void	(*replace_sel) (struct _ScintillaObject *sci, const gchar *text);
+	void	(*get_selected_text) (struct _ScintillaObject *sci, gchar *text);
+	gint	(*get_selected_text_length) (struct _ScintillaObject *sci);
+	gint	(*get_selection_start) (struct _ScintillaObject *sci);
+	gint	(*get_selection_end) (struct _ScintillaObject *sci);
+	gint	(*get_selection_mode) (struct _ScintillaObject *sci);
+	void	(*set_selection_mode) (struct _ScintillaObject *sci, gint mode);
+	void	(*set_selection_start) (struct _ScintillaObject *sci, gint position);
+	void	(*set_selection_end) (struct _ScintillaObject *sci, gint position);
+	void	(*get_text_range) (struct _ScintillaObject *sci, gint start, gint end, gchar *text);
+	gchar*	(*get_line) (struct _ScintillaObject *sci, gint line_num);
+	gint	(*get_line_length) (struct _ScintillaObject *sci, gint line);
+	gint	(*get_line_count) (struct _ScintillaObject *sci);
+	gboolean (*get_line_is_visible) (struct _ScintillaObject *sci, gint line);
+	void	(*ensure_line_is_visible) (struct _ScintillaObject *sci, gint line);
+	void	(*scroll_caret) (struct _ScintillaObject *sci);
+	gint	(*find_matching_brace) (struct _ScintillaObject *sci, gint pos);
 	gint	(*get_style_at) (struct _ScintillaObject *sci, gint position);
 	gchar	(*get_char_at) (struct _ScintillaObject *sci, gint pos);
 	gint	(*get_current_line) (struct _ScintillaObject *sci);
@@ -337,10 +337,13 @@
 	gchar*	(*get_contents_range) (struct _ScintillaObject *sci, gint start, gint end);
 	gchar*	(*get_selection_contents) (struct _ScintillaObject *sci);
 	void	(*set_font) (struct _ScintillaObject *sci, gint style, const gchar *font, gint size);
-	gint (*get_line_end_position) (ScintillaObject* sci, gint line);
-	void (*set_target_start) (ScintillaObject *sci, gint start);
-	void (*set_target_end) (ScintillaObject *sci, gint end);
-	gint (*replace_target) (ScintillaObject *sci, const gchar *text, gboolean regex);
+	gint	(*get_line_end_position) (struct _ScintillaObject *sci, gint line);
+	void	(*set_target_start) (struct _ScintillaObject *sci, gint start);
+	void	(*set_target_end) (struct _ScintillaObject *sci, gint end);
+	gint	(*replace_target) (struct _ScintillaObject *sci, const gchar *text, gboolean regex);
+	void	(*set_marker_at_line) (struct _ScintillaObject *sci, gint line_number, gint marker);
+	void	(*delete_marker_at_line) (struct _ScintillaObject *sci, gint line_number, gint marker);
+	gboolean (*is_marker_set_at_line) (struct _ScintillaObject *sci, gint line, gint marker);
 }
 SciFuncs;
 

Modified: trunk/src/plugins.c
===================================================================
--- trunk/src/plugins.c	2009-09-12 16:19:03 UTC (rev 4177)
+++ trunk/src/plugins.c	2009-09-12 17:39:49 UTC (rev 4178)
@@ -171,7 +171,10 @@
 	&sci_get_line_end_position,
 	&sci_set_target_start,
 	&sci_set_target_end,
-	&sci_replace_target
+	&sci_replace_target,
+	&sci_set_marker_at_line,
+	&sci_delete_marker_at_line,
+	&sci_is_marker_set_at_line
 };
 
 static TemplateFuncs template_funcs = {

Modified: trunk/src/sciwrappers.c
===================================================================
--- trunk/src/sciwrappers.c	2009-09-12 16:19:03 UTC (rev 4177)
+++ trunk/src/sciwrappers.c	2009-09-12 17:39:49 UTC (rev 4178)
@@ -257,19 +257,31 @@
 }
 
 
-void sci_set_marker_at_line( ScintillaObject* sci, gint line_number, gboolean set, gint marker )
+/** Set a line marker.
+ * @param sci Scintilla widget.
+ * @param line_number Line number.
+ * @param marker Marker number. */
+void sci_set_marker_at_line( ScintillaObject* sci, gint line_number, gint marker )
 {
-	if ( set )
-	{
-		SSM( sci, SCI_MARKERADD, line_number, marker);
-	}
-	else
-	{
-		SSM( sci, SCI_MARKERDELETE, line_number, marker);
-	}
+	SSM( sci, SCI_MARKERADD, line_number, marker);
 }
 
 
+/** Delete a line marker.
+ * @param sci Scintilla widget.
+ * @param line_number Line number.
+ * @param marker Marker number. */
+void sci_delete_marker_at_line( ScintillaObject* sci, gint line_number, gint marker )
+{
+	SSM( sci, SCI_MARKERDELETE, line_number, marker);
+}
+
+
+/** Check if a line has a marker set.
+ * @param sci Scintilla widget.
+ * @param line Line number.
+ * @param marker Marker number.
+ * @return Whether it's set. */
 gboolean sci_is_marker_set_at_line(ScintillaObject* sci, gint line, gint marker)
 {
 	gint state;
@@ -279,6 +291,17 @@
 }
 
 
+void sci_toggle_marker_at_line(ScintillaObject* sci, gint line, gint marker)
+{
+	gboolean set = sci_is_marker_set_at_line(sci, line, marker);
+
+	if (!set)
+		sci_set_marker_at_line(sci, line, marker);
+	else
+		sci_delete_marker_at_line(sci, line, marker);
+}
+
+
 /* Returns the line number of the next marker that matches marker_mask, or -1.
  * marker_mask is a bitor of 1 << marker_index. (See MarkerHandleSet::MarkValue()).
  * Note: If there is a marker on the line, it returns the same line. */

Modified: trunk/src/sciwrappers.h
===================================================================
--- trunk/src/sciwrappers.h	2009-09-12 16:19:03 UTC (rev 4177)
+++ trunk/src/sciwrappers.h	2009-09-12 17:39:49 UTC (rev 4178)
@@ -52,7 +52,9 @@
 void 				sci_zoom_in					(ScintillaObject* sci);
 void 				sci_zoom_out				(ScintillaObject* sci);
 void 				sci_zoom_off				(ScintillaObject* sci);
-void				sci_set_marker_at_line		(ScintillaObject* sci, gint line_number, gboolean set, gint marker );
+void				sci_set_marker_at_line		(ScintillaObject* sci, gint line_number, gint marker);
+void				sci_delete_marker_at_line	(ScintillaObject* sci, gint line_number, gint marker);
+void				sci_toggle_marker_at_line	(ScintillaObject* sci, gint line, gint marker);
 gboolean 			sci_is_marker_set_at_line	(ScintillaObject* sci, gint line, gint marker);
 gint				sci_marker_next				(ScintillaObject* sci, gint line, gint marker_mask, gboolean wrap);
 gint				sci_marker_previous			(ScintillaObject* sci, gint line, gint marker_mask, gboolean wrap);


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