X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Fmathml_editor%2Ftest%2FguiGTK.c;h=ce6c31ef227b078c4d9eec664879372115727999;hb=97c2d258a5c524eb5c4b85208899d80751a2c82f;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..ce6c31ef2 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,6 @@ #include #include -#include #include "guiGTK.h" #define XLINK_NS_URI "http://www.w3.org/1999/xlink" @@ -35,8 +35,6 @@ static GtkWidget* window; static GtkWidget* main_area; static GtkWidget* scrolled_area; -static GtkMenuItem* anti_aliasing_item; -static GtkMenuItem* transparency_item; static gpointer context = NULL; static gchar* doc_name = NULL; @@ -48,15 +46,14 @@ 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); -static void options_anti_aliasing(GtkWidget*, gpointer); -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 +62,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 +71,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,17 +80,11 @@ 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" }, { "/Options/Verbosity/_Info", NULL, options_verbosity, 2, "/Options/Verbosity/Errors" }, { "/Options/Verbosity/_Debug", NULL, options_verbosity, 3, "/Options/Verbosity/Errors" }, - { "/Options/sep1", NULL, NULL, 0, "" }, - { "/Options/_Anti Aliasing", NULL, options_anti_aliasing, 0, "" }, - { "/Options/_Transparency", NULL, options_transparency, 0, "" }, { "/_Help" , NULL, NULL, 0, "" }, { "/Help/About...", NULL, help_about, 0, NULL } @@ -133,6 +126,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 +143,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 @@ -183,7 +179,7 @@ GUI_load_document(GdomeDocument* doc) math_view = GTK_MATH_VIEW(main_area); - if (!gtk_math_view_load_doc(math_view, doc)) return -1; + if (!gtk_math_view_load_document(math_view, doc)) return -1; return 0; } @@ -222,6 +218,7 @@ GUI_run() gtk_main(); } +#if 0 void GUI_set_font_manager(FontManagerId id) { @@ -241,17 +238,13 @@ GUI_set_font_manager(FontManagerId id) if (id != gtk_math_view_get_font_manager_type(math_view)) gtk_math_view_set_font_manager_type(math_view, id); - gtk_widget_set_sensitive(anti_aliasing_item, t1); - gtk_widget_set_sensitive(transparency_item, t1); - - if (t1) - { - gtk_math_view_set_anti_aliasing(math_view, GTK_CHECK_MENU_ITEM(anti_aliasing_item)->active); + gtk_widget_set_sensitive(anti_aliasing(math_view, GTK_CHECK_MENU_ITEM(anti_aliasing_item)->active); gtk_math_view_set_transparency(math_view, GTK_CHECK_MENU_ITEM(transparency_item)->active); } gtk_math_view_thaw(math_view); } +#endif static void store_filename(GtkFileSelection* selector, GtkWidget* user_data) @@ -299,25 +292,20 @@ file_open(GtkWidget* widget, gpointer data) } static void -options_font_manager(GtkWidget* widget, FontManagerId id) +file_output_tex(GtkWidget* widget, gpointer data) { - g_return_if_fail(id != FONT_MANAGER_UNKNOWN); - GUI_set_font_manager(id); + g_assert(context != NULL); + edit_output_tex(context); } +#if 0 static void -options_anti_aliasing(GtkWidget* widget, gpointer data) -{ - gboolean aa = gtk_math_view_get_anti_aliasing(GTK_MATH_VIEW(main_area)); - gtk_math_view_set_anti_aliasing(GTK_MATH_VIEW(main_area), !aa); -} - -static void -options_transparency(GtkWidget* widget, gpointer data) +options_font_manager(GtkWidget* widget, FontManagerId id) { - gboolean t = gtk_math_view_get_transparency(GTK_MATH_VIEW(main_area)); - gtk_math_view_set_transparency(GTK_MATH_VIEW(main_area), !t); + g_return_if_fail(id != FONT_MANAGER_UNKNOWN); + GUI_set_font_manager(id); } +#endif static void options_verbosity(GtkWidget* widget, guint level) @@ -369,6 +357,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 +569,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; } @@ -628,9 +626,6 @@ create_widget_set(gpointer context) gtk_box_pack_start(GTK_BOX(main_vbox), scrolled_area, TRUE, TRUE, 0); gtk_widget_show(main_vbox); - - if (gtk_math_view_get_anti_aliasing(GTK_MATH_VIEW(main_area))) - gtk_menu_item_activate(anti_aliasing_item); } GtkWidget* @@ -650,11 +645,5 @@ get_main_menu() gtk_window_add_accel_group(GTK_WINDOW(window), accel_group); - menu_item = gtk_item_factory_get_widget(item_factory, "/Options/Anti Aliasing"); - anti_aliasing_item = GTK_MENU_ITEM(menu_item); - - menu_item = gtk_item_factory_get_widget(item_factory, "/Options/Transparency"); - transparency_item = GTK_MENU_ITEM(menu_item); - return gtk_item_factory_get_widget(item_factory, "
"); }