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

📄 menu.c

📁 //建立顶级窗口 toplevel = XtVaAppInitialize[&app, "Form", NULL, 0, &argc, argv, NULL, NULL] n =
💻 C
字号:
	#include <Xm/Xm.h>	#include <Xm/Form.h>	#include <Xm/RowColumn.h>	#include <Xm/CascadeB.h>	#include <Xm/PushB.h>	#include <Xm/Separator.h>	void callback(Widget w, char *command, 		XmAnyCallbackStruct *cbs)	{		printf("%s\n", command);	}	Widget make_menu(Widget menubar, char *label, char mnemonic,		char *acce, char *acce_text)	{		int n;		Arg args[10];		XmString str, text;		Widget menu, button;			menu = XmCreatePulldownMenu(menubar, label, NULL, 0);		str = XmStringCreateSimple(label);		text = XmStringCreateSimple(acce_text);		n = 0;		XtSetArg(args[n], XmNlabelString, str);		n++;		XtSetArg(args[n], XmNmnemonic, mnemonic);	n++;		XtSetArg(args[n], XmNsubMenuId, menu);		n++;		XtSetArg(args[n], XmNaccelerator, acce);	n++;		XtSetArg(args[n], XmNacceleratorText, text);	n++;		button = XmCreateCascadeButton(menubar, label, args, n);		XtManageChild(button);		XmStringFree(str);		XmStringFree(text);		return menu;	}	Widget make_help_menu(Widget menubar, char *label, char mnemonic,		char *acce, char *acce_text)	{		int n;		Arg args[10];		XmString str, text;		Widget menu, button;			menu = XmCreatePulldownMenu(menubar, label, NULL, 0);		str = XmStringCreateSimple(label);		text = XmStringCreateSimple(acce_text);		n = 0;		XtSetArg(args[n], XmNlabelString, str);		n++;		XtSetArg(args[n], XmNmnemonic, mnemonic);	n++;		XtSetArg(args[n], XmNsubMenuId, menu);		n++;		XtSetArg(args[n], XmNaccelerator, acce);	n++;		XtSetArg(args[n], XmNacceleratorText, text);	n++;		button = XmCreateCascadeButton(menubar, label, args, n);		XtManageChild(button);		XmStringFree(str);		XmStringFree(text);		//设置帮助菜单		n = 0;		XtSetArg(args[n], XmNmenuHelpWidget, button);	n++;		XtSetValues(menubar, args, n);		return menu;	}	Widget make_menu_item(Widget menu, char *label, char mnemonic, 		char *acce, char *acce_text, char *command)	{		int n;		Arg args[10];		XmString str, text;		Widget button;		str = XmStringCreateSimple(label);		text = XmStringCreateSimple(acce_text);		n = 0;		XtSetArg(args[n], XmNlabelString, str);		n++;		XtSetArg(args[n], XmNmnemonic, mnemonic);	n++;		XtSetArg(args[n], XmNaccelerator, acce);	n++;		XtSetArg(args[n], XmNacceleratorText, text);	n++;		button = XmCreatePushButton(menu, label, args, n);		XtManageChild(button);		XtAddCallback(button, XmNactivateCallback,			(XtCallbackProc) callback, command);		XmStringFree(str);		XmStringFree(text);		return button;	}	void make_menu_item_separator(Widget menu)	{		Widget sep;		sep = XmCreateSeparator(menu, "sep", NULL, 0);		XtManageChild(sep);	}	void create_menu(Widget menubar)	{		int i, n;		Arg args[10];		Widget filemenu, editmenu, helpmenu, w;		//建立文件菜单		filemenu = make_menu(menubar, "文件(F)", 'F', "Meta<key>F", "Alt-F");		make_menu_item(filemenu, "新建(N)", 'N', "Meta<key>N", "Meta+N", "Create New File");		make_menu_item(filemenu, "打开(O)", 'O', "Meta<key>O", "Meta+O", "Open File");		make_menu_item(filemenu, "保存(S)", 'S', "Meta<key>S", "Meta+S", "Save File");		make_menu_item_separator(filemenu);		make_menu_item(filemenu, "退出(Q)", 'Q', "Meta<key>Q", "Meta+Q", "Quit Application");		//建立编辑菜单		editmenu = make_menu(menubar, "编辑(E)", 'E', "Meta<key>E", "Alt-E");		make_menu_item(editmenu, "取消(U)", 'U', "Meta<key>U", "Meta+U", "Undo last operation");		make_menu_item(editmenu, "重复(R)", 'R', "Meta<key>R", "Meta+R", "Redo last operation");		make_menu_item_separator(editmenu);		//建立子级联菜单		w = make_menu(editmenu, "编辑操作(o)", 'o', "Meta<key>o", "Alt-o");		make_menu_item(w, "拷贝(o)", 'o', "Meta<key>o", "Meta+o", "Copy to clipboard");		make_menu_item(w, "剪切(u)", 'u', "Meta<key>u", "Meta+u", "Cut to clipboard");		make_menu_item(w, "粘贴(P)", 'P',"Meta<key>P", "Meta+P", "Paste from clipboard");		//建立帮助菜单		helpmenu = make_help_menu(menubar, "帮助(H)", 'H', "Meta<key>H", "Alt-H");		make_menu_item(helpmenu, "帮助(h)", 'h', "Meta<key>h", "Meta+h", "Help Contents");		make_menu_item(helpmenu, "关于(A)...", 'A',"Meta<key>A", "Meta+A",  "About this application");	}

⌨️ 快捷键说明

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