Esempio n. 1
0
HMENU TtrayIcon::createPostProcMenu(void)
{
 HMENU hm=CreatePopupMenu();
 int ord=0;
 insertMenuItem(hm,ord,IDC_RBT_PPPRESETS,"Presets",IDFF_ppIsCustom,-1);
 insertMenuItem(hm,ord,IDC_CHB_AUTOQ,"Automatic quality control",IDFF_autoq);
 insertSeparator(hm,ord);
 insertMenuItem(hm,ord,IDC_RBT_PPCUSTOM,"Custom",IDFF_ppIsCustom);
 return hm;
}
Esempio n. 2
0
HMENU TffdshowPageEnc::createPresetsSubmenu(int cmd, bool save)
{
    HMENU hm = CreatePopupMenu();
    int ord = 0;
    for (TpresetsEnc::const_iterator p = presets->begin(); p != presets->end(); p++) {
        insertMenuItem(hm, ord, cmd++, p->name, false);
    }
    if (save) {
        insertSeparator(hm, ord);
        insertMenuItem(hm, ord, (cmd / 1000) * 1000 + 999, _(-IDD_FFDSHOWENC, _l("Save as...")), false);
    }
    return hm;
}
Esempio n. 3
0
void TtrayIcon::insertMenuItem(HMENU hm,int &ord,int id,char *caption,int cfgId,int negate)
{
 bool checked;
 checked=cfgGet(cfgId)?true:false;
 if (negate==-1)
  checked=!checked;
 insertMenuItem(hm,ord,id,caption,checked);
}
Esempio n. 4
0
HMENU TtrayIcon::createMenu(void)
{
 HMENU hm=CreatePopupMenu();
 int ord=0;
 int len;
 deci->get_numPresets(&len);
 char actPreset[1024];
 deci->get_activePresetName(actPreset,1023);
 for (int i=0;i<len;i++)
  {
   char preset[1024];
   deci->get_presetName(i,preset,1023);
   insertMenuItem(hm,ord,IDC_FIRST_PRESET+i,preset,strcmp(preset,actPreset)==0);
  }
 insertSeparator(hm,ord);
 
 insertMenuItem(hm,ord,IDC_CHB_GLOBAL_POSTPROC,"Postprocessing",IDFF_isPostproc);
// insertSubmenu(hm,ord,"Postprocessing settings",createPostProcMenu());
// insertSeparator(hm,ord);

 insertMenuItem(hm,ord,IDC_CHB_GLOBAL_PICTPROP,"Picture properties",IDFF_isPictProp);
// insertSeparator(hm,ord);

 insertMenuItem(hm,ord,IDC_CHB_GLOBAL_NOISE,"Noise",IDFF_isNoise);
// insertSeparator(hm,ord);

 insertMenuItem(hm,ord,IDC_CHB_GLOBAL_SHARPEN,"Sharpen",IDFF_isSharpen);

 insertMenuItem(hm,ord,IDC_CHB_FLIP,"Flip",IDFF_flip);

 insertMenuItem(hm,ord,IDC_CHB_SUBTITLES,"Subtitles",IDFF_isSubtitles);
 
 return hm;
}
Esempio n. 5
0
HRESULT csMenu::QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst,
                                 UINT /*idCmdLast*/, UINT uFlags)
{
  if( uFlags & CMF_DEFAULTONLY ) {
    return MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, 0);
  }

  UINT uPos = 0;
  UINT uCmdID = idCmdFirst;

  const DWORD flags = regReadFlags();

  const csWString parallel  = regReadParallel();
  const DWORD parallelCount = regReadParallelCount();
  const bool hasParallel    = !parallel.empty()  &&  parallelCount > 1;

  HMENU submenu = CreatePopupMenu();
  insertMenuItem(submenu, uPos++, uCmdID++, L"List", !_files.empty());
  insertMenuItem(submenu, uPos++, uCmdID++, L"List (path)", !_files.empty());
  insertMenuItem(submenu, uPos++, uCmdID++, L"List (path, tabular)", !_files.empty());
  insertSeparatorMenuItem(submenu, uPos++);
  insertMenuItem(submenu, uPos++, uCmdID++, L"Create symbolic link...",
                 _files.size() == 1);
  insertSeparatorMenuItem(submenu, uPos++);
  insertCheckableMenuItem(submenu, uPos++, uCmdID++, L"Batch processing",
                          testFlags(flags, CMD_FLAG_BATCH));
  insertCheckableMenuItem(submenu, uPos++, uCmdID++, L"Parallel execution",
                          testFlags(flags, CMD_FLAG_PARALLEL), hasParallel);
  insertCheckableMenuItem(submenu, uPos++, uCmdID++, L"Resolve UNC paths",
                          testFlags(flags, CMD_FLAG_UNC));
  insertCheckableMenuItem(submenu, uPos++, uCmdID++, L"UN*X path separators",
                          testFlags(flags, CMD_FLAG_UNIX));

  insertSubMenuItem(hmenu, submenu, indexMenu, uCmdID++, L"CS::Menu", _menuBitmap);

  const csWStringList scripts = regReadScripts();
  if( !scripts.empty()  &&  !_files.empty() ) {
    insertSeparatorMenuItem(submenu, uPos++);
    for(csWStringList::const_iterator it = scripts.begin(); it != scripts.end(); it++) {
      insertMenuItem(submenu, uPos++, uCmdID++, it->c_str());
    }
  }

  return MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, uCmdID-idCmdFirst);
}
void Menu::updateChoice( HMENU hmenu, int& index, ItemPtr item, const MENUITEMINFO& info )
{
    static const unsigned int MAX_MENU_TEXT = 1024;
    char txtBuf[ MAX_MENU_TEXT + 1 ];
    unsigned int subItemIndex = 0;
    while( index < GetMenuItemCount( hmenu ) )
    {
        MENUITEMINFO info = { sizeof( info ),
                              MIIM_BITMAP | MIIM_CHECKMARKS | MIIM_DATA | MIIM_FTYPE | MIIM_ID |
                              MIIM_STATE | MIIM_STRING | MIIM_SUBMENU
                            };
        info.cch = MAX_MENU_TEXT;
        info.dwTypeData = txtBuf;
        GetMenuItemInfo( hmenu, index, TRUE, &info );

        if( info.dwItemData != (DWORD)item.getObject() )
            break;

        if( subItemIndex < item->num() )
        {
            ItemPtr subItem = ( *item )[ subItemIndex ];
            if( !info.dwTypeData || buildMenuText( subItem ) != (LPCTSTR)info.dwTypeData )
                insertMenuItem( hmenu, index, item );
            ModifyMenu( hmenu, index, MF_BYPOSITION | MF_STRING, subItem->commandID(),
                        buildMenuText( subItem ).c_str() );
            EnableMenuItem( hmenu, index, MF_BYPOSITION | ( item->update() ? MF_ENABLED : MF_GRAYED ) );
            CheckMenuItem( hmenu, index, MF_BYPOSITION | ( subItem->update() ? MF_CHECKED : MF_UNCHECKED ) );
            ++index;
            ++subItemIndex;
        }
        else
            DeleteMenu( hmenu, index, MF_BYPOSITION );
    }
    while( subItemIndex < item->num() )
    {
        ItemPtr subItem = ( *item )[ subItemIndex ];
        insertMenuItem( hmenu, index, item );
        ModifyMenu( hmenu, index, MF_BYPOSITION | MF_STRING, subItem->commandID(),
                    buildMenuText( subItem ).c_str() );
        EnableMenuItem( hmenu, index, MF_BYPOSITION | ( item->update() ? MF_ENABLED : MF_GRAYED ) );
        CheckMenuItem( hmenu, index, MF_BYPOSITION | ( subItem->update() ? MF_CHECKED : MF_UNCHECKED ) );
        ++subItemIndex;
    }
    --index;
}
Esempio n. 7
0
// create and fill "recent" section at first
void PanelKMenu::createRecentMenuItems()
{
    RecentlyLaunchedApps::self().init();
    RecentlyLaunchedApps::self().m_nNumMenuItems = 0;

    QStringList RecentApps;
    RecentlyLaunchedApps::self().getRecentApps(RecentApps);

    if (RecentApps.count() > 0)
    {
        bool bSeparator = KickerSettings::showMenuTitles();
        int nId = serviceMenuEndId() + 1;
        int nIndex = KickerSettings::showMenuTitles() ? 1 : 0;

        for (QList<QString>::iterator it =
             RecentApps.fromLast(); /*nop*/; --it)
        {
            KService::Ptr s = KService::serviceByDesktopPath(*it);
            if (!s)
            {
                RecentlyLaunchedApps::self().removeItem(*it);
            }
            else
            {
                if (bSeparator)
                {
                    bSeparator = false;
                    /*
                     FIXME: no more titles!
                    int id = insertTitle(
                        RecentlyLaunchedApps::self().caption(),
                        serviceMenuEndId(), 0);
                    setItemEnabled( id, false );
                    */
                    addSeparator();
                }
                insertMenuItem(s, nId++, nIndex);
                RecentlyLaunchedApps::self().m_nNumMenuItems++;
            }

            if (it == RecentApps.begin())
            {
                break;
            }
        }

        if (!KickerSettings::showMenuTitles())
        {
            insertSeparator(RecentlyLaunchedApps::self().m_nNumMenuItems);
        }
    }
}
Esempio n. 8
0
// 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;
	}
}
Esempio n. 9
0
int Twindow::selectFromMenu(const char_t **items,int id,bool translate,int columnHeight)
{
    HMENU hm=CreatePopupMenu();
    for (int ord=0,i=0; items[ord]; i++) {
        insertMenuItem(hm,ord,i+1,items[i],false,columnHeight && i && (i%columnHeight)==0);
    }
    RECT r;
    if (id) {
        GetWindowRect(GetDlgItem(m_hwnd,id),&r);
    } else {
        POINT pt;
        GetCursorPos(&pt);
        r.left=pt.x;
        r.bottom=pt.y;
    }
    int cmd=TrackPopupMenu(translate?_(hm):hm,TPM_LEFTALIGN|TPM_TOPALIGN|TPM_RETURNCMD,r.left-1,r.bottom,0,m_hwnd,0);
    DestroyMenu(hm);
    return cmd?cmd-1:-1;
}
Esempio n. 10
0
void CMainFrame::updateLoadOptionsMenu() {
  const StringArray optionNames = Options::getExistingNames();
  const String saveOptionsMenuPath = _T("3/11");
  int index;
  HMENU optionsMenu = findMenuByString(m_hMenuDefault, saveOptionsMenuPath, index);
  HMENU loadMenu    = (optionsMenu && (index >= 0)) ? getSubMenu(optionsMenu, _T("load options")) : NULL;

  if(loadMenu == NULL) {
    if(optionNames.size() > 0) {
      loadMenu = insertSubMenu(optionsMenu, 12, _T("&Load options"));
    } else {
      return;
    }
  } else {
    removeAllMenuItems(loadMenu);
  }
  const int n = min((int)optionNames.size(), 9);
  for(int i = 0; i < n; i++) {
    insertMenuItem(loadMenu,i, format(_T("%s\tCtrl+%d"), optionNames[i].cstr(), i+1), ID_OPTIONS_LOADOPTIONS+i+1);
  }
}
Esempio n. 11
0
void PanelKMenu::updateRecent()
{
    if (!RecentlyLaunchedApps::self().m_bNeedToUpdate)
    {
        return;
    }

    RecentlyLaunchedApps::self().m_bNeedToUpdate = false;

    int nId = serviceMenuEndId() + 1;

    // remove previous items
    if (RecentlyLaunchedApps::self().m_nNumMenuItems > 0)
    {
        // -1 --> menu title
        int i = KickerSettings::showMenuTitles() ? -1 : 0;
        for (; i < RecentlyLaunchedApps::self().m_nNumMenuItems; i++)
        {
            removeItem(nId + i);
            entryMap_.remove(nId + i);
        }
        RecentlyLaunchedApps::self().m_nNumMenuItems = 0;

        if (!KickerSettings::showMenuTitles())
        {
            removeItemAt(0);
        }
    }

    // insert new items
    QStringList RecentApps;
    RecentlyLaunchedApps::self().getRecentApps(RecentApps);

    if (RecentApps.count() > 0)
    {
        bool bNeedSeparator = KickerSettings::showMenuTitles();
        for (QList<QString>::iterator it = RecentApps.fromLast();
             /*nop*/; --it)
        {
            KService::Ptr s = KService::serviceByDesktopPath(*it);
            if (!s)
            {
                RecentlyLaunchedApps::self().removeItem(*it);
            }
            else
            {
                if (bNeedSeparator)
                {
                    bNeedSeparator = false;
                    addSeparator();
                    /* FIXME: no more titles!
                    int id = insertTitle(
                        RecentlyLaunchedApps::self().caption(),
                        nId - 1, 0);
                    setItemEnabled( id, false );
                    */
                }
                insertMenuItem(s, nId++, KickerSettings::showMenuTitles() ?
                    1 : 0);
                RecentlyLaunchedApps::self().m_nNumMenuItems++;
            }

            if (it == RecentApps.begin())
                break;
        }

        if (!KickerSettings::showMenuTitles())
        {
            insertSeparator(RecentlyLaunchedApps::self().m_nNumMenuItems);
        }
    }
}
Esempio n. 12
0
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);
}
Esempio n. 13
0
void Menu::changed( HMENU hmenu, ItemPtr item )
{
    static const unsigned int MAX_MENU_TEXT = 1024;
    char txtBuf[ MAX_MENU_TEXT + 1 ];
    int i = 0;
    unsigned int j = 0;
    while( i < GetMenuItemCount( hmenu ) )
    {
        MENUITEMINFO info = { sizeof( info ),
                              MIIM_BITMAP | MIIM_CHECKMARKS | MIIM_DATA | MIIM_FTYPE | MIIM_ID |
                              MIIM_STATE | MIIM_STRING | MIIM_SUBMENU
                            };
        info.cch = MAX_MENU_TEXT;
        info.dwTypeData = txtBuf;
        GetMenuItemInfo( hmenu, i, TRUE, &info );

        if( j < item->num() )
        {
            ItemPtr sub = ( *item )[ j ];
            if( ( Item* )info.dwItemData != sub )
            {
                insertMenuItem( hmenu, i, sub );
                ZeroMemory( &info, sizeof( info ) );
                info.cbSize = sizeof( info );
                info.fMask = MIIM_BITMAP | MIIM_CHECKMARKS | MIIM_DATA | MIIM_FTYPE | MIIM_ID |
                             MIIM_STATE | MIIM_STRING | MIIM_SUBMENU;
                info.cch = MAX_MENU_TEXT;
                info.dwTypeData = txtBuf;
                GetMenuItemInfo( hmenu, i, TRUE, &info );
            }
            if( sub->type() == "SEPARATOR" )
                updateSeparator( hmenu, i, sub, info );
            else if( sub->type() == "GROUP" )
                updateGroup( hmenu, i, sub, info );
            else if( sub->type() == "ACTION" )
                updateAction( hmenu, i, sub, info );
            else if( sub->type() == "TOGGLE" )
                updateToggle( hmenu, i, sub, info );
            else if( sub->type() == "CHOICE" )
                updateChoice( hmenu, i, sub, info );
            else if( sub->type() == "EXPANDED_CHOICE" )
                updateExpandedChoice( hmenu, i, sub, info );
            else
                updateUnknownItem( hmenu, i, sub, info );
            GetMenuItemInfo( hmenu, i, TRUE, &info );
            ++i;
            ++j;
        }
        else
            DeleteMenu( hmenu, i, MF_BYPOSITION );
    }
    for(; j< item->num(); ++j )
    {
        ItemPtr sub = ( *item )[ j ];
        insertMenuItem( hmenu, i, sub );
        MENUITEMINFO info = { sizeof( info ),
                              MIIM_BITMAP | MIIM_CHECKMARKS | MIIM_DATA | MIIM_FTYPE | MIIM_ID |
                              MIIM_STATE | MIIM_STRING | MIIM_SUBMENU
                            };
        info.cch = MAX_MENU_TEXT;
        info.dwTypeData = txtBuf;
        GetMenuItemInfo( hmenu, i, TRUE, &info );
        if( sub->type() == "SEPARATOR" )
            updateSeparator( hmenu, i, sub, info );
        else if( sub->type() == "GROUP" )
            updateGroup( hmenu, i, sub, info );
        else if( sub->type() == "ACTION" )
            updateAction( hmenu, i, sub, info );
        else if( sub->type() == "TOGGLE" )
            updateToggle( hmenu, i, sub, info );
        else if( sub->type() == "CHOICE" )
            updateChoice( hmenu, i, sub, info );
        else if( sub->type() == "EXPANDED_CHOICE" )
            updateExpandedChoice( hmenu, i, sub, info );
        else
            updateUnknownItem( hmenu, i, sub, info );
        GetMenuItemInfo( hmenu, i, TRUE, &info );
        ++i;
    }
}