⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menugenproc.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
/*****************************************************************************/#ifndef lintstatic char sccsid[] = "@(#)menugenproc.c 1.1 92/07/30 SMI";#endif /*****************************************************************************//* menu generate proc example from the SVPG menu chapter */#include <suntool/sunview.h>#include <suntool/walkmenu.h>static void     initialize_menu();static Menu     list_files();static char   **get_file_names();static Menu     m;static char    *array[3][4] =   {                        { "List" , "dot" , "files" , 0 },                        { "list" , "bin" , "dir" ,   0 },                        { "list" , "all" , "files" , 0}};main(){        Frame   frame;        Menu    menu, original_menu;        frame = window_create(NULL, FRAME,                      FRAME_LABEL,  "Menu Gen Proc example -- Bring up menu",                      0);        original_menu = (Menu)window_get(frame, WIN_MENU);        menu = menu_create(MENU_PULLRIGHT_ITEM,  "Frame",  original_menu,                           0);        initialize_menu(menu);        window_set(frame, WIN_MENU, menu, 0);        window_main_loop(frame);	exit(0);	/* NOTREACHED */}static char **get_file_names(directory)   int  directory;{    return (array[directory]);}/* What follows is in the SVPG */#define DOT  0#define BIN  1#define ALL  2static voidinitialize_menu(menu)    Menu  menu;{    m = menu_create(MENU_GEN_PROC,    list_files,                    MENU_CLIENT_DATA, DOT,                    0);    menu_set(menu,             MENU_PULLRIGHT_ITEM, "List dot files", m,             0);    m = menu_create(MENU_GEN_PROC,    list_files,                    MENU_CLIENT_DATA, BIN,                    0);    menu_set(menu,             MENU_PULLRIGHT_ITEM, "List bin dir", m,             0);    m = menu_create(MENU_GEN_PROC,    list_files,                    MENU_CLIENT_DATA, ALL,                    0);    menu_set(menu,             MENU_PULLRIGHT_ITEM, "List all files", m,             0);}static Menulist_files(m, operation)    Menu          m;    Menu_generate operation;{    char **list;    int    directory;    int    i = 0;    switch (operation) {      case MENU_DISPLAY:        directory = (int)menu_get(m, MENU_CLIENT_DATA);        list = get_file_names(directory);        while (*list)            menu_set(m,                     MENU_STRING_ITEM, *list++, i++,                     0);        break;      case MENU_DISPLAY_DONE:        /*         * Destroy old menu and all its entries.         * Replace it with a new menu.         */        directory = (int)menu_get(m, MENU_CLIENT_DATA);        menu_destroy(m);        m = menu_create(MENU_GEN_PROC,    list_files,                        MENU_CLIENT_DATA, directory,                        0);        break;      case MENU_NOTIFY:      case MENU_NOTIFY_DONE:        break;    }    /* The current or newly-created menu is returned */    return m;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -