SF.net SVN: geany: [442] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Tue Jun 13 19:37:40 UTC 2006
Revision: 442
Author: eht16
Date: 2006-06-13 12:37:21 -0700 (Tue, 13 Jun 2006)
ViewCVS: http://svn.sourceforge.net/geany/?rev=442&view=rev
Log Message:
-----------
Implemented code for setting indicators while compiling.
Modified Paths:
--------------
trunk/ChangeLog
trunk/geany.glade
trunk/src/build.c
trunk/src/callbacks.h
trunk/src/document.c
trunk/src/document.h
trunk/src/geany.h
trunk/src/highlighting.c
trunk/src/interface.c
trunk/src/keyfile.c
trunk/src/prefs.c
trunk/src/sciwrappers.c
trunk/src/sciwrappers.h
trunk/src/utils.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2006-06-13 15:49:19 UTC (rev 441)
+++ trunk/ChangeLog 2006-06-13 19:37:21 UTC (rev 442)
@@ -6,6 +6,10 @@
keybindings to new action identifiers.
* src/utils.c: Improved and finished switching between files when
clicking on compiler error messages.
+ * src/sciwrappers.c, src/document.c, src/highlighting.c, src/build.c,
+ src/keyfile.c, src/prefs.c, src/interface.c, geany.glade,
+ src/geany.h:
+ Implemented code for setting indicators while compiling.
2006-06-12 Enrico Troeger <enrico.troeger at uvena.de>
Modified: trunk/geany.glade
===================================================================
--- trunk/geany.glade 2006-06-13 15:49:19 UTC (rev 441)
+++ trunk/geany.glade 2006-06-13 19:37:21 UTC (rev 442)
@@ -57,7 +57,7 @@
<property name="use_underline">True</property>
<child internal-child="image">
- <widget class="GtkImage" id="image650">
+ <widget class="GtkImage" id="image674">
<property name="visible">True</property>
<property name="stock">gtk-new</property>
<property name="icon_size">1</property>
@@ -130,7 +130,7 @@
<signal name="activate" handler="on_save_all1_activate" last_modification_time="Thu, 02 Jun 2005 14:15:30 GMT"/>
<child internal-child="image">
- <widget class="GtkImage" id="image651">
+ <widget class="GtkImage" id="image675">
<property name="visible">True</property>
<property name="stock">gtk-save</property>
<property name="icon_size">1</property>
@@ -191,7 +191,7 @@
<signal name="activate" handler="on_close_all1_activate" last_modification_time="Thu, 02 Jun 2005 14:15:30 GMT"/>
<child internal-child="image">
- <widget class="GtkImage" id="image652">
+ <widget class="GtkImage" id="image676">
<property name="visible">True</property>
<property name="stock">gtk-close</property>
<property name="icon_size">1</property>
@@ -333,7 +333,7 @@
<property name="use_underline">True</property>
<child internal-child="image">
- <widget class="GtkImage" id="image653">
+ <widget class="GtkImage" id="image677">
<property name="visible">True</property>
<property name="stock">gtk-add</property>
<property name="icon_size">1</property>
@@ -365,7 +365,7 @@
<property name="use_underline">True</property>
<child internal-child="image">
- <widget class="GtkImage" id="image654">
+ <widget class="GtkImage" id="image678">
<property name="visible">True</property>
<property name="stock">gtk-add</property>
<property name="icon_size">1</property>
@@ -543,7 +543,7 @@
<signal name="activate" handler="on_replace1_activate" last_modification_time="Sun, 23 Oct 2005 13:22:36 GMT"/>
<child internal-child="image">
- <widget class="GtkImage" id="image655">
+ <widget class="GtkImage" id="image679">
<property name="visible">True</property>
<property name="stock">gtk-find-and-replace</property>
<property name="icon_size">1</property>
@@ -570,7 +570,7 @@
<signal name="activate" handler="on_go_to_line1_activate" last_modification_time="Tue, 23 May 2006 17:10:49 GMT"/>
<child internal-child="image">
- <widget class="GtkImage" id="image656">
+ <widget class="GtkImage" id="image680">
<property name="visible">True</property>
<property name="stock">gtk-jump-to</property>
<property name="icon_size">1</property>
@@ -605,7 +605,7 @@
<signal name="activate" handler="on_change_font1_activate" last_modification_time="Fri, 22 Apr 2005 18:58:45 GMT"/>
<child internal-child="image">
- <widget class="GtkImage" id="image657">
+ <widget class="GtkImage" id="image681">
<property name="visible">True</property>
<property name="stock">gtk-select-font</property>
<property name="icon_size">1</property>
@@ -627,7 +627,7 @@
<signal name="activate" handler="on_show_color_chooser1_activate" last_modification_time="Wed, 22 Jun 2005 18:10:21 GMT"/>
<child internal-child="image">
- <widget class="GtkImage" id="image658">
+ <widget class="GtkImage" id="image682">
<property name="visible">True</property>
<property name="stock">gtk-select-color</property>
<property name="icon_size">1</property>
@@ -885,6 +885,22 @@
<signal name="activate" handler="on_menu_unfold_all1_activate" last_modification_time="Sun, 26 Feb 2006 15:42:32 GMT"/>
</widget>
</child>
+
+ <child>
+ <widget class="GtkSeparatorMenuItem" id="separator23">
+ <property name="visible">True</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkMenuItem" id="menu_remove_indicators1">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Removes all set indicators in the current document.</property>
+ <property name="label" translatable="yes">Remove all _indicators</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="on_menu_remove_indicators1_activate" last_modification_time="Tue, 13 Jun 2006 19:25:23 GMT"/>
+ </widget>
+ </child>
</widget>
</child>
</widget>
@@ -3479,6 +3495,26 @@
</child>
<child>
+ <widget class="GtkCheckButton" id="check_indicators">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Whether to use indicators(a squiggly underline) to highlight the lines, where the compiler found a warning or an error.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Use indicators to show compile errors</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">False</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
<widget class="GtkLabel" id="label148">
<property name="visible">True</property>
<property name="label" translatable="yes"></property>
Modified: trunk/src/build.c
===================================================================
--- trunk/src/build.c 2006-06-13 15:49:19 UTC (rev 441)
+++ trunk/src/build.c 2006-06-13 19:37:21 UTC (rev 442)
@@ -15,7 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* $Id$
*/
@@ -38,6 +38,7 @@
#include "utils.h"
#include "dialogs.h"
#include "msgwindow.h"
+#include "document.h"
static GIOChannel *build_set_up_io_channel (gint fd, GIOCondition cond, GIOFunc func, gpointer data);
@@ -446,12 +447,20 @@
//GIOStatus s;
gchar *msg;
guint x = 1;
+ gint line, idx;
while (g_io_channel_read_line(ioc, &msg, NULL, NULL, NULL) && msg)
{
//if (s != G_IO_STATUS_NORMAL && s != G_IO_STATUS_EOF) break;
if (GPOINTER_TO_INT(data))
+ {
msgwin_compiler_add(COLOR_RED, FALSE, g_strstrip(msg));
+ if (app->pref_editor_use_indicators)
+ {
+ utils_parse_compiler_error_line(g_strstrip(msg), &idx, &line);
+ if (line != -1) document_set_indicator(idx, line - 1);
+ }
+ }
else
msgwin_compiler_add(COLOR_BLACK, FALSE, g_strstrip(msg));
Modified: trunk/src/callbacks.h
===================================================================
--- trunk/src/callbacks.h 2006-06-13 15:49:19 UTC (rev 441)
+++ trunk/src/callbacks.h 2006-06-13 19:37:21 UTC (rev 442)
@@ -576,3 +576,7 @@
GtkNotebookPage *page,
guint page_num,
gpointer user_data);
+
+void
+on_menu_remove_indicators1_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c 2006-06-13 15:49:19 UTC (rev 441)
+++ trunk/src/document.c 2006-06-13 19:37:21 UTC (rev 442)
@@ -39,6 +39,7 @@
#ifdef HAVE_FCNTL_H
# include <fcntl.h>
#endif
+#include <ctype.h>
#include "document.h"
#include "callbacks.h"
@@ -198,13 +199,12 @@
GtkWidget *align;
PangoFontDescription *pfd;
gchar *title, *fname;
- document this;
GtkTreeIter iter;
gint new_idx = document_get_new_idx();
-
+ document *this = &(doc_list[new_idx]);
+
title = (filename) ? g_path_get_basename(filename) : g_strdup(GEANY_STRING_UNTITLED);
- this.tab_label = gtk_label_new(title);
- //gtk_widget_show(this.tab_label);
+ this->tab_label = gtk_label_new(title);
hbox = gtk_hbox_new(FALSE, 0);
but = gtk_button_new();
@@ -216,7 +216,7 @@
gtk_container_add(GTK_CONTAINER(align), but);
gtk_button_set_relief(GTK_BUTTON(but), GTK_RELIEF_NONE);
- gtk_box_pack_start(GTK_BOX(hbox), this.tab_label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), this->tab_label, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), align, TRUE, TRUE, 0);
gtk_widget_show_all(hbox);
@@ -224,6 +224,7 @@
/* SCI - Code */
sci = SCINTILLA(scintilla_new());
scintilla_set_id(sci, new_idx);
+ this->sci = sci;
gtk_widget_show(GTK_WIDGET(sci));
@@ -247,7 +248,7 @@
sci_set_visible_eols(sci, app->pref_editor_show_line_endings);
pfd = pango_font_description_from_string(app->editor_font);
fname = g_strdup_printf("!%s", pango_font_description_get_family(pfd));
- document_set_font(sci, fname, pango_font_description_get_size(pfd) / PANGO_SCALE);
+ document_set_font(new_idx, fname, pango_font_description_get_size(pfd) / PANGO_SCALE);
pango_font_description_free(pfd);
g_free(fname);
@@ -258,26 +259,26 @@
SSM(sci, SCI_SETTWOPHASEDRAW, 0, 0);
}
- this.tabmenu_label = gtk_label_new(title);
- gtk_misc_set_alignment(GTK_MISC(this.tabmenu_label), 0.0, 0);
+ this->tabmenu_label = gtk_label_new(title);
+ gtk_misc_set_alignment(GTK_MISC(this->tabmenu_label), 0.0, 0);
if (app->tab_order_ltr)
{
gint npage;
npage = gtk_notebook_append_page_menu(GTK_NOTEBOOK(app->notebook), GTK_WIDGET(sci),
- hbox, this.tabmenu_label);
+ hbox, this->tabmenu_label);
gtk_notebook_set_current_page(GTK_NOTEBOOK(app->notebook), npage);
}
else
{
gtk_notebook_insert_page_menu(GTK_NOTEBOOK(app->notebook), GTK_WIDGET(sci), hbox,
- this.tabmenu_label, 0);
+ this->tabmenu_label, 0);
gtk_notebook_set_current_page(GTK_NOTEBOOK(app->notebook), 0);
}
iter = treeviews_openfiles_add(new_idx, title);
g_free(title);
- this.tag_store = NULL;
- this.tag_tree = NULL;
+ this->tag_store = NULL;
+ this->tag_tree = NULL;
// "the" SCI signal
g_signal_connect((GtkWidget*) sci, "sci-notify",
@@ -294,22 +295,20 @@
utils_close_buttons_toggle();
// store important pointers in the tab list
- this.file_name = (filename) ? g_strdup(filename) : NULL;
- this.sci = sci;
- this.encoding = NULL;
- this.tm_file = NULL;
- this.iter = iter;
- this.file_type = NULL;
- this.mtime = 0;
- this.changed = FALSE;
- this.last_check = time(NULL);
- this.do_overwrite = FALSE;
- this.readonly = FALSE;
- this.line_breaking = TRUE;
- this.use_auto_indention = TRUE;
- this.has_tags = FALSE;
- this.is_valid = TRUE;
- doc_list[new_idx] = this;
+ this->file_name = (filename) ? g_strdup(filename) : NULL;
+ this->encoding = NULL;
+ this->tm_file = NULL;
+ this->iter = iter;
+ this->file_type = NULL;
+ this->mtime = 0;
+ this->changed = FALSE;
+ this->last_check = time(NULL);
+ this->do_overwrite = FALSE;
+ this->readonly = FALSE;
+ this->line_breaking = TRUE;
+ this->use_auto_indention = TRUE;
+ this->has_tags = FALSE;
+ this->is_valid = TRUE;
return new_idx;
}
@@ -859,19 +858,18 @@
}
-void document_set_font(ScintillaObject *sci, const gchar *font_name, gint size)
+void document_set_font(gint idx, const gchar *font_name, gint size)
{
gint style;
for (style = 0; style <= 127; style++)
- sci_set_font(sci, style, font_name, size);
+ sci_set_font(doc_list[idx].sci, style, font_name, size);
// line number and braces
- sci_set_font(sci, STYLE_LINENUMBER, font_name, size);
- sci_set_font(sci, STYLE_BRACELIGHT, font_name, size);
- sci_set_font(sci, STYLE_BRACEBAD, font_name, size);
+ sci_set_font(doc_list[idx].sci, STYLE_LINENUMBER, font_name, size);
+ sci_set_font(doc_list[idx].sci, STYLE_BRACELIGHT, font_name, size);
+ sci_set_font(doc_list[idx].sci, STYLE_BRACEBAD, font_name, size);
// zoom to 100% to prevent confusion
- sci_zoom_off(sci);
- //sci_colourise(sci, 0, sci_get_length(sci));
+ sci_zoom_off(doc_list[idx].sci);
}
@@ -985,6 +983,7 @@
}
+/// TODO move me to filetypes.c
gchar *document_prepare_template(filetype *ft)
{
gchar *gpl_notice = NULL;
@@ -1073,3 +1072,47 @@
}
}
}
+
+
+void document_clear_indicators(gint idx)
+{
+ glong last_pos = sci_get_length(doc_list[idx].sci);
+ if (last_pos > 0)
+ {
+ sci_start_styling(doc_list[idx].sci, 0, INDIC2_MASK);
+ sci_set_styling(doc_list[idx].sci, last_pos, 0);
+ }
+}
+
+
+void document_set_indicator(gint idx, gint line)
+{
+ gint start, end, current_mask;
+ guint i = 0, len;
+ gchar *linebuf;
+
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
+
+ start = sci_get_position_from_line(doc_list[idx].sci, line);
+ end = sci_get_position_from_line(doc_list[idx].sci, line + 1);
+
+ // skip blank lines
+ if ((start + 1) == end) return;
+
+ len = end - start;
+ linebuf = g_malloc(len);
+
+ // don't set the indicator on whitespace
+ sci_get_line(doc_list[idx].sci, line, linebuf);
+ if (linebuf == NULL) return;
+
+ while (isspace(linebuf[i])) i++;
+ while (isspace(linebuf[len-1])) len--;
+ g_free(linebuf);
+
+ current_mask = sci_get_style_at(doc_list[idx].sci, start);
+ current_mask &= INDICS_MASK;
+ current_mask |= INDIC2_MASK;
+ sci_start_styling(doc_list[idx].sci, start + i, INDIC2_MASK);
+ sci_set_styling(doc_list[idx].sci, len - i, current_mask);
+}
Modified: trunk/src/document.h
===================================================================
--- trunk/src/document.h 2006-06-13 15:49:19 UTC (rev 441)
+++ trunk/src/document.h 2006-06-13 19:37:21 UTC (rev 442)
@@ -98,7 +98,7 @@
void document_find_next(gint, const gchar*, gint, gboolean, gboolean);
-void document_set_font(ScintillaObject*, const gchar*, gint);
+void document_set_font(gint, const gchar*, gint);
void document_update_tag_list(gint, gboolean);
@@ -114,4 +114,8 @@
void document_unfold_all(gint idx);
+void document_set_indicator(gint idx, gint line);
+
+void document_clear_indicators(gint idx);
+
#endif
Modified: trunk/src/geany.h
===================================================================
--- trunk/src/geany.h 2006-06-13 15:49:19 UTC (rev 441)
+++ trunk/src/geany.h 2006-06-13 19:37:21 UTC (rev 442)
@@ -139,7 +139,7 @@
// to change the default value at startup, I think
gboolean pref_editor_line_breaking;
gboolean pref_editor_use_auto_indention;
-
+ gboolean pref_editor_use_indicators;
gboolean pref_editor_show_white_space;
gboolean pref_editor_show_indent_guide;
gboolean pref_editor_show_line_endings;
Modified: trunk/src/highlighting.c
===================================================================
--- trunk/src/highlighting.c 2006-06-13 15:49:19 UTC (rev 441)
+++ trunk/src/highlighting.c 2006-06-13 19:37:21 UTC (rev 442)
@@ -211,9 +211,14 @@
SSM(sci, SCI_SETCARETLINEBACK, types[GEANY_FILETYPES_ALL]->styling[4][1], 0);
SSM(sci, SCI_SETCARETLINEVISIBLE, 1, 0);
+ // indicator settings
+ SSM(sci, SCI_INDICSETSTYLE, 2, INDIC_SQUIGGLE);
+ // why? if I let this out, the indicator remains green with PHP
+ SSM(sci, SCI_INDICSETFORE, 0, 0x0000ff);
+ SSM(sci, SCI_INDICSETFORE, 2, 0x0000ff);
+
// a darker grey for the line number margin
SSM(sci, SCI_STYLESETBACK, STYLE_LINENUMBER, 0xD0D0D0);
- //SSM(sci, SCI_STYLESETBACK, STYLE_LINENUMBER, 0xD0D0D0);
// define marker symbols
// 0 -> line marker
Modified: trunk/src/interface.c
===================================================================
--- trunk/src/interface.c 2006-06-13 15:49:19 UTC (rev 441)
+++ trunk/src/interface.c 2006-06-13 19:37:21 UTC (rev 442)
@@ -37,7 +37,7 @@
GtkWidget *menuitem1_menu;
GtkWidget *menu_new1;
GtkWidget *menu_new_with_template1;
- GtkWidget *image650;
+ GtkWidget *image674;
GtkWidget *menu_new_with_template1_menu;
GtkWidget *invisible2;
GtkWidget *separator12;
@@ -46,14 +46,14 @@
GtkWidget *menu_save1;
GtkWidget *menu_save_as1;
GtkWidget *menu_save_all1;
- GtkWidget *image651;
+ GtkWidget *image675;
GtkWidget *revert1;
GtkWidget *separator21;
GtkWidget *preferences2;
GtkWidget *separator14;
GtkWidget *menu_close1;
GtkWidget *menu_close_all1;
- GtkWidget *image652;
+ GtkWidget *image676;
GtkWidget *menu_separatormenuitem1;
GtkWidget *recent_files1;
GtkWidget *recent_files1_menu;
@@ -71,11 +71,11 @@
GtkWidget *menu_delete1;
GtkWidget *menu_seperator2;
GtkWidget *insert_include2;
- GtkWidget *image653;
+ GtkWidget *image677;
GtkWidget *insert_include2_menu;
GtkWidget *invisible4;
GtkWidget *add_comments1;
- GtkWidget *image654;
+ GtkWidget *image678;
GtkWidget *add_comments1_menu;
GtkWidget *menu_add_changelog_entry1;
GtkWidget *insert_file_header1;
@@ -96,16 +96,16 @@
GtkWidget *find_next1;
GtkWidget *find_previous1;
GtkWidget *replace1;
- GtkWidget *image655;
+ GtkWidget *image679;
GtkWidget *separator11;
GtkWidget *go_to_line1;
- GtkWidget *image656;
+ GtkWidget *image680;
GtkWidget *menuitem3;
GtkWidget *menuitem3_menu;
GtkWidget *menu_change_font1;
- GtkWidget *image657;
+ GtkWidget *image681;
GtkWidget *menu_choose_color1;
- GtkWidget *image658;
+ GtkWidget *image682;
GtkWidget *menu_separator4;
GtkWidget *menu_fullscreen1;
GtkWidget *menu_show_messages_window1;
@@ -135,6 +135,8 @@
GtkWidget *separator22;
GtkWidget *menu_fold_all1;
GtkWidget *menu_unfold_all1;
+ GtkWidget *separator23;
+ GtkWidget *menu_remove_indicators1;
GtkWidget *menu_build1;
GtkWidget *menu_item5;
GtkWidget *menu_item5_menu;
@@ -232,9 +234,9 @@
gtk_widget_show (menu_new_with_template1);
gtk_container_add (GTK_CONTAINER (menuitem1_menu), menu_new_with_template1);
- image650 = gtk_image_new_from_stock ("gtk-new", GTK_ICON_SIZE_MENU);
- gtk_widget_show (image650);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_new_with_template1), image650);
+ image674 = gtk_image_new_from_stock ("gtk-new", GTK_ICON_SIZE_MENU);
+ gtk_widget_show (image674);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_new_with_template1), image674);
menu_new_with_template1_menu = gtk_menu_new ();
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_new_with_template1), menu_new_with_template1_menu);
@@ -269,9 +271,9 @@
gtk_container_add (GTK_CONTAINER (menuitem1_menu), menu_save_all1);
gtk_tooltips_set_tip (tooltips, menu_save_all1, _("Saves all open files"), NULL);
- image651 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_MENU);
- gtk_widget_show (image651);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_save_all1), image651);
+ image675 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_MENU);
+ gtk_widget_show (image675);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_save_all1), image675);
revert1 = gtk_image_menu_item_new_from_stock ("gtk-revert-to-saved", accel_group);
gtk_widget_show (revert1);
@@ -300,9 +302,9 @@
gtk_container_add (GTK_CONTAINER (menuitem1_menu), menu_close_all1);
gtk_tooltips_set_tip (tooltips, menu_close_all1, _("Closes all open files"), NULL);
- image652 = gtk_image_new_from_stock ("gtk-close", GTK_ICON_SIZE_MENU);
- gtk_widget_show (image652);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_close_all1), image652);
+ image676 = gtk_image_new_from_stock ("gtk-close", GTK_ICON_SIZE_MENU);
+ gtk_widget_show (image676);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_close_all1), image676);
menu_separatormenuitem1 = gtk_separator_menu_item_new ();
gtk_widget_show (menu_separatormenuitem1);
@@ -374,9 +376,9 @@
gtk_widget_show (insert_include2);
gtk_container_add (GTK_CONTAINER (edit1_menu), insert_include2);
- image653 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
- gtk_widget_show (image653);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (insert_include2), image653);
+ image677 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
+ gtk_widget_show (image677);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (insert_include2), image677);
insert_include2_menu = gtk_menu_new ();
gtk_menu_item_set_submenu (GTK_MENU_ITEM (insert_include2), insert_include2_menu);
@@ -388,9 +390,9 @@
gtk_widget_show (add_comments1);
gtk_container_add (GTK_CONTAINER (edit1_menu), add_comments1);
- image654 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
- gtk_widget_show (image654);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (add_comments1), image654);
+ image678 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
+ gtk_widget_show (image678);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (add_comments1), image678);
add_comments1_menu = gtk_menu_new ();
gtk_menu_item_set_submenu (GTK_MENU_ITEM (add_comments1), add_comments1_menu);
@@ -477,9 +479,9 @@
gtk_widget_show (replace1);
gtk_container_add (GTK_CONTAINER (search1_menu), replace1);
- image655 = gtk_image_new_from_stock ("gtk-find-and-replace", GTK_ICON_SIZE_MENU);
- gtk_widget_show (image655);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (replace1), image655);
+ image679 = gtk_image_new_from_stock ("gtk-find-and-replace", GTK_ICON_SIZE_MENU);
+ gtk_widget_show (image679);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (replace1), image679);
separator11 = gtk_separator_menu_item_new ();
gtk_widget_show (separator11);
@@ -490,9 +492,9 @@
gtk_widget_show (go_to_line1);
gtk_container_add (GTK_CONTAINER (search1_menu), go_to_line1);
- image656 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_MENU);
- gtk_widget_show (image656);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (go_to_line1), image656);
+ image680 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_MENU);
+ gtk_widget_show (image680);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (go_to_line1), image680);
menuitem3 = gtk_menu_item_new_with_mnemonic (_("_View"));
gtk_widget_show (menuitem3);
@@ -506,18 +508,18 @@
gtk_container_add (GTK_CONTAINER (menuitem3_menu), menu_change_font1);
gtk_tooltips_set_tip (tooltips, menu_change_font1, _("Change the default font"), NULL);
- image657 = gtk_image_new_from_stock ("gtk-select-font", GTK_ICON_SIZE_MENU);
- gtk_widget_show (image657);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_change_font1), image657);
+ image681 = gtk_image_new_from_stock ("gtk-select-font", GTK_ICON_SIZE_MENU);
+ gtk_widget_show (image681);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_change_font1), image681);
menu_choose_color1 = gtk_image_menu_item_new_with_mnemonic (_("Show _Colour Chooser"));
gtk_widget_show (menu_choose_color1);
gtk_container_add (GTK_CONTAINER (menuitem3_menu), menu_choose_color1);
gtk_tooltips_set_tip (tooltips, menu_choose_color1, _("Open a color chooser dialog, to interactively pick colors from a palette."), NULL);
- image658 = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_MENU);
- gtk_widget_show (image658);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_choose_color1), image658);
+ image682 = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_MENU);
+ gtk_widget_show (image682);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_choose_color1), image682);
menu_separator4 = gtk_separator_menu_item_new ();
gtk_widget_show (menu_separator4);
@@ -651,6 +653,16 @@
gtk_container_add (GTK_CONTAINER (menu_item4_menu), menu_unfold_all1);
gtk_tooltips_set_tip (tooltips, menu_unfold_all1, _("Unfolds all contracted code blocks"), NULL);
+ separator23 = gtk_separator_menu_item_new ();
+ gtk_widget_show (separator23);
+ gtk_container_add (GTK_CONTAINER (menu_item4_menu), separator23);
+ gtk_widget_set_sensitive (separator23, FALSE);
+
+ menu_remove_indicators1 = gtk_menu_item_new_with_mnemonic (_("Remove all _indicators"));
+ gtk_widget_show (menu_remove_indicators1);
+ gtk_container_add (GTK_CONTAINER (menu_item4_menu), menu_remove_indicators1);
+ gtk_tooltips_set_tip (tooltips, menu_remove_indicators1, _("Removes all set indicators in the current document."), NULL);
+
menu_build1 = gtk_menu_item_new_with_mnemonic (_("_Build"));
gtk_widget_show (menu_build1);
gtk_container_add (GTK_CONTAINER (menubar1), menu_build1);
@@ -1094,6 +1106,9 @@
g_signal_connect ((gpointer) menu_unfold_all1, "activate",
G_CALLBACK (on_menu_unfold_all1_activate),
NULL);
+ g_signal_connect ((gpointer) menu_remove_indicators1, "activate",
+ G_CALLBACK (on_menu_remove_indicators1_activate),
+ NULL);
g_signal_connect ((gpointer) help1, "activate",
G_CALLBACK (on_help1_activate),
NULL);
@@ -1179,7 +1194,7 @@
GLADE_HOOKUP_OBJECT (window1, menuitem1_menu, "menuitem1_menu");
GLADE_HOOKUP_OBJECT (window1, menu_new1, "menu_new1");
GLADE_HOOKUP_OBJECT (window1, menu_new_with_template1, "menu_new_with_template1");
- GLADE_HOOKUP_OBJECT (window1, image650, "image650");
+ GLADE_HOOKUP_OBJECT (window1, image674, "image674");
GLADE_HOOKUP_OBJECT (window1, menu_new_with_template1_menu, "menu_new_with_template1_menu");
GLADE_HOOKUP_OBJECT (window1, invisible2, "invisible2");
GLADE_HOOKUP_OBJECT (window1, separator12, "separator12");
@@ -1188,14 +1203,14 @@
GLADE_HOOKUP_OBJECT (window1, menu_save1, "menu_save1");
GLADE_HOOKUP_OBJECT (window1, menu_save_as1, "menu_save_as1");
GLADE_HOOKUP_OBJECT (window1, menu_save_all1, "menu_save_all1");
- GLADE_HOOKUP_OBJECT (window1, image651, "image651");
+ GLADE_HOOKUP_OBJECT (window1, image675, "image675");
GLADE_HOOKUP_OBJECT (window1, revert1, "revert1");
GLADE_HOOKUP_OBJECT (window1, separator21, "separator21");
GLADE_HOOKUP_OBJECT (window1, preferences2, "preferences2");
GLADE_HOOKUP_OBJECT (window1, separator14, "separator14");
GLADE_HOOKUP_OBJECT (window1, menu_close1, "menu_close1");
GLADE_HOOKUP_OBJECT (window1, menu_close_all1, "menu_close_all1");
- GLADE_HOOKUP_OBJECT (window1, image652, "image652");
+ GLADE_HOOKUP_OBJECT (window1, image676, "image676");
GLADE_HOOKUP_OBJECT (window1, menu_separatormenuitem1, "menu_separatormenuitem1");
GLADE_HOOKUP_OBJECT (window1, recent_files1, "recent_files1");
GLADE_HOOKUP_OBJECT (window1, recent_files1_menu, "recent_files1_menu");
@@ -1213,11 +1228,11 @@
GLADE_HOOKUP_OBJECT (window1, menu_delete1, "menu_delete1");
GLADE_HOOKUP_OBJECT (window1, menu_seperator2, "menu_seperator2");
GLADE_HOOKUP_OBJECT (window1, insert_include2, "insert_include2");
- GLADE_HOOKUP_OBJECT (window1, image653, "image653");
+ GLADE_HOOKUP_OBJECT (window1, image677, "image677");
GLADE_HOOKUP_OBJECT (window1, insert_include2_menu, "insert_include2_menu");
GLADE_HOOKUP_OBJECT (window1, invisible4, "invisible4");
GLADE_HOOKUP_OBJECT (window1, add_comments1, "add_comments1");
- GLADE_HOOKUP_OBJECT (window1, image654, "image654");
+ GLADE_HOOKUP_OBJECT (window1, image678, "image678");
GLADE_HOOKUP_OBJECT (window1, add_comments1_menu, "add_comments1_menu");
GLADE_HOOKUP_OBJECT (window1, menu_add_changelog_entry1, "menu_add_changelog_entry1");
GLADE_HOOKUP_OBJECT (window1, insert_file_header1, "insert_file_header1");
@@ -1238,16 +1253,16 @@
GLADE_HOOKUP_OBJECT (window1, find_next1, "find_next1");
GLADE_HOOKUP_OBJECT (window1, find_previous1, "find_previous1");
GLADE_HOOKUP_OBJECT (window1, replace1, "replace1");
- GLADE_HOOKUP_OBJECT (window1, image655, "image655");
+ GLADE_HOOKUP_OBJECT (window1, image679, "image679");
GLADE_HOOKUP_OBJECT (window1, separator11, "separator11");
GLADE_HOOKUP_OBJECT (window1, go_to_line1, "go_to_line1");
- GLADE_HOOKUP_OBJECT (window1, image656, "image656");
+ GLADE_HOOKUP_OBJECT (window1, image680, "image680");
GLADE_HOOKUP_OBJECT (window1, menuitem3, "menuitem3");
GLADE_HOOKUP_OBJECT (window1, menuitem3_menu, "menuitem3_menu");
GLADE_HOOKUP_OBJECT (window1, menu_change_font1, "menu_change_font1");
- GLADE_HOOKUP_OBJECT (window1, image657, "image657");
+ GLADE_HOOKUP_OBJECT (window1, image681, "image681");
GLADE_HOOKUP_OBJECT (window1, menu_choose_color1, "menu_choose_color1");
- GLADE_HOOKUP_OBJECT (window1, image658, "image658");
+ GLADE_HOOKUP_OBJECT (window1, image682, "image682");
GLADE_HOOKUP_OBJECT (window1, menu_separator4, "menu_separator4");
GLADE_HOOKUP_OBJECT (window1, menu_fullscreen1, "menu_fullscreen1");
GLADE_HOOKUP_OBJECT (window1, menu_show_messages_window1, "menu_show_messages_window1");
@@ -1277,6 +1292,8 @@
GLADE_HOOKUP_OBJECT (window1, separator22, "separator22");
GLADE_HOOKUP_OBJECT (window1, menu_fold_all1, "menu_fold_all1");
GLADE_HOOKUP_OBJECT (window1, menu_unfold_all1, "menu_unfold_all1");
+ GLADE_HOOKUP_OBJECT (window1, separator23, "separator23");
+ GLADE_HOOKUP_OBJECT (window1, menu_remove_indicators1, "menu_remove_indicators1");
GLADE_HOOKUP_OBJECT (window1, menu_build1, "menu_build1");
GLADE_HOOKUP_OBJECT (window1, menu_item5, "menu_item5");
GLADE_HOOKUP_OBJECT (window1, menu_item5_menu, "menu_item5_menu");
@@ -1829,6 +1846,7 @@
GtkWidget *check_xmltag;
GtkWidget *check_auto_complete;
GtkWidget *check_folding;
+ GtkWidget *check_indicators;
GtkWidget *label148;
GtkWidget *table3;
GtkWidget *label103;
@@ -2268,6 +2286,12 @@
gtk_tooltips_set_tip (tooltips, check_folding, _("Whether to enable folding the code"), NULL);
gtk_button_set_focus_on_click (GTK_BUTTON (check_folding), FALSE);
+ check_indicators = gtk_check_button_new_with_mnemonic (_("Use indicators to show compile errors"));
+ gtk_widget_show (check_indicators);
+ gtk_box_pack_start (GTK_BOX (vbox12), check_indicators, FALSE, FALSE, 0);
+ gtk_tooltips_set_tip (tooltips, check_indicators, _("Whether to use indicators(a squiggly underline) to highlight the lines, where the compiler found a warning or an error."), NULL);
+ gtk_button_set_focus_on_click (GTK_BUTTON (check_indicators), FALSE);
+
label148 = gtk_label_new ("");
gtk_widget_show (label148);
gtk_box_pack_start (GTK_BOX (vbox12), label148, FALSE, FALSE, 0);
@@ -2636,6 +2660,7 @@
GLADE_HOOKUP_OBJECT (prefs_dialog, check_xmltag, "check_xmltag");
GLADE_HOOKUP_OBJECT (prefs_dialog, check_auto_complete, "check_auto_complete");
GLADE_HOOKUP_OBJECT (prefs_dialog, check_folding, "check_folding");
+ GLADE_HOOKUP_OBJECT (prefs_dialog, check_indicators, "check_indicators");
GLADE_HOOKUP_OBJECT (prefs_dialog, label148, "label148");
GLADE_HOOKUP_OBJECT (prefs_dialog, table3, "table3");
GLADE_HOOKUP_OBJECT (prefs_dialog, label103, "label103");
Modified: trunk/src/keyfile.c
===================================================================
--- trunk/src/keyfile.c 2006-06-13 15:49:19 UTC (rev 441)
+++ trunk/src/keyfile.c 2006-06-13 19:37:21 UTC (rev 442)
@@ -86,6 +86,7 @@
g_key_file_set_boolean(config, PACKAGE, "msgwindow_visible", app->msgwindow_visible);
g_key_file_set_boolean(config, PACKAGE, "use_folding", app->pref_editor_folding);
g_key_file_set_boolean(config, PACKAGE, "use_auto_indention", app->pref_editor_use_auto_indention);
+ g_key_file_set_boolean(config, PACKAGE, "use_indicators", app->pref_editor_use_indicators);
g_key_file_set_boolean(config, PACKAGE, "show_indent_guide", app->pref_editor_show_indent_guide);
g_key_file_set_boolean(config, PACKAGE, "show_white_space", app->pref_editor_show_white_space);
g_key_file_set_boolean(config, PACKAGE, "show_markers_margin", app->show_markers_margin);
@@ -209,6 +210,7 @@
app->treeview_openfiles_visible = utils_get_setting_boolean(config, PACKAGE, "treeview_openfiles_visible", TRUE);
app->msgwindow_visible = utils_get_setting_boolean(config, PACKAGE, "msgwindow_visible", TRUE);
app->pref_editor_folding = utils_get_setting_boolean(config, PACKAGE, "use_folding", TRUE);
+ app->pref_editor_use_indicators = utils_get_setting_boolean(config, PACKAGE, "use_indicators", TRUE);
app->pref_editor_use_auto_indention = utils_get_setting_boolean(config, PACKAGE, "use_auto_indention", TRUE);
app->pref_editor_show_indent_guide = utils_get_setting_boolean(config, PACKAGE, "show_indent_guide", FALSE);
app->pref_editor_show_white_space = utils_get_setting_boolean(config, PACKAGE, "show_white_space", FALSE);
Modified: trunk/src/prefs.c
===================================================================
--- trunk/src/prefs.c 2006-06-13 15:49:19 UTC (rev 441)
+++ trunk/src/prefs.c 2006-06-13 19:37:21 UTC (rev 442)
@@ -137,6 +137,9 @@
widget = lookup_widget(app->prefs_dialog, "check_folding");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_editor_folding);
+ widget = lookup_widget(app->prefs_dialog, "check_indicators");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), app->pref_editor_use_indicators);
+
widget = lookup_widget(app->prefs_dialog, "editor_font");
gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget), app->editor_font);
@@ -346,7 +349,10 @@
widget = lookup_widget(app->prefs_dialog, "check_auto_complete");
app->pref_editor_auto_complete_constructs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+ widget = lookup_widget(app->prefs_dialog, "check_indicators");
+ app->pref_editor_use_indicators = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+
// Tools Settings
widget = lookup_widget(app->prefs_dialog, "entry_com_make");
g_free(app->build_make_cmd);
Modified: trunk/src/sciwrappers.c
===================================================================
--- trunk/src/sciwrappers.c 2006-06-13 15:49:19 UTC (rev 441)
+++ trunk/src/sciwrappers.c 2006-06-13 19:37:21 UTC (rev 442)
@@ -15,7 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* $Id$
*/
@@ -795,3 +795,13 @@
return SSM(sci, SCI_LINEFROMPOSITION, end, 0) - SSM(sci, SCI_LINEFROMPOSITION, start, 0) + 1;
}
+
+void sci_set_styling(ScintillaObject *sci, gint len, gint style)
+{
+ SSM(sci, SCI_SETSTYLING, len, style);
+}
+
+void sci_start_styling(ScintillaObject *sci, gint pos, gint mask)
+{
+ SSM(sci, SCI_STARTSTYLING, pos, mask);
+}
Modified: trunk/src/sciwrappers.h
===================================================================
--- trunk/src/sciwrappers.h 2006-06-13 15:49:19 UTC (rev 441)
+++ trunk/src/sciwrappers.h 2006-06-13 19:37:21 UTC (rev 442)
@@ -15,7 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* $Id$
*/
@@ -146,5 +146,8 @@
void sci_cmd (ScintillaObject * sci, gint cmd);
gint sci_get_current_line (ScintillaObject * sci, gint pos);
gint sci_get_lines_selected (ScintillaObject * sci);
+void sci_set_styling (ScintillaObject * sci, gint len, gint style);
+void sci_start_styling (ScintillaObject * sci, gint pos, gint mask);
+
#endif
Modified: trunk/src/utils.c
===================================================================
--- trunk/src/utils.c 2006-06-13 15:49:19 UTC (rev 441)
+++ trunk/src/utils.c 2006-06-13 19:37:21 UTC (rev 442)
@@ -352,7 +352,7 @@
{
if (doc_list[i].sci)
{
- document_set_font(doc_list[i].sci, fname, size);
+ document_set_font(i, fname, size);
}
}
pango_font_description_free(font_desc);
@@ -2285,13 +2285,12 @@
*/
-/* try to parse the file and line number where the error occured described in string
- * and when something useful is found, it jumps to file and scrolls to the line */
-void utils_parse_compiler_error_line(const gchar *string)
+/* try to parse the file and line number where the error occured described in line
+ * and when something useful is found, it stores the line number in *line and the index of
+ * the file in *idx_of_error_file. */
+void utils_parse_compiler_error_line(const gchar *string, gint *idx_of_error_file, gint *line)
{
gint idx = document_get_cur_idx();
- gint idx_of_error_file;
- gint line = -1;
gchar *end = NULL;
gchar *path;
gchar *filename;
@@ -2301,7 +2300,9 @@
guint field_idx_line; // idx of the field where the line is
guint field_idx_file; // idx of the field where the filename is
-
+ *line = -1;
+ *idx_of_error_file = -1;
+
if (string == NULL || ! doc_list[app->cur_idx].is_valid ||
doc_list[app->cur_idx].file_type == NULL)
return;
@@ -2374,7 +2375,7 @@
return;
}
- line = strtol(fields[field_idx_line], &end, 10);
+ *line = strtol(fields[field_idx_line], &end, 10);
// if the line could not be read, line is 0 and an error occurred, so we leave
if (fields[field_idx_line] == end)
@@ -2388,23 +2389,17 @@
filename = g_strconcat(path, G_DIR_SEPARATOR_S, fields[field_idx_file], NULL);
// use document_open_file to find an already opened file, or to open it in place
- idx_of_error_file = document_open_file(-1, filename, 0, FALSE, NULL);
+ *idx_of_error_file = document_open_file(-1, filename, 0, FALSE, NULL);
g_free(path);
g_free(filename);
- g_strfreev(fields);
- if (idx_of_error_file == -1 || ! doc_list[idx_of_error_file].is_valid || line == -1)
+ if (*idx_of_error_file != -1 && doc_list[*idx_of_error_file].is_valid &&
+ *line == -1 && idx != *idx_of_error_file)
{
- return;
- }
-
- // finally jump to the line (and file)
- if (idx != idx_of_error_file)
- {
gtk_notebook_set_current_page(GTK_NOTEBOOK(app->notebook),
- gtk_notebook_page_num(GTK_NOTEBOOK(app->notebook),
- GTK_WIDGET(doc_list[idx_of_error_file].sci)));
+ gtk_notebook_page_num(GTK_NOTEBOOK(app->notebook),
+ GTK_WIDGET(doc_list[*idx_of_error_file].sci)));
}
- utils_goto_line(idx_of_error_file, line);
+ g_strfreev(fields);
}
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