@@ -323,6 +323,7 @@ static GtkWidget *add_menu(GtkWidget *menu_bar, const gchar *name)
323
323
gtk_menu_shell_append (GTK_MENU_SHELL (menu_bar ), menu_item );
324
324
gtk_widget_show (menu_item );
325
325
menu = gtk_menu_new ();
326
+ gtk_menu_set_reserve_toggle_size (GTK_MENU (menu ),FALSE);
326
327
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item ), menu );
327
328
328
329
return menu ;
@@ -355,6 +356,31 @@ static GtkWidget *radio_menu_item_new(GSList **group, const gchar *name)
355
356
return menu_item ;
356
357
}
357
358
359
+ static GtkWidget * gtk_image_menu_item_new_from_icon (const gchar * icon_name ,
360
+ const gchar * label_name ,
361
+ GtkAccelGroup * accel_group )
362
+ {
363
+ GtkWidget * box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL , 6 );
364
+ GtkWidget * icon = gtk_image_new_from_icon_name (icon_name , GTK_ICON_SIZE_MENU );
365
+ GtkWidget * label = gtk_accel_label_new (g_strconcat (label_name , " " , NULL ));
366
+ GtkWidget * menu_item = gtk_menu_item_new ();
367
+
368
+ gtk_container_add (GTK_CONTAINER (box ), icon );
369
+
370
+ gtk_label_set_use_underline (GTK_LABEL (label ), TRUE);
371
+ gtk_label_set_xalign (GTK_LABEL (label ), 0.0 );
372
+
373
+ gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label ), menu_item );
374
+
375
+ gtk_box_pack_end (GTK_BOX (box ), label , TRUE, TRUE, 0 );
376
+
377
+ gtk_container_add (GTK_CONTAINER (menu_item ), box );
378
+
379
+ gtk_widget_show_all (menu_item );
380
+
381
+ return menu_item ;
382
+ }
383
+
358
384
static void create_menu (MathWindow * window )
359
385
{
360
386
GtkAccelGroup * accel_group ;
@@ -383,17 +409,20 @@ static void create_menu(MathWindow* window)
383
409
#define HELP_CONTENTS_LABEL _("_Contents")
384
410
385
411
menu = add_menu (window -> priv -> menu_bar , CALCULATOR_MENU_LABEL );
386
- add_menu_item (menu , gtk_image_menu_item_new_from_stock ("gtk-copy" , accel_group ), G_CALLBACK (copy_cb ), window );
387
- add_menu_item (menu , gtk_image_menu_item_new_from_stock ("gtk-paste" , accel_group ), G_CALLBACK (paste_cb ), window );
388
- menu_item = add_menu_item (menu , gtk_image_menu_item_new_from_stock ("gtk-undo" , accel_group ), G_CALLBACK (undo_cb ), window );
412
+ menu_item = add_menu_item (menu , gtk_image_menu_item_new_from_icon ("edit-copy" ,_ ("_Copy" ), accel_group ), G_CALLBACK (copy_cb ), window );
413
+ gtk_widget_add_accelerator (menu_item , "activate" , accel_group , GDK_KEY_C , GDK_CONTROL_MASK , GTK_ACCEL_VISIBLE );
414
+ menu_item = add_menu_item (menu , gtk_image_menu_item_new_from_icon ("edit-paste" ,_ ("_Paste" ), accel_group ), G_CALLBACK (paste_cb ), window );
415
+ gtk_widget_add_accelerator (menu_item , "activate" , accel_group , GDK_KEY_V , GDK_CONTROL_MASK , GTK_ACCEL_VISIBLE );
416
+ menu_item = add_menu_item (menu , gtk_image_menu_item_new_from_icon ("edit-undo" ,_ ("_Undo" ), accel_group ), G_CALLBACK (undo_cb ), window );
389
417
gtk_widget_add_accelerator (menu_item , "activate" , accel_group , GDK_KEY_Z , GDK_CONTROL_MASK , GTK_ACCEL_VISIBLE );
390
- menu_item = add_menu_item (menu , gtk_image_menu_item_new_from_stock ( "gtk -redo" , accel_group ), G_CALLBACK (redo_cb ), window );
418
+ menu_item = add_menu_item (menu , gtk_image_menu_item_new_from_icon ( "edit -redo", _ ( "_Redo" ) , accel_group ), G_CALLBACK (redo_cb ), window );
391
419
gtk_widget_add_accelerator (menu_item , "activate" , accel_group , GDK_KEY_Z , GDK_CONTROL_MASK | GDK_SHIFT_MASK , GTK_ACCEL_VISIBLE );
392
420
add_menu_item (menu , gtk_separator_menu_item_new (), NULL , NULL );
393
- add_menu_item (menu , gtk_image_menu_item_new_from_stock ( "gtk- preferences" , accel_group ), G_CALLBACK (show_preferences_cb ), window );
421
+ add_menu_item (menu , gtk_image_menu_item_new_from_icon ( " preferences-desktop" , _ ( "_Preferences" ) , accel_group ), G_CALLBACK (show_preferences_cb ), window );
394
422
add_menu_item (menu , gtk_separator_menu_item_new (), NULL , NULL );
395
- menu_item = add_menu_item (menu , gtk_image_menu_item_new_from_stock ("gtk-quit" , accel_group ), G_CALLBACK (quit_cb ), window );
396
- gtk_widget_add_accelerator (menu_item , "activate" , accel_group , GDK_KEY_W , GDK_CONTROL_MASK , 0 );
423
+ menu_item = add_menu_item (menu , gtk_image_menu_item_new_from_icon ("application-exit" ,_ ("_Quit" ), accel_group ), G_CALLBACK (quit_cb ), window );
424
+ gtk_widget_add_accelerator (menu_item , "activate" , accel_group , GDK_KEY_Q , GDK_CONTROL_MASK , GTK_ACCEL_VISIBLE );
425
+ gtk_widget_add_accelerator (menu_item , "activate" , accel_group , GDK_KEY_W , GDK_CONTROL_MASK , GTK_ACCEL_VISIBLE );
397
426
398
427
menu = add_menu (window -> priv -> menu_bar , MODE_MENU_LABEL );
399
428
window -> priv -> mode_basic_menu_item = add_menu_item (menu , radio_menu_item_new (& group , MODE_BASIC_LABEL ), G_CALLBACK (mode_changed_cb ), window );
@@ -406,9 +435,9 @@ static void create_menu(MathWindow* window)
406
435
g_object_set_data (G_OBJECT (window -> priv -> mode_programming_menu_item ), "calcmode" , GINT_TO_POINTER (PROGRAMMING ));
407
436
408
437
menu = add_menu (window -> priv -> menu_bar , HELP_MENU_LABEL );
409
- menu_item = add_menu_item (menu , gtk_menu_item_new_with_mnemonic ( HELP_CONTENTS_LABEL ), G_CALLBACK (help_cb ), window );
438
+ menu_item = add_menu_item (menu , gtk_image_menu_item_new_from_icon ( "help-browser" , HELP_CONTENTS_LABEL , accel_group ), G_CALLBACK (help_cb ), window );
410
439
gtk_widget_add_accelerator (menu_item , "activate" , accel_group , GDK_KEY_F1 , 0 , GTK_ACCEL_VISIBLE );
411
- add_menu_item (menu , gtk_image_menu_item_new_from_stock ( "gtk -about" , accel_group ), G_CALLBACK (about_cb ), window );
440
+ add_menu_item (menu , gtk_image_menu_item_new_from_icon ( "help -about", _ ( "_About" ) , accel_group ), G_CALLBACK (about_cb ), window );
412
441
}
413
442
414
443
static void
0 commit comments