Century Embedded Technologies Nano-X SDK and Developer's Guide | ||
---|---|---|
Prev | Chapter 10. Designing a Simple Text Editor | Next |
The first goal requires us to use a menubar and menus that define each function the editor needs to perform. The Fl_Menu_Item structure is used to define the menus and items in a menubar:
Fl_Menu_Item menuitems[] = { { "&File", 0, 0, 0, FL_SUBMENU }, { "&New", FL_ALT + 'n', (Fl_Callback *)new_cb }, { "&Open...", FL_ALT + 'o', (Fl_Callback *)open_cb, 0, FL_MENU_DIVIDER }, { "&Save", FL_ALT + 's', (Fl_Callback *)save_cb }, { "Save &As...", FL_ALT + FL_SHIFT + 's', (Fl_Callback *)saveas_cb, 0, FL_MENU_DIVIDER }, { "&Quit", FL_ALT + 'q', (Fl_Callback *)quit_cb }, { 0 }, { "&Edit", 0, 0, 0, FL_SUBMENU }, { "&Undo", FL_ALT + 'z', (Fl_Callback *)undo_cb, 0, FL_MENU_DIVIDER }, { "Cu&t", FL_ALT + 'x', (Fl_Callback *)cut_cb }, { "&Copy", FL_ALT + 'c', (Fl_Callback *)copy_cb }, { "&Paste", FL_ALT + 'v', (Fl_Callback *)paste_cb }, { "&Delete", 0, (Fl_Callback *)delete_cb }, { 0 }, { "&Search", 0, 0, 0, FL_SUBMENU }, { "&Find...", FL_ALT + 'f', (Fl_Callback *)find_cb }, { "F&ind Again", FL_ALT + 'g', (Fl_Callback *)find2_cb }, { "&Replace...", FL_ALT + 'r', (Fl_Callback *)replace_cb }, { "Re&place Again", FL_ALT + 't', (Fl_Callback *)replace2_cb }, { 0 }, { 0 } };
Once we have the menus defined we can create the Fl_Menu_Bar widget and assign the menus to it with:
Fl_Menu_Bar *menubar = new Fl_Menu_Bar(0, 0, 640, 30); menubar->menu(menuitems);
We'll define the callback functions later.