hi, Stefan_Salewski You find the lazy bone in me exactly, thank you for the explaination. Now the original Code( in [FreeBASIC](https://www.freebasic.net/) ) #include once "fltk-c. bi" sub QuitCB cdecl (byval self as Fl_Widget ptr,byval userdata as any ptr) flMessageTitle("QuitCB called !") if flChoice("Do you really want to exit ?","no","yes") then Fl_WindowHide Fl_WidgetWindow(self) end if end sub ' ' main ' var win = Fl_WindowNew(640,480) var bar = Fl_Menu_BarNew(0,0,Fl_WidgetGetW(win),25) ' Fl_ALIGN_TEXT_OVER_IMAGE Fl_WindowShow win ' <- must be shown for drawing ' params: menu, mnuPath ,mnuLabel , image ,[shortcut],[@MenuCB],IMAGE_ALIGN , LABEL_ALIGN Fl_Menu_AddImageLabel(bar,"File/Test1","Test" ,"media/8x8. png", , ,Fl_ALIGN_IMAGE_OVER_TEXT, Fl_ALIGN_LEFT) Fl_Menu_AddImageLabel(bar,"File/Test2","Test" ,"media/8x8. png", , ,Fl_ALIGN_TEXT_OVER_IMAGE, Fl_ALIGN_RIGHT) Fl_Menu_AddImageLabel(bar,"File/Open1","Open. . . ","media/16x16. png", , ,Fl_ALIGN_IMAGE_NEXT_TO_TEXT, Fl_ALIGN_LEFT or FL_ALIGN_TOP) Fl_Menu_AddImageLabel(bar,"File/Open2","Open. . . ","media/16x16. png", , ,Fl_ALIGN_IMAGE_NEXT_TO_TEXT, Fl_ALIGN_CENTER) Fl_Menu_AddImageLabel(bar,"File/Open3","Open. . . ","media/16x16. png", , ,Fl_ALIGN_IMAGE_NEXT_TO_TEXT, Fl_ALIGN_RIGHT or FL_ALIGN_BOTTOM) Fl_Menu_AddImageLabel(bar,"File/Exit3","Exit" ,"media/exit-2_32x32. png" ,,@QuitCB,Fl_ALIGN_TEXT_NEXT_TO_IMAGE, Fl_ALIGN_RIGHT or FL_ALIGN_BOTTOM) Fl_Menu_AddImageLabel(bar,"File/Exit2","Exit" ,"media/application-exit-4_32x32. png",,@QuitCB,Fl_ALIGN_TEXT_NEXT_TO_IMAGE, Fl_ALIGN_CENTER) Fl_Menu_AddImageLabel(bar,"File/Exit1","Exit" ,"media/exit-2_32x32. png" ,,@QuitCB,Fl_ALIGN_TEXT_NEXT_TO_IMAGE, Fl_ALIGN_LEFT or FL_ALIGN_TOP) Fl_Run Run
can be written with [my nim binding](https://forum.nim-lang.org/t/4561) as import fltk_main import fltk_tools proc QuitCB (self: ptr Fl_Widget, userdata: pointer) {.cdecl.} = flMessageTitle("QuitCB called !") if flChoice("Do you really want to exit ?","no","yes") > 0 : Fl_WindowHide Fl_WidgetWindow(self) var win = Fl_WindowNew(640,480) var bar = Fl_Menu_BarNew(0,0,Fl_WidgetGetW(win),25) #' Fl_ALIGN_TEXT_OVER_IMAGE Fl_WindowShow win #' <- must be shown for drawing #~ ' params: menu, mnuPath,mnuLabel, image,[shortcut],[MenuCB],IMAGE_ALIGN, LABEL_ALIGN # you can use 0 or nil for the dummy MenuCB Fl_Menu_AddImageLabel(bar, "File/Test1", "Test", "media/8x8.png", 0, 0, Fl_ALIGN_IMAGE_OVER_TEXT, Fl_ALIGN_LEFT) Fl_Menu_AddImageLabel(bar, "File/Test2", "Test", "media/8x8.png", 0, nil, Fl_ALIGN_TEXT_OVER_IMAGE, Fl_ALIGN_RIGHT) Fl_Menu_AddImageLabel(bar, "File/Open1", "Open...", "media/16x16.png", 0, 0, Fl_ALIGN_IMAGE_NEXT_TO_TEXT, Fl_ALIGN_LEFT or FL_ALIGN_TOP) Fl_Menu_AddImageLabel(bar, "File/Open2", "Open...", "media/16x16.png", 0, 0, Fl_ALIGN_IMAGE_NEXT_TO_TEXT, Fl_ALIGN_CENTER) Fl_Menu_AddImageLabel(bar, "File/Open3", "Open...", "media/16x16.png", 0, 0, Fl_ALIGN_IMAGE_NEXT_TO_TEXT, Fl_ALIGN_RIGHT or FL_ALIGN_BOTTOM) Fl_Menu_AddImageLabel(bar, "File/Exit3", "Exit", "media/exit-2_32x32.png", 0, QuitCB, Fl_ALIGN_TEXT_NEXT_TO_IMAGE, Fl_ALIGN_RIGHT or FL_ALIGN_BOTTOM) Fl_Menu_AddImageLabel(bar, "File/Exit2", "Exit", "media/application-exit-4_32x32.png", 0, QuitCB, Fl_ALIGN_TEXT_NEXT_TO_IMAGE, Fl_ALIGN_CENTER) Fl_Menu_AddImageLabel(bar, "File/Exit1", "Exit", "media/exit-2_32x32.png", 0, QuitCB, Fl_ALIGN_TEXT_NEXT_TO_IMAGE, Fl_ALIGN_LEFT or FL_ALIGN_TOP) Fl_Run() Run
