You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(59) |
Nov
(43) |
Dec
(34) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(83) |
Feb
(10) |
Mar
(50) |
Apr
(69) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-23 10:33:07
|
Update of /cvsroot/numexp/gnumexp/src/xygraph In directory usw-pr-cvs1:/tmp/cvs-serv16432 Modified Files: Makefile.am Log Message: After generating numexp-xygraph from numexp-xygraph.in, also make it executable. Index: Makefile.am =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/xygraph/Makefile.am,v retrieving revision 1.5 retrieving revision 1.6 diff -U4 -r1.5 -r1.6 --- Makefile.am 20 Apr 2002 15:59:23 -0000 1.5 +++ Makefile.am 23 Apr 2002 09:54:28 -0000 1.6 @@ -16,9 +16,11 @@ script_dot_in=numexp-xygraph $(script_dot_in): $(script_dot_in).in - sed -e "s|\@prefix\@|$(prefix)|" $< > $@ + sed -e "s|\@prefix\@|$(prefix)|" $< > $@ && \ + chmod a+x $@ + bin_SCRIPTS = numexp-xygraph CLEANFILES += numexp-xygraph |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-23 10:29:47
|
Update of /cvsroot/numexp/gnumexp/src/console In directory usw-pr-cvs1:/tmp/cvs-serv24855 Modified Files: console-completion.c console-document.c console-entry.c console-entry.h console-view.c cst-numexp.c numexp-console.c test-console.c Log Message: console-entry.[ch]: - Rename ConsoleHistory to ConsoleEntryHistory; - Add a method to set the console syntax table; - Apply the syntax table to the text view when it changes, after a timeout. console-view.c: - use the supplied syntax table to highlight the entered text and result in the display text view, and also to be set as the console entry's systax table. console-view.c console-document.c test-console.c: - Fixed some CORBA and local reference count bugs. cst-numexp.c: - Removed setting new font size in the default style. Index: console-completion.c =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/console/console-completion.c,v retrieving revision 1.5 retrieving revision 1.6 diff -U4 -r1.5 -r1.6 --- console-completion.c 10 Jan 2002 10:31:59 -0000 1.5 +++ console-completion.c 23 Apr 2002 10:29:42 -0000 1.6 @@ -41,19 +41,21 @@ *cc = console_completion_full_complete(self, last, &ns_prefix, &prefix); /* FIXME: MAKE THIS CODE CLEANER!!! AND MAYBE QUICKER*/ if (ns_prefix && prefix) { - asprintf(&full_prefix, "%s%s", ns_prefix, prefix); + full_prefix = g_strdup_printf("%s%s", ns_prefix, prefix); g_free(ns_prefix); g_free(prefix); } else { if (prefix) { - asprintf(&full_prefix, "%s", prefix); - g_free(prefix); +/* asprintf(&full_prefix, "%s", prefix); */ +/* g_free(prefix); */ + full_prefix = prefix; prefix = NULL; } if (ns_prefix) { - asprintf(&full_prefix, "%s", ns_prefix); - g_free(ns_prefix); +/* asprintf(&full_prefix, "%s", ns_prefix); */ +/* g_free(ns_prefix); */ + full_prefix = ns_prefix; ns_prefix = NULL; } } if (full_prefix) { Index: console-document.c =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/console/console-document.c,v retrieving revision 1.3 retrieving revision 1.4 diff -U4 -r1.3 -r1.4 --- console-document.c 16 Dec 2001 21:21:07 -0000 1.3 +++ console-document.c 23 Apr 2002 10:29:43 -0000 1.4 @@ -48,17 +48,13 @@ ConsoleDocument *console_document_new(Numexp_Kernel kernel) { - CORBA_Environment ev; ConsoleDocument *self; GTypeInstance *instance = g_type_create_instance(console_document_get_type()); self = CONSOLE_DOCUMENT(instance); - CORBA_exception_init(&ev); - Numexp_Kernel_ref(kernel, &ev); - CORBA_exception_free(&ev); - self->kernel = kernel; + self->kernel = bonobo_object_dup_ref(kernel, NULL); return self; } @@ -86,18 +82,16 @@ static void console_document_shutdown(GObject *object) { - CORBA_Environment ev; ConsoleDocument *self = CONSOLE_DOCUMENT(object); g_message(__FUNCTION__); - if (self->kernel != CORBA_OBJECT_NIL) { - CORBA_exception_init(&ev); - Numexp_Kernel_unref(self->kernel, &ev); - CORBA_exception_free(&ev); - } - self->kernel = CORBA_OBJECT_NIL; + + if (self->kernel != CORBA_OBJECT_NIL) + self->kernel = bonobo_object_release_unref(self->kernel, NULL); + g_object_unref(self->var_tree_model); + if (G_OBJECT_CLASS(parent_class)->finalize) G_OBJECT_CLASS(parent_class)->finalize(object); } Index: console-entry.c =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/console/console-entry.c,v retrieving revision 1.12 retrieving revision 1.13 diff -U4 -r1.12 -r1.13 --- console-entry.c 13 Jan 2002 14:24:54 -0000 1.12 +++ console-entry.c 23 Apr 2002 10:29:43 -0000 1.13 @@ -5,12 +5,14 @@ #include <gdk/gdkkeysyms.h> #define HISTORY_SIZE 100 #define HISTORY_FILE "/tmp/gnumexp.history" /* FIXME: this should be ~/.gnumexp_history */ +#define CST_TIMEOUT 500 /* time to wait after the text buffer + * changes before applying the cst + * engine */ - -struct _ConsoleHistory +struct _ConsoleEntryHistory { gboolean keep_dups; guint max_size, cur_size; GList *data; @@ -18,8 +20,18 @@ gboolean last_op_was_an_add; }; +typedef struct _ConsoleEntryBinding ConsoleEntryBinding; + +struct _ConsoleEntryBinding { + guint keyval, state; + gpointer user_data; + ConsoleEntryBindingFunc func; +}; + + + /** some tunable parameters that control the size of the 'Enter' button **/ gboolean console_entry_enable_icon_scaling = 1; GdkInterpType console_entry_icon_scaling_mode = GDK_INTERP_HYPER; @@ -42,42 +54,46 @@ static guint signals[LAST_SIGNAL] = { 0 }; static gpointer parent_class = NULL; -static void console_entry_init (ConsoleEntry *instance, - gpointer g_class); -static void console_entry_class_base_init (ConsoleEntryClass *class); -static void console_entry_class_init (ConsoleEntryClass *class, - gpointer data); -static gint console_entry_text_entered (ConsoleEntry *self, - gchar *text); -static void text_view_activate (GtkWidget *wid, - ConsoleEntry *self); -static gint entry_activate (GtkWidget *wid, - ConsoleEntry *self); -static void console_entry_shutdown (GObject *object); -static gint text_view_key_press (GtkWidget *wid, - GdkEventKey *event, - ConsoleEntry *self); -static void console_entry_toggle_expanded (gpointer foo, - ConsoleEntry *self); +static void console_entry_init (ConsoleEntry *instance, + gpointer g_class); +static void console_entry_class_base_init (ConsoleEntryClass *class); +static void console_entry_class_init (ConsoleEntryClass *class, + gpointer data); +static gint console_entry_text_entered (ConsoleEntry *self, + gchar *text); +static void text_view_activate (GtkWidget *wid, + ConsoleEntry *self); +static gint entry_activate (GtkWidget *wid, + ConsoleEntry *self); +static void console_entry_shutdown (GObject *object); +static gint text_view_key_press (GtkWidget *wid, + GdkEventKey *event, + ConsoleEntry *self); +static void console_entry_toggle_expanded (gpointer foo, + ConsoleEntry *self); + /* History */ -static ConsoleHistory* console_entry_history_new (guint size, - gboolean keep_dups); -static void console_entry_history_destroy (ConsoleHistory *self); -static ConsoleHistory* console_entry_history_add (ConsoleHistory *self, - const char *line); -static ConsoleHistory* console_entry_history_resize (ConsoleHistory *self, - guint new_size); -static const char* console_entry_history_previous (ConsoleHistory *self); -static const char* console_entry_history_next (ConsoleHistory *self); +static ConsoleEntryHistory* console_entry_history_new (guint size, + gboolean keep_dups); +static void console_entry_history_destroy (ConsoleEntryHistory *self); +static ConsoleEntryHistory* console_entry_history_add (ConsoleEntryHistory *self, + const char *line); +static ConsoleEntryHistory* console_entry_history_resize (ConsoleEntryHistory *self, + guint new_size); +static const char* console_entry_history_previous (ConsoleEntryHistory *self); +static const char* console_entry_history_next (ConsoleEntryHistory *self); + /* NOTE: this will overwrite the file! */ -static gboolean console_entry_history_save (ConsoleHistory *self, - const char *filename); -static ConsoleHistory* console_entry_history_load (const char *filename); +static gboolean console_entry_history_save (ConsoleEntryHistory *self, + const char *filename); +static ConsoleEntryHistory* console_entry_history_load (const char *filename); +static void text_view_changed (GtkTextView *text_view, + ConsoleEntry *entry); @@ -149,13 +165,10 @@ instance = g_type_create_instance(console_entry_get_type()); self = CONSOLE_ENTRY(instance); - if (syntax_table) { - cst_syntax_table_ref(syntax_table); - self->syntax_table = syntax_table; - cst_install_tags(syntax_table, gtk_text_view_get_buffer(GTK_TEXT_VIEW(self->text_view))); - } + console_entry_set_syntax_table(self, syntax_table); + return GTK_WIDGET(self); } @@ -226,8 +239,10 @@ GtkIconSet *icon_set; GtkSizeGroup *size_group; /* GtkObject *adjustment; */ + self->syntax_table = NULL; + self->cst_timeout_id = 0; /* console history */ self->history = console_entry_history_load(HISTORY_FILE); if (!self->history) self->history = console_entry_history_new(HISTORY_SIZE, FALSE); @@ -241,8 +256,10 @@ /* Text view */ self->text_view = gtk_text_view_new(); gtk_signal_connect(GTK_OBJECT(self->text_view), "key-press-event", GTK_SIGNAL_FUNC(text_view_key_press), self); + g_signal_connect(gtk_text_view_get_buffer(GTK_TEXT_VIEW(self->text_view)), "changed", + G_CALLBACK(text_view_changed), self); /* adjustment = gtk_adjustment_new(0, 0, 1, .1, .1, .1); */ /* self->scrollbar = gtk_vscrollbar_new(GTK_ADJUSTMENT(adjustment)); */ /* sw = gtk_scrolled_window_new(NULL, GTK_ADJUSTMENT(adjustment)); */ sw = gtk_scrolled_window_new(NULL, NULL); @@ -358,9 +375,8 @@ g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, expand_toggled_types); gtk_rc_parse_string( "style \"console_entry\" {\n" -/* " text[NORMAL] = \"#6ba5e7\"\n" /\* testing *\/ */ " font_name = \"monospace\"\n" "}\n" "widget_class \"*.ConsoleEntry.*.GtkEntry\" style \"console_entry\"\n" "widget_class \"*.ConsoleEntry.*.GtkTextView\" style \"console_entry\"\n" @@ -483,8 +499,14 @@ if (!console_entry_history_save(self->history, HISTORY_FILE)) { g_warning("error saving history file"); } + if (self->cst_timeout_id) + gtk_timeout_remove(self->cst_timeout_id); + + if (self->syntax_table) + cst_syntax_table_unref(self->syntax_table); + if (G_OBJECT_CLASS(parent_class)->finalize) G_OBJECT_CLASS(parent_class)->finalize(object); } @@ -597,18 +619,18 @@ } } /* NOT TESTED YET */ -static void console_entry_history_destroy(ConsoleHistory *self) +static void console_entry_history_destroy(ConsoleEntryHistory *self) { GList *list; for(list = self->data; list; list = g_list_next(list)) g_free(list->data); g_list_free(list); } /* NOT TESTED YET */ -static ConsoleHistory* console_entry_history_resize(ConsoleHistory *self, guint new_size) +static ConsoleEntryHistory* console_entry_history_resize(ConsoleEntryHistory *self, guint new_size) { if (self->max_size <= new_size) { self->max_size = new_size; @@ -646,15 +668,15 @@ g_string_free(str, FALSE); return s; } -static ConsoleHistory* console_entry_history_load(const char* filename) +static ConsoleEntryHistory* console_entry_history_load(const char* filename) { FILE *fname; char *buffer, *expanded; int keep_dups, max_size, log; - ConsoleHistory* chistory; + ConsoleEntryHistory* chistory; fname = fopen(filename, "rt"); if (!fname) return NULL; @@ -672,9 +694,9 @@ return chistory; } -static gboolean console_entry_history_save(ConsoleHistory* self, const char* filename) +static gboolean console_entry_history_save(ConsoleEntryHistory* self, const char* filename) { FILE* fname; char* tmp; GList* l; @@ -692,9 +714,9 @@ fclose(fname); return TRUE; } -static const char* console_entry_history_next(ConsoleHistory* self) +static const char* console_entry_history_next(ConsoleEntryHistory* self) { const char* line; if (self->current) { self->current = g_list_next(self->current)?g_list_next(self->current):self->current; @@ -704,9 +726,9 @@ return NULL; } } -static const char* console_entry_history_previous(ConsoleHistory* self) +static const char* console_entry_history_previous(ConsoleEntryHistory* self) { const char* line; if (self->current) { @@ -722,9 +744,9 @@ return NULL; } } -static ConsoleHistory* console_entry_history_add(ConsoleHistory* self, const char* line) +static ConsoleEntryHistory* console_entry_history_add(ConsoleEntryHistory* self, const char* line) { if (self->cur_size == self->max_size) { self->data = g_list_remove(self->data, g_list_first(self->data)->data); self->cur_size--; @@ -749,12 +771,12 @@ return self; } -static ConsoleHistory* console_entry_history_new(guint size, gboolean keep_dups) +static ConsoleEntryHistory* console_entry_history_new(guint size, gboolean keep_dups) { - ConsoleHistory* self; - self = g_new0(ConsoleHistory, 1); + ConsoleEntryHistory* self; + self = g_new0(ConsoleEntryHistory, 1); self->last_op_was_an_add = FALSE; self->keep_dups = keep_dups; self->max_size = size; @@ -763,4 +785,54 @@ self->cur_size = 0; return self; } + + + +/** + * console_entry_set_syntax_table: + * @entry: a #ConsoleEntry instance + * @syntax_table: a pointer to a #CSTSyntaxTable; ownership is not + * taken by this function, only a reference is kept + * + * Sets a syntax highlighting engine to be used in the expanded mode. + **/ +void console_entry_set_syntax_table(ConsoleEntry *entry, CSTSyntaxTable *syntax_table) +{ + if (entry->syntax_table) + cst_syntax_table_unref(entry->syntax_table); + entry->syntax_table = syntax_table; + if (syntax_table) { + cst_syntax_table_ref(syntax_table); + cst_install_tags(syntax_table, gtk_text_view_get_buffer(GTK_TEXT_VIEW(entry->text_view))); + } +} + + +static gboolean text_view_changed_timeout(gpointer data) +{ + ConsoleEntry *self = CONSOLE_ENTRY(data); + GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(self->text_view)); + GtkTextIter start, end; + g_message(__FUNCTION__); + /* this function will return FALSE in any case and the timeout + * will be removed, so we should set cst_timeout_id to zero */ + self->cst_timeout_id = 0; + if (!self->syntax_table) + return FALSE; + gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(buffer), &start, &end); + cst_fontify_region(self->syntax_table, &start, &end, 0); + return FALSE; +} + + + +static void text_view_changed(GtkTextView *text_view, ConsoleEntry *self) +{ + if (self->cst_timeout_id) + gtk_timeout_remove(self->cst_timeout_id); + self->cst_timeout_id = + gtk_timeout_add(CST_TIMEOUT, text_view_changed_timeout, self); +} + + Index: console-entry.h =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/console/console-entry.h,v retrieving revision 1.11 retrieving revision 1.12 diff -U4 -r1.11 -r1.12 --- console-entry.h 13 Jan 2002 14:24:54 -0000 1.11 +++ console-entry.h 23 Apr 2002 10:29:43 -0000 1.12 @@ -21,25 +21,25 @@ #define CONSOLE_ENTRY_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class)) #define CONSOLE_ENTRY_CLASS_NAME(class) (g_type_name (CONSOLE_ENTRY_CLASS_TYPE (class))) -typedef struct _ConsoleHistory ConsoleHistory; -typedef struct _ConsoleEntry ConsoleEntry; -typedef struct _ConsoleEntryClass ConsoleEntryClass; +typedef struct _ConsoleEntryHistory ConsoleEntryHistory; +typedef struct _ConsoleEntry ConsoleEntry; +typedef struct _ConsoleEntryClass ConsoleEntryClass; struct _ConsoleEntry { - GtkHBox base; - GtkWidget *text_view, *text_view_frame; - GtkWidget *entry; - GtkWidget *arrow; - GtkWidget *enter_button; - CSTSyntaxTable *syntax_table; - gboolean expanded:1; - ConsoleHistory *history; - - GList* bindings; + GtkHBox base; + GtkWidget *text_view, *text_view_frame; + GtkWidget *entry; + GtkWidget *arrow; + GtkWidget *enter_button; + CSTSyntaxTable *syntax_table; + gboolean expanded:1; + ConsoleEntryHistory *history; + GList* bindings; /* list of key bindings */ + guint cst_timeout_id; }; struct _ConsoleEntryClass @@ -56,17 +56,8 @@ typedef gboolean (*ConsoleEntryBindingFunc) (ConsoleEntry *entry, guint keyval, guint state, gpointer user_data); -typedef struct _ConsoleEntryBinding ConsoleEntryBinding; - -struct _ConsoleEntryBinding { - guint keyval, state; - gpointer user_data; - ConsoleEntryBindingFunc func; -}; - - char* console_entry_get_text (ConsoleEntry *self); guint console_entry_get_cursor_position (ConsoleEntry *self); @@ -82,8 +73,10 @@ guint keyval, guint state, ConsoleEntryBindingFunc func, gpointer user_data); +void console_entry_set_syntax_table (ConsoleEntry *entry, + CSTSyntaxTable *syntax_table); G_END_DECLS Index: console-view.c =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/console/console-view.c,v retrieving revision 1.15 retrieving revision 1.16 diff -U4 -r1.15 -r1.16 --- console-view.c 25 Mar 2002 09:00:26 -0000 1.15 +++ console-view.c 23 Apr 2002 10:29:43 -0000 1.16 @@ -51,8 +51,11 @@ static gboolean console_tab_handler (ConsoleEntry *entry, guint keyval, guint state, gpointer user_data); +static gint console_view_get_width (ConsoleView *self, + GtkTextTag *tag); + static GTypeInfo typeinfo = @@ -107,14 +110,19 @@ /* create text_view */ self->text_view = gtk_text_view_new_with_buffer(doc->textbuf); gtk_widget_show(self->text_view); - + if (syntax_table) { + cst_syntax_table_ref(syntax_table); + self->syntax_table = syntax_table; + cst_install_tags(syntax_table, gtk_text_view_get_buffer(GTK_TEXT_VIEW(self->text_view))); + } /* create the editor */ self->editor = console_entry_new(NULL); console_entry_bind_key(CONSOLE_ENTRY(self->editor), GDK_Tab, 0, console_tab_handler, self); + console_entry_set_syntax_table(CONSOLE_ENTRY(self->editor), syntax_table); gtk_signal_connect(GTK_OBJECT(self->editor), "text_entered", GTK_SIGNAL_FUNC(console_entry_text_entered), self); @@ -297,41 +305,8 @@ } -static gint editor_changed(GtkWidget *wid, ConsoleView *self) -{ - GtkTextIter start, end; - if (!self->syntax_table) - return FALSE; - gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(wid), &start, &end); - cst_fontify_region(self->syntax_table, &start, &end, 0); - return FALSE; -} - - -#if 0 -static gint key_press(GtkWidget *wid, GdkEventKey *event, ConsoleView *self) -{ - g_return_val_if_fail(IS_CONSOLE_VIEW(self), FALSE); - if (event->keyval == GDK_Return && event->state&GDK_CONTROL_MASK) - { - GtkTextBuffer *textbuf; - GtkTextIter start, end; - gchar *text; - //g_message("activate!"); - textbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(self->editor)); - gtk_text_buffer_get_bounds(textbuf, &start, &end); - text = gtk_text_buffer_get_text(textbuf, &start, &end, TRUE); - gtk_text_buffer_delete(textbuf, &start, &end); - console_view_text_entered(self, text); - return TRUE; - } - return FALSE; -} -#endif - - static void console_view_init2(ConsoleView *self) { GtkWidget *wid, *sw; @@ -478,11 +453,19 @@ static void console_view_shutdown(GObject *object) { ConsoleView *self = CONSOLE_VIEW(object); + CORBA_Environment ev; + + if (self->syntax_table) + cst_syntax_table_unref(self->syntax_table); + + CORBA_exception_init(&ev); + Numexp_Kernel_setClient(self->client->kernel, CORBA_OBJECT_NIL, &ev); + CORBA_exception_free(&ev); + bonobo_object_unref(self->client); g_object_unref(self->doc); - g_object_unref(self->client); if (G_OBJECT_CLASS(parent_class)->finalize) G_OBJECT_CLASS(parent_class)->finalize(object); } @@ -584,15 +567,14 @@ return TRUE; } -gint console_view_get_width(ConsoleView *self, GtkTextTag *tag) +static gint console_view_get_width(ConsoleView *self, GtkTextTag *tag) { PangoFontDescription *fdesc; PangoFontMetrics *metrics; PangoContext *context; GtkWidget *widget; - GValue *value; int char_width; int width_in_chars; return 0; Index: cst-numexp.c =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/console/cst-numexp.c,v retrieving revision 1.2 retrieving revision 1.3 diff -U4 -r1.2 -r1.3 --- cst-numexp.c 19 Dec 2001 08:28:49 -0000 1.2 +++ cst-numexp.c 23 Apr 2002 10:29:43 -0000 1.3 @@ -18,9 +18,9 @@ CSTSyntaxElement *elem; /* default style */ table = cst_syntax_table_new("NumExp"); - g_object_set(table->default_style, "family", "monospace", "size", 16, NULL); + g_object_set(table->default_style, "family", "monospace", /*"size", 16,*/ NULL); /* name */ elem = cst_syntax_table_add_element(table, "name"); g_object_set(elem->tag, "foreground", "#808020", NULL); Index: numexp-console.c =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/console/numexp-console.c,v retrieving revision 1.4 retrieving revision 1.5 diff -U4 -r1.4 -r1.5 --- numexp-console.c 15 Dec 2001 16:30:10 -0000 1.4 +++ numexp-console.c 23 Apr 2002 10:29:43 -0000 1.5 @@ -1,5 +1,5 @@ -/* -*- Mode: C; c-file-style: "bsd"; -*- */ +/* -*- Mode: C; c-file-style: "stroustrup"; -*- */ #define _GNU_SOURCE #ifdef HAVE_CONFIG_H # include <config.h> #endif Index: test-console.c =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/console/test-console.c,v retrieving revision 1.8 retrieving revision 1.9 diff -U4 -r1.8 -r1.9 --- test-console.c 10 Jan 2002 10:31:59 -0000 1.8 +++ test-console.c 23 Apr 2002 10:29:43 -0000 1.9 @@ -199,13 +199,9 @@ void exit_func(void) { - CORBA_Environment ev; - CORBA_exception_init(&ev); - Numexp_Kernel_unref(kernel, &ev); - CORBA_exception_free(&ev); - kernel = CORBA_OBJECT_NIL; + kernel = bonobo_object_release_unref(kernel, NULL); } static gboolean delayed_init(gpointer data) |
From: Alberto M. Brand?o Sim?es <am...@us...> - 2002-04-22 08:08:06
|
Update of /cvsroot/numexp/numexp-core/modules/gsl In directory usw-pr-cvs1:/tmp/cvs-serv19491/modules/gsl Modified Files: Makefile.am STATUS gsl.c rng.in rng.xml Added Files: qrng.in qrng.xml Log Message: - Added error message when chdir'ing to an invalid namespace; - Unix random number generators; - Numerical Recipes generators; - Other random number generators; - Added qrng.{in,xml} for quasi-random number generators; - Quasi-random number generation initialization; - Sampling from a quasi-random number generator; - Quasi-random number generator algorithms; --- NEW FILE --- /* -*- c -*- */ #include <gsl/gsl_qrng.h> #include "nxp_kernel.h" #include "gsl.h" /* STATUS: done */ #NAMESPACE gsl::qRNG #PROTOTYPE <STRING> qrng_name() WITH NAME current static NxpElement* nxp_gsl_qrng_name(ETC) { gsl_qrng *qrng = nxp_eval_context_get_user_data(context, "qRNG"); if (qrng) { NxpElement *el = nxp_element_string_new(gsl_qrng_name(qrng)); GSL_RETURN(el); } else { return nxp_element_string_new("-none-"); } } #PROTOTYPE <INT> qrng_size() WITH NAME currentSize static NxpElement* nxp_gsl_qrng_size(ETC) { gsl_qrng *qrng = nxp_eval_context_get_user_data(context, "qRNG"); if (qrng) { unsigned int *usize = nxp_eval_context_get_user_data(context, "qRNG-size"); NxpElement *el = nxp_element_int_new(*usize); GSL_RETURN(el); } else { return nxp_element_int_new(0); } } #PROTOTYPE <VECTOR> qrng_init_get(<VOID>) WITH NAME sample static NxpElement* nxp_gsl_qrng_init_get(ETC) { double* buffer; gsl_qrng *qrng = nxp_eval_context_get_user_data(context, "qRNG"); if (qrng) { unsigned int *usize = nxp_eval_context_get_user_data(context, "qRNG-size"); NxpElement *vec; buffer = g_new(double, *usize); gsl_qrng_get(qrng, buffer); vec = nxp_double_buffer_to_vector(buffer, *usize); GSL_RETURN(vec); } else { return NULL; } } #PROTOTYPE <VOID> qrng_init_niederreiter_2(<INT>) WITH NAME init_niederreiter2 static NxpElement* nxp_gsl_qrng_init_niederreiter_2(NxpElementInt *dimension, ETC) { unsigned int *usize = g_new(unsigned int, 1); gsl_qrng *qrng = nxp_eval_context_get_user_data(context, "qRNG"); if (qrng) { /* Free it */ gsl_qrng_free(qrng); g_free(nxp_eval_context_get_user_data(context, "qRNG-size")); qrng = NULL; } *usize = (unsigned int)ABS(dimension->value); qrng = gsl_qrng_alloc(gsl_qrng_niederreiter_2, *usize); nxp_eval_context_set_user_data(context, "qRNG", qrng); nxp_eval_context_set_user_data(context, "qRNG-size", usize); GSL_RETURN(nxp_element_void_new()); } //#PROTOTYPE <VOID> qrng_reset() WITH NAME reset //static NxpElement* nxp_gsl_qrng_reset(ETC) { // gsl_qrng *qrng = nxp_eval_context_get_user_data(context, "qRNG"); // // if (qrng) gsl_qrng_init(qrng); // GSL_RETURN(nxp_element_void_new()); //} #PROTOTYPE <VOID> qrng_init_sobol(<INT>) WITH NAME init_sobol static NxpElement* nxp_gsl_qrng_init_sobol(NxpElementInt *dimension, ETC) { unsigned int *usize = g_new(unsigned int, 1); gsl_qrng *qrng = nxp_eval_context_get_user_data(context, "qRNG"); if (qrng) { /* Free it */ gsl_qrng_free(qrng); g_free(nxp_eval_context_get_user_data(context, "qRNG-size")); qrng = NULL; } *usize = (unsigned int)ABS(dimension->value); qrng = gsl_qrng_alloc(gsl_qrng_sobol, *usize); nxp_eval_context_set_user_data(context, "qRNG", qrng); nxp_eval_context_set_user_data(context, "qRNG-size", usize); GSL_RETURN(nxp_element_void_new()); } void nxp_gsl_qrng_init(NxpEvalContext * context) { gsl_qrng* qrng; NxpIdentifier *id; unsigned int *size; /* it starts empty!! This means that I don't know when to free it :-/ */ qrng = NULL; size = g_new(unsigned int, 1); *size = 0; nxp_eval_context_set_user_data(context, "qRNG", qrng); nxp_eval_context_set_user_data(context, "qRNG-size", size); #PROTOTYPES } --- NEW FILE --- <namespace name="::gsl::qRNG::"> <description> </description> </namespace> Index: Makefile.am =================================================================== RCS file: /cvsroot/numexp/numexp-core/modules/gsl/Makefile.am,v retrieving revision 1.33 retrieving revision 1.34 diff -U4 -r1.33 -r1.34 --- Makefile.am 9 Apr 2002 06:59:09 -0000 1.33 +++ Makefile.am 22 Apr 2002 07:39:38 -0000 1.34 @@ -17,9 +17,9 @@ sf_gegenbauer.in sf_hyperg.in sf_laguerre.in \ sf_lambert.in sf_legendre.in sf_log.in sf_psi.in \ sf_synchrotron.in sf_transport.in sf_trig.in sf_zeta.in\ permutation.in multifit_nlin.in linalg.in stats.in \ - randist.in rng.in + randist.in rng.in qrng.in BUILT_SOURCES = physical.c basics.c complexes.c sf_airy.c sf_bessel.c \ sf_clausen.c poly_roots.c sf_coulomb.c sf_coupling.c \ sf_dawson.c sf_debye.c sf_dilog.c sf_ellint.c \ @@ -27,9 +27,9 @@ sf_fermi_dirac.c sf_gamma.c sf_gegenbauer.c \ sf_hyperg.c sf_laguerre.c sf_lambert.c sf_legendre.c \ sf_log.c sf_psi.c sf_synchrotron.c sf_transport.c \ sf_trig.c sf_zeta.c permutation.c multifit_nlin.c \ - linalg.c stats.c randist.c rng.c + linalg.c stats.c randist.c rng.c qrng.c EXTRA_DIST = $(GSL_IN_FILES) $(MODULE_DOCS) gsl-proto-gen.pl gslpermut-prototypes.in header.xml PROTO_FILES_C = gslpermut-prototypes.generated.c @@ -53,9 +53,9 @@ sf_hyperg.xml sf_laguerre.xml sf_lambert.xml \ sf_legendre.xml sf_log.xml sf_psi.xml sf_synchrotron.xml\ sf_transport.xml sf_trig.xml sf_zeta.xml permutation.xml\ multifit_nlin.xml linalg.xml stats.xml randist.xml \ - rng.xml \ + rng.xml qrng.xml\ physical.xml gsl.xml: header.xml $(MODULE_DOCS) @echo Constructing gsl.xml document file... Index: STATUS =================================================================== RCS file: /cvsroot/numexp/numexp-core/modules/gsl/STATUS,v retrieving revision 1.4 retrieving revision 1.5 diff -U4 -r1.4 -r1.5 --- STATUS 20 Apr 2002 11:58:39 -0000 1.4 +++ STATUS 22 Apr 2002 07:39:38 -0000 1.5 @@ -108,25 +108,25 @@ * QAWS adaptive integration for singular functions * QAWO adaptive integration for oscillatory functions * QAWF adaptive integration for Fourier integrals -* Random Number Generation +* [TODO:DOCUMENTATION] Random Number Generation * [DONE] Random number generator initialization * [DONE] Sampling from a random number generator * [IGORED] Auxiliary random number generator functions * [IGORED] Random number environment variables * [IGORED] Saving and restoring random number generator state * [DONE] Random number generator algorithms - * Unix random number generators - * Numerical Recipes generators - * Other random number generators + * [DONE] Unix random number generators + * [DONE] Numerical Recipes generators + * [DONE] Other random number generators -* Quasi-Random Sequences - * Quasi-random number generator initialization - * Sampling from a quasi-random number generator - * Auxiliary quasi-random number generator functions - * Saving and resorting quasi-random number generator state - * Quasi-random number generator algorithms +* [TODO:DOCUMENTATION] Quasi-Random Sequences + * [DONE] Quasi-random number generator initialization + * [DONE] Sampling from a quasi-random number generator + * [IGNORED] Auxiliary quasi-random number generator functions + * [IGNORED] Saving and resorting quasi-random number generator state + * [DONE] Quasi-random number generator algorithms * Random Number Distributions * The Gaussian Distribution * The Gaussian Tail Distribution Index: gsl.c =================================================================== RCS file: /cvsroot/numexp/numexp-core/modules/gsl/gsl.c,v retrieving revision 1.12 retrieving revision 1.13 diff -U4 -r1.12 -r1.13 --- gsl.c 20 Apr 2002 08:26:20 -0000 1.12 +++ gsl.c 22 Apr 2002 07:39:38 -0000 1.13 @@ -22,8 +22,9 @@ void nxp_gsl_permutation_init(NxpEvalContext*); void nxp_gsl_linalg_init(NxpEvalContext*); void nxp_gsl_stats_init(NxpEvalContext*); void nxp_gsl_rng_init(NxpEvalContext*); +void nxp_gsl_qrng_init(NxpEvalContext*); void nxp_module_init(NxpEvalContext *context) { gsl_is_on_error = 0; @@ -38,8 +39,9 @@ nxp_gsl_permutation_init(context); nxp_gsl_linalg_init(context); nxp_gsl_stats_init(context); nxp_gsl_rng_init(context); + nxp_gsl_qrng_init(context); nxp_gsl_physical_init(context); } Index: rng.in =================================================================== RCS file: /cvsroot/numexp/numexp-core/modules/gsl/rng.in,v retrieving revision 1.3 retrieving revision 1.4 diff -U4 -r1.3 -r1.4 --- rng.in 20 Apr 2002 11:58:39 -0000 1.3 +++ rng.in 22 Apr 2002 07:39:38 -0000 1.4 @@ -120,8 +120,134 @@ change(context, gsl_rng_ranlxs2); return nxp_element_void_new(); } +#PROTOTYPE <VOID> rng_rand() WITH NAME init_stdRand +static NxpElement* nxp_gsl_rng_rand(ETC) { + change(context, gsl_rng_rand); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_random_bsd() WITH NAME init_bsdRand +static NxpElement* nxp_gsl_rng_random_bsd(ETC) { + change(context, gsl_rng_random_bsd); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_random_libc5() WITH NAME init_libc5Rand +static NxpElement* nxp_gsl_rng_random_libc5(ETC) { + change(context, gsl_rng_random_libc5); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_random_glibc2() WITH NAME init_glibc2Rand +static NxpElement* nxp_gsl_rng_random_glibc2(ETC) { + change(context, gsl_rng_random_glibc2); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_rand48() WITH NAME init_rand48 +static NxpElement* nxp_gsl_rng_rand48(ETC) { + change(context, gsl_rng_rand48); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_ran0() WITH NAME init_ran0 +static NxpElement* nxp_gsl_rng_ran0(ETC) { + change(context, gsl_rng_ran0); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_ran1() WITH NAME init_ran1 +static NxpElement* nxp_gsl_rng_ran1(ETC) { + change(context, gsl_rng_ran1); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_ran2() WITH NAME init_ran2 +static NxpElement* nxp_gsl_rng_ran2(ETC) { + change(context, gsl_rng_ran2); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_ran3() WITH NAME init_ran3 +static NxpElement* nxp_gsl_rng_ran3(ETC) { + change(context, gsl_rng_ran3); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_ranf() WITH NAME init_ranf +static NxpElement* nxp_gsl_rng_ranf(ETC) { + change(context, gsl_rng_ranf); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_ranmar() WITH NAME init_ranmar +static NxpElement* nxp_gsl_rng_ranmar(ETC) { + change(context, gsl_rng_ranmar); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_r250() WITH NAME init_r250 +static NxpElement* nxp_gsl_rng_r250(ETC) { + change(context, gsl_rng_r250); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_tt800() WITH NAME init_tt800 +static NxpElement* nxp_gsl_rng_tt800(ETC) { + change(context, gsl_rng_tt800); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_vax() WITH NAME init_vax +static NxpElement* nxp_gsl_rng_vax(ETC) { + change(context, gsl_rng_vax); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_transputer() WITH NAME init_transputer +static NxpElement* nxp_gsl_rng_transputer(ETC) { + change(context, gsl_rng_transputer); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_randu() WITH NAME init_randu +static NxpElement* nxp_gsl_rng_randu(ETC) { + change(context, gsl_rng_randu); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_minstd() WITH NAME init_minstd +static NxpElement* nxp_gsl_rng_minstd(ETC) { + change(context, gsl_rng_minstd); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_uni() WITH NAME init_uni +static NxpElement* nxp_gsl_rng_uni(ETC) { + change(context, gsl_rng_uni); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_uni32() WITH NAME init_uni32 +static NxpElement* nxp_gsl_rng_uni32(ETC) { + change(context, gsl_rng_uni32); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_slatec() WITH NAME init_slatec +static NxpElement* nxp_gsl_rng_slatec(ETC) { + change(context, gsl_rng_slatec); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_zuf() WITH NAME init_zuf +static NxpElement* nxp_gsl_rng_zuf(ETC) { + change(context, gsl_rng_zuf); + return nxp_element_void_new(); +} + void nxp_gsl_rng_init(NxpEvalContext * context) { gsl_rng* rng; NxpIdentifier *id; Index: rng.xml =================================================================== RCS file: /cvsroot/numexp/numexp-core/modules/gsl/rng.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -U4 -r1.1 -r1.2 --- rng.xml 9 Apr 2002 06:59:09 -0000 1.1 +++ rng.xml 22 Apr 2002 07:39:38 -0000 1.2 @@ -1,5 +1,5 @@ - <namespace name="::gsl::randomGeneration::"> + <namespace name="::gsl::RNG::"> <description> </description> |
From: Alberto M. Brand?o Sim?es <am...@us...> - 2002-04-22 08:08:06
|
Update of /cvsroot/numexp/numexp-core/functions In directory usw-pr-cvs1:/tmp/cvs-serv19491/functions Modified Files: functions.c Log Message: - Added error message when chdir'ing to an invalid namespace; - Unix random number generators; - Numerical Recipes generators; - Other random number generators; - Added qrng.{in,xml} for quasi-random number generators; - Quasi-random number generation initialization; - Sampling from a quasi-random number generator; - Quasi-random number generator algorithms; Index: functions.c =================================================================== RCS file: /cvsroot/numexp/numexp-core/functions/functions.c,v retrieving revision 1.28 retrieving revision 1.29 diff -U4 -r1.28 -r1.29 --- functions.c 15 Apr 2002 07:31:31 -0000 1.28 +++ functions.c 22 Apr 2002 07:39:38 -0000 1.29 @@ -261,8 +261,12 @@ nxp_identifier_resolve(ident, context, &child, &name); context->cwd = child; + /* TODO: check if this can be changed to a GError message or if it + * doesn't worth the trouble */ + if (child == ns) nxp_output_message("Invalid namespace"); + /* Send message to the childrens */ Numexp_Kernel_to_Client_cwd_change(context); return nxp_element_void_new(); |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-20 16:06:55
|
Update of /cvsroot/numexp/gnumexp/src/nxplot In directory usw-pr-cvs1:/tmp/cvs-serv5352 Modified Files: nxpcanvas.c nxpcanvas.h Log Message: Created new function nxp_canvas_queue_update(); Call nxp_canvas_queue_update() inside nxp_canvas_add_object(). Index: nxpcanvas.c =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/nxplot/nxpcanvas.c,v retrieving revision 1.13 retrieving revision 1.14 diff -U4 -r1.13 -r1.14 --- nxpcanvas.c 13 Apr 2002 16:09:09 -0000 1.13 +++ nxpcanvas.c 20 Apr 2002 16:06:52 -0000 1.14 @@ -9,8 +9,12 @@ PROP_PLOTTER }; +#define NXP_CANVAS_OVERLAY_PRIORITY G_PRIORITY_LOW +#define NXP_CANVAS_UPDATE_PRIORITY (GTK_PRIORITY_RESIZE + 1) + + /* static guint signals[LAST_SIGNAL] = { 0 }; */ static NxpCanvasClass *nxp_canvas_class = NULL; static gpointer parent_class = NULL; @@ -132,8 +136,10 @@ GTK_WIDGET_SET_FLAGS(GTK_WIDGET(self), GTK_CAN_FOCUS); GTK_WIDGET_UNSET_FLAGS(GTK_WIDGET(self), GTK_DOUBLE_BUFFERED); self->root = NULL; + self->overlay_idle_id = 0; + self->update_idle_id = 0; } static void nxp_canvas_class_base_init(NxpCanvasClass *class) { @@ -174,11 +180,18 @@ if (self->update_sigid) { g_signal_handler_disconnect(self->plotter, self->update_sigid); self->update_sigid = 0; } + /* remove overlay drawing idle function */ if (self->overlay_idle_id) gtk_idle_remove(self->overlay_idle_id); self->overlay_idle_id = 0; + + /* remove update idle function */ + if (self->update_idle_id) + gtk_idle_remove(self->update_idle_id); + self->update_idle_id = 0; + /* delete plotter */ if (self->plotter) g_object_unref(self->plotter); self->plotter = NULL; @@ -218,8 +231,13 @@ g_return_if_fail(NXP_IS_CANVAS(self)); g_return_if_fail(IS_NXPLOT(pl)); g_return_if_fail(pl == self->plotter); + /* remove update idle function */ + if (self->update_idle_id) + gtk_idle_remove(self->update_idle_id); + self->update_idle_id = 0; + /* Make sure all overlays are hidden, carefully so that do not try to hide themselves (they would only end up drawing themselves). */ for (l = self->overlays; l; l = l->next) { @@ -334,8 +352,28 @@ g_slist_length(self->drawable_objects)); } +static gboolean _nxp_canvas_update_idle_func(NxpCanvas *self) +{ + g_return_val_if_fail(NXP_IS_CANVAS(self), FALSE); + self->update_idle_id = 0; + if (self->plotter) + nxp_canvas_update(self->plotter, self); + return FALSE; +} + + +void nxp_canvas_queue_update(NxpCanvas *self) +{ + if (!self->update_idle_id) + self->update_idle_id = + gtk_idle_add_priority(NXP_CANVAS_UPDATE_PRIORITY, + (GtkFunction) _nxp_canvas_update_idle_func, + self); +} + + void nxp_canvas_add_object(NxpCanvas *self, NxpCanvasObject *object) { g_return_if_fail(NXP_IS_CANVAS(self)); g_return_if_fail(NXP_IS_CANVAS_OBJECT(object)); @@ -348,8 +386,9 @@ if (self->plotter) nxplot_close(self->plotter); recompute_drawable_objects_list(self); + nxp_canvas_queue_update(self); } static gint button_press_event(GtkWidget *widget, GdkEventButton *event) @@ -547,9 +586,8 @@ g_return_if_fail(self->xor_gc); nxp_canvas_overlay_draw(overlay, GTK_WIDGET(self)->window, self->xor_gc, 0); } -#define NXP_CANVAS_OVERLAY_PRIORITY G_PRIORITY_LOW void nxp_canvas_queue_draw_overlay(NxpCanvas *self, NxpCanvasOverlay *overlay, gboolean generate_expose) { Index: nxpcanvas.h =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/nxplot/nxpcanvas.h,v retrieving revision 1.9 retrieving revision 1.10 diff -U4 -r1.9 -r1.10 --- nxpcanvas.h 25 Mar 2002 23:13:30 -0000 1.9 +++ nxpcanvas.h 20 Apr 2002 16:06:52 -0000 1.10 @@ -40,8 +40,9 @@ GSList *overlays; GdkGC *xor_gc; gulong update_sigid; guint overlay_idle_id; + guint update_idle_id; GdkCursor *current_cursor; }; @@ -67,16 +68,18 @@ double y2); void nxp_canvas_add_object (NxpCanvas *self, NxpCanvasObject *object); + /* overlay management */ void nxp_canvas_add_overlay (NxpCanvas *self, NxpCanvasOverlay *overlay); void nxp_canvas_remove_overlay (NxpCanvas *self, NxpCanvasOverlay *overlay); void nxp_canvas_draw_overlay (NxpCanvas *self, NxpCanvasOverlay *overlay); + /* */ void nxp_canvas_redraw_area (NxpCanvas *self, NxplotRect *area); void nxp_canvas_set_cursor (NxpCanvas *self, @@ -84,8 +87,9 @@ void nxp_canvas_get_pointer (NxpCanvas *self, gint *x, gint *y, GdkModifierType *state); +void nxp_canvas_queue_update (NxpCanvas *self); |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-20 16:06:55
|
Update of /cvsroot/numexp/gnumexp/src/nxplot/python In directory usw-pr-cvs1:/tmp/cvs-serv5352/python Modified Files: nxplot.defs Log Message: Created new function nxp_canvas_queue_update(); Call nxp_canvas_queue_update() inside nxp_canvas_add_object(). Index: nxplot.defs =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/nxplot/python/nxplot.defs,v retrieving revision 1.6 retrieving revision 1.7 diff -U4 -r1.6 -r1.7 --- nxplot.defs 13 Apr 2002 16:10:11 -0000 1.6 +++ nxplot.defs 20 Apr 2002 16:06:52 -0000 1.7 @@ -410,8 +410,13 @@ (return-type "none") (parameters '("NxplotRect*" "area"))) +(define-method queue_update + (of-object "NxpCanvas") + (c-name "nxp_canvas_queue_update") + (return-type "none")) + ;; *** NxpCanvasObject's methods *** (define-method _set_visible |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-20 15:59:44
|
Update of /cvsroot/numexp/gnumexp/src/xygraph In directory usw-pr-cvs1:/tmp/cvs-serv3410 Modified Files: Bonobo_Sample_Hello.xml Makefile.am Numexp_XYGraph-ui.xml Added Files: numexp-xygraph.in Removed Files: numexp-xygraph Log Message: Some UI-related fixes. --- NEW FILE --- #! /usr/bin/env python import bonobo.activation import bonobo import bonobo.ui, Bonobo, Numexp from Numexp_XYGraph import * EXECUTABLE_NAME = 'numexp-xygraph' VERSION = '0.0.1' FACTORY_IID = 'OAFIID:Numexp_XYGraphFactory' CONTROL_IID = 'OAFIID:Numexp_XYGraph' UIDIR = '@prefix@/share/gnome-2.0/ui/' def create_function(generic_factory, iid): print "create_function: iid=" + iid + "\n\n" if iid == CONTROL_IID: xy = XYGraphControl() return xy ## At the time of this writing, the bonobo python bindings were ## incomplete, so this didn't work. #bonobo.bonobo_generic_factory_main(FACTORY_IID, create_function) factory = bonobo.GenericFactory(FACTORY_IID, create_function) bonobo.running_context_auto_exit_unref(factory) class XYGraphControl(bonobo.ui.Control): def __init__(self): self.xygraph = xygraph = XYGraphView() lineattr = LineAttr(color=Color(0, 0, 0), thickness=.2, mode=Linemode.SOLID) func = Function(lineattr, "Test function", "sin(x)+4", 'x') func2 = Function(lineattr, "Test function", "cos(x)+4", 'x') xygraph.plot_area.add_plot_object(func) xygraph.plot_area.add_plot_object(func2) bonobo.ui.Control.__init__(self, xygraph.get_toplevel_widget()) self.connect('set-frame', self.sample_merge_bonobo_items_cb) #self.sample_merge_bonobo_items_cb(self, None) def sample_merge_bonobo_items_cb(self, foo): self.set_automerge(1) ui_component = bonobo.ui.Component('xygraph') ui_component.set_container(self.get_remote_ui_container()) bonobo.ui.util_set_ui(ui_component, '', UIDIR + '/Numexp_XYGraph-ui.xml', 'numexp-xygraph') self.set_ui_component(ui_component) verbs = [ ('AddObject', self.add_object_callback) ] ui_component.add_verb_list(verbs) def add_object_callback(self, *args): # TODO: this is would be where an AddObject dialog would popup lineattr = LineAttr(color=Color(0, 0, 0), thickness=.2, mode=Linemode.SOLID) func = Function(lineattr, "Test function", "sin(x)^2+4", 'x') self.xygraph.plot_area.add_plot_object(func) bonobo.main() Index: Bonobo_Sample_Hello.xml =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/xygraph/Bonobo_Sample_Hello.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -U4 -r1.1 -r1.2 --- Bonobo_Sample_Hello.xml 14 Apr 2002 17:36:33 -0000 1.1 +++ Bonobo_Sample_Hello.xml 20 Apr 2002 15:59:23 -0000 1.2 @@ -47,8 +47,11 @@ <submenu name="Help" stockid="gtk-help"> <menuitem name="HelpAbout" verb=""/> </submenu> + + <placeholder/> + </menu> <dockitem name="Toolbar" relief="none" homogeneous="1" behavior="exclusive" look="text"> Index: Makefile.am =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/xygraph/Makefile.am,v retrieving revision 1.4 retrieving revision 1.5 diff -U4 -r1.4 -r1.5 --- Makefile.am 7 Apr 2002 16:50:42 -0000 1.4 +++ Makefile.am 20 Apr 2002 15:59:23 -0000 1.5 @@ -1,15 +1,28 @@ ## Process this file with automake to produce Makefile.in SUBDIRS = nxpruler Numexp_XYGraph +CLEANFILES= + serverdir = $(libdir)/bonobo/servers server_DATA = Numexp_XYGraph.server idldir = $(datadir)/idl idl_DATA = Numexp_XYGraph.idl + +uidir = $(datadir)/gnome-2.0/ui/ +ui_DATA = Numexp_XYGraph-ui.xml + +script_dot_in=numexp-xygraph + +$(script_dot_in): $(script_dot_in).in + sed -e "s|\@prefix\@|$(prefix)|" $< > $@ + bin_SCRIPTS = numexp-xygraph +CLEANFILES += numexp-xygraph + -EXTRA_DIST = $(server_DATA) $(idl_DATA) +EXTRA_DIST = $(server_DATA) $(idl_DATA) $(script_dot_in) $(ui_DATA) Index: Numexp_XYGraph-ui.xml =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/xygraph/Numexp_XYGraph-ui.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -U4 -r1.1 -r1.2 --- Numexp_XYGraph-ui.xml 15 Apr 2002 20:49:49 -0000 1.1 +++ Numexp_XYGraph-ui.xml 20 Apr 2002 15:59:23 -0000 1.2 @@ -6,9 +6,8 @@ <menu> <submenu name="XYGraph" label="_XYGraph"> <menuitem name="AddObject" verb=""/> </submenu> - </menu> <dockitem name="Toolbar"> <toolitem name="AddObject" verb=""/> --- numexp-xygraph DELETED --- |
From: Alberto M. Brand?o Sim?es <am...@us...> - 2002-04-20 11:58:43
|
Update of /cvsroot/numexp/numexp-core/modules/gsl In directory usw-pr-cvs1:/tmp/cvs-serv32616/modules/gsl Modified Files: STATUS rng.in Log Message: Random number generation initializers; Random number generation for uniform distributions; Index: STATUS =================================================================== RCS file: /cvsroot/numexp/numexp-core/modules/gsl/STATUS,v retrieving revision 1.3 retrieving revision 1.4 diff -U4 -r1.3 -r1.4 --- STATUS 9 Apr 2002 06:59:09 -0000 1.3 +++ STATUS 20 Apr 2002 11:58:39 -0000 1.4 @@ -109,14 +109,14 @@ * QAWO adaptive integration for oscillatory functions * QAWF adaptive integration for Fourier integrals * Random Number Generation - * Random number generator initialization - * Sampling from a random number generator - * Auxiliary random number generator functions - * Random number environment variables - * Saving and restoring random number generator state - * Random number generator algorithms + * [DONE] Random number generator initialization + * [DONE] Sampling from a random number generator + * [IGORED] Auxiliary random number generator functions + * [IGORED] Random number environment variables + * [IGORED] Saving and restoring random number generator state + * [DONE] Random number generator algorithms * Unix random number generators * Numerical Recipes generators * Other random number generators Index: rng.in =================================================================== RCS file: /cvsroot/numexp/numexp-core/modules/gsl/rng.in,v retrieving revision 1.2 retrieving revision 1.3 diff -U4 -r1.2 -r1.3 --- rng.in 20 Apr 2002 08:26:20 -0000 1.2 +++ rng.in 20 Apr 2002 11:58:39 -0000 1.3 @@ -3,14 +3,123 @@ #include <time.h> #include "nxp_kernel.h" #include "gsl.h" -#NAMESPACE gsl::randomGeneration +#NAMESPACE gsl::RNG #PROTOTYPE <REAL> rng_get() WITH NAME rand static NxpElement* nxp_gsl_rng_get(ETC) { gsl_rng *rng = nxp_eval_context_get_user_data(context, "RNG"); NxpElement *el = nxp_element_real_new(gsl_rng_get(rng)); GSL_RETURN(el); +} + +#PROTOTYPE <VOID> rng_set(<INT>) WITH NAME seed +static NxpElement* nxp_gsl_rng_set(NxpElementInt* seed, ETC) { + gsl_rng *rng = nxp_eval_context_get_user_data(context, "RNG"); + gsl_rng_set(rng, seed->value); + GSL_RETURN(nxp_element_void_new()); +} + +#PROTOTYPE <REAL> rng_uniform() WITH NAME uniformRand +static NxpElement* nxp_gsl_rng_uniform(ETC) { + gsl_rng *rng = nxp_eval_context_get_user_data(context, "RNG"); + NxpElement *el = nxp_element_real_new(gsl_rng_uniform(rng)); + GSL_RETURN(el); +} + +#PROTOTYPE <REAL> rng_uniform_int(<INT>) WITH NAME uniformRand +static NxpElement* nxp_gsl_rng_uniform_int(NxpElementInt* seed, ETC) { + gsl_rng *rng = nxp_eval_context_get_user_data(context, "RNG"); + NxpElement *el = nxp_element_real_new(gsl_rng_uniform_int(rng,seed->value)); + GSL_RETURN(el); +} + +#PROTOTYPE <STRING> rng_name() WITH NAME current +static NxpElement* nxp_gsl_rng_name(ETC) { + gsl_rng *rng = nxp_eval_context_get_user_data(context, "RNG"); + NxpElement *el = nxp_element_string_new(gsl_rng_name(rng)); + GSL_RETURN(el); +} + +static void change(NxpEvalContext* context, const gsl_rng_type *T) { + gsl_rng *rng = nxp_eval_context_get_user_data(context, "RNG"); + gsl_rng_free(rng); + rng = gsl_rng_alloc(T); + nxp_eval_context_set_user_data(context, "RNG", rng); + + +} + +#PROTOTYPE <VOID> rng_mt19937() WITH NAME init_mt19937 +static NxpElement* nxp_gsl_rng_mt19937(ETC) { + change(context, gsl_rng_mt19937); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_taus() WITH NAME init_taus +static NxpElement* nxp_gsl_rng_taus(ETC) { + change(context, gsl_rng_taus); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_mrg() WITH NAME init_mrg +static NxpElement* nxp_gsl_rng_mrg(ETC) { + change(context, gsl_rng_mrg); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_cmrg() WITH NAME init_cmrg +static NxpElement* nxp_gsl_rng_cmrg(ETC) { + change(context, gsl_rng_cmrg); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_gfsr4() WITH NAME init_gfsr4 +static NxpElement* nxp_gsl_rng_gfsr4(ETC) { + change(context, gsl_rng_gfsr4); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_ranlux() WITH NAME init_ranlux +static NxpElement* nxp_gsl_rng_ranlux(ETC) { + change(context, gsl_rng_ranlux); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_ranlux389() WITH NAME init_ranlux389 +static NxpElement* nxp_gsl_rng_ranlux389(ETC) { + change(context, gsl_rng_ranlux389); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_ranlxd1() WITH NAME init_ranlxd1 +static NxpElement* nxp_gsl_rng_ranlxd1(ETC) { + change(context, gsl_rng_ranlxd1); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_ranlxd2() WITH NAME init_ranlxd2 +static NxpElement* nxp_gsl_rng_ranlxd2(ETC) { + change(context, gsl_rng_ranlxd2); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_ranlxs0() WITH NAME init_ranlxs0 +static NxpElement* nxp_gsl_rng_ranlxs0(ETC) { + change(context, gsl_rng_ranlxs0); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_ranlxs1() WITH NAME init_ranlxs1 +static NxpElement* nxp_gsl_rng_ranlxs1(ETC) { + change(context, gsl_rng_ranlxs1); + return nxp_element_void_new(); +} + +#PROTOTYPE <VOID> rng_ranlxs2() WITH NAME init_ranlxs2 +static NxpElement* nxp_gsl_rng_ranlxs2(ETC) { + change(context, gsl_rng_ranlxs2); + return nxp_element_void_new(); } void nxp_gsl_rng_init(NxpEvalContext * context) { gsl_rng* rng; |
From: Alberto M. Brand?o Sim?es <am...@us...> - 2002-04-20 08:26:23
|
Update of /cvsroot/numexp/numexp-core/modules/gsl In directory usw-pr-cvs1:/tmp/cvs-serv13060/modules/gsl Modified Files: gsl-proto-gen.pl gsl.c rng.in Log Message: - Added context information about the random number distribution; - Corrected gsl-generation script to use VOID definitions; Index: gsl-proto-gen.pl =================================================================== RCS file: /cvsroot/numexp/numexp-core/modules/gsl/gsl-proto-gen.pl,v retrieving revision 1.9 retrieving revision 1.10 diff -U4 -r1.9 -r1.10 --- gsl-proto-gen.pl 7 Mar 2002 17:06:30 -0000 1.9 +++ gsl-proto-gen.pl 20 Apr 2002 08:26:20 -0000 1.10 @@ -39,17 +39,17 @@ } elsif (/^#(FUNCTION|PROTOTYPE)\s+/) { my $type = $1; my $def = $'; ### def --> <TYPE> func(<TYPE>,<TYPE>...) - $def =~ m!<([^>]+)\>\s+(\[[a-zA-Z_]*\])?([a-zA-Z_][a-zA-Z0-9_]*)\(([^)]+)\)\s+(?:WITH\s+)?NAME\s+([a-zA-Z_][a-zA-Z0-9_]*)!; + $def =~ m!<([^>]+)\>\s+(\[[a-zA-Z_]*\])?([a-zA-Z_][a-zA-Z0-9_]*)\(([^)]*)\)\s+(?:WITH\s+)?NAME\s+([a-zA-Z_][a-zA-Z0-9_]*)!; my ($return_type, $function_name, $arguments, $numexp_name) = ($1,$3,$4,$5); my $gsl; if (defined($2)) { my $x = $2; $x =~ /\[(.*)\]/; $gsl = $1; } - if (!$return_type || !$function_name || !$arguments || !$numexp_name) { + if (!$return_type || !$function_name || !$numexp_name) { print OUTPUT "/* --- error: $_ */"; #print STDERR ">>cannot parse '$_'\n"; #print STDERR ">>>returns(?) $return_type\n"; #print STDERR ">>>function(?) $function_name\n"; @@ -78,11 +78,11 @@ if ($current_namespace) { if ($current_namespace =~ /::/) { my @levels = split/::/,$current_namespace; my $txt = (scalar(@levels)+1).",".join(",",map{"\"$_\""}@levels); - push @prototypes, "id = nxp_identifier_new_with_full_path($txt, \"$numexp_name\");\n nxp_bifunc_define(id, &$ppp". join("_", map {m!^<U?(.*)>$!; $1 } grep { /^</ } @args).", nxp_gsl_$function_name, NULL, NULL, context, NULL); nxp_identifier_unref(id);\n"; + push @prototypes, "id = nxp_identifier_new_with_full_path($txt, \"$numexp_name\");\n nxp_bifunc_define(id, &$ppp". join("_", (@args)?(map {m!^<U?(.*)>$!; $1 } grep { /^</ } @args):"VOID").", nxp_gsl_$function_name, NULL, NULL, context, NULL); nxp_identifier_unref(id);\n"; } else { - push @prototypes, "id = NXP_ID_2(\"$current_namespace\", \"$numexp_name\");\n nxp_bifunc_define(id, &$ppp". join("_", map {m!^<U?(.*)>$!; $1 } grep { /^</ } @args).", nxp_gsl_$function_name, NULL, NULL, context, NULL); nxp_identifier_unref(id);\n"; + push @prototypes, "id = NXP_ID_2(\"$current_namespace\", \"$numexp_name\");\n nxp_bifunc_define(id, &$ppp". join("_", (@args)?(map {m!^<U?(.*)>$!; $1 } grep { /^</ } @args):"VOID").", nxp_gsl_$function_name, NULL, NULL, context, NULL); nxp_identifier_unref(id);\n"; } } else { push @prototypes, "nxp_bifunc_define_global(\"$numexp_name\", &$ppp". join("_", map { m!^<(.*)>$!; $1 } grep { /^</ } @args). Index: gsl.c =================================================================== RCS file: /cvsroot/numexp/numexp-core/modules/gsl/gsl.c,v retrieving revision 1.11 retrieving revision 1.12 diff -U4 -r1.11 -r1.12 --- gsl.c 5 Apr 2002 07:28:48 -0000 1.11 +++ gsl.c 20 Apr 2002 08:26:20 -0000 1.12 @@ -21,8 +21,9 @@ void nxp_gsl_complexes_init(NxpEvalContext*); void nxp_gsl_permutation_init(NxpEvalContext*); void nxp_gsl_linalg_init(NxpEvalContext*); void nxp_gsl_stats_init(NxpEvalContext*); +void nxp_gsl_rng_init(NxpEvalContext*); void nxp_module_init(NxpEvalContext *context) { gsl_is_on_error = 0; @@ -36,8 +37,9 @@ nxp_gsl_sf_init(context); nxp_gsl_permutation_init(context); nxp_gsl_linalg_init(context); nxp_gsl_stats_init(context); + nxp_gsl_rng_init(context); nxp_gsl_physical_init(context); } Index: rng.in =================================================================== RCS file: /cvsroot/numexp/numexp-core/modules/gsl/rng.in,v retrieving revision 1.1 retrieving revision 1.2 diff -U4 -r1.1 -r1.2 --- rng.in 9 Apr 2002 06:59:09 -0000 1.1 +++ rng.in 20 Apr 2002 08:26:20 -0000 1.2 @@ -1,11 +1,25 @@ /* -*- c -*- */ -#include <gsl/gsl_randist.h> +#include <gsl/gsl_rng.h> +#include <time.h> #include "nxp_kernel.h" #include "gsl.h" #NAMESPACE gsl::randomGeneration +#PROTOTYPE <REAL> rng_get() WITH NAME rand +static NxpElement* nxp_gsl_rng_get(ETC) { + gsl_rng *rng = nxp_eval_context_get_user_data(context, "RNG"); + NxpElement *el = nxp_element_real_new(gsl_rng_get(rng)); + GSL_RETURN(el); +} void nxp_gsl_rng_init(NxpEvalContext * context) { -// NxpIdentifier *id; + gsl_rng* rng; + NxpIdentifier *id; + + /* By default, a gsl_rng_taus (at least, at the moment) */ + rng = gsl_rng_alloc(gsl_rng_taus); + gsl_rng_set(rng, time(NULL)); + nxp_eval_context_set_user_data(context, "RNG", rng); + #PROTOTYPES } |
From: Alberto M. Brand?o Sim?es <am...@us...> - 2002-04-20 08:26:23
|
Update of /cvsroot/numexp/numexp-core In directory usw-pr-cvs1:/tmp/cvs-serv13060 Modified Files: configure.in Log Message: - Added context information about the random number distribution; - Corrected gsl-generation script to use VOID definitions; Index: configure.in =================================================================== RCS file: /cvsroot/numexp/numexp-core/configure.in,v retrieving revision 1.54 retrieving revision 1.55 diff -U4 -r1.54 -r1.55 --- configure.in 8 Apr 2002 23:27:10 -0000 1.54 +++ configure.in 20 Apr 2002 08:26:20 -0000 1.55 @@ -262,8 +262,9 @@ AC_HEADER_STDC AC_CHECK_HEADERS(complex.h) +AC_CHECK_HEADERS(time.h) AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs ]) if test "x$with_html_dir" = "x" ; then @@ -272,9 +273,9 @@ HTML_DIR=$with_html_dir fi dnl Checks for library functions. -AC_CHECK_FUNCS(strdup strerror asprintf strtod) +AC_CHECK_FUNCS(strdup strerror asprintf strtod time) dnl ************************************************* dnl * gsl stuff * |
From: Alberto M. Brand?o Sim?es <am...@us...> - 2002-04-16 09:49:13
|
Update of /cvsroot/numexp/web-page In directory usw-pr-cvs1:/tmp/cvs-serv579 Modified Files: clients clients.xml docs latests.xml makefile Log Message: Some scripts enhancements; Added publish option to makefile (not yet tested) Index: clients =================================================================== RCS file: /cvsroot/numexp/web-page/clients,v retrieving revision 1.3 retrieving revision 1.4 diff -U4 -r1.3 -r1.4 --- clients 3 Jan 2002 08:34:53 -0000 1.3 +++ clients 16 Apr 2002 09:49:08 -0000 1.4 @@ -5,14 +5,17 @@ if (defined($makall)) { my $template = shift; my $clients = "clients.xml"; - my $data = {}; + my $data; my $i = 0; + dt($clients, ( 'clients' => sub{ }, 'description' => sub{ $data->{description} = $c; }, - 'shot' => sub{ $data->{shot}.="<img align='center' src='$c'>" }, + 'shot' => sub{ + $data->{shot}.="<img align='center' src='$v{file}'><br>$c<br><br>"; + }, 'manager' => sub { if ($v{email}) { $data->{manager} = "<a href='mailto:$v{email}'>$c</a>"; } else { @@ -22,17 +25,23 @@ 'client' => sub{ $i++; my $name = $v{name}; open HTML, ">htdocs/client$i.html" or die "cannot open file: $!"; - print HTML dt($template, ( - '-default' => sub{ toxml }, - 'name' => sub{ $name }, - # Not beautifull, but works - 'nospace' => sub{ " " }, - 'description' => sub{ $data->{description} }, - 'manager' => sub{ $data->{manager} }, - 'shot' => sub{ $data->{shot} }, - )); + print HTML dt($template, + ( + '-default' => sub{ toxml }, + 'name' => sub{ $name }, + # Not beautifull, but works + 'nospace' => sub{ " " }, + 'description' => sub{ $data->{description} }, + 'manager' => sub{ $data->{manager} }, + 'shot' => sub{ + if ($data->{shot}) { + "<div align='left'><b>Screenshots</b></div><br>".$data->{shot} + } else { + "" + }}, + )); close HTML; $data = {}; }, )); Index: clients.xml =================================================================== RCS file: /cvsroot/numexp/web-page/clients.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -U4 -r1.6 -r1.7 --- clients.xml 14 Apr 2002 17:51:14 -0000 1.6 +++ clients.xml 16 Apr 2002 09:49:08 -0000 1.7 @@ -5,12 +5,12 @@ for more details.</description> <manager>NumExp Team</manager> </client> - <client name="gnumexp"> + <client name="Gnumexp"> <description> -<p><b>gnumexp</b> is a gui frontend (or client, if you prefer) to the numexp +<p><b>Gnumexp</b> is a gui frontend (or client, if you prefer) to the numexp kernel (corba server). It has the same abilities as numexp-client, and some extra features that only a gui can provide, such as: <ul> @@ -21,10 +21,10 @@ <li> plotting (not yet implemented);</li> <li>etc.</li></ul></p> </description> - <shot>gnumexp.png</shot> - <shot>xygraph2-shot1.png</shot> + <shot file="gnumexp.png">Gnumexp console.</shot> + <shot file="xygraph2-shot1.png">Gnumexp canvas drawing sine and cosine.</shot> <manager email="gu...@us...">Gustavo Carneiro</manager> </client> <client name="nxperl-corba"> Index: docs =================================================================== RCS file: /cvsroot/numexp/web-page/docs,v retrieving revision 1.7 retrieving revision 1.8 diff -U4 -r1.7 -r1.8 --- docs 16 Jan 2002 08:25:59 -0000 1.7 +++ docs 16 Apr 2002 09:49:08 -0000 1.8 @@ -26,9 +26,8 @@ my $file = shift; print <<"EOT"; <?xml version="1.0" encoding="iso-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "mathml.dtd"> EOT print dt($file, ( '-default' => sub{toxml}, math => sub { @@ -100,10 +99,15 @@ return $a; }, module => sub { $a = <<"EOT"; -<?xml version="1.0" encoding="iso-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "mathml.dtd"> +<?xml version="1.0"?> +<!DOCTYPE html PUBLIC + "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" + "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" +[ + <!ENTITY mathml "http://www.w3.org/1998/Math/MathML"> +]> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link href="../main.css" rel="stylesheet" type="text/css"/> </head> Index: latests.xml =================================================================== RCS file: /cvsroot/numexp/web-page/latests.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -U4 -r1.5 -r1.6 --- latests.xml 3 Jan 2002 08:34:53 -0000 1.5 +++ latests.xml 16 Apr 2002 09:49:08 -0000 1.6 @@ -1,5 +1,19 @@ <news> + <new date="20020402"> + <title>numexp-core 0.1 second beta</title> + <url>gz/numexp-core-0.1-beta-2.tar.gz</url> + <desc>Latest beta had many problems configuring. In this version. + we corrected that problems, and introduced some news, like + the online help system.</desc> + </new> + + <new date="20020318"> + <title>numexp-core 0.1 first beta</title> + <url>gz/numexp-core-0.1-beta-1.tar.gz</url> + <desc>Gnome 2 is becoming more stable, as well as numexp-core</desc> + </new> + <new date="20011227"> <title>numexp-core 0.1 second alpha</title> <url>gz/numexp-core-0.1-alpha-2.tar.gz</url> <desc>Some more code lines, some solved bugs, some bugs added! Soon Index: makefile =================================================================== RCS file: /cvsroot/numexp/web-page/makefile,v retrieving revision 1.6 retrieving revision 1.7 diff -U4 -r1.6 -r1.7 --- makefile 23 Jan 2002 09:37:54 -0000 1.6 +++ makefile 16 Apr 2002 09:49:08 -0000 1.7 @@ -43,5 +43,9 @@ web_tgz: page @ echo "- Creating tar.gz file" @ tar zcvf nxp-web-page-`date +%Y%m%d`.tar.gz htdocs +publish: page + @ echo "- Using '$(USER)' for scp." + @ scp -r htdocs $(USER)@shell1.sourceforge.net:/home/groups/n/nu/numexp + |
From: Alberto M. Brand?o Sim?es <am...@us...> - 2002-04-16 09:49:13
|
Update of /cvsroot/numexp/web-page/htmls In directory usw-pr-cvs1:/tmp/cvs-serv579/htmls Modified Files: download.html syntax.html test.xml Log Message: Some scripts enhancements; Added publish option to makefile (not yet tested) Index: download.html =================================================================== RCS file: /cvsroot/numexp/web-page/htmls/download.html,v retrieving revision 1.7 retrieving revision 1.8 diff -U4 -r1.7 -r1.8 --- download.html 16 Jan 2002 08:25:59 -0000 1.7 +++ download.html 16 Apr 2002 09:49:08 -0000 1.8 @@ -14,11 +14,17 @@ <img src="tr.png"></img> </td></tr> <tr><td colspan="3"> <table width="100%" cellspacing="5"><tr><td align="right"> +<b>Beta Versions</b><br/> +<small>[<a href="gz/numexp-core-0.1-beta-2.tar.bz">bz2</a>]</small> +<a href="gz/numexp-core-0.1-beta-2.tar.gz">numexp-core-0.1-beta-2</a> <small>(2002.03.18) </small> +<br/> +<a href="gz/numexp-core-0.1-beta-1.tar.gz">numexp-core-0.1-beta-1</a> <small>(2002.03.18)</small> +<br/><br/> <b>Alpha Versions</b><br/> <a href="gz/numexp-core-0.1-alpha-3.tar.gz">numexp-core-0.1-alpha-3</a> <small>(2002.01.16)</small> -<br> +<br/> <a href="gz/numexp-core-0.1-alpha-2.tar.gz">numexp-core-0.1-alpha-2</a> <small>(2001.12.27)</small> <br/><br/> <b>Snap Shots</b><br/> <a href="gz/numexp-core-0.1-snap-shot-20020103.tar.gz">numexp-core snapshot</a> <small>(2002.01.03)</small> @@ -42,12 +48,20 @@ <ul> <li> <b>Gnome 2</b> packages can be downloaded from <a href="http://developer.gnome.org">gnome cvs</a>;</li> + <li>Some <b>Perl</b> modules are needed to construct dbfile online help cache:<ul> + <li><b>XML::Parser</b> and <b>XML::DT</b>: These can be downloaded, as + any module from the <a href="http://www.cpan.org">CPAN</a>. <b>XML::Parser</b> + needs <b>expat</b>. You can download it from the James Clark <a href="http://www.jclark.com">page</a> + or download the open-source version from <a href="http://expat.sourceforge.net">sourceforge</a>.</li> + <li><b>DB_File</b> module. It can be downloaded from <a href="http://www.cpan.org">CPAN</a>, too! + This module should be compiled with <b>db-3</b> version.</li></ul> + </li> <li><b>GSL</b> library for numexp module;</li><!-- TODO: add a URL --> <li><b>GMP</b> library for numexp multi-precision module can be downloaded from - the <b>gnu</b> software <a href="ftp://ftp.gnu.org">ftp</a> and mirrors;</li> - <!-- TODO: this url can be more direct... --> + the <b>gnu</b> software <a href="ftp://ftp.gnu.org/pub/gmp">ftp</a> and mirrors;</li> + <!-- TODO: this url can be more direct?... --> </ul></p> </td> </tr> Index: syntax.html =================================================================== RCS file: /cvsroot/numexp/web-page/htmls/syntax.html,v retrieving revision 1.1 retrieving revision 1.2 diff -U4 -r1.1 -r1.2 --- syntax.html 3 Jan 2002 08:34:53 -0000 1.1 +++ syntax.html 16 Apr 2002 09:49:08 -0000 1.2 @@ -5,10 +5,58 @@ <body bgcolor="#ffffff"> <h3>Numexp Language Syntax</h3> - <p>This documentation page presents the grammar for NumExp language. (well... will present soon!)</p> + <h4>Data types</h4> + + <p>While Numexp language data types can be defined using modules, there are some built-in. These, + store basic mathmatical data as numbers, vectors and matrices. While there are types, the + language is lazy regarding types. In some places, you need some specific type but you cannot + declare a variable as containing a specific data type. This means that data types are inducted + from the syntax you use to define the variable, as we will see shortly.</p> + + <b>Integers</b> + + <p>Numexp integers are parsed as a sequence of digits with an optional sign. This means that + <i>1</i>, <i>-1000</i> or <i>+30</i> are integers. Meanwhile, <i>1.0</i> is parsed as a real + value.</p> + + <p>Without using any module, this data type size depends on the machine architecture.</p> + + <b>Reals</b> + + <p>Real numbers can be written in any standard way, like <i>0.000</i>, <i>+30.0e20</i> or + <i>-3.40134</i>. In the same way as integers, <i>4</i> is not a real number, but as + Numexp contains a typecast policy, functions which work only with real numbers will + work in the same way with integers.</p> + + <p>Without using any module, this data type size depends on the machine architecture.</p> + + <b>Complexes</b> + + <p>Not all builds of NumExp support complex numbers. These are handled by <i>libc</i> which + means it needs to support them. This means that the data type size depends on the + machine architecture, too!</p> + + <p>If you have complex numbers, they are typed as we are used to, using the real and the + imaginary part. The imaginary symbol can be represented by <i>i</i> or <i>j</i>. By + default, answers will be shown using the <i>j</i> imaginary symbol. These are examples + for complex numbers: <i>3+i</i>, <i>j</i>, <i>-3-2i</i>.</p> + + <b>Strings</b> + + <p>Numexp supports strings, too! These are typed within double quotes. They can contain + any type of characters, and support special characters (like the double quote) escaping + them (backslashing them).</p> + + <p>Examples: <i>"This is a string"</i> and <i>"This string contains \"quotes\""</i></p> + + <b>Vectors</b> + + <b>Matrices</b> + + <h4>Operators</h4> <div align="right"><font color="#aaaaaa" size="-1">© NumExp Team</font></div> </body> -</html> \ No newline at end of file +</html> Index: test.xml =================================================================== RCS file: /cvsroot/numexp/web-page/htmls/test.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -U4 -r1.1 -r1.2 --- test.xml 3 Jan 2002 08:34:53 -0000 1.1 +++ test.xml 16 Apr 2002 09:49:08 -0000 1.2 @@ -1,6 +1,11 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "mathml.dtd"> +<?xml version="1.0"?> +<!DOCTYPE html PUBLIC + "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" + "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" +[ + <!ENTITY mathml "http://www.w3.org/1998/Math/MathML"> +]> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link href="main.css" rel="stylesheet" type="text/css"/> </head> |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-15 20:49:54
|
Update of /cvsroot/numexp/gnumexp/src/xygraph In directory usw-pr-cvs1:/tmp/cvs-serv15365 Modified Files: hello.py numexp-xygraph Added Files: Numexp_XYGraph-ui.xml Log Message: The xygraph component now provides its own UI items that are merged in the container's main window. --- NEW FILE --- <Root> <commands> <cmd name="AddObject" stockid="gtk-new" label="Add object" /> </commands> <menu> <submenu name="XYGraph" label="_XYGraph"> <menuitem name="AddObject" verb=""/> </submenu> </menu> <dockitem name="Toolbar"> <toolitem name="AddObject" verb=""/> <placeholder/> </dockitem> </Root> Index: hello.py =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/xygraph/hello.py,v retrieving revision 1.1 retrieving revision 1.2 diff -U4 -r1.1 -r1.2 --- hello.py 14 Apr 2002 17:36:33 -0000 1.1 +++ hello.py 15 Apr 2002 20:49:49 -0000 1.2 @@ -15,8 +15,9 @@ import sys import bonobo import bonobo.ui +import Bonobo import gtk HELLO_UI_XML = "Bonobo_Sample_Hello.xml" @@ -136,11 +137,11 @@ #frame.add (button) frame.add(wid) win.set_contents (frame) - + win.connect ('delete_event', delete_event_cb) - + app_list.append (win) return win Index: numexp-xygraph =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/xygraph/numexp-xygraph,v retrieving revision 1.2 retrieving revision 1.3 diff -U4 -r1.2 -r1.3 --- numexp-xygraph 14 Apr 2002 17:34:03 -0000 1.2 +++ numexp-xygraph 15 Apr 2002 20:49:49 -0000 1.3 @@ -19,13 +19,27 @@ func2 = Function(lineattr, "Test function", "cos(x)+4", 'x') xygraph.plot_area.add_plot_object(func) xygraph.plot_area.add_plot_object(func2) bonobo.ui.Control.__init__(self, xygraph.get_toplevel_widget()) - self.connect('activate', self.sample_merge_bonobo_items_cb) - + self.connect('set-frame', self.sample_merge_bonobo_items_cb) + #self.sample_merge_bonobo_items_cb(self, None) - def sample_merge_bonobo_items_cb(self, control, state): - print sample_merge_bonobo_items_cb + def sample_merge_bonobo_items_cb(self, foo): + + self.set_automerge(1) + ui_component = bonobo.ui.Component('xygraph') + ui_component.set_container(self.get_remote_ui_container()) + bonobo.ui.util_set_ui(ui_component, '', + './Numexp_XYGraph-ui.xml', + 'numexp-xygraph') + self.set_ui_component(ui_component) + verbs = [ ('AddObject', self.add_object_callback) ] + ui_component.add_verb_list(verbs) + + + def add_object_callback(*args): + print "bonobo_sample_callback" + def create_function(generic_factory, iid): print "create_function: iid=" + iid |
From: Alberto M. Brand?o Sim?es <am...@us...> - 2002-04-15 07:31:37
|
Update of /cvsroot/numexp/numexp-core/bindings/bonobo In directory usw-pr-cvs1:/tmp/cvs-serv16914/bindings/bonobo Modified Files: numexp-kernel.c Log Message: No changes at all... spaces, new lines... nothing more Index: numexp-kernel.c =================================================================== RCS file: /cvsroot/numexp/numexp-core/bindings/bonobo/numexp-kernel.c,v retrieving revision 1.23 retrieving revision 1.24 diff -U4 -r1.23 -r1.24 --- numexp-kernel.c 9 Apr 2002 06:59:09 -0000 1.23 +++ numexp-kernel.c 15 Apr 2002 07:31:31 -0000 1.24 @@ -516,12 +516,10 @@ Numexp_Client_namespaceNotify(self->client, &namespace, &ev1); CORBA_exception_free(&ev1); } - - /* TODO: Define the function and call it under the cd[] definition */ -void Numexp_Kernel_to_Client_cwd_change(NxpEvalContext* context) +void Numexp_Kernel_to_Client_cwd_change(NxpEvalContext *context) { CORBA_Environment ev1; NumexpKernel *self = NUMEXP_KERNEL(nxp_eval_context_get_user_data(context, "kernel")); GString *str = nxp_name_space_get_full_path_name(self->context->cwd); |
From: Alberto M. Brand?o Sim?es <am...@us...> - 2002-04-15 07:31:36
|
Update of /cvsroot/numexp/numexp-core/functions In directory usw-pr-cvs1:/tmp/cvs-serv16914/functions Modified Files: functions.c Log Message: No changes at all... spaces, new lines... nothing more Index: functions.c =================================================================== RCS file: /cvsroot/numexp/numexp-core/functions/functions.c,v retrieving revision 1.27 retrieving revision 1.28 diff -U4 -r1.27 -r1.28 --- functions.c 2 Apr 2002 07:56:38 -0000 1.27 +++ functions.c 15 Apr 2002 07:31:31 -0000 1.28 @@ -242,8 +242,11 @@ nxp_name_space_unlock(ns); return nxp_element_void_new(); } +// This is defined somewhere else... +// -- numexpc implements it's own; +// -- bonobo server implements the corba one; void Numexp_Kernel_to_Client_cwd_change(NxpEvalContext *context); NxpElement* bifunc_eval_cd(NxpElementVariable* str, NxpEvalContext *context, GError **error) { |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-14 17:51:17
|
Update of /cvsroot/numexp/web-page In directory usw-pr-cvs1:/tmp/cvs-serv25158 Modified Files: clients.xml Log Message: Added XYGraph screenshot. Index: clients.xml =================================================================== RCS file: /cvsroot/numexp/web-page/clients.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -U4 -r1.5 -r1.6 --- clients.xml 16 Jan 2002 08:25:59 -0000 1.5 +++ clients.xml 14 Apr 2002 17:51:14 -0000 1.6 @@ -22,8 +22,9 @@ <li>etc.</li></ul></p> </description> <shot>gnumexp.png</shot> + <shot>xygraph2-shot1.png</shot> <manager email="gu...@us...">Gustavo Carneiro</manager> </client> <client name="nxperl-corba"> |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-14 17:49:41
|
Update of /cvsroot/numexp/web-page/shots In directory usw-pr-cvs1:/tmp/cvs-serv24654/shots Added Files: xygraph2-shot1.png Log Message: XYGraph as bonobo control! --- NEW FILE --- PNG gÔSù 3ÛÈ#cbbÃ?wî¡c@À'è)...¯çËÌÌLt<zôý]Eμü%SU¤¿koo߯_?IÏD]»v=~üx3è$Iêt:IóòÑ£GJ¥Rêkí¤\K9 ôֲɱvíZêùõÚËà¶F£A¶QUU#EÜtѲeKî¶f¬ã...R4hAÐÍ;2'}§NüöÛotµZÍSNVV#¥¶¶ ¥A B£§^+(m_ÿ!ö¬~ñâEÆ[YYïÝ»'bê¶±±a¤Á&ô|¶1PZZÊ3~õÁÙÙÝt XKkkkñ«wîÜa¤Ð-ÎìùÄÉÉ©k"{z,´±±a¤1ç'Of¤=z4ã×ñ² ÀËËKê¼lÓ¦ µ8?ƬY³)Ý»wiiÚ(??-áê=)))Ôóܹs ËËËI¤§$ùòåý>êÛHUùãÆ7!Ó=¹ Áߦ6Mô¬7¸Ó¦M555øEÀ ^1\Ê¿x>þÔ3ÿENûNmÚµ²Óúü/}~\¶lN§&IòÃ?¤^½³ø»wWýØ{Ë>ï}Ç`JbbbmmíäÉ+** $ k×® ]T*2Ë¡CÄÈJ¥ÒËËçîÍ7®åçç7ßÛ·oo¹ÛNQXX¸ÿ~Y½zõBF733±Þ÷íCÇj?~|gméÞ½;¼³_Óã_á× 1R1´zN´iÓÆ(½¬¢¢Â(JÎÑ£G ÒÙ~$úöíËóvçÎ:.,,fÔ¨Q6;vì¤ñ÷÷7T¿|\±b ôõk~ÄÆÆ²è?,YbtëÈqÍ@PPPuuu»víxh:tèPYY3ÍEkÎËË{òä>KKKµZ½}ûöË/M/:22Òßßß´/ÅÐ})8~ÕgLÀGÓ>);/HHH01Â|¤["LªÂÔññÊ+R>|-)L?tú>§¦Ì '¯ \ðõÒa~£?{)ËÊʹÞRýÚÍÍÍÃÃC_wnݾ =z4IThÔ &ðp§ª²J=fZåèº Ù2nCàÙDd#?Èd²Á·´iñöÇÛ·ï¹»éEz¦^ÍcÙ¢ Eff& ¤Ö<zpÏÚ¦ÕÇÜÿ _¼x¤áNÆñoüþûï8²á7oæÉ'8WÔ#Û8>GGG{{ûÔÔT4CBBÅ) Ì]£úðüùó®]»"É ¯ÑÝÝIinnn q¼f*SýãVÈ}||©ôìÙ³4TÄ´´4$quuµ!õÁ¹+&&>Ð72ùHßhLßE¦8ÿpfèª í¤7älÞäÉ4W¯^Õ7 úVáuëÖ!˽á¯GH¹sçÒâØ¢?~,8ÿ}Oc¨ããÒ¥K èöpGGGd¹pÓdee!i>ýôSúOÔ+DZkD Z¥ùk>nÞ¼Þd@'b'¯9ݺ»oxïô:ô8£({S##åÔ©Sã®t08+ZV` qÐ A@8pzqÛ¶mEñ âù¥¥¥PöíÛ#³>#Û3.î9sæ2KQQÐýõø<¯PYY,As û $\.§×GÇáR&(Eß,Bu£º μè8Ææ ¦Lù çÏS")£! (Kòsÿ Xú)qøh;cêR⣠¢!7uC£@dâúãíܪʪêòêʪʪ÷s¦óàyUè[d¢2Öÿ¥µyÁ4A×®]ãäñéÄLSG3áÿÙ»ò°&®µf°£VETµ EÁpùDSR±X©¸T¯ò¨õ¢|"q»Å§XAÄ UÁ*Òïª,([¬Ê&EIf&ßÓ¦1{2'½óû'Lμyçsλk@ßÎ6õÇ···3Á_Ëg Ekkk]]];²ëÞÓË`¸õî õùàÿþýoAjjjlmmÍÍÍy<^MMÍ)SÄ¿¥Î%ÑxÄ uúiÊpÝñJ¯siuYAd.áBUUÕÔ©S÷îÝ+U-WQ70õqçÎgÏÉn?dɪÿCâr¢VVVZs@îÏÙÚÚÚÚÚúúúÖ××+é¢Ã¥øL ²wL"îªC\å?5ëÕ«W+·zÐhhèoDô(<ÒL³4kñÜîää$&éñÆÞÑÞÞÌÌ:wîÜãÇÅEiÐèq<xpTTTqqqJJ¿¿?Íý¹X£(J%Ì=^©iôóì( z¦1Ä~^¬Å[·jÚQ ³c[[¯¯oSS¯¯/-4úyv$[¾HZ¡A«24èÙQ©Dª& HJJjnnöññùè£Þ%îüøã÷ïß3fÌúõë© ®¬¬<sæ¹¹yXX~º}ë8'%%555M8188Æô¢¤úR[[áííÍf³ÙlöÍ7·Îظq£ìqÃÁ0Lôv¢¯¯EQ d¿ >räú¤Pår¹²ÇSSSDo-vîܹvíZÙã F/[¶¬Mýñ8uýúuõéØÙÙ½Kïª>ܶmF¬®Ñcnn>vìX EMLñÆ0L±NUL&Íþã?¨_åµk×9Ò/7¥ÒÒÒÈÈH©G%I%¢££¡¬EÚÁÔÔôÌ3Ôé0LY5±°°ðûï¿×@{{{¥êv1gÎèèh(7l`` Î¥×§O¥ImVVTõT8Ë=®)jkkû¥îСC5²/*B`` \û¢ÁxýúµZõ¼yóîÞ½ÄI ÅÍÙÙYϪ"ÍBÇÐÐPÉ·ÝÝÝ?üðZ¸p¡>ù«¾ÇY ÊËËïÞ½«djÍÏçoذ¡©©Ëåvvv*|²å õ¨®®ÎÀÀ@oï=¢P:;;+w2577S1CJ®Úzë¸øúõk(SòþýûÝÝÝxôè|["»£ÙôHr8(¶=¼÷«VB'++ëåËê466ò¾¾¾úG Vj vîÜ©®ÝÑõ/ÈýÖÑÑqïÞ½P.£Fâóù:}ïÛÚÚ>ýôS(¤òóó ¦ÎHçââBý ¨G*Uà/^P§³lÙ25XXXH=zÕ%£Äµ÷dÁ`0p§~º±°¶¶~öìG#Ñ£G¡ÄFDGGCyÿå"33ÓßßðàÁé´¶¶ûi¨sss±F[TTôÆìX__/ÖÏb-2&&:;úúúÈ4]ÀÊÊ ,±k ÊfT.¨Ë" jæÊ2ÊyòäÉÊÊJèÎÍÍ¥î» çÏOýÊËË¡,b0ÌóçÏS§ãååÕÑÑAå2 ÜQtt´v3¢7fÌ(¤öïßO ØG¯°dFäV¯^ÝÖÖfaaAñ®333¡xK¡(ì555JZê?-MÕ ¹3gç`jj Å3QÕÌI¨ãǧ~5 WS×ò ØG,YâååEH$Z¿~=u:õõõÔéÌ?,&''+ñPǨ¨(&YWW§)¡(AÝ1 Hbb"õ±´´¬©©Åk777(vaaaqq1 ---TÊâKâÞ½{cXµq*ÂÙ³goݺEýpÓúôÐÐP(Ûó² &L ;?Sí!²è q444´±±±±± ÓqãÆrZï´x<¬`ÊS§NQß ËjÇ>>>ÔéiïââÒÜÜLýÂÃá70P«]ɨ²²2SSSêJ±±±Ú¹|,--¡ÄÁr8Éb÷îÝ<pvv¦Hì_´qãFÎ*))¹téõ»PâèT«2$´.õêÕ+©ÎEZ/ÙÖ'<y2Yܱc\`ðöö00Z} hBCݰatæ@(%CCCX¶±[·>|øPÍZsúôi(ïý#Äm¯uêêêAQOÖÙ·oF³¸Õ äbâÄ ãgu4;RÁÞ½{ua×~øá%KÔHÐ þó@Çhoo?xð 5DÍ-[¶@Å«W¯æææê-º Ó¦M£N§²²R/ PxdccѦ,K @Ù$&&VTT(ÓÑÑ1iÒ$(W~âÄ ·L )EéåååPòäËÕsEt.ûÞ{ïQ§óóÏ?+ñ°X,(ùºrÓ¹8 e züø1è'¨Üü©{÷îI-999¢N¹³³S$Á·R-d«o ¯]»6vìXXyÄ7oÞDQzr#ÃÁ0LÓf]z¤úÆkkkoܸaXhh¨/hüøñPÒY,¯¯/x¡¼¶¶ú9sæ UF¡[o6p4EË«ê0 à !âþãÆF6ªsøKJÖõNÿç ¡P()°âyQh%æ |¹jÇ>úUB¡pÚ4?±àoÑÂ/ç½½½É¾â 3g®d l#£ôújR" ^¯eö08±gÛ?¶ вÈ+§¼¼D"}ÒA/ cCCNonn ãâ¶m¬4vÌ9¿««7þHGU¢c^ÁùÚú 4)߬úÊËËûþýû詸¸¸¯¿þ%Ͷ¶¶6mßaVz «íììÄ]1iÒ$¨&OÊÊJ4ú-YÊ«¡Ê >бahÊ@¨ eíææöWÔP!9þy@@ Ät:P¥Ñh»wïV= PXíèêê ÄG=¨çøÂè(äB¡à¾£ "kGèB¡Dtt¡£< ¦£ Ú¤P]( !oÊZÙ¬eC~~~^^ÁPSSûרÍf;vìùóçNNN-Y III óæÍÃ"G ]XX8nÜ8&5ÃÈÈȤ¤$A¢jS6mÚ4{öìöövtMôÒÔÔ¨8jjj "®èJJJ<<<.\¸0 (6e|}}$RWW÷îf̱iÓ¦ÕÒõæÍ>,9 Fáëë+á4ðdrOO¦O¾aÃØØXÉr´µµE~Õd¦´ÃÑ£GE ÒÕÕåp8¾÷ܹs³²²jjjLMMUBÑ%%%FFFÒmq¹Ü#F¼~ýZäÙØØXq©ÑÖÖ¦®®Îf³U ÃW/ }fff]]¸ïÍÑÑñTæ}èaaaèFss³HoðØØØÛ·oKùö ùÎK.ݾ}»TccDbNN¸¼:::ÒpÅâG¡QrìÙ³§Ô?q8tè¸0¤wîÜñððÐÖÖ!!!vvv666wîÜé?Îåróóó×ÅbYXX(¿®ÇÓÔÔ$ýõsçÎMLLùÝwvvJ/J¥=º¥¥EÉõÃår&N(ý-ïÞ½ÉHggg???©ÆµµµÓo ýÔÕÕå7n¬®®633SZ]Kî+DYYPÝÙÙ9nÜ8 2(9D"QFP R©2t*ìÙ³g¿yóað7n\ºtI²~ýz%W·½½½l±ÿ+++ùÍ än¾8ÔÕÕÅÇÇ÷ÝwÊ©¢¢¢üü|nüöÛo¾»»ÛÆÆf¢æÏ/Ûÿihh¡úÂÂÂþùçÙîõòò<y2ºýç^½zU69FFFñññJû¹.\¸Pæ¢ojjâ½®®î·TtollùÿFDD(§®ÓÓÓ"óíUUUééé rðàAåÑunn..4Z¶lÙd³=û3{ãÆJ¢ää䪪*ìrêêê2338@`<99¹¹¹û1L´ã¯ß=.U~eeeAAÁ¤IÐ,qA"222ëÖÓ××Ç.ÇÂÂbùòåÒ½TÞ྾¾¸L®zxx(®CBBpÉÝdeeåää \^wÅrÖ5ÇÆE%îûöí¼hKúî£ü/^¼NÂrss%ØjÒÒqÿþý|çmwaa¡ôkA$4;vì§®ét:?DÆÝ¯¿þ*áìÃa(ä¿Ò¯úxǾØqõplð#ÁÃÜÜÈAÎ>§²y³÷ävo±CÉM? ¸tuu9rDò5â¼Bß=L&ãà5Þ{îܹ¶¶6ùèúÉ'W®\Á.A+uGGGìÏÒÐÐ@gØä6Ë&WW×ARSSEýGt466666&ÉÆÆÆd¥¤¤ Ar1bÕªU¸xH'''[[[ìrÖ¯_? = r[Óihhääd);âb !!!òY´°wï^\^¸´´4ï¿ìyX×ÚÀϰÈâ¢Ò§W¹øõ«ZZ¨¸\pCä±Ô**¢( ¬@Ûîk«R)¸|¥`)B©êQ°²B}Ú+¨hAA¶H2I¾?Æe2óèíùýáÉ3oÞ9ówÉË£s¦ÒÌb5§À¥K@"GÔváÂörhÈ 8*d¡¨¨( f|ðÁ4À.^¼XXXHWÕ7 ³µµ ºG¨aåÊê>诮è¯CBB@Q__¯Óù!Ir÷îÝ ¢èW °³³[°`]uÔØ"3??ä2©Ä´ÜÌ=xð ÓÝÝ]é2v~hÑølªtcP=³8}þ«MOO?qâîæzûöíìåܺuKÛ;>Í|躬TÁªU« ¤Õ¥OJJQG777:©166 ÒÝ\ÇÅÅÁ^ª2Hª8|ø0&åää\»vMGóÓØØxöìÙ>¹ªTGù])õkGÎÎN¯¬£¹H$ ;1!õu²~ýú+V|´5xzzúóx<w!EK$ѳX:µÁ«««¡s¢££uâïï"'33³±±Á p¹\9µêüùóÌôXæææ´´4ðù©ªª*)))ËøÒ«0oI§¯[RvìØ^嬣£ªèââa|+ôööf?ÁëÂþá:99±ÂxgäµbòÖÑÓÓ²AйYK¥ÒgÏeeeüRaúóçÏsôèQ@Àøí Ãðññ·ãÇC·+·ò-2iª¶¥¥¥È/ÜÝG=±ñn¥¤¤hÑ«W¯fee±ÓÕÕ¥ª¼¶¨l©Çd(Ç{õê/ϳgÏ ü,ýPÎÎÎãÆc¶l`` µÙZ¸p!H±ÎZ«£BLú¾øäädö[´-IVDy{{_¿~dQËÞ&Aù±u!$«ÊvbÔP3ÉÄÄ$ INN¦Úë²äñãǰ'µÎ$TEXXÈÒÓÓëêêØHàóù þ$ë£1ªû|® LBUÄÇÇI}c&@¢;sæì\óÍ7 ®Ð 6°q«íÙ³dï´ªª *£\¹:ÒÌ$T£ ûÎYYYt²ÑâkooWeÏ AVZµ¤aüÞÍ7C¥Å¼ÿþû:TGÙe&+""$ÖÞÞqÍÒ¥KAüPw4y ú³¦¤¤¼|ùÙ{¡*Ã2|~8°âAäXYY1{ã3@Ð3É j~8À^³"GááátòÄ5RPP ¡þè(ÿV_ ²³³A¿6lØ ~Ë-4öªçòåË?ÿüsߨ#bêqöìY¼Éüü|55g÷ïßl{ïÞ=]»Ð×× U^^®æU¨vwww¨¢#LÔu¤vAGj:¡ i4t6mê]9"ØË¹víªO> ʪڪn)¬SéZTC\\I=[[[¡ôQ¯³~ýzgggöÑC¶¶¶ãÆSÚ¤{êÔ© dÁÁÁ U[ûæÉ¢ ggç Bù;¡GwïÞUºü¾ÿ~ö¹ýÌ(,,é qàÀ1Pñññ îÆÒÒRªSG__ß«FyRSS={Æ^ÏWeÜ·oß+WØK®®®L\×sss¨5YOÉCpqqÏCЬwîÜAíÙ³äÂÇÇÇÁÁ½¥Ò6mÚ²9îääCÎS§N555Ø0ù%GMM ÍCêH$ºÐü(JÕ÷ôéÓüñ¥¥%å¹té{R©tíÚµ¨Oñõõµ±±aßbäÈ/ A7ÝÝÝA¦ZkëHuàp8,Ýàò;wdW`Å2÷{ï½çêêÊ^æÌ3{¹q¬R¦O"çÌ3Tó$iFhDi·¶Þ°åååsçÎ}þüyJJ bí§¸¸DT* P!þ n?5òööfßßeùòåC}þüùÔ©Sù|>ûÅÄÄ@im9Î?üÀçó)E| ©¬¬I`KLL9s¦½½=HÎÐÐТ¢"Ô?jmîççG$TÖéúFu©©)T h6aÔHff&È'·oß)»µoß¾¡Cø u3Ñ7ꪩÅ!n?hËöíÛ{y®5,¸\¨|(ª} {9AAA 5ú£:Z[[³Ï J¥#GY\;vÌÄÄõ'<x°yófB-[ÖÔÔ¤m¿º<yªpTGÐÃé.«aܸqEEE³fÍb#çO>ùý÷ßQ?ÃÐÐ}tR]]AS§N%Iàà`f¥ÀÔðÙE)l¶°ÛÛÛÝÝÝ©¿¬¬ØL÷åË¡òË`©©©aÓàÛÑÑÚILL>|8c9½éßQ®òÑàj~»óÙ &Ý;{öìСCÉqppP ØaddĬ|c[[¼ÿr×®]Óq233µjæ¶VPGY"e)Á5Ãá1B$iý¥ÐÐ=%%¥¸¸XÛ´¦¦&úÙw}¹sçØÚÚªíÍÍÍåõØßßËå2¸ØÙÙõÕC·ç_©±$))IOOOÛ<ËÀÀ@ P///333m÷Á¬¬¬ R<uÇO?ý¶téRü;÷ïßW8ØÜܼlÙ2ÊmÚ´©¯¾¸â£_@@ oÖ¬^;bðÚéÅ56~¤Ø:búlím!¦YGUi5x0ºæ·ÞúÓ:;V×1õ¼ùæ!î<¯¤X"HdÿÅbüÏbÉùS5f1k4¢,Oе|èçÃë@ 4B½¦!¸mûu²×D¤XDIbH,"Å!ª©]ÏT:]þ^ö ýg>µ:ím!5{§úßÕ¿¤P,]H*!EB±XDD$ìBÕÖÖj5³ø8³Áà%Xi½<lÑ75jÁáp´-2lذm»z£a"Áôd¹·ëÐAº-leeÅE BÁ`þBP¥ý'NÃÑóPuDyó&!Õ"´Û8ÊJøNê§G(v½K^[*Ò¯ù{²c«¿ìï¨_ËP˵óë'c0j"ô% NJ$HJ @B!WÞr|ÿÛy?¸»Î½qÚ´iqqqW¯^¥ ¸¸¸øøxêB¨«««Û8D"q$ôÛ_½¦wËo9Nü¦¬¬l G¼sQKDBRBÄ$ê¿ kd:H¡þV8Ñd¥Ý&hçè£;e¿È,BÔºó#!íäJIùæ ùùù®®®\.7&&ÆÈÈ(77722ÇãÅÇÇóx¼ÂÂÂI&QëÅnãØÕÕ%ëð'´ ª«º?L,çääDH$ïØùJ/F#òz²!öüKÔm_'; C±DÚm¤ÔRQfB$RI ¤Ð¾4''gÞ¼y|>?77$É899ñx<{{{ºO¦Yt?Vÿù~)º[~+;'W^!ÖW0Í-mø aÔã»a·Ò¿£ê¦'"øÏõTJT*DÀAq8\$EHÊ7\. ßÿ}||<u0&&fóæÍÝ÷éÎÎnã(:::¨£©©©55¿r9¯ÕCû,Z(ÊÎA½xÙ¯é$I# 8%¹UAP!; 7\§N¢×òx<GU^¹råg}Æãñîß¿O¡ºøçÒ¥KZuu¶>jävø a0¾âf®Ô××óx<.B¨¦¦F«î?wïÞEè"¾<æ¿*´jll?~|}}=ó7ÇÆÆfþüùÖÅóÁ`þæ$'wÇt¿VÔjÁ`0C®\¹üõ×ÝÞ¸ <zô(33322R6.fhh(|§C@ÀÚee/¿9þäRVÁþwþ9é'~Ùú:Ï=¦5ÿîó/Çéãÿ§ÔÊ"±¦b]P P(¤"HBÏ?WøÖ$I¦§§Ï;W©q%Ó« Bá1cäºBàÔ©SåååCY²d| ötvv>}úÎ;¦¦¦Ã SFHHHee%ÃY½zõìÙ³.]JGæW_h}ùü·ß~«~ü<º%táµá[B---7]ÌúÖ²óÕ?þïtdôç˯077§#VÍ<üúë¯ ³fÍ*..ÖÓÓ={ö¼yó°"b0Uã¸xñb*MgàÀiii¡¶¶¶$eçðùüüüü Ptttbbâ_~É`X=?ÏçûûûçååI¥ÒððpêLÙ0;Æ`åêxùÒÌÔìÿ¾½ õôô¤Ré£GB$×èéÓºæÔÚPÕ8\åa¥ó@9.e7oÞ_|JOOwpp(..I1Ì_É8¦§§«ÎEUUUËj¢½óÎ;úúúÌÕóã*++mmm©ÌG fÌqåÊöß?dýúàÐO¿;ü¶|çÔÞ½:ÞÏz©úÈçÇßãÁ2Òÿ{çßÍÔRÕ8;;;iÎÃÿ³wæQQû¯^faX0¢" 0Ácd ²¹Dá58ê1 >OôÃæª<ô+î轸 ,&Êô "õA¢²PA}ºûý1ÉÜÉÈ&òûüÕSS]SõëoÿªºúW3gÎÔøúúÆÄÄ<zôH»± oUv>¶þípÔ_ ¦¥R VËeÃC#G®fsãÒ²fýWk{Ç2?áÝ»w0´FUT?}ÚØÜÜøë¯ÍµuuÏZ[5_åäܬÓËË ú= ¹ pE24CÓÌ,ð§(úQm×ÈÅfáÆápØAmm-³ü?*..æp8]JÞ={RRR6lØzøð¡···¿¿ÿ¶mÛ Í4(µº÷§°HB&éìò«Ë/ .]º4bÄ>ÿê\ŶËgäwùÓ¸enÌ«ñ³3>½Ûz{ÂÝ»wX,ý{1 qííêYs;ô{ ©ø|~III .r¹\ã0á]G²³³Éd|ò A.Ô¤WUU;wîéÓ§£FZ¶lÙ¸qã¶oß>eÊàà`í¹ñññgÅ} Ìt´Ëòÿ¡(Íý¡ÆÏó]ÜÉßãDRÒw)),YldÌaqX8À #Ba¨æ¶ )OÖ<¨½ÕÃ0Ys VSj5¥V©Je[[ǦÿÙç8ÎaÊä©ÚÕÕÕzq$]\\jkkmllº[RRÒeÙ~Uã4Rsl\.\¸ LL®fHDén¤%JÙfï0ó¤½kÏqÒ¤Iååår¹<111!!aܸqGÁq¼®®.&&!$H¦MvòäÉõë×ûøøXZZzyy!N>Þ× ÁÕuϳwùÕÕìÇ»g|kÊå± x á#MÓçhhxTñ !!L£Ñ4ùËÑ4CÓ4¥¦T*µR¥R*--íWÓnÌîe=ÒZ·ÀÀÀÀ}ûöO8QØÔÔTRR²eËLºÛCÙÀÀ@íALLÌýû÷{ö¼0)#S¨(Ü5¢ôÓ"øü#)¢(M!3QÉMr~Öì³èC;kKµLÚCFFFË/_¾|yJJÊܹs¿üòËíÛ·ÛØØ3ÇqDbjjúÝwß-Z´èÚµk555ß|óÍ70ëkà]Þ!rúBYYÛ¬¬$ÎÎN6ÍbsXl èñ eÕýcî;bq´ÿE?ÈÆÆFë(!æÌ£áüùóá Ò¤p¹\Ý{-[¦9Ð]²gaaÑ|JEQ¡å2)Í!Iö¯MýjmùU!ñLL]I1JÂÚSvYKii©ö£H$Òh}}}×[§Í¤mTÏMë%ééçÏwvvH~÷%I}}ýÏ??ȼy½½óÙHÆ&\#Åfá,ûÁÇì쬢J¥Rem5 !¦webIÏ763ãóy$IÔTWrrò¹ïú ò-mísÿ3vìØU+W9 !Ä31355gs8ÏÛJîý(J ämrDÑzímÁÐ* ½455544dfg^Ëùäâ\Çcë6Ê= pC¨9 ^Af 766~ÿý÷O<áóùï¾û®aÖ³³³3--¶¶VÚÒÉÉ ÌýùEäryjjêçO>cƬäàxÒ¤>VÊËË{ÿý÷¯\¹RUUeP^}w_ïØ±#,,lË-kÖ¬),, Vs±X2{öìÍ7¯^½úèÑ£¾¾¾Eì0ê0ïK»aöçªäëëµnÝ:{{ûèèhÃAö?þ¦Ì9nܸñþýû ,xSüÔÔTÝîîî¡Gi'O\¸páÒ¥K!ÇwïÞííí æ þ¬uÒ¿ýöÛ;vÄÇÇ×××[YYÍ7ï믿~k=G ª««ûíÊ¡^¯"êýb£ÊÊÊà?X±bB¨ÍË˦éýû÷O<Y¥Rµ¶¶VWW?{ö¬»ßzWÚº.«KCCP(\»ví+W,YbPonnF5J7qôèÑ¿ýöÛÐW©ÒôÌ;X?7è×íÏ¿üò^6X755!ø|¾X,NHHصkB¡8q¢V@Òà=çq8qbvv¶Au&@úwîÜAq¹Ü³gÏ®]»VËVóf$I8wYÞ£«Wݺ«¡¾¾ÞßßñâÅ¡ÜÜÜñãÇqGyi6Çoß¾ÍÓÚÚzïÞ½ & ôGcÞÀÀÀÃë÷uý3_M·?Ï?_¯?¬ÁÅÒDÒäñ÷÷?~¼V@^»ÁyXmmmaàþ<ñ³³ûwËIÒÂÂB7¥K^ûkË---/nll\¿~½««ë§~²³³{iå##£#G|öÙgׯ_G<xðرc.ôóó3ä^¡kÞ¸¸¸ææflhæ¬þüÚa³Ù§NZºtiFFBèܹsÇwtt4@ÁpŶ¶¶ "22²ßë!" eee±X¬ñãÇK¥R´mÆííísçÎÅqæ^IIIl6{ýúõ` E ªÕêçÏóx¼ÒÒÒþRYYijjZ]]MQTPPÐ@ê3räÈÇGEEìÛ·®õ+"33Åb B©T:sæÌåááÑÑÑáëëKDjjjÿ imm=zôñãÇ ETTToNÁpŶ¶¶ "22aÊÊÊîrÌ7/""B÷qfXÝe~¢|}}ÛÛÛY,Ö ^¥Ryyy!nݺÅf³¡/S§NuuuMMMÅ0lKV(®®®Ó¦MKNNîÓááá999ÅÅÅÖÖÖÿÏÞC¹¾ÿ{2¶N¨´¨eÉ!ÃdI$Y£¾Y2¶"Å1¸:!s,EAâ8e ¡(KNÙ²u8*[²Tã÷Ç\W?W!ÆyÂçOÞyÞÏû¼÷s¿ÏýÜuÖÈȨ¬¬¬¡¡gõÕSäUßßßÿìÙ3VVVª¯z(ZZZº }âççüøñc¹¿Á8NDDD]]}®zäª<qqq>¼}û¶µµõ< 544°±±¡P¨çÏSW3B ffæÊÊJGGGvvöªªªU¤ D"77w|||vv6u5#aeemooß²e[GGÇ|~ÒÛÛËÇÇÇËËÛÓÓCuÍ@ÒÒÒRSSùøøª¯W1jjjMMM¨«¿®z;;»5kÖTVVÎç'ãããRRR555£££skÆìêY2óyï<¯_¿ÎÎÎÞÚÚºÔǽÝÝÝÜÜÜh4zõä{°±±ÃáK}£ªª*FFƹ/ËÊÊB¡KÍg||@ÊÀ"qíÚ5Ú¬úÎÎN...??¿¹/{öì###¿ËnºCi)¾H$²±±qxxøZK8þþý{99¹ÕO7 H{÷îåççïîî¦ÁíöìÙóñãGQQÑßÿ}ÆkÜÜÜp8\?[j>¬¬¬mmmH$RZZº¶¶êVΠѳgÏæörPBBBrrrÕÕÕÙÙÙ3^gggW__Oñ¡ù3dæ'H;wîüòåKSS 4ã×Íï'OxyyÅÄÄ>þ¼*¦ÂØØZnn.ÍnÊÂÂÒÕÕUUU¥¥¥5ãǵ ¯¯ñ+ÒÓÓQ(Àû÷ïW¥b¡;vì HÍÍÍ4ÐÓWýºuë$$$H$Ò÷WOOÏ÷ïß/ÆHIkÖÙÇÇÇEDD<Iû7B¡6mÚ422²*¯óÄ7oøøø|||®\¹Bã[C¡Ð nnnYYÙéÂ-++;11Q[[ûÃ83ªFlܸò¡ÊÝ»wiw<o`` ã7ÀÍÌÌòòòÜÝÝ/^¼Hß·åââÂÈÈ@ ÚÚÚxyyWÅw6477KII¥¤¤Ð=¢>::ÚÙÙY\\ ª¨¨ÄÄÄÐH©Ý¶mÛª¨Ì¡}\¸p@ìÛ·orr²¬¬:;UFIKKÁ`t×d899 U âââ hF2ÂÂÂß¾}{óæMøhkkDYYÙ9b~W8Èâ è®Épvvþûï¿©x¦GåXQQ±qãF}}}@Þ£££Ç-[FGGWåøôööJKKÇÅÅ ¹gÏ555$¹sçÎÙ h#G$''oß¾ýõë׫2ó ÈñügÏgª `nnÎÊÊêïï/..þñãGªI×Ò®]»¶mÛvæÌèèh&ËÓÓshhHBBâõë×4óááa11±ÀÀ@+++@(éêêòð𤦦MZUUÕ@ B IKKwtt¬aDÚ±c³³syyyKKÃÀÀÀÖ[©â7§C >}ú477ÊáAAA_h2>þ¼}ûv@(>}º³³ók<@¢JªàÌ3.\X2:$--MÎd'%%544ÃBBBɹŠ(GÂÂÂRWWwãÆ¸¸8@&dz³³®Ê4QRRÚ¿PP |._¾[]]==U±²²²¬¬{Í××WGGg÷îÝ«ò@N<966¤¤$é½ðx<±±1ãÜAà0¬²²ÒÆÆ¦¨¨é+,,¬uww_ábmaa155S[[ûMÝ&&¦ÚÚÚððpº»¿"::×ÈÈh ¯¯oAAAyy9 |ª««ÍÍÍKJJÖ[÷Í¿>|øèÑ#Å¿`³üÀïïõ£´´tFFººz{{û¦Mè>ÕÕÕBBB+S¬óóó;;;áóôéSSSÓÇ ~ÿ_²²²;vHII)(( *..Þ°a|H$«««¹¹ùl×ðòòÈÉÉ3haVÝ?Î] F+**jjjòv·nÝ«¢¢244´¢Äº½½ÝÐÐ077WHH>SSSû÷ï·¶¶^tF?~ß¾}ßgÎÒüüü¦¦¦*¿0::ª¨¨Åb @¬---WóúÓ§Oòòòþþþ3Öw ,,,xyyg+ÆóýiÀæÍ²N-(++***)RSS300ppp WÀ_ý»ìÅÁ<þ¨ªª*''§ÒÒÒéQ?KQQ§§gII ÔÕÕµâRRRbcc§wÖ£/úúúôôôRSS ôÃÂÂÂäädGMåHîkÃÃÃ@ ({---77·CÆÅÅocc³¼Óf}||JJJ ªªªËµ2îðð°®®îáÃ)>·:uê ǿà ûûû¥ó^ºtICCJgÏ]³fMhh(e?WRR PSSûòå˼µã,=dTSïÍFFF888bccÁéw¡¡¡D"e+KKKpø`08¾È¾ì$ITTÔÃÃç²··Z"daa¡¨¨äädVVÖwïÞ-ruuuccãyöo-áîî>ÿ[ߣ°° Ò ùÎ<166¶víÚÈÈÈe&Ö.]&Hð!×kll\üPmmmP(´ |õêÕ«Rñññ#G`±XªTÕF qqqÿþûïÚµkAxÀüü|aaaUUÕeã¿îìì´¶¶¾wï 444tuu?Ô5kDâ¡CÔÔÔ~ýõ×E9d¾"77wzÎÀgD@@ ÷òåKp¾´Ç766G_/:::/^¤,t)pîÜ966¶%í ííí ÃÁ9Cؽ{·¯¯¯®®îOz~mdd¤©©¹D2K¨²²Ç/Ý-LMMHä«~VåH"®ú###@pss£J{Yª RTTB¡§ÎÈÈÈuëÖ«ÔÚÚ B>|x9Ût`` Ô××ÂçÓ§O×®]£ý!È7é³îgÚ7o¾ÿû"Ï 544Ö¯_OõhaðæÍàÌAAA<TlQQQzUEµ··¯ªªª®®d6rrrôõõ»»»gì H$wtt§®µµõ«W¯JKKéE ©©iúÎqVÌÈÈ×t;¼»»»¯¯/..îûã"qçλw捻¤ Àq/ãÂB£ÑIIImmmÌLyy¹íÝscrr788¾¾>ÉÊÊ¢/ùÕ´G|||yy9y,,,´´´LMM²;foofôòòĹÁ`899]]]yyù/ Á Aÿ«*¬¬¬]]]PÂãñEEEàtãÂ`0ýýý B êêê -7Ù\y¦µ·lÙ2ûìÇßß ´cGìLLL #@zÃÆÆFQQðØ\¶¶¶ÈÃÏÏciiùãÇê×ÅbÁ`àíí=:: xD%999ÅÅÅôùØÑÃÃÊõÚÛÛËÉɹººÒÉÉÉ999iiiàINN.))gKëСCfÿþýT®×ÏÏopp'ÊÊÊ ðsÌvµÿÌ?mÆÅÓ"""fff?~dff¡³îÝ»'..nhh¨¦¦FÓÓÓÓÓÓA8+'ÓßßoggÎqç°²²Þ¹sÅrÇ955/!!ÁÎÎ:5VWW?¾¶¶'"hll²¨¦--GêpìØ1yyy@ä»téÉÄĪ´¶¶¾yó& =`jjºwï^ÝÏ}}}¤<¦ììì)))êíí¥BuSSS»ví ¤>@ N> þà.ËÎÎÓéТrâÄ YYYê¸ãxqñâÅæææ¸¸8]Ý××wþüy@ä122:pà z{{Òö»wïÞ¼ysæ+Êq¶ppp¤¤¤ØÙÙõõõ"Rff&[ì$¨aaaõõõà8^466zxxdggëx1 ¹¹¹~~~UUUÓÓÓãï│µäääÄÇÇBãË/ûöíKLL\¿~ýr¤ÆÆÆ666à$MçääLII±µµ]<}ÝØØèææ&"HX,öܹsJJJ:DVV6$$ÄÐÐH$ñ«Bóòò|||ª««OíÝ»(MdjjjbbbeeE/ÃJR^¿~½««hkkëEÒ×$IOOïܹsÊÊÊ´×ÑÑþ§O Þ¿_FFFWWwëÖèk??????ÊìààÀÇÇ&ÊÎÎëêêÐ9wïÞåååÕÑÑ$Ò§§çÃmmm)ùâÅuuuÚOêëëÝÝÝ+++ OåøÇoªéJ Åb»»»Aèb(ZPP --££CA/333!!¡»»ñ188hiiyóæÍ 6лräââÊÌÌ455ݾ}; =ÙÙÙ|||:::4ñjkk=<<ªªªÀÙÑ×׿pá fÍ¢/«©àþ;§NB£Ñ{÷î¤ïHdDD£Hûöí»}û68ûDVVVàôù122rppÐÓÓD[[[JæD"Q__?88 0yyù--ÑÑÑy<N LMMSSSa0 -ÒÓÓ377§Úý_êciiyðàÁ;v NÈ#WW×;vÍãÙ;v888Pjãrḹ¹õ÷÷ÇÇÇC4ÑÑÑà^Ãb±îîîf LMMåååÁÉTsíÚµ»wïÐõ¡WåÈÂÂR\\ìææV^^Hiii---sMpàÀ66¶ÈÈH@Zqùò奷ո;ÅÅÅ w37ÁÁÁp8|®K¢ààà p¶kjj<y`ά9ñ÷=;`#¡P¨¸¸8mmíîînNNNÚÏ3PhYYWPPåå³nGG E~~þðj =RWWß²e´´4"Ý¿ 8qb6ßôè··÷û÷ïg\MMFFF0LTT½¿(ÇO>¹»»÷ôô¬Y³FEEF¥:íííkjjTUU@èM½{÷îÖÖVaaá¿üòåK''§7oÞ°³³ üøø¸²²r@@ HjhhìÙ³gá'ï /«¬¬¼½½]\\&&&ddd={¡øâââç)õ÷÷WTTákýýý²²²H®««Á`ÀÙ·¢®®®FFFÈ#))¦««;sc"¨¨¨èááÎnõÁ§¦¦è.¨Ý|cnnnTTÔÏ(ÜH$üÂhåþGÀÉæzæÌ--NB§¦¦ÁãëääÔ××N®w*C`kk<{öì9}ú´Âäää¼¼<8Ã><<üÎ;¥¥¥KfTÌj¢¸¸XQQQYYyóæÍ¦¦¦ µ¹ººú 8üø1+¾¾¾¤¤$ms½þJdddjjjEEÅr8ÒÒÒüüü@äñ÷÷WUUÕÔÔüã;Çã3336??ßÝݽ¾¾/ËÅUx<ÞÑÑqxxhjjVVV666öôôi3䬬ìÁ¿4urrêêêçl1//ïäɵµµô~¶¸@XXXêêê|}}SSS)55õSlhhhJJJMM Ùû÷ï>|(""²Ä´2p8\PPÁØÙÙÉÈÈdggwwwã?(++§§§«¨¨´µµ ðc{óæ ¹®×?}úȰ~ýúµÑóçÏáp8dÙ# P^^F£áp¸ "½xñ@x{{ÿô¦Æáp^^^mmmLf½½½²²² àxÔ/ºr@ ^^^^^^?ÿpAýûNMww·!=//omm-äååÕ××ÿ÷ß:;;A8%k%%¥´´´mÛ¶hF2òòòùùùjjj4gÕªU üüüG-..¶°°xýú5Ó?A¡P¾¾¾àìSI9Ò#ÇÿòåDGG:HBBâåËh4:$$ÄÛÛûÝ»w#ëëëC W®\' $%%ÉÉɵµµp¡£©©ITTthhÈÇǧ°°ðÿû511!%%ekkN +Gð³ÍúúúKHH´··B^^>((ÈÓÓÃâöåË8îïïøðámø;û÷ïÿúõ+yñòòÒ\«££ãééùWçGê@$Q(ç\öÊVÀçDXXDÚ´iSKKËOW$ZA¾Ãmaañöí[IIIÚÊ388@ Î?êÔ©=8SSS¢££æÆþ»wïôõõ£££]\\Ðh4Í7¸&''Q(^Âc`øöã¥K P¨HGG õcVV¹¹yCCÙg^JJª¼¼³úûû7nÜ4ËÛiËgggFFF8þþý{®¯kkkåååsrr°X¬®®®¤¤dbb" ÓàLLLHHHDEE-í0OåøÓ~YKrssoذ¡µµ&aûÚÛÛ Æ«W¯ tuu©/O{{»Tll,8ÞÎãàà°nÝ:aaáúúzü%%%Ï=SUU @ ¢³³S\\üóçÏ...ÔgxxXLLìÀAAAKþíOëçØÙÙ©ªª:>]pæÌ°°0ööv*W}öìYÞÞ^²f$F£ñx¼ÉÕ«W©,Oee¥¨¨hNNÎfæææEEEH$òñãÇT®:11qçÎÍÍÍdÍHF@@àÓ§O!!!îîîTçÃ|||~~~ËA3Îd9222jiiý~9ÉÍÍ @ ³ÄÞÞ^ZZZLL,++k2MÿÎîÝ»[ZZz{{"$$D àpx}}=Õ"ÄÄÄ<y²µµtºº:<~ü8u*õððHJJ"¿;¥±³³wuumÛ¶MKK«°°:ò<zôHWW·¨¨hºK;ËH9öõõ¥§§WVV®Y³Þ©¨¨H ÄÄÄlllìef¾~ýD"õõõ³³³§û;;{¿¡¡! ª]ì#uKK˪ªª¯_¿«D£Ñ |H$*))qppÌpY ¾xñÂÅÅ ¯µµu±íË/÷ôô îß¿ÏÁÁqõêÕØØØ¿~9//ÏÕÕíÕ«W$O?777Okkëf\ ÌÌÌuuuâââ<<<X¼¾¾ÝÒÒ²°°ð¯×¨._¾²víÚ¬¬¬Egll BUUU .+ÍøÿS_\\yD"Ãí߸qãg jmmÓLLL666ãããçû÷ï,,,<Ó555ÂÂÂbbbaeåKMzzzDDDª««çô`ii)²²òÐÐewx:ÄÂÂ;×lÞ¼¿¾¾~y¾ÊÙ.«g¨HàuuuÕÖÖÞºuQOOoµöäää76nÜ( °fÍÄÄÄU«VQP66¶üüüÑÑÑ¡¡!NNN11±´´´rufee111åææ¶···´´ µòZ! õññsrr"HMMM³¼¬G¦]`)//ÉÈÈýõsQQQ;;;rªrjÊÓÖÖtëÖÎÎÎ_?ÒÔÔôóóûk&¯¨@øçâââ~ý\RRÒÂÂâÄTÞñ g!¿sçÎëׯý|ݺuGÅ`0Ë9üO¤¤¤âãã µµµWã +¬°ÂãL¾ouuuvvvlllMMM»wïþx VXa 3rÄãñÖÖÖ999¿Ð766¾~ýúÿµwǬ Q |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-14 17:36:36
|
Update of /cvsroot/numexp/gnumexp/src/xygraph In directory usw-pr-cvs1:/tmp/cvs-serv20848 Added Files: Bonobo_Sample_Hello.xml hello.py Log Message: Copied a sample program from gnome-python's source and modified it to embebed the xygraph control instead of a button. --- NEW FILE --- <Root> <commands> <cmd name="FileNew" stockid="gtk-new"/> <cmd name="FileOpen" stockid="gtk-open" priority="1"/> <cmd name="FileSave" stockid="gtk-save" priority="1"/> <cmd name="FileSaveAs" stockid="gtk-save-as"/> <cmd name="FileClose" stockid="gtk-close"/> <cmd name="FileExit" stockid="gtk-quit"/> <cmd name="EditUndo" stockid="gtk-undo"/> <cmd name="EditRedo" stockid="gtk-redo"/> <cmd name="EditCut" stockid="gtk-cut"/> <cmd name="EditCopy" stockid="gtk-copy"/> <cmd name="EditPaste" stockid="gtk-paste"/> <cmd name="EditSelect" _label="_Select" _tip="Select"/> <cmd name="EditClear" stockid="gtk-clear"/> <cmd name="HelpAbout" _label="_About..." _tip="About this application" pixtype="stock" pixname="gtk-preferences"/> </commands> <menu> <submenu name="File" _label="_File"> <placeholder/> <separator/> <menuitem name="FileNew" verb=""/> <menuitem name="FileOpen" verb=""/> <menuitem name="FileSave" verb=""/> <menuitem name="FileSaveAs" verb=""/> <menuitem name="FileClose" verb=""/> <menuitem name="FileExit" verb=""/> </submenu> <submenu name="Edit" _label="_Edit"> <placeholder/> <separator/> <menuitem name="EditUndo" verb=""/> <menuitem name="EditRedo" verb=""/> <separator/> <menuitem name="EditCut" verb=""/> <menuitem name="EditCopy" verb=""/> <menuitem name="EditPaste" verb=""/> <menuitem name="EditSelect" verb=""/> <menuitem name="EditClear" verb=""/> </submenu> <submenu name="Help" stockid="gtk-help"> <menuitem name="HelpAbout" verb=""/> </submenu> </menu> <dockitem name="Toolbar" relief="none" homogeneous="1" behavior="exclusive" look="text"> <toolitem name="FileOpen" verb=""/> <toolitem name="FileSave" verb=""/> <toolitem name="FileExit" verb=""/> <placeholder/> </dockitem> </Root> --- NEW FILE --- #!/usr/bin/env python # # hello.py # # A hello world application using the Bonobo UI handler # # Original Authors: # Michael Meeks <mi...@xi...> # Murray Cumming <mu...@us...> # Havoc Pennington <hp...@re...> # # Converted to Python by: # Johan Dahlin <jd...@te...> # import sys import bonobo import bonobo.ui import gtk HELLO_UI_XML = "Bonobo_Sample_Hello.xml" # Keep a list of all open application windows app_list = [] def strreverse (text): l = list (text) l.reverse () return ''.join (l) def show_nothing_dialog (widget): dialog = gtk.MessageDialog (widget, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, 'This does nothing; it is only a demonstration') dialog.run () dialog.destroy () def hello_on_menu_file_new (uic, verbname, win): hello = hello_new () hello.show_all () def hello_on_menu_file_open (uic, verbname, win): show_nothing_dialog (win) def hello_on_menu_file_save (uic, verbname, win): show_nothing_dialog (win) def hello_on_menu_file_saveas (uic, verbname, win): show_nothing_dialog (win) def hello_on_menu_file_exit (uic, verbname, win): sys.exit (0) def hello_on_menu_file_close (uic, verbname, win): app_list.remove (app) app.destroy () if not app_list: hello_on_menu_file_exit (uic, verbname, win) def hello_on_menu_edit_undo (uic, verbname, win): show_nothing_dialog (win) def hello_on_menu_edit_redo (uic, verbname, win): show_nothing_dialog (win) def hello_on_menu_help_about (uic, verbname, win): dialog = gtk.MessageDialog (win, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, 'BonoboUI-Hello') dialog.run () dialog.destroy () def hello_on_button_click (w, label): text = label.get_text () label.set_text (strreverse (text)) # These verb names are standard, see libonobobui/doc/std-ui.xml # to find a list of standard verb names. # The menu items are specified in Bonobo_Sample_Hello.xml and # given names which map to these verbs here. hello_verbs = [ ('FileNew', hello_on_menu_file_new), ('FileOpen', hello_on_menu_file_open), ('FileSave', hello_on_menu_file_save), ('FileSaveAs', hello_on_menu_file_saveas), ('FileClose', hello_on_menu_file_close), ('FileExit', hello_on_menu_file_exit), ('EditUndo', hello_on_menu_edit_undo), ('EditRedo', hello_on_menu_edit_redo), ('HelpAbout', hello_on_menu_help_about) ] def hello_create_main_window (): window = bonobo.ui.Window ('Title', 'test') window.show_all () ui_container = window.get_ui_container () engine = window.get_ui_engine () engine.config_set_path ('/hello-app/UIConfig/kvps') ui_component = bonobo.ui.Component ('test') ui_component.set_container (ui_container.corba_objref ()) bonobo.ui.util_set_ui (ui_component, '', HELLO_UI_XML, 'bonobo-hello') ui_component.add_verb_list (hello_verbs, window) return window def delete_event_cb (window, event): return gtk.TRUE def hello_new (): win = hello_create_main_window () button = gtk.Button () button.set_border_width (10) label = gtk.Label ('Hello World') button.add (label) button.connect ('clicked', hello_on_button_click, label) win.set_size_request (250, 350) win.set_resizable (gtk.TRUE) win.set_property ('allow-shrink', gtk.FALSE) frame = gtk.Frame () frame.set_shadow_type (gtk.SHADOW_IN) xy = bonobo.get_object('OAFIID:Numexp_XYGraph', 'Bonobo/Control') wid = bonobo.ui.bonobo_widget_new_control_from_objref(xy, win.get_ui_container().corba_objref()) #frame.add (button) frame.add(wid) win.set_contents (frame) win.connect ('delete_event', delete_event_cb) app_list.append (win) return win if __name__ == '__main__': app = hello_new () app.show_all () bonobo.main () |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-14 17:34:05
|
Update of /cvsroot/numexp/gnumexp/src/xygraph In directory usw-pr-cvs1:/tmp/cvs-serv20316 Modified Files: numexp-xygraph Log Message: Wrap xygraph as a Bonobo::Control. Index: numexp-xygraph =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/xygraph/numexp-xygraph,v retrieving revision 1.1 retrieving revision 1.2 diff -U4 -r1.1 -r1.2 --- numexp-xygraph 27 Mar 2002 12:01:55 -0000 1.1 +++ numexp-xygraph 14 Apr 2002 17:34:03 -0000 1.2 @@ -1,9 +1,48 @@ #! /usr/bin/env python -import Numexp_XYGraph as xy +from Numexp_XYGraph import * +import bonobo, bonobo.ui, Bonobo, Numexp +EXECUTABLE_NAME = 'numexp-xygraph' +VERSION = '0.0.1' +FACTORY_IID = 'OAFIID:Numexp_XYGraphFactory' +CONTROL_IID = 'OAFIID:Numexp_XYGraph' +#DATA_DIR = '/opt/gnome/share' +class XYGraphControl(bonobo.ui.Control): + def __init__(self): + self.xygraph = xygraph = XYGraphView() + lineattr = LineAttr(color=Color(0, 0, 0), thickness=.2, mode=Linemode.SOLID) + func = Function(lineattr, "Test function", "sin(x)+4", 'x') + func2 = Function(lineattr, "Test function", "cos(x)+4", 'x') + xygraph.plot_area.add_plot_object(func) + xygraph.plot_area.add_plot_object(func2) + bonobo.ui.Control.__init__(self, xygraph.get_toplevel_widget()) + self.connect('activate', self.sample_merge_bonobo_items_cb) + + + def sample_merge_bonobo_items_cb(self, control, state): + print sample_merge_bonobo_items_cb + + +def create_function(generic_factory, iid): + print "create_function: iid=" + iid + if iid == 'OAFIID:Numexp_XYGraph': + return XYGraphControl() + + +bonobo.activate() + +## At the time of this writing, the bonobo python bindings were +## incomplete, so this didn't work. +#bonobo.bonobo_generic_factory_main(FACTORY_IID, create_function) + + +factory = bonobo.GenericFactory(FACTORY_IID, create_function) +bonobo.running_context_auto_exit_unref(factory) +print "XYGraph Control server activated" +bonobo.main() |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-14 17:29:56
|
Update of /cvsroot/numexp/gnumexp/src/nxplot In directory usw-pr-cvs1:/tmp/cvs-serv18982 Modified Files: nxpcanvasobject.c Log Message: Remove warning in nxp_canvas_object_queue_draw() when object has no canvas yet. Index: nxpcanvasobject.c =================================================================== RCS file: /cvsroot/numexp/gnumexp/src/nxplot/nxpcanvasobject.c,v retrieving revision 1.12 retrieving revision 1.13 diff -U4 -r1.12 -r1.13 --- nxpcanvasobject.c 25 Mar 2002 23:13:30 -0000 1.12 +++ nxpcanvasobject.c 14 Apr 2002 17:29:32 -0000 1.13 @@ -351,9 +351,9 @@ void nxp_canvas_object_queue_draw(NxpCanvasObject *self) { g_return_if_fail(self); g_return_if_fail(NXP_IS_CANVAS_OBJECT(self)); - g_return_if_fail(self->canvas); + if (!self->canvas) return; nxp_canvas_redraw_area(self->canvas, &self->bbox); } |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-13 16:36:43
|
Update of /cvsroot/numexp/numexp-core/modules/gmp In directory usw-pr-cvs1:/tmp/cvs-serv5714/modules/gmp Modified Files: .cvsignore Log Message: Index: .cvsignore =================================================================== RCS file: /cvsroot/numexp/numexp-core/modules/gmp/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -U4 -r1.1 -r1.2 --- .cvsignore 9 Apr 2001 22:10:05 -0000 1.1 +++ .cvsignore 13 Apr 2002 16:36:40 -0000 1.2 @@ -3,4 +3,6 @@ .libs .deps *.lo *.la +*.db + |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-13 16:36:43
|
Update of /cvsroot/numexp/numexp-core/modules/latex In directory usw-pr-cvs1:/tmp/cvs-serv5714/modules/latex Modified Files: .cvsignore Log Message: Index: .cvsignore =================================================================== RCS file: /cvsroot/numexp/numexp-core/modules/latex/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -U4 -r1.1 -r1.2 --- .cvsignore 12 Oct 2001 21:22:58 -0000 1.1 +++ .cvsignore 13 Apr 2002 16:36:40 -0000 1.2 @@ -3,5 +3,6 @@ .libs Makefile.in *.la *.lo +*.db |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-13 16:36:43
|
Update of /cvsroot/numexp/numexp-core/misc In directory usw-pr-cvs1:/tmp/cvs-serv5714/misc Added Files: .cvsignore Log Message: --- NEW FILE --- Makefile.in Makefile |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-13 16:36:43
|
Update of /cvsroot/numexp/numexp-core/modules/mathml In directory usw-pr-cvs1:/tmp/cvs-serv5714/modules/mathml Modified Files: .cvsignore Log Message: Index: .cvsignore =================================================================== RCS file: /cvsroot/numexp/numexp-core/modules/mathml/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -U4 -r1.1 -r1.2 --- .cvsignore 12 Oct 2001 21:22:58 -0000 1.1 +++ .cvsignore 13 Apr 2002 16:36:40 -0000 1.2 @@ -3,5 +3,6 @@ .libs *.lo Makefile.in *.la +*.db |
From: Gustavo J. A. M. C. <gu...@us...> - 2002-04-13 16:36:42
|
Update of /cvsroot/numexp/numexp-core/functions In directory usw-pr-cvs1:/tmp/cvs-serv5714/functions Modified Files: .cvsignore Log Message: Index: .cvsignore =================================================================== RCS file: /cvsroot/numexp/numexp-core/functions/.cvsignore,v retrieving revision 1.2 retrieving revision 1.3 diff -U4 -r1.2 -r1.3 --- .cvsignore 20 Apr 2001 13:14:40 -0000 1.2 +++ .cvsignore 13 Apr 2002 16:36:40 -0000 1.3 @@ -3,4 +3,6 @@ *.lo *.la Makefile.in Makefile +*.db + |