// a context menu action was selected void UserMenuTree::slotPopupActivated(int id) { KILE_DEBUG() << "popup activated with id: " << id; switch (id ) { case POPUP_INSERT_ABOVE: insertMenuItem (m_popupItem, false); break; case POPUP_INSERT_BELOW: insertMenuItem (m_popupItem, true); break; case POPUP_SEPARATOR_ABOVE: insertSeparator(m_popupItem, false); break; case POPUP_SEPARATOR_BELOW: insertSeparator(m_popupItem, true); break; case POPUP_SUBMENU_ABOVE: insertSubmenu (m_popupItem, false); break; case POPUP_SUBMENU_BELOW: insertSubmenu (m_popupItem, true); break; case POPUP_INTO_SUBMENU: insertIntoSubmenu(m_popupItem, UserMenuData::Text); break; case POPUP_SEPARATOR_INTO_SUBMENU: insertIntoSubmenu(m_popupItem, UserMenuData::Separator); break; case POPUP_SUBMENU_INTO_SUBMENU: insertIntoSubmenu(m_popupItem, UserMenuData::Submenu); break; case POPUP_DELETE_ITEM: itemDelete(m_popupItem); break; case POPUP_DELETE_TREE: deleteMenuTree(); break; case POPUP_COLLAPSE_ITEM: m_popupItem->setExpanded(false); break; case POPUP_EXPAND_ITEM: m_popupItem->setExpanded(true); break; case POPUP_COLLAPSE_TREE: collapseAll(); break; case POPUP_EXPAND_TREE: expandAll(); break; case POPUP_ITEM_INFO: itemInfo(m_popupItem); break; } }
void TffdshowPageEnc::showPresets(void) { if (!presets) { presets = new TpresetsEnc; presets->init(); } enum { IDI_MNI_LOAD_ALL = 1000, IDI_MNI_LOAD_PAGE = 2000, IDI_MNI_SAVE_ALL = 3000, IDI_MNI_SAVE_PAGE = 4000, IDI_MNI_MANAGE = 5000 }; HMENU hm = CreatePopupMenu(); int ord = 0; insertSubmenu(hm, ord, _(IDC_BT_PRESET, _l("Load all")), createPresetsSubmenu(IDI_MNI_LOAD_ALL, false)); insertSubmenu(hm, ord, _(IDC_BT_PRESET, _l("Load page")), createPresetsSubmenu(IDI_MNI_LOAD_PAGE, false)); enable(hm, 1, pageIs && page->propsIDs ? true : false); insertSeparator(hm, ord); HMENU hmPresets = createPresetsSubmenu(IDI_MNI_SAVE_ALL, true); enable(hmPresets, 0, false); insertSubmenu(hm, ord, _(IDC_BT_PRESET, _l("Save all")), hmPresets); hmPresets = createPresetsSubmenu(IDI_MNI_SAVE_PAGE, true); enable(hmPresets, 0, false); insertSubmenu(hm, ord, _(IDC_BT_PRESET, _l("Save page")), hmPresets); enable(hm, 4, pageIs && page->propsIDs ? true : false); insertSeparator(hm, ord); insertMenuItem(hm, ord, IDI_MNI_MANAGE, _(IDC_BT_PRESET, _l("Manage presets...")), false); enable(hm, 6, presets->size() >= 2); RECT r; GetWindowRect(GetDlgItem(m_hwnd, IDC_BT_PRESET), &r); POINT p = {0, r.bottom - r.top}; ClientToScreen(GetDlgItem(m_hwnd, IDC_BT_PRESET), &p); int cmd = TrackPopupMenu(hm, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RETURNCMD, p.x, p.y, 0, m_hwnd, NULL); PostMessage(m_hwnd, WM_NULL, 0, 0); if (cmd != 0) if (cmd == 5000) { TpresetsEncDlg pdlg(m_hwnd, deci, *presets); } else { int presetnum = cmd % 1000; TpresetEnc *preset = NULL; if (presetnum == 999) { char_t presetName[MAX_PATH] = _l(""); if (inputString(_(IDC_BT_PRESET, _l("Save as new preset")), _(IDC_BT_PRESET, _l("Preset name")), presetName, MAX_PATH) && presetName[0]) { preset = presets->getPreset(presetName); if (!preset) { preset = presets->createPreset(presetName); } } } else { preset = &(*presets)[presetnum]; } if (preset) switch (cmd = cmd / 1000) { case 1: case 2: preset->apply(&localCfg, cmd == 1 ? &*allPropsIDs.begin() : page->propsIDs); setChange(); if (cmd == 1) { codec2dlg(); } selectPage(page); break; case 3: case 4: preset->store(&localCfg, cmd == 3 ? &*allPropsIDs.begin() : page->propsIDs); selectPage(page); presets->save(); break; } } DestroyMenu(hm); }
QString PopupMenu::handleDCOP(int function, const QStringList& args) { switch (function) { case DCOP::clear: m_menu->clear(); m_associations.clear(); break; case DCOP::execute: m_params = args; evalAssociatedText(); break; case INSERTMENUITEM: { uint index = args[2].toInt(); int id = -1; if (args[3].isEmpty()) id = m_menu->insertItem(args[0], index); else id = m_menu->insertItem(KGlobal::iconLoader()->loadIcon(args[3], KIcon::NoGroup, KIcon::SizeMedium), args[0], index); m_associations[id] = args[1]; return QString::number(id); break; } case INSERTSUBMENU: { return insertSubmenu(args[0], args[1], args[2].toInt(), args[3]); break; } case CHANGEMENUITEM: { uint id = args[0].toInt(); if (args[3].isEmpty()) m_menu->changeItem(id, args[1]); else m_menu->changeItem(id, KGlobal::iconLoader()->loadIcon(args[3], KIcon::NoGroup, KIcon::SizeMedium), args[1]); m_associations[id] = args[2]; break; } case INSERTSEPARATOR: { uint index = args[0].toInt(); m_menu->insertSeparator(index); } case SETITEMENABLED: { uint id = args[0].toInt(); m_menu->setItemEnabled(id, args[1] == "true" || args[1] == "1" ? true : false); break; } case ITEMENABLED: { uint id = args[0].toInt(); return m_menu->isItemEnabled(id) ? "1" : "0"; break; } case SETITEMVISIBLE: { uint id = args[0].toInt(); m_menu->setItemVisible(id, args[1] == "true" || args[1] == "1" ? true : false); break; } case SETITEMCHECKED: { uint id = args[0].toInt(); m_menu->setItemChecked(id, args[1] == "true" || args[1] == "1" ? true : false); break; } case ITEMVISIBLE: { uint id = args[0].toInt(); return m_menu->isItemVisible(id) ? "1" : "0"; break; } case ITEMCHECKED: { uint id = args[0].toInt(); return m_menu->isItemChecked(id) ? "1" : "0"; break; } case DCOP::item: { uint index = args[0].toInt(); return index < m_params.count() ? m_params[index] : QString::null; } case DCOP::count: return QString::number(m_menu->count()); default: return KommanderWidget::handleDCOP(function, args); } return QString(); }