]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/mathml_editor/test/guiGTK.c
ocaml 3.09 transition
[helm.git] / helm / DEVEL / mathml_editor / test / guiGTK.c
index 3a6261fe341e30f24bcd5feef4d43040d70299bf..ce6c31ef227b078c4d9eec664879372115727999 100644 (file)
@@ -1,49 +1,26 @@
-/* Copyright (C) 2002-2003, Luca Padovani <luca.padovani@cs.unibo.it>,
- *                    2003, Paolo Marinelli <pmarinel@cs.unibo.it>.
- *
- * This file is part of EdiTeX, an editor of mathematical
- * expressions based on TeX syntax
+/* This file is part of EdiTeX, an editor of mathematical
+ * expressions based on TeX syntax.
  * 
- * EdiTeX 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.
+ * Copyright (C) 2002-2003 Luca Padovani <lpadovan@cs.unibo.it>,
+ *                    2003 Paolo Marinelli <pmarinel@cs.unibo.it>.
  *
- * EdiTeX 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.
+ * 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.
  *
- * You should have received a copy of the GNU General Public License
- * along with EdiTeX; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- * 
- * For details, see the EdiTeX World-Wide-Web page,
- * http://helm.cs.unibo.it/editex, or send a mail to
- * <luca.padovani@cs.unibo.it>
- */
-/*
- * Copyright (C) 2000, Luca Padovani <luca.padovani@cs.unibo.it>.
- * 
- * 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,
+ * 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
- * <luca.padovani@cs.unibo.it>
+ * 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 <lpadovan@cs.unibo.it>
  */
 
 #include <config.h>
@@ -51,7 +28,6 @@
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
 
-#include <gtkmathview/gtkmathview.h>
 #include "guiGTK.h"
 
 #define XLINK_NS_URI "http://www.w3.org/1999/xlink"
@@ -59,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;
@@ -73,12 +47,9 @@ static void file_open(GtkWidget*, gpointer);
 static void file_re_open(GtkWidget*, gpointer);
 static void file_close(GtkWidget*, gpointer);
 static void file_output_tex(GtkWidget*, gpointer);
-static void options_font_manager(GtkWidget*, FontManagerId);
 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);
@@ -109,17 +80,11 @@ static GtkItemFactoryEntry menu_items[] = {
   { "/Options/Default Font Size/sep1", NULL, NULL,                  0,  "<Separator>" },
   { "/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,  "<Branch>" },
-  { "/Options/Font Manager/_GTK",      NULL, options_font_manager,  FONT_MANAGER_GTK, "<RadioItem>" },
-  { "/Options/Font Manager/_Type 1",   NULL, options_font_manager,  FONT_MANAGER_T1, "/Options/Font Manager/GTK" },
   { "/Options/Verbosity",              NULL, NULL,                  0,  "<Branch>" },
   { "/Options/Verbosity/_Errors",      NULL, options_verbosity,     0,  "<RadioItem>" },
   { "/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,  "<Separator>" },
-  { "/Options/_Anti Aliasing",         NULL, options_anti_aliasing, 0,  "<ToggleItem>" },
-  { "/Options/_Transparency",          NULL, options_transparency,  0,  "<ToggleItem>" },
 
   { "/_Help" ,        NULL,         NULL,          0, "<LastBranch>" },
   { "/Help/About...", NULL,         help_about,    0, NULL }
@@ -214,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;
 }
@@ -253,6 +218,7 @@ GUI_run()
   gtk_main();
 }
 
+#if 0
 void
 GUI_set_font_manager(FontManagerId id)
 {
@@ -272,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)
@@ -336,26 +298,14 @@ file_output_tex(GtkWidget* widget, gpointer data)
   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);
 }
-
-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)
-{
-  gboolean t = gtk_math_view_get_transparency(GTK_MATH_VIEW(main_area));
-  gtk_math_view_set_transparency(GTK_MATH_VIEW(main_area), !t);
-}
+#endif
 
 static void
 options_verbosity(GtkWidget* widget, guint level)
@@ -619,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;
     }
@@ -673,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*
@@ -695,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, "<main>");
 }