?? mwmparse.c
字號:
#line 491 "mwmparse.y" { MENU_Add(pscr, cur_menu); } break; case 22:#line 498 "mwmparse.y" { yyerror("Invalid menu item"); yyerrok; yyclearin; } break; case 24:#line 507 "mwmparse.y" { MenuItem *tmp; int width, width2; FuncKey *tmpk = NULL; KeySym keysym; KeyCode keycode; int i, min, max; int func, contexts; char *ptr, *acc; tmp = (MenuItem *)XtCalloc(1, sizeof(MenuItem)); if (cur_menu->first == NULL) { cur_menu->first = tmp; tmp->prev = NULL; tmp->next = NULL; } else { cur_menu->last->next = tmp; tmp->prev = cur_menu->last; } cur_menu->last = tmp; cur_menu->items++; if (yyvsp[0].function.func == F_NOP) tmp->item = ""; else tmp->item = yyvsp[-3].label.string; tmp->item2 = ""; MENU_FindHotKey(tmp, yyvsp[-2].key); if (strcmp(tmp->item, "no-label") == 0) tmp->strlen = 0; else tmp->strlen = strlen(tmp->item); tmp->action = yyvsp[0].function.arg; tmp->next = NULL; tmp->state = 0; tmp->func = yyvsp[0].function.func; tmp->val1 = 0; tmp->val2 = 0; tmp->val1_unit = pscr->d_width; tmp->val2_unit = pscr->d_height; width = XTextWidth(pscr->components[MWM_MENU].font, tmp->item, tmp->strlen); if (tmp->func == F_POPUP) width += 15; if (width <= 0) width = 1; if (width > cur_menu->width) cur_menu->width = width; ptr = yyvsp[0].function.arg; func = yyvsp[0].function.func; contexts = C_WINDOW|C_ICON|C_FRAME|C_TITLE|C_LALL|C_RALL; /* * Don't let a 0 keycode go through, since that * means AnyKey to the XGrabKey call in GrabKeys(). */ keysym = yyvsp[-1].hotkey.key; if (keysym == 0) break; if ((keycode = XKeysymToKeycode(dpy, yyvsp[-1].hotkey.key)) == 0) break; acc = MENU_AcceleratorString(pscr, yyvsp[-1].hotkey.key, yyvsp[-1].hotkey.modifiers); if (strlen(acc)) { tmp->item2 = XtNewString(acc); tmp->strlen2 = strlen(acc); width2 = XTextWidth(pscr->components[MWM_MENU].font, tmp->item2, tmp->strlen2); if (width2 > cur_menu->width2) cur_menu->width2 = width2; } XDisplayKeycodes(dpy, &min, &max); for (i = min; i <= max; i++) { if (XKeycodeToKeysym(dpy, i, 0) == keysym) { tmpk = (FuncKey *)XtMalloc(sizeof(FuncKey)); tmpk->next = pscr->keys; pscr->keys = tmpk; tmpk->name = "HOTKEY"; tmpk->keycode = i; tmpk->cont = contexts; tmpk->mods = yyvsp[-1].hotkey.modifiers; tmpk->func = func; tmpk->action = ptr; tmpk->val1 = 0; tmpk->val2 = 0; tmpk->val1_unit = pscr->d_width; tmpk->val2_unit = pscr->d_height; tmpk->menu = NULL; } } } break; case 25:#line 609 "mwmparse.y" { yyval.hotkey = yyvsp[0].hotkey; } break; case 26:#line 611 "mwmparse.y" { yyval.hotkey.modifiers = 0; yyval.hotkey.key = 0; } break; case 27:#line 615 "mwmparse.y" { yyval.number = yyvsp[-2].number | yyvsp[0].number; } break; case 28:#line 617 "mwmparse.y" { yyval.number = yyvsp[0].number; } break; case 29:#line 621 "mwmparse.y" { yyval.number = C_ROOT; } break; case 30:#line 623 "mwmparse.y" { yyval.number = C_ICON; } break; case 31:#line 625 "mwmparse.y" { yyval.number = C_MENUB; } break; case 32:#line 627 "mwmparse.y" { yyval.number = C_MINIMIZEB; } break; case 33:#line 629 "mwmparse.y" { yyval.number = C_MAXIMIZEB; } break; case 34:#line 631 "mwmparse.y" { yyval.number = C_WINDOW|C_FRAME|C_TITLE|C_LALL|C_RALL|C_ICON; } break; case 35:#line 633 "mwmparse.y" { yyval.number = C_TITLE; } break; case 36:#line 635 "mwmparse.y" { yyval.number = C_FRAME|C_TITLE|C_LALL|C_RALL; } break; case 37:#line 637 "mwmparse.y" { yyval.number = C_FRAME; } break; case 38:#line 639 "mwmparse.y" { yyval.number = C_WINDOW; } break; case 39:#line 641 "mwmparse.y" { yyerror("Invalid context"); yyval.number = 0; } break; case 40:#line 645 "mwmparse.y" { yyval.button = yyvsp[-1].button; yyval.button.modifiers = yyvsp[-3].modifiers; } break; case 41:#line 650 "mwmparse.y" { yyval.button = yyvsp[-1].button; yyval.button.modifiers = 0; } break; case 42:#line 657 "mwmparse.y" { yyval.hotkey.modifiers = yyvsp[-4].modifiers; yyval.hotkey.key = XStringToKeysym(yyvsp[0].string); } break; case 43:#line 662 "mwmparse.y" { yyval.hotkey.modifiers = 0; yyval.hotkey.key = XStringToKeysym(yyvsp[0].string); } break; case 44:#line 669 "mwmparse.y" { yyval.modifiers = yyvsp[-1].modifiers | yyvsp[0].modifiers; } break; case 45:#line 671 "mwmparse.y" { yyval.modifiers = yyvsp[0].modifiers; } break; case 46:#line 675 "mwmparse.y" { yyval.modifiers = ControlMask; } break; case 47:#line 677 "mwmparse.y" { yyval.modifiers = ShiftMask; } break; case 48:#line 679 "mwmparse.y" { yyval.modifiers = pscr->alt_mask; } break; case 49:#line 681 "mwmparse.y" { yyval.modifiers = LockMask; } break; case 50:#line 683 "mwmparse.y" { yyval.modifiers = Mod1Mask; } break; case 51:#line 685 "mwmparse.y" { yyval.modifiers = Mod2Mask; } break; case 52:#line 687 "mwmparse.y" { yyval.modifiers = Mod3Mask; } break; case 53:#line 689 "mwmparse.y" { yyval.modifiers = Mod4Mask; } break; case 54:#line 691 "mwmparse.y" { yyval.modifiers = Mod5Mask; } break; case 55:#line 695 "mwmparse.y" { yyval.button.button = Button1Mask; yyval.button.event = ButtonPressMask; yyval.button.count = 0; } break; case 56:#line 701 "mwmparse.y" { yyval.button.button = Button1Mask; yyval.button.event = ButtonReleaseMask; yyval.button.count = 0; } break; case 57:#line 707 "mwmparse.y" { yyval.button.button = Button1Mask; yyval.button.event = ButtonPressMask|ButtonReleaseMask; yyval.button.count = 1; } break; case 58:#line 713 "mwmparse.y" { yyval.button.button = Button1Mask; yyval.button.event = ButtonPressMask|ButtonReleaseMask; yyval.button.count = 2; } break; case 59:#line 719 "mwmparse.y" { yyval.button.button = Button2Mask; yyval.button.event = ButtonPressMask; yyval.button.count = 0; } break; case 60:#line 725 "mwmparse.y" { yyval.button.button = Button2Mask; yyval.button.event = ButtonReleaseMask; yyval.button.count = 0; } break; case 61:#line 731 "mwmparse.y" { yyval.button.button = Button2Mask; yyval.button.event = ButtonPressMask|ButtonReleaseMask; yyval.button.count = 1; } break; case 62:#line 737 "mwmparse.y" { yyval.button.button = Button2Mask; yyval.button.event = ButtonPressMask|ButtonReleaseMask; yyval.button.count = 2; } break; case 63:#line 743 "mwmparse.y" { yyval.button.button = Button3Mask; yyval.button.event = ButtonPressMask; yyval.button.count = 0; } break; case 64:#line 749 "mwmparse.y" { yyval.button.button = Button3Mask; yyval.button.event = ButtonReleaseMask; yyval.button.count = 0; } break; case 65:#line 755 "mwmparse.y" { yyval.button.button = Button3Mask; yyval.button.event = ButtonPressMask|ButtonReleaseMask; yyval.button.count = 1; } break; case 66:#line 761 "mwmparse.y" { yyval.button.button = Button3Mask; yyval.button.event = ButtonPressMask|ButtonReleaseMask; yyval.button.count = 2; } break; case 67:#line 767 "mwmparse.y" { yyval.button.button = Button4Mask; yyval.button.event = ButtonPressMask; yyval.button.count = 0; } break; case 68:#line 773 "mwmparse.y" { yyval.button.button = Button4Mask; yyval.button.event = ButtonReleaseMask; yyval.button.count = 0; } break; case 69:#line 779 "mwmparse.y" { yyval.button.button = Button4Mask; yyval.button.event = ButtonPressMask|ButtonReleaseMask; yyval.button.count = 1; } break; case 70:#line 785 "mwmparse.y" { yyval.button.button = Button4Mask; yyval.button.event = ButtonPressMask|ButtonReleaseMask; yyval.button.count = 2; } break; case 71:#line 791 "mwmparse.y" { yyval.button.button = Button5Mas
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -