fltkhs-0.1.0.0: c-examples/menubar-add.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "Fl_C.h"
#include "Fl_WindowC.h"
#include "Fl_Sys_Menu_BarC.h"
#include "Fl_Menu_ItemC.h"
#include "FL/filename.H"
#include "filenameC.h"
void MyMenuCallback(fl_Widget w, void* user_data){
fl_Sys_Menu_Bar bar = (fl_Sys_Menu_Bar)w;
fl_Menu_Item item = Fl_Sys_Menu_Bar_mvalue(bar);
char ipath[256];
Fl_Sys_Menu_Bar_item_pathname(bar, ipath, sizeof(ipath));
fprintf(stderr, "callback: You picked '%s'", Fl_Menu_Item_label(item)); // Print item picked
fprintf(stderr, ", item_pathname() is '%s'", ipath); // ..and full pathname
if ( Fl_Menu_Item_flags(item) & (FL_MENU_RADIO|FL_MENU_TOGGLE) ) { // Toggle or radio item?
fprintf(stderr, ", value is %s", Fl_Menu_Item_value(item)?"on":"off"); // Print item's value
}
fprintf(stderr, "\n");
if ( strcmp(Fl_Menu_Item_label(item), "Google") == 0 ) { flc_open_uri("http://google.com/");}
if ( strcmp(Fl_Menu_Item_label(item), "&Quit") == 0 ) { exit(0); }
}
int main(int argc, char** argv){
Fl_set_scheme("gtk+");
fl_Window window = (fl_Window)Fl_Window_New_WithLabel(250,400,"menubar-simple");
Fl_Window_begin(window);
fl_Sys_Menu_Bar menu = (fl_Sys_Menu_Bar)Fl_Sys_Menu_Bar_New(0,0,400,45);
Fl_Sys_Menu_Bar_add_with_shortcutname(menu,"&File/&Open", "^o", MyMenuCallback);
Fl_Sys_Menu_Bar_add_with_shortcutname(menu,"&File/&Open", "^o", MyMenuCallback);
Fl_Sys_Menu_Bar_add_with_shortcutname_user_data_flags(menu,"&File/&Save", "^s", MyMenuCallback, 0, FL_MENU_DIVIDER);
Fl_Sys_Menu_Bar_add_with_shortcutname(menu,"&File/&Quit", "^q", MyMenuCallback);
Fl_Sys_Menu_Bar_add_with_shortcutname(menu,"&Edit/&Copy", "^c", MyMenuCallback);
Fl_Sys_Menu_Bar_add_with_shortcutname_user_data_flags(menu,"&Edit/&Paste", "^v", MyMenuCallback, 0, FL_MENU_DIVIDER);
Fl_Sys_Menu_Bar_add_with_shortcutname_user_data_flags(menu,"&Edit/Radio 1", 0, MyMenuCallback, 0, FL_MENU_RADIO);
Fl_Sys_Menu_Bar_add_with_shortcutname_user_data_flags(menu,"&Edit/Radio 2", 0, MyMenuCallback, 0, FL_MENU_RADIO|FL_MENU_DIVIDER);
Fl_Sys_Menu_Bar_add_with_shortcutname_user_data_flags(menu,"&Edit/Toggle 1", 0, MyMenuCallback, 0, FL_MENU_TOGGLE); // Default: off
Fl_Sys_Menu_Bar_add_with_shortcutname_user_data_flags(menu,"&Edit/Toggle 2", 0, MyMenuCallback, 0, FL_MENU_TOGGLE); // Default: off
Fl_Sys_Menu_Bar_add_with_shortcutname_user_data_flags(menu,"&Edit/Toggle 3", 0, MyMenuCallback, 0, FL_MENU_TOGGLE|FL_MENU_VALUE); // Default: on
Fl_Sys_Menu_Bar_add_with_shortcutname(menu,"&Help/Google", 0, MyMenuCallback);
{
fl_Menu_Item item = (fl_Menu_Item)Fl_Sys_Menu_Bar_find_item_with_name(menu,"&Edit/Toggle 2");
if ( item ) Fl_Menu_Item_set(item);
else fprintf(stderr, "'Toggle 2' item not found?!\n");
}
Fl_Window_end(window);
Fl_Window_show(window);
return Fl_run();
}