From: <pa...@us...> - 2009-12-14 03:41:13
|
Revision: 836 http://osmo-pim.svn.sourceforge.net/osmo-pim/?rev=836&view=rev Author: pasp Date: 2009-12-14 03:41:05 +0000 (Mon, 14 Dec 2009) Log Message: ----------- * The current line and column of the text cursor in notes editor is now displayed Modified Paths: -------------- trunk/src/gui.h trunk/src/notes.c Modified: trunk/src/gui.h =================================================================== --- trunk/src/gui.h 2009-12-14 02:46:32 UTC (rev 835) +++ trunk/src/gui.h 2009-12-14 03:41:05 UTC (rev 836) @@ -626,6 +626,8 @@ gboolean buffer_check_modify_enable; gboolean find_hbox_visible; gboolean note_read_only; + GtkWidget *nrow_label; + GtkWidget *ncol_label; GtkWidget *find_hbox; GtkWidget *find_entry; GtkWidget *find_case_checkbutton; Modified: trunk/src/notes.c =================================================================== --- trunk/src/notes.c 2009-12-14 02:46:32 UTC (rev 835) +++ trunk/src/notes.c 2009-12-14 03:41:05 UTC (rev 836) @@ -1100,6 +1100,30 @@ /*------------------------------------------------------------------------------*/ +void +editor_cursor_move_cb (GtkTextBuffer *buffer, GtkTextIter *new_location, + GtkTextMark *mark, gpointer user_data) +{ +GtkTextIter iter; +gint row, col; +gchar tmpbuf[BUFFER_SIZE]; + + GUI *appGUI = (GUI *)user_data; + + gtk_text_buffer_get_iter_at_mark(buffer, &iter, gtk_text_buffer_get_insert(buffer)); + + row = gtk_text_iter_get_line (&iter) + 1; + sprintf(tmpbuf, "<tt>%d</tt>", row); + gtk_label_set_markup (GTK_LABEL (appGUI->nte->nrow_label), tmpbuf); + + col = gtk_text_iter_get_line_offset (&iter) + 1; + sprintf(tmpbuf, "<tt>%d</tt>", col); + gtk_label_set_markup (GTK_LABEL (appGUI->nte->ncol_label), tmpbuf); + +} + +/*------------------------------------------------------------------------------*/ + void gui_create_notes (GUI *appGUI) { @@ -1537,17 +1561,6 @@ gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (appGUI->nte->vbox_editor), hseparator, FALSE, TRUE, 4); - hbox1 = gtk_hbox_new (FALSE, 1); - gtk_widget_show (hbox1); - gtk_box_pack_start (GTK_BOX (appGUI->nte->vbox_editor), hbox1, FALSE, FALSE, 2); - - appGUI->nte->readonly_checkbutton = gtk_check_button_new_with_mnemonic (_("Read-only")); - GTK_WIDGET_UNSET_FLAGS(appGUI->nte->readonly_checkbutton, GTK_CAN_FOCUS); - gtk_widget_show (appGUI->nte->readonly_checkbutton); - gtk_box_pack_end (GTK_BOX (hbox1), appGUI->nte->readonly_checkbutton, FALSE, FALSE, 4); - g_signal_connect (GTK_TOGGLE_BUTTON(appGUI->nte->readonly_checkbutton), "toggled", - G_CALLBACK (readonly_toggle_cb), appGUI); - viewport = gtk_viewport_new (NULL, NULL); gtk_widget_show (viewport); gtk_viewport_set_shadow_type (GTK_VIEWPORT (viewport), GTK_SHADOW_IN); @@ -1570,6 +1583,7 @@ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)); appGUI->nte->buffer_check_modify_enable = FALSE; g_signal_connect (G_OBJECT (buffer), "changed", G_CALLBACK (text_buffer_modified_cb), appGUI); + g_signal_connect (G_OBJECT (buffer), "mark_set", G_CALLBACK(editor_cursor_move_cb), appGUI); gtk_text_buffer_create_tag (buffer, "bold", "weight", PANGO_WEIGHT_BOLD, NULL); g_object_set_data (G_OBJECT (gtk_ui_manager_get_widget (appGUI->nte->notes_uim_editor_widget, "/toolbar/bold")), @@ -1620,6 +1634,41 @@ G_CALLBACK(notes_spell_check_cb), appGUI); #endif /* HAVE_GTKSPELL */ + hbox1 = gtk_hbox_new (FALSE, 1); + gtk_widget_show (hbox1); + gtk_box_pack_start (GTK_BOX (appGUI->nte->vbox_editor), hbox1, FALSE, FALSE, 2); + + appGUI->nte->readonly_checkbutton = gtk_check_button_new_with_mnemonic (_("Read-only")); + GTK_WIDGET_UNSET_FLAGS(appGUI->nte->readonly_checkbutton, GTK_CAN_FOCUS); + gtk_widget_show (appGUI->nte->readonly_checkbutton); + gtk_box_pack_end (GTK_BOX (hbox1), appGUI->nte->readonly_checkbutton, FALSE, FALSE, 4); + g_signal_connect (GTK_TOGGLE_BUTTON(appGUI->nte->readonly_checkbutton), "toggled", + G_CALLBACK (readonly_toggle_cb), appGUI); + + sprintf(tmpbuf, "%s:", _("Row")); + label = gtk_label_new (tmpbuf); + gtk_widget_show (label); + gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 0); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + + sprintf(tmpbuf, "<tt>%s</tt>", "1"); + appGUI->nte->nrow_label = gtk_label_new (tmpbuf); + gtk_widget_show (appGUI->nte->nrow_label); + gtk_box_pack_start (GTK_BOX (hbox1), appGUI->nte->nrow_label, FALSE, FALSE, 8); + gtk_label_set_use_markup (GTK_LABEL (appGUI->nte->nrow_label), TRUE); + + sprintf(tmpbuf, "%s:", _("Column")); + label = gtk_label_new (tmpbuf); + gtk_widget_show (label); + gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 8); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + + sprintf(tmpbuf, "<tt>%s</tt>", "1"); + appGUI->nte->ncol_label = gtk_label_new (tmpbuf); + gtk_widget_show (appGUI->nte->ncol_label); + gtk_box_pack_start (GTK_BOX (hbox1), appGUI->nte->ncol_label, FALSE, FALSE, 0); + gtk_label_set_use_markup (GTK_LABEL (appGUI->nte->ncol_label), TRUE); + appGUI->nte->find_hbox = gtk_hbox_new (FALSE, 0); gtk_widget_show (appGUI->nte->find_hbox); gtk_box_pack_start (GTK_BOX (appGUI->nte->vbox_editor), appGUI->nte->find_hbox, FALSE, FALSE, 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |