demo_gui_menu.c 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * 程序清单:menu控件演示
  3. *
  4. * 这个例子会在创建出的view上添加几个不同类型的label控件
  5. */
  6. #include "demo_view.h"
  7. #include <rtgui/widgets/menu.h>
  8. #include <rtgui/widgets/button.h>
  9. /* 创建用于演示menu控件的视图 */
  10. rtgui_view_t* demo_gui_menu(rtgui_view_t* parent_view)
  11. {
  12. rtgui_view_t *view;
  13. rtgui_menu_t *main_menu, *sub_menu, *toolmenu;
  14. /* 先创建一个演示用的视图 */
  15. view = demo_view_create(parent_view, "MENU View");
  16. /* 1.使用动态方式创建菜单 */
  17. main_menu = rtgui_menu_create(view, "menu", 5, 40, RTGUI_MENU_NORMAL);
  18. sub_menu = rtgui_menu_create(view, "File", 0, 0, RTGUI_MENU_POPUP);
  19. rtgui_menu_append(sub_menu, 0, 0x20001, "New", RT_NULL);
  20. rtgui_menu_append(sub_menu, 0, 0x20002, "Open", RT_NULL);
  21. rtgui_menu_append(sub_menu, 0, 0x20003, "Save", RT_NULL);
  22. rtgui_menu_append(sub_menu, 0, 0x20004, "Print", RT_NULL);
  23. rtgui_menu_append(sub_menu, 0, 0x20005, "Exit", RT_NULL);
  24. rtgui_menu_append(main_menu, RTGUI_MENU_POPUP, (rt_uint32_t)sub_menu, sub_menu->name, RT_NULL);
  25. sub_menu = rtgui_menu_create(view, "EditDocument", 0, 0, RTGUI_MENU_POPUP);
  26. rtgui_menu_append(sub_menu, 0, 0x30001, "Cut", RT_NULL);
  27. rtgui_menu_append(sub_menu, 0, 0x30002, "Copy", RT_NULL);
  28. rtgui_menu_append(sub_menu, 0, 0x30002, "Paste", RT_NULL);
  29. rtgui_menu_append(sub_menu, 0, 0x30003, "Find...", RT_NULL);
  30. toolmenu = rtgui_menu_create(view, "Toolbars", 0, 0, RTGUI_MENU_POPUP);
  31. rtgui_menu_append(toolmenu, 0, 0x50001, "File Tools", RT_NULL);
  32. rtgui_menu_append(toolmenu, 0, 0x50002, "build Tools", RT_NULL);
  33. rtgui_menu_append(sub_menu, RTGUI_MENU_POPUP, (rt_uint32_t)toolmenu, toolmenu->name, RT_NULL);
  34. rtgui_menu_append(main_menu, RTGUI_MENU_POPUP, (rt_uint32_t)sub_menu, sub_menu->name, RT_NULL);
  35. sub_menu = rtgui_menu_create(view, "View", 0, 0, RTGUI_MENU_POPUP);
  36. rtgui_menu_append(sub_menu, 0, 0x40001, "Status bar", RT_NULL);
  37. rtgui_menu_append(sub_menu, 0, 0x40001, "Tool bar", RT_NULL);
  38. rtgui_menu_append(sub_menu, 0, 0x40001, "Project window", RT_NULL);
  39. rtgui_menu_append(sub_menu, 0, 0x40001, "Books window", RT_NULL);
  40. rtgui_menu_append(sub_menu, 0, 0x40001, "Functions window", RT_NULL);
  41. rtgui_menu_append(sub_menu, 0, 0x40001, "Full screen", RT_NULL);
  42. rtgui_menu_append(main_menu, RTGUI_MENU_POPUP, (rt_uint32_t)sub_menu, sub_menu->name, RT_NULL);
  43. rtgui_menu_append(main_menu, 0, 0x10004, "Help", RT_NULL);
  44. /* 2.使用静态方式创建菜单 */
  45. /* 菜单的一些功能还在调试中... */
  46. return view;
  47. }