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

📄 usercmds.c

📁 nedit 是一款linux下的开发源码的功能强大的编辑器
💻 C
📖 第 1 页 / 共 5 页
字号:
    ucd->winInpBtn = XtVaCreateManagedWidget("winInpBtn",    	    xmToggleButtonWidgetClass, inpBox,    	    XmNlabelString, s1=MKSTRING("window"),    	    XmNmnemonic, 'w',    	    XmNalignment, XmALIGNMENT_BEGINNING,    	    XmNmarginHeight, 0,    	    XmNset, False, NULL);    XmStringFree(s1);    ucd->eitherInpBtn = XtVaCreateManagedWidget("eitherInpBtn",    	    xmToggleButtonWidgetClass, inpBox,    	    XmNlabelString, s1=MKSTRING("either"),    	    XmNmnemonic, 't',    	    XmNalignment, XmALIGNMENT_BEGINNING,    	    XmNmarginHeight, 0,    	    XmNset, False, NULL);    XmStringFree(s1);    ucd->noInpBtn = XtVaCreateManagedWidget("noInpBtn",    	    xmToggleButtonWidgetClass, inpBox,    	    XmNlabelString, s1=MKSTRING("none"),    	    XmNmnemonic, 'o',    	    XmNalignment, XmALIGNMENT_BEGINNING,    	    XmNmarginHeight, 0,    	    XmNset, False, NULL);    XmStringFree(s1);    inpLabel = XtVaCreateManagedWidget("inpLabel", xmLabelGadgetClass, form,    	    XmNlabelString, s1=MKSTRING("Command Input:"),    	    XmNalignment, XmALIGNMENT_BEGINNING,    	    XmNmarginTop, 5,	    XmNleftAttachment, XmATTACH_POSITION,	    XmNleftPosition, LIST_RIGHT,	    XmNrightAttachment, XmATTACH_POSITION,	    XmNrightPosition, RIGHT_MARGIN_POS,	    XmNbottomAttachment, XmATTACH_WIDGET,	    XmNbottomWidget, inpBox, NULL);    XmStringFree(s1);     ucd->mneTextW = XtVaCreateManagedWidget("mne", xmTextWidgetClass, form,	    XmNcolumns, 1,	    XmNmaxLength, 1,	    XmNleftAttachment, XmATTACH_POSITION,	    XmNleftPosition, RIGHT_MARGIN_POS-10,	    XmNrightAttachment, XmATTACH_POSITION,	    XmNrightPosition, RIGHT_MARGIN_POS,	    XmNbottomAttachment, XmATTACH_WIDGET,    	    XmNbottomWidget, inpLabel, NULL);    RemapDeleteKey(ucd->mneTextW);    ucd->accTextW = XtVaCreateManagedWidget("acc", xmTextWidgetClass, form,    	    XmNcolumns, 12,    	    XmNmaxLength, MAX_ACCEL_LEN-1,    	    XmNcursorPositionVisible, False,	    XmNleftAttachment, XmATTACH_POSITION,	    XmNleftPosition, LIST_RIGHT,	    XmNrightAttachment, XmATTACH_POSITION,	    XmNrightPosition, RIGHT_MARGIN_POS-15,	    XmNbottomAttachment, XmATTACH_WIDGET,    	    XmNbottomWidget, inpLabel, NULL);    XtAddEventHandler(ucd->accTextW, KeyPressMask, False,    	    (XtEventHandler)accKeyCB, ucd);    XtAddCallback(ucd->accTextW, XmNfocusCallback, accFocusCB, ucd);    XtAddCallback(ucd->accTextW, XmNlosingFocusCallback, accLoseFocusCB, ucd);    accLabel = XtVaCreateManagedWidget("accLabel", xmLabelGadgetClass, form,    	    XmNlabelString, s1=MKSTRING("Accelerator"),    	    XmNmnemonic, 'l',    	    XmNuserData, ucd->accTextW,    	    XmNalignment, XmALIGNMENT_BEGINNING,    	    XmNmarginTop, 5,    	    XmNleftAttachment, XmATTACH_POSITION,    	    XmNleftPosition, LIST_RIGHT,    	    XmNrightAttachment, XmATTACH_POSITION,    	    XmNrightPosition, LIST_RIGHT + 24,    	    XmNbottomAttachment, XmATTACH_WIDGET,    	    XmNbottomWidget, ucd->mneTextW, NULL);    XmStringFree(s1);    XtVaCreateManagedWidget("mneLabel", xmLabelGadgetClass, form,    	    XmNlabelString, s1=MKSTRING("Mnemonic"),    	    XmNmnemonic, 'i',    	    XmNuserData, ucd->mneTextW,    	    XmNalignment, XmALIGNMENT_END,    	    XmNmarginTop, 5,    	    XmNleftAttachment, XmATTACH_POSITION,    	    XmNleftPosition, LIST_RIGHT + 24,    	    XmNrightAttachment, XmATTACH_POSITION,    	    XmNrightPosition, RIGHT_MARGIN_POS,    	    XmNbottomAttachment, XmATTACH_WIDGET,    	    XmNbottomWidget, ucd->mneTextW, NULL);    XmStringFree(s1);        ucd->nameTextW = XtVaCreateManagedWidget("name", xmTextWidgetClass, form,	    XmNleftAttachment, XmATTACH_POSITION,	    XmNleftPosition, LIST_RIGHT,	    XmNrightAttachment, XmATTACH_POSITION,	    XmNrightPosition, RIGHT_MARGIN_POS,	    XmNbottomAttachment, XmATTACH_WIDGET,    	    XmNbottomWidget, accLabel, NULL);    RemapDeleteKey(ucd->nameTextW);     nameLabel = XtVaCreateManagedWidget("nameLabel", xmLabelGadgetClass, form,    	    XmNlabelString, s1=MKSTRING("Menu Entry"),    	    XmNmnemonic, 'y',    	    XmNuserData, ucd->nameTextW,    	    XmNalignment, XmALIGNMENT_BEGINNING,    	    XmNmarginTop, 5,    	    XmNleftAttachment, XmATTACH_POSITION,    	    XmNleftPosition, LIST_RIGHT,    	    XmNbottomAttachment, XmATTACH_WIDGET,    	    XmNbottomWidget, ucd->nameTextW, NULL);    XmStringFree(s1);     XtVaCreateManagedWidget("nameNotes", xmLabelGadgetClass, form,    	    XmNlabelString, s1=MKSTRING("(> for sub-menu, @ language mode)"),    	    XmNalignment, XmALIGNMENT_END,    	    XmNmarginTop, 5,    	    XmNleftAttachment, XmATTACH_WIDGET,    	    XmNleftWidget, nameLabel,    	    XmNrightAttachment, XmATTACH_POSITION,    	    XmNrightPosition, RIGHT_MARGIN_POS,    	    XmNbottomAttachment, XmATTACH_WIDGET,    	    XmNbottomWidget, ucd->nameTextW, NULL);    XmStringFree(s1);    XtVaCreateManagedWidget("topLabel", xmLabelGadgetClass, form,    	    XmNlabelString, s1=MKSTRING("Select a shell menu item from the list at left.\n\Select \"New\" to add a new command to the menu."),	    XmNtopAttachment, XmATTACH_POSITION,	    XmNtopPosition, 2,	    XmNleftAttachment, XmATTACH_POSITION,	    XmNleftPosition, LIST_RIGHT,	    XmNrightAttachment, XmATTACH_POSITION,	    XmNrightPosition, RIGHT_MARGIN_POS,	    XmNbottomAttachment, XmATTACH_WIDGET,    	    XmNbottomWidget, nameLabel, NULL);    XmStringFree(s1);     cmdLabel = XtVaCreateManagedWidget("cmdLabel", xmLabelGadgetClass, form,    	    XmNlabelString, s1=MKSTRING("Shell Command to Execute"),    	    XmNmnemonic, 'x',    	    XmNalignment, XmALIGNMENT_BEGINNING,    	    XmNmarginTop, 5,    	    XmNtopAttachment, XmATTACH_POSITION,    	    XmNtopPosition, SHELL_CMD_TOP,    	    XmNleftAttachment, XmATTACH_POSITION,    	    XmNleftPosition, LEFT_MARGIN_POS, NULL);    XmStringFree(s1);    XtVaCreateManagedWidget("cmdLabel", xmLabelGadgetClass, form,    	    XmNlabelString, s1=MKSTRING("(% expands to current filename, # to line number)"),    	    XmNalignment, XmALIGNMENT_END,    	    XmNmarginTop, 5,    	    XmNtopAttachment, XmATTACH_POSITION,    	    XmNtopPosition, SHELL_CMD_TOP,    	    XmNleftAttachment, XmATTACH_WIDGET,    	    XmNleftWidget, cmdLabel,    	    XmNrightAttachment, XmATTACH_POSITION,    	    XmNrightPosition, RIGHT_MARGIN_POS, NULL);    XmStringFree(s1);    okBtn = XtVaCreateManagedWidget("ok",xmPushButtonWidgetClass,form,    	    XmNlabelString, s1=MKSTRING("OK"),    	    XmNleftAttachment, XmATTACH_POSITION,    	    XmNleftPosition, 13,    	    XmNrightAttachment, XmATTACH_POSITION,    	    XmNrightPosition, 29,    	    XmNbottomAttachment, XmATTACH_POSITION,    	    XmNbottomPosition, 99, NULL);    XtAddCallback(okBtn, XmNactivateCallback, okCB, ucd);    XmStringFree(s1);    applyBtn = XtVaCreateManagedWidget("apply",xmPushButtonWidgetClass,form,    	    XmNlabelString, s1=MKSTRING("Apply"),    	    XmNmnemonic, 'A',    	    XmNleftAttachment, XmATTACH_POSITION,    	    XmNleftPosition, 42,    	    XmNrightAttachment, XmATTACH_POSITION,    	    XmNrightPosition, 58,    	    XmNbottomAttachment, XmATTACH_POSITION,    	    XmNbottomPosition, 99, NULL);    XtAddCallback(applyBtn, XmNactivateCallback, applyCB, ucd);    XmStringFree(s1);    dismissBtn = XtVaCreateManagedWidget("dismiss",xmPushButtonWidgetClass,form,    	    XmNlabelString, s1=MKSTRING("Dismiss"),    	    XmNleftAttachment, XmATTACH_POSITION,    	    XmNleftPosition, 71,    	    XmNrightAttachment, XmATTACH_POSITION,    	    XmNrightPosition, 87,    	    XmNbottomAttachment, XmATTACH_POSITION,    	    XmNbottomPosition, 99, NULL);    XtAddCallback(dismissBtn, XmNactivateCallback, dismissCB, ucd);    XmStringFree(s1);        ac = 0;    XtSetArg(args[ac], XmNeditMode, XmMULTI_LINE_EDIT); ac++;    XtSetArg(args[ac], XmNscrollHorizontal, False); ac++;    XtSetArg(args[ac], XmNwordWrap, True); ac++;    XtSetArg(args[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;    XtSetArg(args[ac], XmNtopWidget, cmdLabel); ac++;    XtSetArg(args[ac], XmNleftAttachment, XmATTACH_POSITION); ac++;    XtSetArg(args[ac], XmNleftPosition, LEFT_MARGIN_POS); ac++;    XtSetArg(args[ac], XmNrightAttachment, XmATTACH_POSITION); ac++;    XtSetArg(args[ac], XmNrightPosition, RIGHT_MARGIN_POS); ac++;    XtSetArg(args[ac], XmNbottomAttachment, XmATTACH_WIDGET); ac++;    XtSetArg(args[ac], XmNbottomWidget, okBtn); ac++;    XtSetArg(args[ac], XmNbottomOffset, 5); ac++;    ucd->cmdTextW = XmCreateScrolledText(form, "name", args, ac);    AddMouseWheelSupport(ucd->cmdTextW);    XtManageChild(ucd->cmdTextW);    MakeSingleLineTextW(ucd->cmdTextW);    RemapDeleteKey(ucd->cmdTextW);    XtVaSetValues(cmdLabel, XmNuserData, ucd->cmdTextW, NULL); /* for mnemonic */       /* Disable text input for the accelerator key widget, let the       event handler manage it instead */    disableTextW(ucd->accTextW);    /* initializs the dialog fields to match "New" list item */    updateDialogFields(NULL, ucd);         /* Set initial default button */    XtVaSetValues(form, XmNdefaultButton, okBtn, NULL);    XtVaSetValues(form, XmNcancelButton, dismissBtn, NULL);        /* Handle mnemonic selection of buttons and focus to dialog */    AddDialogMnemonicHandler(form, FALSE);        /* realize all of the widgets in the new window */    RealizeWithoutForcingPosition(ucd->dlogShell);}/*** Present a dialogs for editing the user specified commands in the Macro** and background menus*/void EditMacroMenu(WindowInfo *window){    editMacroOrBGMenu(window, MACRO_CMDS);}void EditBGMenu(WindowInfo *window){    editMacroOrBGMenu(window, BG_MENU_CMDS);}static void editMacroOrBGMenu(WindowInfo *window, int dialogType){       Widget form, accLabel, pasteReplayBtn;    Widget nameLabel, cmdLabel, okBtn, applyBtn, dismissBtn;    userCmdDialog *ucd;    char *title;    XmString s1;    int ac, i;    Arg args[20];    /* if the dialog is already displayed, just pop it to the top and return */    if (dialogType == MACRO_CMDS && MacroCmdDialog != NULL) {    	RaiseShellWindow(MacroCmdDialog);    	return;    }    if (dialogType == BG_MENU_CMDS && BGMenuCmdDialog != NULL) {    	RaiseShellWindow(BGMenuCmdDialog);    	return;    }    /* Create a structure for keeping track of dialog state */    ucd = (userCmdDialog *)XtMalloc(sizeof(userCmdDialog));    ucd->window = window;    /* Set the dialog to operate on the Macro menu */    ucd->menuItemsList = (menuItemRec **)XtMalloc(sizeof(menuItemRec **) *    	    MAX_ITEMS_PER_MENU);    if (dialogType == MACRO_CMDS) {	for (i=0; i<NMacroMenuItems; i++)    	    ucd->menuItemsList[i] = copyMenuItemRec(MacroMenuItems[i]);	ucd->nMenuItems = NMacroMenuItems;    } else { /* BG_MENU_CMDS */	for (i=0; i<NBGMenuItems; i++)    	    ucd->menuItemsList[i] = copyMenuItemRec(BGMenuItems[i]);	ucd->nMenuItems = NBGMenuItems;    }    ucd->dialogType = dialogType;        title = dialogType == MACRO_CMDS ? "Macro Commands" :	    "Window Background Menu";    ac = 0;    XtSetArg(args[ac], XmNdeleteResponse, XmDO_NOTHING); ac++;    XtSetArg(args[ac], XmNiconName, title); ac++;    XtSetArg(args[ac], XmNtitle, title); ac++;    ucd->dlogShell = CreateShellWithBestVis(APP_NAME, APP_CLASS,	    applicationShellWidgetClass, TheDisplay, args, ac);    AddSmallIcon(ucd->dlogShell);    form = XtVaCreateManagedWidget("editMacroCommands", xmFormWidgetClass,	    ucd->dlogShell, XmNautoUnmanage, False,	    XmNresizePolicy, XmRESIZE_NONE, NULL);    XtAddCallback(form, XmNdestroyCallback, destroyCB, ucd);    AddMotifCloseCallback(ucd->dlogShell, dismissCB, ucd);     ac = 0;    XtSetArg(args[ac], XmNtopAttachment, XmATTACH_POSITION); ac++;    XtSetArg(args[ac], XmNtopPosition, 2); ac++;    XtSetArg(args[ac], XmNleftAttachment, XmATTACH_POSITION); ac++;    XtSetArg(args[ac], XmNleftPosition, LEFT_MARGIN_POS); ac++;    XtSetArg(args[ac], XmNrightAttachment, XmATTACH_POSITION); ac++;    XtSetArg(args[ac], XmNrightPosition, LIST_RIGHT-1); ac++;    XtSetArg(args[ac], XmNbottomAttachment, XmATTACH_POSITION); ac++;    XtSetArg(args[ac], XmNbottomPosition, MACRO_CMD_TOP); ac++;    ucd->managedList = CreateManagedList(form, "list", args, ac,    	(void **)ucd->menuItemsList, &ucd->nMenuItems, MAX_ITEMS_PER_MENU, 20,    	getDialogDataCB, ucd, setDialogDataCB, ucd, freeItemCB);        ucd->selInpBtn = XtVaCreateManagedWidget("selInpBtn",	    xmToggleButtonWidgetClass, form,    	    XmNlabelString, s1=MKSTRING("Requires Selection"),    	    XmNmnemonic, 'R',    	    XmNalignment, XmALIGNMENT_BEGINNING,    	    XmNmarginHeight, 0,    	    XmNset, False,	    XmNleftAttachment, XmATTACH_POSITION,	    XmNleftPosition, LIST_RIGHT,	    XmNbottomAttachment, XmATTACH_POSITION,    	    XmNbottomPosition, MACRO_CMD_TOP, NULL);    XmStringFree(s1);     ucd->mneTextW = XtVaCreateManagedWidget("mne", xmTextWidgetClass, form,	    XmNcolumns, 1,	    XmNmaxLength, 1,	    XmNleftAttachment, XmATTACH_POSITION,	    XmNleftPosition, RIGHT_MARGIN_POS-21-5,	    XmNrightAttachment, XmATTACH_POSITION,	    XmNrightPosition, RIGHT_MARGIN_POS-21,	    XmNbottomAttachment, XmATTACH_WIDGET,    	    XmNbottomWidget, ucd->selInpBtn,	    XmNbottomOffset, 5, NULL);    RemapDeleteKey(ucd->mneTextW);    ucd->accTextW = XtVaCreateManagedWidget("acc", xmTextWidgetClass, form,    	    XmNcolumns, 12,    	    XmNmaxLength, MAX_ACCEL_LEN-1,    	    XmNcursorPositionVisible, False,	    XmNleftAttachment, XmATTACH_POSITION,	    XmNleftPosition, LIST_RIGHT,	    XmNrightAttachment, XmATTACH_POSITION,	    XmNrightPosition, RIGHT_MARGIN_POS-20-10,	    XmNbottomAttachment, XmATTACH_WIDGET,    	    XmNbottomWidget, ucd->selInpBtn,	    XmNbottomOffset, 5, NULL);    XtAddEventHandler(ucd->accTextW, KeyPressMask, False,    	    (XtEventHandler)accKeyCB, ucd);    XtAddCallback(ucd->accTextW, XmNfocusCallback, accFocusCB, ucd);    XtAddCallback(ucd->accTextW, XmNlosingFocusCallback, accLoseFocusCB, ucd);     accLabel = XtVaCreateManagedWidget("accLabel", xmLabelGadgetClass, form,    	    XmNlabelString, s1=MKSTRING("Accelerator"),    	    XmNmnemonic, 'l',    	    XmNuserData, ucd->accTextW,    	    XmNalignment, XmALIGNMENT_BEGINNING,    	    XmNmarginTop, 5,    	    XmNleftAttachment, XmATTACH_POSITION,    	    XmNleftPosition, LIST_RIGHT,    	    XmNrightAttachment, XmATTACH_POSITION,    	    XmNrightPosition, LIST_RIGHT + 22,    	    XmNbottomAttachment, XmATTACH_WIDGET,    	    XmNbottomWidget, ucd->mneTextW, NULL);    XmStringFree(s1);

⌨️ 快捷键说明

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