X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Fmathml_editor%2Ftest%2FguiGTK.c;h=cf59421cffecbdc2f92b6db7d99218e32798490d;hb=e7e2a523299d807370b292b44e77f46fad1638c9;hp=7426e3f5db0da0ed6b629e8820fe46b0e192e9e3;hpb=387aeebf96181c051b7f527a0901b173cfcdf194;p=helm.git diff --git a/helm/DEVEL/mathml_editor/test/guiGTK.c b/helm/DEVEL/mathml_editor/test/guiGTK.c index 7426e3f5d..cf59421cf 100644 --- a/helm/DEVEL/mathml_editor/test/guiGTK.c +++ b/helm/DEVEL/mathml_editor/test/guiGTK.c @@ -1,25 +1,26 @@ -/* - * Copyright (C) 2000, Luca Padovani . +/* This file is part of EdiTeX, an editor of mathematical + * expressions based on TeX syntax. * - * This file is part of GtkMathView, a Gtk widget for MathML. - * - * GtkMathView is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * GtkMathView is distributed in the hope that it will be useful, + * Copyright (C) 2002-2003 Luca Padovani , + * 2003 Paolo Marinelli . + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GtkMathView; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * For details, see the GtkMathView World-Wide-Web page, - * http://cs.unibo.it/~lpadovan/mml-widget, or send a mail to - * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * For more information, please visit the project's home page + * http://helm.cs.unibo.it/editex/ + * or send an email to */ #include @@ -27,7 +28,7 @@ #include #include -#include +#include #include "guiGTK.h" #define XLINK_NS_URI "http://www.w3.org/1999/xlink" @@ -48,7 +49,7 @@ static GtkWidget* get_main_menu(void); static void file_open(GtkWidget*, gpointer); static void file_re_open(GtkWidget*, gpointer); static void file_close(GtkWidget*, gpointer); -static void options_font_manager(GtkWidget*, FontManagerId); +static void file_output_tex(GtkWidget*, gpointer); static void options_set_font_size(GtkWidget*, gpointer); static void options_change_font_size(GtkWidget*, gboolean); static void options_verbosity(GtkWidget*, guint); @@ -57,6 +58,7 @@ static void options_transparency(GtkWidget*, gpointer); static void edit_delete_selection(GtkWidget*, gpointer); static void edit_select_parent(GtkWidget*, gpointer); static void edit_reset_selection(GtkWidget*, gpointer); +static void edit_reset(GtkWidget*, gpointer); static void edit_insert(GtkWidget*, gpointer); static void help_about(GtkWidget*, gpointer); @@ -65,6 +67,7 @@ static GtkItemFactoryEntry menu_items[] = { { "/File/_Open...", "O", file_open, 0, NULL }, { "/File/_Reopen", NULL, file_re_open, 0, NULL }, { "/File/_Close", "W", file_close, 0, NULL }, + { "/File/Output _TeX", NULL, file_output_tex, 0, NULL }, { "/File/sep1", NULL, NULL, 0, "" }, { "/File/_Quit", "Q", gtk_main_quit, 0, NULL }, @@ -73,6 +76,7 @@ static GtkItemFactoryEntry menu_items[] = { { "/Edit/Delete Selection", NULL, edit_delete_selection, 0, NULL }, { "/Edit/Select Parent", NULL, edit_select_parent, 0, NULL }, { "/Edit/sep1", NULL, NULL, 0, "" }, + { "/Edit/_Reset", NULL, edit_reset, 0, NULL }, { "/Edit/Insert...", "I", edit_insert, 0, NULL }, { "/_Options", NULL, NULL, 0, "" }, @@ -81,9 +85,6 @@ static GtkItemFactoryEntry menu_items[] = { { "/Options/Default Font Size/sep1", NULL, NULL, 0, "" }, { "/Options/Default Font Size/Larger", NULL, options_change_font_size, TRUE, NULL }, { "/Options/Default Font Size/Smaller", NULL, options_change_font_size, FALSE, NULL }, - { "/Options/Font Manager", NULL, NULL, 0, "" }, - { "/Options/Font Manager/_GTK", NULL, options_font_manager, FONT_MANAGER_GTK, "" }, - { "/Options/Font Manager/_Type 1", NULL, options_font_manager, FONT_MANAGER_T1, "/Options/Font Manager/GTK" }, { "/Options/Verbosity", NULL, NULL, 0, "" }, { "/Options/Verbosity/_Errors", NULL, options_verbosity, 0, "" }, { "/Options/Verbosity/_Warnings", NULL, options_verbosity, 1, "/Options/Verbosity/Errors" }, @@ -133,6 +134,9 @@ load_error_msg(const char* name) g_free(msg); } +static guint edit_timeout_id; +extern void edit_timeout(gpointer); + void GUI_init(int* argc, char*** argv, char* title, guint width, guint height, gpointer c) { @@ -147,7 +151,7 @@ GUI_init(int* argc, char*** argv, char* title, guint width, guint height, gpoint gtk_widget_show(window); context = c; - /*edit_timeout_id = gtk_timeout_add(400, edit_timeout, context);*/ + /*edit_timeout_id = gtk_timeout_add(50, edit_timeout, context);*/ } void @@ -222,6 +226,7 @@ GUI_run() gtk_main(); } +#if 0 void GUI_set_font_manager(FontManagerId id) { @@ -252,6 +257,7 @@ GUI_set_font_manager(FontManagerId id) gtk_math_view_thaw(math_view); } +#endif static void store_filename(GtkFileSelection* selector, GtkWidget* user_data) @@ -298,12 +304,21 @@ file_open(GtkWidget* widget, gpointer data) gtk_widget_show (fs); } +static void +file_output_tex(GtkWidget* widget, gpointer data) +{ + g_assert(context != NULL); + edit_output_tex(context); +} + +#if 0 static void options_font_manager(GtkWidget* widget, FontManagerId id) { g_return_if_fail(id != FONT_MANAGER_UNKNOWN); GUI_set_font_manager(id); } +#endif static void options_anti_aliasing(GtkWidget* widget, gpointer data) @@ -369,6 +384,13 @@ edit_reset_selection(GtkWidget* widget, gpointer data) } } +static void +edit_reset(GtkWidget* widget, gpointer data) +{ + g_assert(context != NULL); + edit_reset_tex(context); +} + static void insert_tex(GtkWidget* widget, GtkEntry* entry) { @@ -574,10 +596,13 @@ key_press_event(gpointer c, switch (event->keyval) { case GDK_BackSpace: - edit_drop(context, event->state & GDK_MOD1_MASK); + edit_drop(context, event->state & GDK_MOD1_MASK, event->state & GDK_CONTROL_MASK); + break; + case GDK_Tab: + edit_complete(context); break; default: - if ((event->state & (~GDK_SHIFT_MASK)) == 0 && event->keyval < 0x80) + if ((event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK)) == 0 && event->keyval < 0x80) edit_push_char(context, event->keyval); return FALSE; }