Présentation.
Le contrôle GtkImageMenuItem est un élément de menu qui permet d'afficher une image à gauche du texte.
Utilisation de base.
Création.
Pour créer un codice_1, il existe quatre fonctions différentes :
 function gtk_image_menu_item_new : PGtkWidget; 
 function gtk_image_menu_item_new_from_stock(stock_id : Pgchar; accel_group : PGtkAccelGroup) : PGtkWidget;
 function gtk_image_menu_item_new_with_label(_label : Pgchar) : PGtkWidget;
 function gtk_image_menu_item_new_with_mnemonic(_label : Pgchar) : PGtkWidget;
La première fonction crée un item sans texte ni image.
La deuxième crée l'item en fonction du codice_2 donné. Le texte et l'image sont donc définis par le paramètre codice_3.
Les deux dernières fonctions ont un fonctionnement identique à celle du contrôle codice_4. Il faudra donc ajouter l'image soi-même.
Modification de l'image.
Pour modifier l'image afficher par l'item, il existe cette fonction :
 procedure gtk_image_menu_item_set_image(image_menu_item : PGtkImageMenuItem; image : PGtkWidget);
Le paramètre codice_5 est l'item dont on veut modifier l'image, et le paramètre codice_6 est la nouvelle image.
Et bien évidemment, pour savoir quelle image est affichée, il faut utiliser cette fonction :
 function gtk_image_menu_item_get_image(image_menu_item : PGtkImageMenuItem) : PGtkWidget;
Programme exemple.
Nous allons créer le même menu que dans le chapitre GtkMenuItem, mais cette fois avec des images.
Voilà le fichier codice_7 :
 program gtk034;
 uses glib2, gtk2;
 var
 pFenetre : PGtkWidget;
 pVBox : PGtkWidget;
 pBarreMenu : PGtkWidget;
 pMenuItemFichier : PGtkWidget;
 pMenuFichier : PGtkWidget;
 pMenuItemOuvrir : PGtkWidget;
 pMenuItemFermer : PGtkWidget;
 pMenuItemQuitter : PGtkWidget;
 pLabel : PGtkWidget;
 pImage : PGtkWidget;
 begin
 gtk_init(@argc, @argv);
 pFenetre := gtk_window_new(GTK_WINDOW_TOPLEVEL);
 gtk_window_set_position(GTK_WINDOW(pFenetre), GTK_WIN_POS_CENTER);
 gtk_window_set_default_size(GTK_WINDOW(pFenetre), 320, 200);
 gtk_window_set_title(GTK_WINDOW(pFenetre), 'Gtk034 : Élément de menu avec image');
 gtk_signal_connect(pGTKOBJECT(pFenetre), 'destroy', GTK_SIGNAL_FUNC(@gtk_main_quit), NULL);
 // Création de la GtkVBox
 pVBox := gtk_vbox_new(FALSE, 5);
 gtk_container_add(GTK_CONTAINER(pFenetre), pVBox);
 // Création de la barre de menu
 pBarreMenu := gtk_menu_bar_new;
 gtk_box_pack_start(GTK_BOX(pVBox), pBarreMenu, FALSE, FALSE, 0);
 // Création de l'item Fichier et rattachement à la barre de menu
 pMenuItemFichier := gtk_menu_item_new_with_label('Fichier');
 gtk_menu_shell_append(GTK_MENU_SHELL(pBarreMenu), pMenuItemFichier);
 // Création du menu Fichier et rattachement à l'item Fichier
 pMenuFichier := gtk_menu_new;
 gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItemFichier), pMenuFichier);
 // Création de l'item Ouvrir et rattachement au menu Fichier
 pMenuItemOuvrir := gtk_image_menu_item_new;
 pLabel := gtk_label_new('Ouvrir');
 gtk_container_add(GTK_CONTAINER(pMenuItemOuvrir), pLabel);
 pImage := gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU);
 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(pMenuItemOuvrir), pImage);
 gtk_menu_shell_append(GTK_MENU_SHELL(pMenuFichier), pMenuItemOuvrir);
 // Création de l'item Fermer et rattachement au menu Fichier
 pMenuItemFermer := gtk_image_menu_item_new_with_label('Fermer');
 pImage := gtk_image_new_from_stock(GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU);
 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(pMenuItemFermer), pImage);
 gtk_menu_shell_append(GTK_MENU_SHELL(pMenuFichier), pMenuItemFermer);
 // Création de l'item Quitter et rattachement au menu Fichier
 pMenuItemQuitter := gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL);
 gtk_menu_shell_append(GTK_MENU_SHELL(pMenuFichier), pMenuItemQuitter);
 g_signal_connect(pGTKOBJECT(pMenuItemQuitter), 'activate', G_CALLBACK(@gtk_main_quit), NULL);
 gtk_widget_show_all(pFenetre);
 gtk_main;
 end.
Voilà ce que donne l'exécution du programme codice_7 :