| 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.