[Avidemux-svn-commit] r3348 - in branches/avidemux_2.4_branch/avidemux: . ADM_ocr ADM_userInterfaces/ADM_GTK/ADM_gui2 ADM_userInterfaces/ADM_GTK/ADM_ocr ADM_userInterfaces/ADM_NONE/ADM_dialog ADM_userInterfaces/ADM_QT4/ADM_dialog

mean at BerliOS mean at mail.berlios.de
Sun Jul 8 19:52:06 CEST 2007


Author: mean
Date: 2007-07-08 19:52:05 +0200 (Sun, 08 Jul 2007)
New Revision: 3348

Modified:
   branches/avidemux_2.4_branch/avidemux/ADM_ocr/adm_glyph.cpp
   branches/avidemux_2.4_branch/avidemux/ADM_ocr/adm_glyph.h
   branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_gui2/GUI_main2.cpp
   branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_gui2/GUI_menumap.h
   branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_ocr/CMakeLists.txt
   branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_ocr/adm_editglyph.cpp
   branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_NONE/ADM_dialog/DIA_none.cpp
   branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_QT4/ADM_dialog/DIA_none.cpp
   branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_QT4/ADM_dialog/Q_jobs.cpp
   branches/avidemux_2.4_branch/avidemux/gtk_gui.cpp
   branches/avidemux_2.4_branch/avidemux/gui_action.hxx
Log:
very basic glyphset editor

Modified: branches/avidemux_2.4_branch/avidemux/ADM_ocr/adm_glyph.cpp
===================================================================
--- branches/avidemux_2.4_branch/avidemux/ADM_ocr/adm_glyph.cpp	2007-07-08 17:19:30 UTC (rev 3347)
+++ branches/avidemux_2.4_branch/avidemux/ADM_ocr/adm_glyph.cpp	2007-07-08 17:52:05 UTC (rev 3348)
@@ -135,5 +135,23 @@
             return nw;
 
 }
+/**
+    \fn glyphSearchFather
+    \brief Returns the father of the "in" glyph.
+    @param in : Glyph to search the father of
+    @param head : head of glyph list
+    @returns father or NULL if not found
+*/
+admGlyph *glyphSearchFather(admGlyph *in,admGlyph *head )
+{
+  admGlyph *cur=head;
+  while(cur)
+  {
+    if(!cur->next) return NULL;
+    if(cur->next==in) return cur; 
+    cur=cur->next;
+  }
+  return NULL;
+}
 /*************************************************/
 

Modified: branches/avidemux_2.4_branch/avidemux/ADM_ocr/adm_glyph.h
===================================================================
--- branches/avidemux_2.4_branch/avidemux/ADM_ocr/adm_glyph.h	2007-07-08 17:19:30 UTC (rev 3347)
+++ branches/avidemux_2.4_branch/avidemux/ADM_ocr/adm_glyph.h	2007-07-08 17:52:05 UTC (rev 3348)
@@ -59,4 +59,5 @@
 uint8_t  destroyGlyphTree(admGlyph *startGlyph);
 uint8_t  insertInGlyphTree(admGlyph *startGlyph, admGlyph *candidate);
 admGlyph *clippedGlyph(admGlyph *in);
+admGlyph *glyphSearchFather(admGlyph *in,admGlyph *head );
 #endif

Modified: branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_gui2/GUI_main2.cpp
===================================================================
--- branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_gui2/GUI_main2.cpp	2007-07-08 17:19:30 UTC (rev 3347)
+++ branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_gui2/GUI_main2.cpp	2007-07-08 17:52:05 UTC (rev 3348)
@@ -36,11 +36,11 @@
   GtkWidget *menuitem1;
   GtkWidget *menuitem1_menu;
   GtkWidget *open_video1;
-  GtkWidget *image8196;
+  GtkWidget *image8246;
   GtkWidget *append_video1;
-  GtkWidget *image8197;
+  GtkWidget *image8247;
   GtkWidget *save_stuff;
-  GtkWidget *image8198;
+  GtkWidget *image8248;
   GtkWidget *save_stuff_menu;
   GtkWidget *save_as_avi1;
   GtkWidget *separator1;
@@ -50,41 +50,41 @@
   GtkWidget *close1;
   GtkWidget *separator3;
   GtkWidget *save_project1;
-  GtkWidget *image8199;
+  GtkWidget *image8249;
   GtkWidget *save_project_as1;
-  GtkWidget *image8200;
+  GtkWidget *image8250;
   GtkWidget *run_script1;
-  GtkWidget *image8201;
+  GtkWidget *image8251;
   GtkWidget *add_to_joblist1;
   GtkWidget *joblist1;
   GtkWidget *separator16;
   GtkWidget *connect_to_avsproxy1;
   GtkWidget *separator18;
   GtkWidget *video_informations1;
-  GtkWidget *image8202;
+  GtkWidget *image8252;
   GtkWidget *avi_muxer_options1;
   GtkWidget *separator4;
   GtkWidget *quit1;
-  GtkWidget *image8203;
+  GtkWidget *image8253;
   GtkWidget *menuitem2;
   GtkWidget *menuitem2_menu;
   GtkWidget *reset_edits1;
-  GtkWidget *image8204;
+  GtkWidget *image8254;
   GtkWidget *separator5;
   GtkWidget *cut1;
-  GtkWidget *image8205;
+  GtkWidget *image8255;
   GtkWidget *copy1;
-  GtkWidget *image8206;
+  GtkWidget *image8256;
   GtkWidget *paste1;
-  GtkWidget *image8207;
+  GtkWidget *image8257;
   GtkWidget *delete1;
-  GtkWidget *image8208;
+  GtkWidget *image8258;
   GtkWidget *separator6;
   GtkWidget *set_marker_a1;
   GtkWidget *set_marker_b1;
   GtkWidget *separator7;
   GtkWidget *preferences1;
-  GtkWidget *image8209;
+  GtkWidget *image8259;
   GtkWidget *view1;
   GtkWidget *view1_menu;
   GtkWidget *toolbar1;
@@ -113,13 +113,13 @@
   GtkWidget *build_vbr_time_map1;
   GtkWidget *separator11;
   GtkWidget *save_audio1;
-  GtkWidget *image8210;
+  GtkWidget *image8260;
   GtkWidget *audio_encoder1;
   GtkWidget *filters2;
   GtkWidget *tools1;
   GtkWidget *tools1_menu;
   GtkWidget *calculator1;
-  GtkWidget *image8211;
+  GtkWidget *image8261;
   GtkWidget *separator12;
   GtkWidget *rebuild_frames;
   GtkWidget *check_frames;
@@ -128,6 +128,7 @@
   GtkWidget *separator13;
   GtkWidget *v2v;
   GtkWidget *ocr_vobsub_2_srt;
+  GtkWidget *edit_glyph1;
   GtkWidget *separator17;
   GtkWidget *see_hex1;
   GtkWidget *help1;
@@ -140,35 +141,35 @@
   GtkWidget *go1;
   GtkWidget *go1_menu;
   GtkWidget *play_video1;
-  GtkWidget *image8212;
+  GtkWidget *image8262;
   GtkWidget *previous_frame1;
-  GtkWidget *image8213;
+  GtkWidget *image8263;
   GtkWidget *next_frame1;
-  GtkWidget *image8214;
+  GtkWidget *image8264;
   GtkWidget *previous_intra_frame1;
-  GtkWidget *image8215;
+  GtkWidget *image8265;
   GtkWidget *next_intra_frame1;
-  GtkWidget *image8216;
+  GtkWidget *image8266;
   GtkWidget *search_previous_black_frame1;
   GtkWidget *search_next_black_frame1;
   GtkWidget *first_frame1;
-  GtkWidget *image8217;
+  GtkWidget *image8267;
   GtkWidget *last_frame1;
-  GtkWidget *image8218;
+  GtkWidget *image8268;
   GtkWidget *separator14;
   GtkWidget *go_to_marker_a1;
   GtkWidget *go_to_marker_b1;
   GtkWidget *separator15;
   GtkWidget *jum_to_frame1;
-  GtkWidget *image8219;
+  GtkWidget *image8269;
   GtkWidget *jump_to_time1;
-  GtkWidget *image8220;
+  GtkWidget *image8270;
   GtkWidget *custom1;
   GtkWidget *help2;
   GtkWidget *help2_menu;
   GtkWidget *show_builtin_support1;
   GtkWidget *about1;
-  GtkWidget *image8221;
+  GtkWidget *image8271;
   GtkWidget *toolbar2;
   GtkIconSize tmp_toolbar_icon_size;
   GtkWidget *menutoolbuttonOpen;
@@ -294,9 +295,9 @@
                               GDK_O, (GdkModifierType)( GDK_CONTROL_MASK),
                               GTK_ACCEL_VISIBLE);
 
-  image8196 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8196);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (open_video1), image8196);
+  image8246 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8246);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (open_video1), image8246);
 
   append_video1 = gtk_image_menu_item_new_with_mnemonic (_("_Append..."));
   gtk_widget_show (append_video1);
@@ -305,17 +306,17 @@
                               GDK_A, (GdkModifierType)( GDK_CONTROL_MASK | GDK_MOD1_MASK),
                               GTK_ACCEL_VISIBLE);
 
-  image8197 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8197);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (append_video1), image8197);
+  image8247 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8247);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (append_video1), image8247);
 
   save_stuff = gtk_image_menu_item_new_with_mnemonic (_("_Save"));
   gtk_widget_show (save_stuff);
   gtk_container_add (GTK_CONTAINER (menuitem1_menu), save_stuff);
 
-  image8198 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8198);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (save_stuff), image8198);
+  image8248 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8248);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (save_stuff), image8248);
 
   save_stuff_menu = gtk_menu_new ();
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (save_stuff), save_stuff_menu);
@@ -357,25 +358,25 @@
   gtk_widget_show (save_project1);
   gtk_container_add (GTK_CONTAINER (menuitem1_menu), save_project1);
 
-  image8199 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8199);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (save_project1), image8199);
+  image8249 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8249);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (save_project1), image8249);
 
   save_project_as1 = gtk_image_menu_item_new_with_mnemonic (_("Save P_roject As..."));
   gtk_widget_show (save_project_as1);
   gtk_container_add (GTK_CONTAINER (menuitem1_menu), save_project_as1);
 
-  image8200 = gtk_image_new_from_stock ("gtk-save-as", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8200);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (save_project_as1), image8200);
+  image8250 = gtk_image_new_from_stock ("gtk-save-as", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8250);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (save_project_as1), image8250);
 
   run_script1 = gtk_image_menu_item_new_with_mnemonic (_("_Load/Run Project..."));
   gtk_widget_show (run_script1);
   gtk_container_add (GTK_CONTAINER (menuitem1_menu), run_script1);
 
-  image8201 = gtk_image_new_from_stock ("gtk-execute", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8201);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (run_script1), image8201);
+  image8251 = gtk_image_new_from_stock ("gtk-execute", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8251);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (run_script1), image8251);
 
   add_to_joblist1 = gtk_menu_item_new_with_mnemonic (_("A_dd to Joblist..."));
   gtk_widget_show (add_to_joblist1);
@@ -409,9 +410,9 @@
                               GDK_Return, (GdkModifierType)( GDK_MOD1_MASK),
                               GTK_ACCEL_VISIBLE);
 
-  image8202 = gtk_image_new_from_stock ("gtk-properties", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8202);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (video_informations1), image8202);
+  image8252 = gtk_image_new_from_stock ("gtk-properties", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8252);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (video_informations1), image8252);
 
   avi_muxer_options1 = gtk_menu_item_new_with_mnemonic (_("AVI _Muxer Options"));
   gtk_widget_show (avi_muxer_options1);
@@ -429,9 +430,9 @@
                               GDK_Q, (GdkModifierType)( GDK_CONTROL_MASK),
                               GTK_ACCEL_VISIBLE);
 
-  image8203 = gtk_image_new_from_stock ("gtk-quit", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8203);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (quit1), image8203);
+  image8253 = gtk_image_new_from_stock ("gtk-quit", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8253);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (quit1), image8253);
 
   menuitem2 = gtk_menu_item_new_with_mnemonic (_("_Edit"));
   gtk_widget_show (menuitem2);
@@ -444,9 +445,9 @@
   gtk_widget_show (reset_edits1);
   gtk_container_add (GTK_CONTAINER (menuitem2_menu), reset_edits1);
 
-  image8204 = gtk_image_new_from_stock ("gtk-undo", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8204);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (reset_edits1), image8204);
+  image8254 = gtk_image_new_from_stock ("gtk-undo", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8254);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (reset_edits1), image8254);
 
   separator5 = gtk_separator_menu_item_new ();
   gtk_widget_show (separator5);
@@ -460,9 +461,9 @@
                               GDK_X, (GdkModifierType)( GDK_CONTROL_MASK),
                               GTK_ACCEL_VISIBLE);
 
-  image8205 = gtk_image_new_from_stock ("gtk-cut", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8205);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (cut1), image8205);
+  image8255 = gtk_image_new_from_stock ("gtk-cut", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8255);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (cut1), image8255);
 
   copy1 = gtk_image_menu_item_new_with_mnemonic (_("_Copy"));
   gtk_widget_show (copy1);
@@ -471,9 +472,9 @@
                               GDK_C, (GdkModifierType)( GDK_CONTROL_MASK),
                               GTK_ACCEL_VISIBLE);
 
-  image8206 = gtk_image_new_from_stock ("gtk-copy", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8206);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (copy1), image8206);
+  image8256 = gtk_image_new_from_stock ("gtk-copy", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8256);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (copy1), image8256);
 
   paste1 = gtk_image_menu_item_new_with_mnemonic (_("_Paste"));
   gtk_widget_show (paste1);
@@ -482,9 +483,9 @@
                               GDK_V, (GdkModifierType)( GDK_CONTROL_MASK),
                               GTK_ACCEL_VISIBLE);
 
-  image8207 = gtk_image_new_from_stock ("gtk-paste", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8207);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (paste1), image8207);
+  image8257 = gtk_image_new_from_stock ("gtk-paste", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8257);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (paste1), image8257);
 
   delete1 = gtk_image_menu_item_new_with_mnemonic (_("_Delete"));
   gtk_widget_show (delete1);
@@ -493,9 +494,9 @@
                               GDK_Delete, (GdkModifierType)( 0 ),
                               GTK_ACCEL_VISIBLE);
 
-  image8208 = gtk_image_new_from_stock ("gtk-remove", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8208);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (delete1), image8208);
+  image8258 = gtk_image_new_from_stock ("gtk-remove", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8258);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (delete1), image8258);
 
   separator6 = gtk_separator_menu_item_new ();
   gtk_widget_show (separator6);
@@ -525,9 +526,9 @@
   gtk_widget_show (preferences1);
   gtk_container_add (GTK_CONTAINER (menuitem2_menu), preferences1);
 
-  image8209 = gtk_image_new_from_stock ("gtk-preferences", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8209);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (preferences1), image8209);
+  image8259 = gtk_image_new_from_stock ("gtk-preferences", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8259);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (preferences1), image8259);
 
   view1 = gtk_menu_item_new_with_mnemonic (_("_View"));
   gtk_widget_show (view1);
@@ -681,9 +682,9 @@
                               GDK_S, (GdkModifierType)( GDK_CONTROL_MASK | GDK_MOD1_MASK),
                               GTK_ACCEL_VISIBLE);
 
-  image8210 = gtk_image_new_from_stock ("gtk-save-as", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8210);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (save_audio1), image8210);
+  image8260 = gtk_image_new_from_stock ("gtk-save-as", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8260);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (save_audio1), image8260);
 
   audio_encoder1 = gtk_menu_item_new_with_mnemonic (_("_Encoder"));
   gtk_widget_show (audio_encoder1);
@@ -710,9 +711,9 @@
                               GDK_F7, (GdkModifierType)( 0 ),
                               GTK_ACCEL_VISIBLE);
 
-  image8211 = create_pixmap (mainWindow, "gnome-calculator_small.xpm");
-  gtk_widget_show (image8211);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (calculator1), image8211);
+  image8261 = create_pixmap (mainWindow, "gnome-calculator_small.xpm");
+  gtk_widget_show (image8261);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (calculator1), image8261);
 
   separator12 = gtk_separator_menu_item_new ();
   gtk_widget_show (separator12);
@@ -748,6 +749,10 @@
   gtk_widget_show (ocr_vobsub_2_srt);
   gtk_container_add (GTK_CONTAINER (tools1_menu), ocr_vobsub_2_srt);
 
+  edit_glyph1 = gtk_menu_item_new_with_mnemonic (_("Edit glyph"));
+  gtk_widget_show (edit_glyph1);
+  gtk_container_add (GTK_CONTAINER (tools1_menu), edit_glyph1);
+
   separator17 = gtk_separator_menu_item_new ();
   gtk_widget_show (separator17);
   gtk_container_add (GTK_CONTAINER (tools1_menu), separator17);
@@ -798,9 +803,9 @@
                               GDK_P, (GdkModifierType)( 0 ),
                               GTK_ACCEL_VISIBLE);
 
-  image8212 = gtk_image_new_from_stock ("gtk-media-play", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8212);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (play_video1), image8212);
+  image8262 = gtk_image_new_from_stock ("gtk-media-play", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8262);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (play_video1), image8262);
 
   previous_frame1 = gtk_image_menu_item_new_with_mnemonic (_("P_revious Frame"));
   gtk_widget_show (previous_frame1);
@@ -809,9 +814,9 @@
                               GDK_KP_4, (GdkModifierType)( 0 ),
                               GTK_ACCEL_VISIBLE);
 
-  image8213 = gtk_image_new_from_stock ("gtk-media-previous", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8213);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (previous_frame1), image8213);
+  image8263 = gtk_image_new_from_stock ("gtk-media-previous", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8263);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (previous_frame1), image8263);
 
   next_frame1 = gtk_image_menu_item_new_with_mnemonic (_("_Next Frame"));
   gtk_widget_show (next_frame1);
@@ -820,9 +825,9 @@
                               GDK_KP_6, (GdkModifierType)( 0 ),
                               GTK_ACCEL_VISIBLE);
 
-  image8214 = gtk_image_new_from_stock ("gtk-media-next", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8214);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (next_frame1), image8214);
+  image8264 = gtk_image_new_from_stock ("gtk-media-next", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8264);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (next_frame1), image8264);
 
   previous_intra_frame1 = gtk_image_menu_item_new_with_mnemonic (_("Pr_evious Intra Frame"));
   gtk_widget_show (previous_intra_frame1);
@@ -831,9 +836,9 @@
                               GDK_KP_2, (GdkModifierType)( 0 ),
                               GTK_ACCEL_VISIBLE);
 
-  image8215 = gtk_image_new_from_stock ("gtk-media-rewind", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8215);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (previous_intra_frame1), image8215);
+  image8265 = gtk_image_new_from_stock ("gtk-media-rewind", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8265);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (previous_intra_frame1), image8265);
 
   next_intra_frame1 = gtk_image_menu_item_new_with_mnemonic (_("Next _Intra Frame"));
   gtk_widget_show (next_intra_frame1);
@@ -842,9 +847,9 @@
                               GDK_KP_8, (GdkModifierType)( 0 ),
                               GTK_ACCEL_VISIBLE);
 
-  image8216 = gtk_image_new_from_stock ("gtk-media-forward", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8216);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (next_intra_frame1), image8216);
+  image8266 = gtk_image_new_from_stock ("gtk-media-forward", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8266);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (next_intra_frame1), image8266);
 
   search_previous_black_frame1 = gtk_menu_item_new_with_mnemonic (_("Previou_s Black Frame"));
   gtk_widget_show (search_previous_black_frame1);
@@ -861,9 +866,9 @@
                               GDK_Home, (GdkModifierType)( 0 ),
                               GTK_ACCEL_VISIBLE);
 
-  image8217 = gtk_image_new_from_stock ("gtk-goto-first", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8217);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (first_frame1), image8217);
+  image8267 = gtk_image_new_from_stock ("gtk-goto-first", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8267);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (first_frame1), image8267);
 
   last_frame1 = gtk_image_menu_item_new_with_mnemonic (_("_Last Frame"));
   gtk_widget_show (last_frame1);
@@ -872,9 +877,9 @@
                               GDK_End, (GdkModifierType)( 0 ),
                               GTK_ACCEL_VISIBLE);
 
-  image8218 = gtk_image_new_from_stock ("gtk-goto-last", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8218);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (last_frame1), image8218);
+  image8268 = gtk_image_new_from_stock ("gtk-goto-last", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8268);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (last_frame1), image8268);
 
   separator14 = gtk_separator_menu_item_new ();
   gtk_widget_show (separator14);
@@ -907,9 +912,9 @@
                               GDK_F, (GdkModifierType)( GDK_CONTROL_MASK),
                               GTK_ACCEL_VISIBLE);
 
-  image8219 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8219);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (jum_to_frame1), image8219);
+  image8269 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8269);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (jum_to_frame1), image8269);
 
   jump_to_time1 = gtk_image_menu_item_new_with_mnemonic (_("Jump to _Time..."));
   gtk_widget_show (jump_to_time1);
@@ -918,9 +923,9 @@
                               GDK_T, (GdkModifierType)( GDK_CONTROL_MASK),
                               GTK_ACCEL_VISIBLE);
 
-  image8220 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8220);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (jump_to_time1), image8220);
+  image8270 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8270);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (jump_to_time1), image8270);
 
   custom1 = gtk_menu_item_new_with_mnemonic (_("_Custom"));
   gtk_widget_show (custom1);
@@ -941,9 +946,9 @@
   gtk_widget_show (about1);
   gtk_container_add (GTK_CONTAINER (help2_menu), about1);
 
-  image8221 = gtk_image_new_from_stock ("gtk-about", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image8221);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (about1), image8221);
+  image8271 = gtk_image_new_from_stock ("gtk-about", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image8271);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (about1), image8271);
 
   toolbar2 = gtk_toolbar_new ();
   gtk_widget_show (toolbar2);
@@ -1440,11 +1445,11 @@
   GLADE_HOOKUP_OBJECT (mainWindow, menuitem1, "menuitem1");
   GLADE_HOOKUP_OBJECT (mainWindow, menuitem1_menu, "menuitem1_menu");
   GLADE_HOOKUP_OBJECT (mainWindow, open_video1, "open_video1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8196, "image8196");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8246, "image8246");
   GLADE_HOOKUP_OBJECT (mainWindow, append_video1, "append_video1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8197, "image8197");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8247, "image8247");
   GLADE_HOOKUP_OBJECT (mainWindow, save_stuff, "save_stuff");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8198, "image8198");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8248, "image8248");
   GLADE_HOOKUP_OBJECT (mainWindow, save_stuff_menu, "save_stuff_menu");
   GLADE_HOOKUP_OBJECT (mainWindow, save_as_avi1, "save_as_avi1");
   GLADE_HOOKUP_OBJECT (mainWindow, separator1, "separator1");
@@ -1454,41 +1459,41 @@
   GLADE_HOOKUP_OBJECT (mainWindow, close1, "close1");
   GLADE_HOOKUP_OBJECT (mainWindow, separator3, "separator3");
   GLADE_HOOKUP_OBJECT (mainWindow, save_project1, "save_project1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8199, "image8199");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8249, "image8249");
   GLADE_HOOKUP_OBJECT (mainWindow, save_project_as1, "save_project_as1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8200, "image8200");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8250, "image8250");
   GLADE_HOOKUP_OBJECT (mainWindow, run_script1, "run_script1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8201, "image8201");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8251, "image8251");
   GLADE_HOOKUP_OBJECT (mainWindow, add_to_joblist1, "add_to_joblist1");
   GLADE_HOOKUP_OBJECT (mainWindow, joblist1, "joblist1");
   GLADE_HOOKUP_OBJECT (mainWindow, separator16, "separator16");
   GLADE_HOOKUP_OBJECT (mainWindow, connect_to_avsproxy1, "connect_to_avsproxy1");
   GLADE_HOOKUP_OBJECT (mainWindow, separator18, "separator18");
   GLADE_HOOKUP_OBJECT (mainWindow, video_informations1, "video_informations1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8202, "image8202");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8252, "image8252");
   GLADE_HOOKUP_OBJECT (mainWindow, avi_muxer_options1, "avi_muxer_options1");
   GLADE_HOOKUP_OBJECT (mainWindow, separator4, "separator4");
   GLADE_HOOKUP_OBJECT (mainWindow, quit1, "quit1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8203, "image8203");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8253, "image8253");
   GLADE_HOOKUP_OBJECT (mainWindow, menuitem2, "menuitem2");
   GLADE_HOOKUP_OBJECT (mainWindow, menuitem2_menu, "menuitem2_menu");
   GLADE_HOOKUP_OBJECT (mainWindow, reset_edits1, "reset_edits1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8204, "image8204");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8254, "image8254");
   GLADE_HOOKUP_OBJECT (mainWindow, separator5, "separator5");
   GLADE_HOOKUP_OBJECT (mainWindow, cut1, "cut1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8205, "image8205");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8255, "image8255");
   GLADE_HOOKUP_OBJECT (mainWindow, copy1, "copy1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8206, "image8206");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8256, "image8256");
   GLADE_HOOKUP_OBJECT (mainWindow, paste1, "paste1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8207, "image8207");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8257, "image8257");
   GLADE_HOOKUP_OBJECT (mainWindow, delete1, "delete1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8208, "image8208");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8258, "image8258");
   GLADE_HOOKUP_OBJECT (mainWindow, separator6, "separator6");
   GLADE_HOOKUP_OBJECT (mainWindow, set_marker_a1, "set_marker_a1");
   GLADE_HOOKUP_OBJECT (mainWindow, set_marker_b1, "set_marker_b1");
   GLADE_HOOKUP_OBJECT (mainWindow, separator7, "separator7");
   GLADE_HOOKUP_OBJECT (mainWindow, preferences1, "preferences1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8209, "image8209");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8259, "image8259");
   GLADE_HOOKUP_OBJECT (mainWindow, view1, "view1");
   GLADE_HOOKUP_OBJECT (mainWindow, view1_menu, "view1_menu");
   GLADE_HOOKUP_OBJECT (mainWindow, toolbar1, "toolbar1");
@@ -1517,13 +1522,13 @@
   GLADE_HOOKUP_OBJECT (mainWindow, build_vbr_time_map1, "build_vbr_time_map1");
   GLADE_HOOKUP_OBJECT (mainWindow, separator11, "separator11");
   GLADE_HOOKUP_OBJECT (mainWindow, save_audio1, "save_audio1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8210, "image8210");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8260, "image8260");
   GLADE_HOOKUP_OBJECT (mainWindow, audio_encoder1, "audio_encoder1");
   GLADE_HOOKUP_OBJECT (mainWindow, filters2, "filters2");
   GLADE_HOOKUP_OBJECT (mainWindow, tools1, "tools1");
   GLADE_HOOKUP_OBJECT (mainWindow, tools1_menu, "tools1_menu");
   GLADE_HOOKUP_OBJECT (mainWindow, calculator1, "calculator1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8211, "image8211");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8261, "image8261");
   GLADE_HOOKUP_OBJECT (mainWindow, separator12, "separator12");
   GLADE_HOOKUP_OBJECT (mainWindow, rebuild_frames, "rebuild_frames");
   GLADE_HOOKUP_OBJECT (mainWindow, check_frames, "check_frames");
@@ -1532,6 +1537,7 @@
   GLADE_HOOKUP_OBJECT (mainWindow, separator13, "separator13");
   GLADE_HOOKUP_OBJECT (mainWindow, v2v, "v2v");
   GLADE_HOOKUP_OBJECT (mainWindow, ocr_vobsub_2_srt, "ocr_vobsub_2_srt");
+  GLADE_HOOKUP_OBJECT (mainWindow, edit_glyph1, "edit_glyph1");
   GLADE_HOOKUP_OBJECT (mainWindow, separator17, "separator17");
   GLADE_HOOKUP_OBJECT (mainWindow, see_hex1, "see_hex1");
   GLADE_HOOKUP_OBJECT (mainWindow, help1, "help1");
@@ -1544,35 +1550,35 @@
   GLADE_HOOKUP_OBJECT (mainWindow, go1, "go1");
   GLADE_HOOKUP_OBJECT (mainWindow, go1_menu, "go1_menu");
   GLADE_HOOKUP_OBJECT (mainWindow, play_video1, "play_video1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8212, "image8212");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8262, "image8262");
   GLADE_HOOKUP_OBJECT (mainWindow, previous_frame1, "previous_frame1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8213, "image8213");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8263, "image8263");
   GLADE_HOOKUP_OBJECT (mainWindow, next_frame1, "next_frame1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8214, "image8214");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8264, "image8264");
   GLADE_HOOKUP_OBJECT (mainWindow, previous_intra_frame1, "previous_intra_frame1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8215, "image8215");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8265, "image8265");
   GLADE_HOOKUP_OBJECT (mainWindow, next_intra_frame1, "next_intra_frame1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8216, "image8216");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8266, "image8266");
   GLADE_HOOKUP_OBJECT (mainWindow, search_previous_black_frame1, "search_previous_black_frame1");
   GLADE_HOOKUP_OBJECT (mainWindow, search_next_black_frame1, "search_next_black_frame1");
   GLADE_HOOKUP_OBJECT (mainWindow, first_frame1, "first_frame1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8217, "image8217");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8267, "image8267");
   GLADE_HOOKUP_OBJECT (mainWindow, last_frame1, "last_frame1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8218, "image8218");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8268, "image8268");
   GLADE_HOOKUP_OBJECT (mainWindow, separator14, "separator14");
   GLADE_HOOKUP_OBJECT (mainWindow, go_to_marker_a1, "go_to_marker_a1");
   GLADE_HOOKUP_OBJECT (mainWindow, go_to_marker_b1, "go_to_marker_b1");
   GLADE_HOOKUP_OBJECT (mainWindow, separator15, "separator15");
   GLADE_HOOKUP_OBJECT (mainWindow, jum_to_frame1, "jum_to_frame1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8219, "image8219");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8269, "image8269");
   GLADE_HOOKUP_OBJECT (mainWindow, jump_to_time1, "jump_to_time1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8220, "image8220");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8270, "image8270");
   GLADE_HOOKUP_OBJECT (mainWindow, custom1, "custom1");
   GLADE_HOOKUP_OBJECT (mainWindow, help2, "help2");
   GLADE_HOOKUP_OBJECT (mainWindow, help2_menu, "help2_menu");
   GLADE_HOOKUP_OBJECT (mainWindow, show_builtin_support1, "show_builtin_support1");
   GLADE_HOOKUP_OBJECT (mainWindow, about1, "about1");
-  GLADE_HOOKUP_OBJECT (mainWindow, image8221, "image8221");
+  GLADE_HOOKUP_OBJECT (mainWindow, image8271, "image8271");
   GLADE_HOOKUP_OBJECT (mainWindow, toolbar2, "toolbar2");
   GLADE_HOOKUP_OBJECT (mainWindow, menutoolbuttonOpen, "menutoolbuttonOpen");
   GLADE_HOOKUP_OBJECT (mainWindow, toolitem11, "toolitem11");

Modified: branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_gui2/GUI_menumap.h
===================================================================
--- branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_gui2/GUI_menumap.h	2007-07-08 17:19:30 UTC (rev 3347)
+++ branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_gui2/GUI_menumap.h	2007-07-08 17:52:05 UTC (rev 3348)
@@ -101,5 +101,6 @@
 CALLBACK(zoom_1_1                                   ,ACT_ZOOM_1_1);
 CALLBACK(zoom_2_1                                   ,ACT_ZOOM_2_1);
 CALLBACK(zoom_4_1                                   ,ACT_ZOOM_4_1);
+CALLBACK(edit_glyph1                                ,ACT_GLYPHEDIT);
 
 

Modified: branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_ocr/CMakeLists.txt
===================================================================
--- branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_ocr/CMakeLists.txt	2007-07-08 17:19:30 UTC (rev 3347)
+++ branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_ocr/CMakeLists.txt	2007-07-08 17:52:05 UTC (rev 3348)
@@ -6,6 +6,7 @@
 #
 SET(${ADM_LIB}_SRCS
 adm_ocr.cpp
+adm_editglyph.cpp
 )
 ADD_LIBRARY(${ADM_LIB} STATIC ${${ADM_LIB}_SRCS})
 ADD_ADM_LIB(${ADM_LIB} ADM_libraries)

Modified: branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_ocr/adm_editglyph.cpp
===================================================================
--- branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_ocr/adm_editglyph.cpp	2007-07-08 17:19:30 UTC (rev 3347)
+++ branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_GTK/ADM_ocr/adm_editglyph.cpp	2007-07-08 17:52:05 UTC (rev 3348)
@@ -34,6 +34,7 @@
 static GtkWidget *dialog;
 
 static uint8_t loadGlyph(char *name,admGlyph *head,uint32_t *outNb);
+static uint8_t saveGlyph(char *name,admGlyph *head,uint32_t nb);
 static gboolean glyphDraw( void );
 static void glyphUpdate(void );
 /**
@@ -76,12 +77,21 @@
   gtk_register_dialog(dialog);
   
   // Register callbacks
-  #define ASSOCIATE(x,y)   gtk_dialog_add_action_widget (GTK_DIALOG (dialog), WID(x),y)
-  #define CONNECT(x,y,z) 	gtk_signal_connect(GTK_OBJECT(WID(x)), #y,GTK_SIGNAL_FUNC(z),   NULL);
+#define ASSOCIATE(x,y)   gtk_dialog_add_action_widget (GTK_DIALOG (dialog), WID(x),y)
+#define CONNECT(x,y,z) 	gtk_signal_connect(GTK_OBJECT(WID(x)), #y,GTK_SIGNAL_FUNC(z),   NULL);
 #define ACTION_PREV 10
 #define ACTION_NEXT 20
+#define ACTION_PREV_EMPTY 30
+#define ACTION_NEXT_EMPTY 40
+#define ACTION_SAVE 50
+#define ACTION_DELETE 60
+  
   ASSOCIATE(buttonPrev,ACTION_PREV);
   ASSOCIATE(buttonNext,ACTION_NEXT);
+  ASSOCIATE(buttonEmptyPrev,ACTION_PREV_EMPTY);
+  ASSOCIATE(buttonNextEmpty,ACTION_NEXT_EMPTY);
+  ASSOCIATE(buttonSave,ACTION_SAVE);
+  ASSOCIATE(buttonDelete,ACTION_DELETE);
   
   CONNECT(drawingarea1,expose_event,glyphDraw);
   gtk_widget_show(dialog);
@@ -113,6 +123,67 @@
                           glyphUpdate();
                         }
                         continue;break; 
+      case ACTION_NEXT_EMPTY: 
+                        printf("NEXT EMPTY\n");
+                        while(1)
+                        {
+                            if(currentGlyph->next)
+                            {
+                              currentGlyph=currentGlyph->next; 
+                              glyphUpdate();
+                              if(!currentGlyph->code || !*(currentGlyph->code))
+                              {
+                                break;
+                              }
+                            }
+                            else 
+                            {
+                              GUI_Error_HIG(_("End reached"),_("No more glyphs"));
+                              break;
+                            }
+                        }
+                        continue;break; 
+        case ACTION_PREV_EMPTY: 
+                        printf("PREV EMPTY\n");
+                        while(1)
+                        {
+                            if(currentGlyph!=head.next)
+                            {
+                              admGlyph *father;
+                              father=glyphSearchFather(currentGlyph,&head);
+                              if(father)
+                              {
+                                  currentGlyph=father;
+                                  glyphUpdate();
+                                   if(!currentGlyph->code || !*(currentGlyph->code))
+                                    {
+                                      break;
+                                    }
+                                  continue;
+                              } 
+                            } 
+                            GUI_Error_HIG(_("Head reached"),_("No more glyphs"));
+                            break;
+                        }
+                        continue;break;
+      case ACTION_SAVE:
+                    saveGlyph(glyphName,&head,nbGlyph);
+                    continue;break;
+      case ACTION_DELETE:
+                  {
+                      admGlyph *father;
+                      father=glyphSearchFather(currentGlyph,&head);
+                      ADM_assert(father);
+                      father->next=currentGlyph->next;
+                      delete currentGlyph;
+                      
+                      currentGlyph=father;
+                        if(father==&head && head.next)
+                          currentGlyph=head.next;
+                      nbGlyph--;
+                      glyphUpdate();
+                      continue;break; 
+                  }
     }
     break; // exit while(1)
   }
@@ -125,6 +196,43 @@
 
 }
 /**
+    \fn       glyphSave
+    \brief    Save the glypset
+*/
+uint8_t saveGlyph(char *name,admGlyph *head,uint32_t nb)
+{
+  FILE *out;
+  uint32_t slen;
+    
+  admGlyph *glyph=head->next;
+    
+    
+  out=fopen(name,"wb");
+  if(!out)
+  {
+    GUI_Error_HIG(_("Could not write the file"), NULL);
+    return 0;
+  }
+#define WRITE(x) fwrite(&(x),sizeof(x),1,out);
+    WRITE(nb);
+    
+    while(glyph)
+    {
+      WRITE(glyph->width);
+      WRITE(glyph->height);
+      fwrite(glyph->data,glyph->width*glyph->height,1,out);
+      if(glyph->code) slen=strlen(glyph->code);
+      else slen=0;
+      WRITE(slen);
+      fwrite(glyph->code,slen,1,out);
+      glyph=glyph->next;
+    }
+    
+    fclose(out);
+    return 1;
+  
+}
+/**
     \fn glyphUpdate
     \brief Update all fields in the dialog wrt currentGlyph
 */
@@ -133,9 +241,9 @@
   if(!currentGlyph) return;
   gtk_widget_set_usize(WID(drawingarea1), currentGlyph->width+4, currentGlyph->height+4);
   glyphDraw();
+  gtk_editable_delete_text(GTK_EDITABLE(WID(entry1)), 0,-1); 
   if(currentGlyph->code)
   {
-    gtk_editable_delete_text(GTK_EDITABLE(WID(entry1)), 0,-1); 
     // Set our text
     gtk_entry_set_text (GTK_ENTRY (WID(entry1)), currentGlyph->code);
   }
@@ -206,18 +314,30 @@
 
 
 //**********************************
-GtkWidget *create_dialog1 (void)
+
+GtkWidget*
+create_dialog1 (void)
 {
   GtkWidget *dialog1;
   GtkWidget *dialog_vbox1;
   GtkWidget *vbox2;
   GtkWidget *drawingarea1;
   GtkWidget *entry1;
-  GtkWidget *hbox1;
+  GtkWidget *table1;
+  GtkWidget *buttonNext;
   GtkWidget *buttonPrev;
-  GtkWidget *buttonNext;
-  GtkWidget *hseparator1;
-  GtkWidget *button3;
+  GtkWidget *buttonEmptyPrev;
+  GtkWidget *alignment2;
+  GtkWidget *hbox4;
+  GtkWidget *image2;
+  GtkWidget *label2;
+  GtkWidget *buttonNextEmpty;
+  GtkWidget *alignment3;
+  GtkWidget *hbox5;
+  GtkWidget *image3;
+  GtkWidget *label3;
+  GtkWidget *buttonDelete;
+  GtkWidget *buttonSave;
   GtkWidget *dialog_action_area1;
   GtkWidget *closebutton1;
 
@@ -240,26 +360,78 @@
   gtk_widget_show (entry1);
   gtk_box_pack_start (GTK_BOX (vbox2), entry1, FALSE, FALSE, 0);
 
-  hbox1 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_show (hbox1);
-  gtk_box_pack_start (GTK_BOX (vbox2), hbox1, TRUE, TRUE, 0);
+  table1 = gtk_table_new (3, 2, FALSE);
+  gtk_widget_show (table1);
+  gtk_box_pack_start (GTK_BOX (vbox2), table1, TRUE, TRUE, 0);
 
+  buttonNext = gtk_button_new_from_stock ("gtk-media-next");
+  gtk_widget_show (buttonNext);
+  gtk_table_attach (GTK_TABLE (table1), buttonNext, 1, 2, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), 0, 0);
+
   buttonPrev = gtk_button_new_from_stock ("gtk-media-previous");
   gtk_widget_show (buttonPrev);
-  gtk_box_pack_start (GTK_BOX (hbox1), buttonPrev, TRUE, TRUE, 0);
+  gtk_table_attach (GTK_TABLE (table1), buttonPrev, 0, 1, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
 
-  buttonNext = gtk_button_new_from_stock ("gtk-media-next");
-  gtk_widget_show (buttonNext);
-  gtk_box_pack_start (GTK_BOX (hbox1), buttonNext, TRUE, TRUE, 0);
+  buttonEmptyPrev = gtk_button_new ();
+  gtk_widget_show (buttonEmptyPrev);
+  gtk_table_attach (GTK_TABLE (table1), buttonEmptyPrev, 0, 1, 1, 2,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), 0, 0);
 
-  hseparator1 = gtk_hseparator_new ();
-  gtk_widget_show (hseparator1);
-  gtk_box_pack_start (GTK_BOX (hbox1), hseparator1, TRUE, TRUE, 0);
+  alignment2 = gtk_alignment_new (0.5, 0.5, 0, 0);
+  gtk_widget_show (alignment2);
+  gtk_container_add (GTK_CONTAINER (buttonEmptyPrev), alignment2);
 
-  button3 = gtk_button_new_from_stock ("gtk-save-as");
-  gtk_widget_show (button3);
-  gtk_box_pack_start (GTK_BOX (hbox1), button3, FALSE, FALSE, 0);
+  hbox4 = gtk_hbox_new (FALSE, 2);
+  gtk_widget_show (hbox4);
+  gtk_container_add (GTK_CONTAINER (alignment2), hbox4);
 
+  image2 = gtk_image_new_from_stock ("gtk-media-previous", GTK_ICON_SIZE_BUTTON);
+  gtk_widget_show (image2);
+  gtk_box_pack_start (GTK_BOX (hbox4), image2, FALSE, FALSE, 0);
+
+  label2 = gtk_label_new_with_mnemonic (_("Prev. Empty"));
+  gtk_widget_show (label2);
+  gtk_box_pack_start (GTK_BOX (hbox4), label2, FALSE, FALSE, 0);
+
+  buttonNextEmpty = gtk_button_new ();
+  gtk_widget_show (buttonNextEmpty);
+  gtk_table_attach (GTK_TABLE (table1), buttonNextEmpty, 1, 2, 1, 2,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), 0, 0);
+
+  alignment3 = gtk_alignment_new (0.5, 0.5, 0, 0);
+  gtk_widget_show (alignment3);
+  gtk_container_add (GTK_CONTAINER (buttonNextEmpty), alignment3);
+
+  hbox5 = gtk_hbox_new (FALSE, 2);
+  gtk_widget_show (hbox5);
+  gtk_container_add (GTK_CONTAINER (alignment3), hbox5);
+
+  image3 = gtk_image_new_from_stock ("gtk-media-next", GTK_ICON_SIZE_BUTTON);
+  gtk_widget_show (image3);
+  gtk_box_pack_start (GTK_BOX (hbox5), image3, FALSE, FALSE, 0);
+
+  label3 = gtk_label_new_with_mnemonic (_("Next Empty"));
+  gtk_widget_show (label3);
+  gtk_box_pack_start (GTK_BOX (hbox5), label3, FALSE, FALSE, 0);
+
+  buttonDelete = gtk_button_new_from_stock ("gtk-delete");
+  gtk_widget_show (buttonDelete);
+  gtk_table_attach (GTK_TABLE (table1), buttonDelete, 0, 1, 2, 3,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+
+  buttonSave = gtk_button_new_from_stock ("gtk-save");
+  gtk_widget_show (buttonSave);
+  gtk_table_attach (GTK_TABLE (table1), buttonSave, 1, 2, 2, 3,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+
   dialog_action_area1 = GTK_DIALOG (dialog1)->action_area;
   gtk_widget_show (dialog_action_area1);
   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
@@ -275,15 +447,24 @@
   GLADE_HOOKUP_OBJECT (dialog1, vbox2, "vbox2");
   GLADE_HOOKUP_OBJECT (dialog1, drawingarea1, "drawingarea1");
   GLADE_HOOKUP_OBJECT (dialog1, entry1, "entry1");
-  GLADE_HOOKUP_OBJECT (dialog1, hbox1, "hbox1");
+  GLADE_HOOKUP_OBJECT (dialog1, table1, "table1");
+  GLADE_HOOKUP_OBJECT (dialog1, buttonNext, "buttonNext");
   GLADE_HOOKUP_OBJECT (dialog1, buttonPrev, "buttonPrev");
-  GLADE_HOOKUP_OBJECT (dialog1, buttonNext, "buttonNext");
-  GLADE_HOOKUP_OBJECT (dialog1, hseparator1, "hseparator1");
-  GLADE_HOOKUP_OBJECT (dialog1, button3, "button3");
+  GLADE_HOOKUP_OBJECT (dialog1, buttonEmptyPrev, "buttonEmptyPrev");
+  GLADE_HOOKUP_OBJECT (dialog1, alignment2, "alignment2");
+  GLADE_HOOKUP_OBJECT (dialog1, hbox4, "hbox4");
+  GLADE_HOOKUP_OBJECT (dialog1, image2, "image2");
+  GLADE_HOOKUP_OBJECT (dialog1, label2, "label2");
+  GLADE_HOOKUP_OBJECT (dialog1, buttonNextEmpty, "buttonNextEmpty");
+  GLADE_HOOKUP_OBJECT (dialog1, alignment3, "alignment3");
+  GLADE_HOOKUP_OBJECT (dialog1, hbox5, "hbox5");
+  GLADE_HOOKUP_OBJECT (dialog1, image3, "image3");
+  GLADE_HOOKUP_OBJECT (dialog1, label3, "label3");
+  GLADE_HOOKUP_OBJECT (dialog1, buttonDelete, "buttonDelete");
+  GLADE_HOOKUP_OBJECT (dialog1, buttonSave, "buttonSave");
   GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog_action_area1, "dialog_action_area1");
   GLADE_HOOKUP_OBJECT (dialog1, closebutton1, "closebutton1");
 
   return dialog1;
 }
 
-

Modified: branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_NONE/ADM_dialog/DIA_none.cpp
===================================================================
--- branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_NONE/ADM_dialog/DIA_none.cpp	2007-07-08 17:19:30 UTC (rev 3347)
+++ branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_NONE/ADM_dialog/DIA_none.cpp	2007-07-08 17:52:05 UTC (rev 3348)
@@ -158,5 +158,5 @@
     printf("*********************************\n");
     printf("*********************************\n");
 }
-
+uint8_t DIA_glyphEdit(void) {return 0;};
 //EOF

Modified: branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_QT4/ADM_dialog/DIA_none.cpp
===================================================================
--- branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_QT4/ADM_dialog/DIA_none.cpp	2007-07-08 17:19:30 UTC (rev 3347)
+++ branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_QT4/ADM_dialog/DIA_none.cpp	2007-07-08 17:52:05 UTC (rev 3348)
@@ -97,8 +97,8 @@
 uint8_t initFileSelector(void){return 0;}
 uint8_t initGUI( void ){return 1;}
 int DIA_colorSel(uint8_t *r, uint8_t *g, uint8_t *b) {return 0;}
+uint8_t DIA_glyphEdit(void){ return 0;};
 
-
 int32_t UI_readJog(void)
 {
   return 0; 

Modified: branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_QT4/ADM_dialog/Q_jobs.cpp
===================================================================
--- branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_QT4/ADM_dialog/Q_jobs.cpp	2007-07-08 17:19:30 UTC (rev 3347)
+++ branches/avidemux_2.4_branch/avidemux/ADM_userInterfaces/ADM_QT4/ADM_dialog/Q_jobs.cpp	2007-07-08 17:52:05 UTC (rev 3348)
@@ -6,6 +6,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <unistd.h>
 #include <math.h>
 
 

Modified: branches/avidemux_2.4_branch/avidemux/gtk_gui.cpp
===================================================================
--- branches/avidemux_2.4_branch/avidemux/gtk_gui.cpp	2007-07-08 17:19:30 UTC (rev 3347)
+++ branches/avidemux_2.4_branch/avidemux/gtk_gui.cpp	2007-07-08 17:52:05 UTC (rev 3348)
@@ -170,6 +170,7 @@
 void GUI_avsProxy(void);
 uint8_t GUI_close(void);
 extern void A_jog(void);
+extern void DIA_glyphEdit(void);
 //___________________________________________
 // serialization of user event throught gui
 //
@@ -197,6 +198,9 @@
   }
   switch (action)
     {
+        case ACT_GLYPHEDIT: 
+                                DIA_glyphEdit();
+                                return;
         case ACT_AVS_PROXY:
                                 GUI_avsProxy();
                                 return;

Modified: branches/avidemux_2.4_branch/avidemux/gui_action.hxx
===================================================================
--- branches/avidemux_2.4_branch/avidemux/gui_action.hxx	2007-07-08 17:19:30 UTC (rev 3347)
+++ branches/avidemux_2.4_branch/avidemux/gui_action.hxx	2007-07-08 17:52:05 UTC (rev 3348)
@@ -192,6 +192,7 @@
 ACT_HEX_DUMP,
 ACT_AVS_PROXY,
 ACT_JOG,
+ACT_GLYPHEDIT,
 ACT_CUSTOM_BASE,
 ACT_CUSTOM_END=ACT_CUSTOM_BASE+ADM_MAC_CUSTOM_SCRIPT,
 ACT_DUMMY




More information about the Avidemux-svn-commit mailing list