[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pspp-cvs] pspp/src/ui/gui psppire.c syntax-editor.c synta...
From: |
John Darrington |
Subject: |
[Pspp-cvs] pspp/src/ui/gui psppire.c syntax-editor.c synta... |
Date: |
Sat, 23 Dec 2006 23:05:59 +0000 |
CVSROOT: /sources/pspp
Module name: pspp
Changes by: John Darrington <jmd> 06/12/23 23:05:59
Modified files:
src/ui/gui : psppire.c syntax-editor.c syntax-editor.glade
syntax-editor.h
Log message:
Enabled remaining items in syntax editor's Run menu.
Removed global variable 'the_lexer'.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pspp/src/ui/gui/psppire.c?cvsroot=pspp&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/pspp/src/ui/gui/syntax-editor.c?cvsroot=pspp&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pspp/src/ui/gui/syntax-editor.glade?cvsroot=pspp&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/pspp/src/ui/gui/syntax-editor.h?cvsroot=pspp&r1=1.2&r2=1.3
Patches:
Index: psppire.c
===================================================================
RCS file: /sources/pspp/pspp/src/ui/gui/psppire.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- psppire.c 23 Dec 2006 09:03:45 -0000 1.26
+++ psppire.c 23 Dec 2006 23:05:59 -0000 1.27
@@ -78,7 +78,6 @@
void create_icon_factory (void);
struct source_stream *the_source_stream ;
-struct lexer *the_lexer;
struct dataset * the_dataset = NULL;
@@ -130,8 +129,6 @@
fn_getenv_default ("STAT_INCLUDE_PATH", include_path)
);
- the_lexer = lex_create (the_source_stream);
-
the_dataset = create_dataset (factory);
message_dialog_init (the_source_stream);
Index: syntax-editor.c
===================================================================
RCS file: /sources/pspp/pspp/src/ui/gui/syntax-editor.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- syntax-editor.c 23 Dec 2006 09:03:45 -0000 1.5
+++ syntax-editor.c 23 Dec 2006 23:05:59 -0000 1.6
@@ -33,13 +33,13 @@
#include "window-manager.h"
+#include <language/lexer/lexer.h>
#include <language/command.h>
#include <data/procedure.h>
#include "syntax-editor.h"
#include "syntax-editor-source.h"
extern struct source_stream *the_source_stream ;
-extern struct lexer *the_lexer;
extern struct dataset *the_dataset;
static gboolean save_editor_to_file (struct syntax_editor *se,
@@ -196,19 +196,14 @@
}
static void
-on_run_all (GtkMenuItem *menuitem, gpointer user_data)
+execute_syntax (const struct syntax_editor *se, GtkTextIter start,
+ GtkTextIter stop)
{
- GtkTextIter begin, end;
- struct syntax_editor *se = user_data;
-
- gtk_text_buffer_get_iter_at_line (se->buffer, &begin, 0);
- gtk_text_buffer_get_iter_at_line (se->buffer, &end, -1);
-
getl_append_source (the_source_stream,
- create_syntax_editor_source (se, begin, end));
+ create_syntax_editor_source (se, start, stop));
for (;;)
{
- int result = cmd_parse (the_lexer, the_dataset,
+ int result = cmd_parse (se->lexer, the_dataset,
proc_has_source (the_dataset)
? CMD_STATE_DATA : CMD_STATE_INITIAL);
@@ -217,6 +212,87 @@
}
}
+/* Parse and execute all the text in the buffer */
+static void
+on_run_all (GtkMenuItem *menuitem, gpointer user_data)
+{
+ GtkTextIter begin, end;
+ struct syntax_editor *se = user_data;
+
+ gtk_text_buffer_get_iter_at_line (se->buffer, &begin, 0);
+ gtk_text_buffer_get_iter_at_line (se->buffer, &end, -1);
+
+
+ execute_syntax (se, begin, end);
+}
+
+/* Parse and execute the currently selected text */
+static void
+on_run_selection (GtkMenuItem *menuitem, gpointer user_data)
+{
+ GtkTextIter begin, end;
+ struct syntax_editor *se = user_data;
+
+ if ( gtk_text_buffer_get_selection_bounds (se->buffer, &begin, &end) )
+ execute_syntax (se, begin, end);
+}
+
+
+/* Parse and execute the current line */
+static void
+on_run_current_line (GtkMenuItem *menuitem, gpointer user_data)
+{
+ GtkTextIter begin, end;
+ GtkTextIter here;
+ gint line;
+
+ struct syntax_editor *se = user_data;
+
+ /* Get the current line */
+ gtk_text_buffer_get_iter_at_mark (se->buffer,
+ &here,
+ gtk_text_buffer_get_insert (se->buffer)
+ );
+
+ line = gtk_text_iter_get_line (&here) ;
+
+ /* Now set begin and end to the start of this line, and start of
+ following line respectively */
+ gtk_text_buffer_get_iter_at_line (se->buffer, &begin, line);
+ gtk_text_buffer_get_iter_at_line (se->buffer, &end, line + 1);
+
+ execute_syntax (se, begin, end);
+}
+
+
+
+/* Parse and execute the from the current line, to the end of the
+ buffer */
+static void
+on_run_to_end (GtkMenuItem *menuitem, gpointer user_data)
+{
+ GtkTextIter begin, end;
+ GtkTextIter here;
+ gint line;
+
+ struct syntax_editor *se = user_data;
+
+ /* Get the current line */
+ gtk_text_buffer_get_iter_at_mark (se->buffer,
+ &here,
+ gtk_text_buffer_get_insert (se->buffer)
+ );
+
+ line = gtk_text_iter_get_line (&here) ;
+
+ /* Now set begin and end to the start of this line, and end of buffer
+ respectively */
+ gtk_text_buffer_get_iter_at_line (se->buffer, &begin, line);
+ gtk_text_buffer_get_iter_at_line (se->buffer, &end, -1);
+
+ execute_syntax (se, begin, end);
+}
+
@@ -241,64 +317,84 @@
e->window = get_widget_assert (xml, "syntax_editor");
text_view = get_widget_assert (xml, "syntax_text_view");
se->buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(text_view));
+ se->lexer = lex_create (the_source_stream);
g_signal_connect (get_widget_assert (xml,"file_new_syntax"),
"activate",
- G_CALLBACK(new_syntax_window),
+ G_CALLBACK (new_syntax_window),
e->window);
g_signal_connect (get_widget_assert (xml,"file_open_syntax"),
"activate",
- G_CALLBACK(open_syntax_window),
+ G_CALLBACK (open_syntax_window),
e->window);
g_signal_connect (get_widget_assert (xml,"file_new_data"),
"activate",
- G_CALLBACK(new_data_window),
+ G_CALLBACK (new_data_window),
e->window);
g_signal_connect (get_widget_assert (xml,"file_open_data"),
"activate",
- G_CALLBACK(open_data_window),
+ G_CALLBACK (open_data_window),
e->window);
g_signal_connect (get_widget_assert (xml,"help_about"),
"activate",
- G_CALLBACK(about_new),
+ G_CALLBACK (about_new),
e->window);
#if 0
- g_signal_connect (get_widget_assert (xml,"file_quit"),
- "activate",
- G_CALLBACK(on_quit),
- se);
-
g_signal_connect (get_widget_assert (xml,"file_save"),
"activate",
- G_CALLBACK(on_syntax_save),
+ G_CALLBACK (on_syntax_save),
se);
g_signal_connect (get_widget_assert (xml,"file_save_as"),
"activate",
- G_CALLBACK(on_syntax_save_as),
+ G_CALLBACK (on_syntax_save_as),
se);
#endif
+ g_signal_connect (get_widget_assert (xml,"file_quit"),
+ "activate",
+ G_CALLBACK (on_quit),
+ se);
+
+
g_signal_connect (get_widget_assert (xml,"run_all"),
"activate",
- G_CALLBACK(on_run_all),
+ G_CALLBACK (on_run_all),
+ se);
+
+
+ g_signal_connect (get_widget_assert (xml,"run_selection"),
+ "activate",
+ G_CALLBACK (on_run_selection),
+ se);
+
+ g_signal_connect (get_widget_assert (xml,"run_current_line"),
+ "activate",
+ G_CALLBACK (on_run_current_line),
se);
+ g_signal_connect (get_widget_assert (xml,"run_to_end"),
+ "activate",
+ G_CALLBACK (on_run_to_end),
+ se);
+
g_object_unref (xml);
g_signal_connect (e->window, "delete-event",
- G_CALLBACK(on_delete), se);
+ G_CALLBACK (on_delete), se);
+
+
return se;
}
@@ -431,8 +527,3 @@
gtk_widget_destroy (dialog);
}
-
-
-
-
-
Index: syntax-editor.glade
===================================================================
RCS file: /sources/pspp/pspp/src/ui/gui/syntax-editor.glade,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- syntax-editor.glade 23 Dec 2006 09:03:45 -0000 1.1
+++ syntax-editor.glade 23 Dec 2006 23:05:59 -0000 1.2
@@ -201,7 +201,6 @@
<child>
<widget class="GtkMenuItem" id="run_selection">
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="label"
translatable="yes">Selection</property>
<property name="use_underline">True</property>
</widget>
@@ -210,7 +209,6 @@
<child>
<widget class="GtkMenuItem" id="run_current_line">
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="label" translatable="yes">Current
Line</property>
<property name="use_underline">True</property>
</widget>
@@ -219,7 +217,6 @@
<child>
<widget class="GtkMenuItem" id="run_to_end">
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="label" translatable="yes">To
End</property>
<property name="use_underline">True</property>
</widget>
Index: syntax-editor.h
===================================================================
RCS file: /sources/pspp/pspp/src/ui/gui/syntax-editor.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- syntax-editor.h 23 Dec 2006 09:03:45 -0000 1.2
+++ syntax-editor.h 23 Dec 2006 23:05:59 -0000 1.3
@@ -25,10 +25,13 @@
#include "window-manager.h"
+struct lexer;
+
struct syntax_editor
{
struct editor_window parent;
GtkTextBuffer *buffer; /* The buffer which contains the text */
+ struct lexer *lexer; /* Lexer to parse syntax */
};
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pspp-cvs] pspp/src/ui/gui psppire.c syntax-editor.c synta...,
John Darrington <=