コード例 #1
0
ファイル: usermenutree.cpp プロジェクト: fagu/kileip
// 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;
	}
}
コード例 #2
0
ファイル: TffdshowPageEnc.cpp プロジェクト: TheRyuu/ffdshow
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);
}
コード例 #3
0
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();
}