コード例 #1
0
ファイル: MyAuiMgr.hpp プロジェクト: oeuftete/wx-xword
 // Managed Pane Menu
 //------------------
 wxMenu * SetManagedMenu(wxMenu * menu)
 {
     wxMenu * oldmenu = m_menu;
     m_menu = menu;
     UpdateMenu();
     return oldmenu;
 }
コード例 #2
0
ファイル: toolshistory.cpp プロジェクト: Abyss116/libguiex
//------------------------------------------------------------------------------
void CToolsHistory::AddScenePath( const std::string& rScene, const std::string& rPath )
{
	bool bChanged = false;

	//for path
	if( std::find( m_pathHistory.begin(), m_pathHistory.end(), rPath ) == m_pathHistory.end())
	{
		m_pathHistory.push_back(rPath);
		while( !m_pathHistory.empty() && m_pathHistory.size() > m_nMaxSize )
		{
			m_pathHistory.erase( m_pathHistory.begin());
		}
		bChanged = true;
	}

	//for Scene
	if( std::find( m_sceneHistory.begin(), m_sceneHistory.end(), std::make_pair(rScene, rPath) ) == m_sceneHistory.end())
	{
		m_sceneHistory.push_back(std::make_pair(rScene, rPath));
		while( !m_sceneHistory.empty() && m_sceneHistory.size() > m_nMaxSize )
		{
			m_sceneHistory.erase( m_sceneHistory.begin());
		}
		bChanged = true;
	}

	if( bChanged )
	{
		SaveFile();
		UpdateMenu();
	}
}
コード例 #3
0
ファイル: camframe.cpp プロジェクト: Amadiro/xara-cairo
void CCamFrame::OnInitMenuPopup( wxMenuEvent& event )
{
	// Before anything else let's set Document::Current and DocView::Current properly...
	// Menus will either work on no document or the selected document. So the most useful
	// thing to do is to set Current to Selected.
	Document::GetSelected()->SetCurrent();
	DocView::GetSelected()->SetCurrent();

	wxSetCursor( *wxSTANDARD_CURSOR );

PORTNOTE( "other", "Removed usage of bSysMent from OnInitMenuPopup" )
#if !defined(EXCLUDE_FROM_XARALX)
	if (bSysMenu)
	{
		CMDIFrameWnd::OnInitMenuPopup(pMenu, n, bSysMenu);
		// bug fix 2996 
		if(FullScreenMode)
		{
			pMenu->EnableMenuItem(SC_MOVE,MF_GRAYED);
			pMenu->EnableMenuItem(SC_SIZE,MF_GRAYED);
			pMenu->EnableMenuItem(SC_MAXIMIZE,MF_GRAYED);
		}
	}
	else
#endif
	if( !UpdateMenu( event.GetMenu() ) )
		event.Skip();
}
コード例 #4
0
ファイル: CommonPool.cpp プロジェクト: dakk/Faber
/*******************************************************
*   Handle UNDO
*******************************************************/
void CommonPool::SaveUndo()
{
	if (selection==NONE || !Prefs.save_undo)	return;

	Hist.Save(H_REPLACE, pointer, r_sel_pointer);
	UpdateMenu();
}
コード例 #5
0
LDesktop::LDesktop(int deskNum) : QObject(){
	
  DPREFIX = "desktop-"+QString::number(deskNum)+"/";
  desktopnumber = deskNum;
  desktop = new QDesktopWidget();
  defaultdesktop = (deskNum== desktop->primaryScreen());
  xoffset = 0;
  for(int i=0; i<desktopnumber; i++){
    xoffset += desktop->screenGeometry(i).width();
  }
  deskMenu = new QMenu(0);
  appmenu = new AppMenu(0);
  //Setup the internal variables
  settings = new QSettings(QSettings::UserScope, "LuminaDE","desktopsettings", this);
  bgtimer = new QTimer(this);
    bgtimer->setSingleShot(true);
 
  bgWindow = new QWidget(0);
	bgWindow->setObjectName("bgWindow");
	bgWindow->setContextMenuPolicy(Qt::CustomContextMenu);
	LX11::SetAsDesktop(bgWindow->winId());
	bgWindow->setGeometry(xoffset,0,desktop->screenGeometry().width(), desktop->screenGeometry().height());
	connect(bgWindow, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(ShowMenu()) );
  
  //Start the update processes
  QTimer::singleShot(1,this, SLOT(UpdateMenu()) );
  QTimer::singleShot(1,this, SLOT(UpdateBackground()) );
  QTimer::singleShot(1,this, SLOT(UpdateDesktop()) );
  QTimer::singleShot(1,this, SLOT(UpdatePanels()) );

}
コード例 #6
0
ファイル: CommonPool.cpp プロジェクト: dakk/Faber
void CommonPool::Undo()
{
	Hist.Restore();
	Pool.ResetIndexView();
	UpdateMenu();
	RedrawWindow();
}
コード例 #7
0
ファイル: SystemMenuWindow.cpp プロジェクト: masarou/2DAction
void MenuWindow::Update()
{
	if( m_pMainParts ){
		m_pMainParts->UpdatePartsRecursive();
	}
	UpdateMenu();
}
コード例 #8
0
ファイル: FaberView.cpp プロジェクト: Barrett17/Faber
FaberView::FaberView()
	:
	BGroupView(B_VERTICAL, 0)
{
	fToolBar = new ToolBar();

	fTracksContainer = new TracksContainer();

	fInfoToolBar = new InfoToolBar();

	rgb_color backgroundColor = {120,120,120};

	fMenuBar = BuildMainMenuBar();

	BLayoutBuilder::Group<>(this, B_VERTICAL, 0)
		.Add(fMenuBar)
		.Add(fToolBar)
		.AddStrut(0.0f)
			.AddGroup(B_VERTICAL, 0)
				.Add(fTracksContainer)
			.End()
		.AddStrut(10.0f)
		.Add(fInfoToolBar)
		.AddStrut(0.5f)
	.End();

	UpdateMenu();
	fTracksContainer->SetViewColor(backgroundColor);
}
コード例 #9
0
// Oparation
BOOL CRecentDocumentListFixed::Impl::AddToList(
			LPCTSTR									lpstrDocName,
		std::vector<std::pair<CString, CString> >*	parrFore,
		std::vector<std::pair<CString, CString> >*	parrBack,
		const CString								strTitle)
{
	_DocEntry	de;

	if (lstrcpy(de.szDocName, lpstrDocName) == NULL)
		return FALSE;

	for (int i = 0; i < m_arrDocs.GetSize(); i++) {
		if (lstrcmpi(m_arrDocs[i].szDocName, lpstrDocName) == 0) {
			m_arrDocs.RemoveAt(i);
			break;
		}
	}

	if (m_arrDocs.GetSize() == m_nMaxEntries && m_nMaxEntries)	//minit
		m_arrDocs.RemoveAt(0);

	if (parrFore)
		de.arrFore = *parrFore;

	if (parrBack)
		de.arrBack = *parrBack;

	de.strTitle = strTitle;

	BOOL bRet = m_arrDocs.Add(de);
	if (bRet) 
		bRet = UpdateMenu();

	return bRet;
}
コード例 #10
0
ファイル: JXStyleMenu.cpp プロジェクト: mbert/mulberry-lib-jx
void
JXStyleMenu::Receive
	(
	JBroadcaster*	sender,
	const Message&	message
	)
{
	if (sender == this && message.Is(JXMenu::kNeedsUpdate))
		{
		UpdateMenu();
		}
	else if (sender == this && message.Is(JXMenu::kItemSelected))
		{
		const JXMenu::ItemSelected* selection =
			dynamic_cast(const JXMenu::ItemSelected*, &message);
		assert( selection != NULL );

		const JIndex i = selection->GetIndex();
		if (i == kCustomColorCmd)
			{
			assert( itsChooseCustomColorFlag );
			ChooseColor();
			}
		else
			{
			if (i >= kFirstColorCmd)
				{
				itsColorIndex = IndexToColor(i);
				}
			HandleMenuItem(i);
			}
		}

	else if (sender == itsChooseColorDialog &&
コード例 #11
0
void CFVDownloads_Tasks::OnRClick()
{
	CMenu menu;
	menu.LoadMenu (IDM_FVDOWNLOADS);
	ApplyLanguageToMenu (&menu);
	CMenu *pPopup = menu.GetSubMenu (0);

	
	UpdateActiveDownload (0);

	
	UpdateMenu (pPopup);

	ClientToScreen (&m_rbPt);

	m_odmenu.Attach (&menu, FALSE);
	
	m_odmenu.SetImageList (&((CMainFrame*)AfxGetApp ()->m_pMainWnd)->m_imgsMenu, &((CMainFrame*)AfxGetApp ()->m_pMainWnd)->m_dimgsMenu);
	fsSetImage *pImages;
	int cImages;
	CFlashVideoDownloadsWnd::Plugin_GetMenuImages (&pImages, &cImages);
	m_odmenu.SetImages (pImages, cImages);

	fsSetImage img (11, 0, 0);
	m_odmenu.SetImages (&img, 3, NULL, TRUE);

	
	pPopup->TrackPopupMenu (TPM_RIGHTBUTTON | TPM_TOPALIGN | TPM_LEFTALIGN,	
		m_rbPt.x, m_rbPt.y, this);
	m_odmenu.Detach ();

	menu.DestroyMenu ();
}
コード例 #12
0
ファイル: LDesktop.cpp プロジェクト: prodigeni/pcbsd
// =====================
//     PRIVATE SLOTS 
// =====================
void LDesktop::SettingsChanged(){
  settings->sync(); //make sure to catch external settings changes
  QTimer::singleShot(1,this, SLOT(UpdateMenu()) );
  QTimer::singleShot(1,this, SLOT(UpdateBackground()) );
  QTimer::singleShot(1,this, SLOT(UpdateDesktop()) );
  QTimer::singleShot(1,this, SLOT(UpdatePanels()) );
}
コード例 #13
0
ファイル: main.cpp プロジェクト: KGE-INC/vdubauo
LRESULT CALLBACK __VDProjectUI_MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
	switch (msg) {
	case WM_NULL:
		{
			g_bInitWindow = true;
		}
		break;
	case WM_MENUSELECT:
		{
			UpdateMenu();
		}
		break;
	case WM_COMMAND:
		{
			int pos = LOWORD(wParam) - ID_AUO_BASE - 1;
			if ((0 <= pos) && (pos < g_menuList.size())) {
				g_menu = g_menuList.at(pos);
				g_bOutput = true;
				g_bInitOutput = false;
				g_bStartServer = false;
				PostMessage(hwnd, WM_COMMAND, ID_FILE_STARTSERVER, 0);
				break;
			}
		}
		break;
	}
	return CallWindowProc(__VDProjectUI_MainWndProcOrig, hwnd, msg, wParam, lParam);
}
コード例 #14
0
ファイル: toolshistory.cpp プロジェクト: Abyss116/libguiex
//------------------------------------------------------------------------------
void CToolsHistory::SetDefaultEditor(const std::string& rEditor)
{
	m_strDefaultEditor = rEditor;

	SaveFile();
	UpdateMenu();
}
コード例 #15
0
void CommandMenu::OnMessage(const KeyValues *params, VPANEL fromPanel)
{
	char text[255];
	bool bHandled = false;

	KeyValues *param1 = const_cast<KeyValues *>(params);

	// toggle attached cvar, if any
	V_strncpy( text, param1->GetString("toggle"), sizeof( text ) );

	if ( text[0] )
	{
		ConVarRef convar( text );
		if ( convar.IsValid() )
		{
			// toggle cvar 

			if ( convar.GetInt() )	
			{
				convar.SetValue( 0 );
			}
			else
			{
				convar.SetValue( 1 );
			}

			UpdateMenu();
		}
		else
		{
			Msg("CommandComboBox::OnMessage: cvar %s not found.\n", param1->GetString("typedata") );
		}

		bHandled = true;
	}

	// execute attached command, if any
	V_strncpy( text, param1->GetString("command"), sizeof( text ) );
	if ( text[0] )
	{
		engine->ClientCmd( text );
		bHandled = true;
	}

	// fire custom message, if any
	V_strncpy( text, param1->GetString("custom"), sizeof( text ) );
	if ( text[0] )
	{
		OnCustomItem( param1 ); // let derived class decide what to do
		bHandled = true;
	}

	if ( bHandled )
	{
		PostMessage( GetParent(), new KeyValues("CommandMenuClosed") );
	}
		
	BaseClass::OnMessage( params, fromPanel );
}
コード例 #16
0
ファイル: CommonPool.cpp プロジェクト: dakk/Faber
/*******************************************************
*   DeSelect All
*******************************************************/
void CommonPool::DeSelectAll()
{
	if (sample_type != NONE && Pool.selection != NONE){
		selection = NONE;
		r_sel_pointer = 0;
		UpdateMenu();
		RedrawWindow();
	}
}
コード例 #17
0
void CommandMenu::SetVisible(bool state)
{
	if ( state && !IsVisible() )
	{
		UpdateMenu();
	}

	BaseClass::SetVisible( state );
}
コード例 #18
0
BOOL CRecentDocumentListFixed::Impl::RemoveFromList(int nItemID)
{
	int  nIndex = m_arrDocs.GetSize() - (nItemID - m_nMinID) - 1;
	BOOL bRet	= m_arrDocs.RemoveAt(nIndex);

	if (bRet) 
		bRet = UpdateMenu();

	return bRet;
}
コード例 #19
0
ファイル: CommonPool.cpp プロジェクト: dakk/Faber
/*******************************************************
*   Select All
*******************************************************/
void CommonPool::SelectAll()
{
	if (sample_type != NONE){
		pointer = 0;
		r_sel_pointer = size;
		selection = BOTH;
		UpdateMenu();
		RedrawWindow();
	}
}
コード例 #20
0
void CResourceManager::UpdateMenu(HMENU hMenu, WORD wMenuID)
{
	// change the strings inside the menu to the one from txt res file
	int iCount=::GetMenuItemCount(hMenu);
	MENUITEMINFO mif;
	WORD wLoID;
	TCHAR szItem[1024];
	memset(szItem, 0, 1024);
	for (int i=0;i<iCount;i++)
	{
		memset(&mif, 0, sizeof(MENUITEMINFO));
		mif.cbSize=sizeof(MENUITEMINFO);
		mif.dwTypeData=szItem;
		mif.cch=1023;
		mif.fMask=MIIM_FTYPE | MIIM_SUBMENU | MIIM_ID | MIIM_DATA | MIIM_STRING;
		if (::GetMenuItemInfo(hMenu, i, TRUE, &mif))
		{
			// has sub items ?
			if (mif.hSubMenu)
				UpdateMenu(mif.hSubMenu, wMenuID);

			// the menu item contains a string to update
			if (mif.fType == MFT_STRING)
			{
				if (mif.hSubMenu)
				{
					if (mif.dwItemData != 0)
						wLoID=(WORD)mif.dwItemData;		// already updated data
					else
					{
						// fresh menu - try to update info from caption
						wLoID=(WORD)_ttoi((PCTSTR)mif.dwTypeData);

						// remember this info in item's private storage
						MENUITEMINFO ii;
						ii.cbSize=sizeof(MENUITEMINFO);
						ii.fMask=MIIM_DATA;
						::SetMenuItemInfo(hMenu, i, TRUE, &ii);
					}
				}
				else
					wLoID=(WORD)::GetMenuItemID(hMenu, i);

				mif.fMask=MIIM_STRING | MIIM_FTYPE;
				if (m_ld.GetDirection())
					mif.fType |= MFT_RIGHTORDER;
				else
					mif.fType &= ~MFT_RIGHTORDER;
				mif.dwTypeData=(LPTSTR)(m_ld.GetString(wMenuID, wLoID));
				::SetMenuItemInfo(hMenu, i, TRUE, &mif);
			}
		}
	}
}
コード例 #21
0
HMENU CResourceManager::LoadMenu(LPCTSTR pszName)
{
	EnterCriticalSection(&m_cs);
	HMENU hMenu=::LoadMenu(m_hRes, pszName);

	if (hMenu && IS_INTRESOURCE(pszName))
		UpdateMenu(hMenu, (WORD)pszName);

	LeaveCriticalSection(&m_cs);
	return hMenu;
}
コード例 #22
0
		void ImageInfo::OnEmuEvent(const Emulator::Event event,Emulator::Data)
		{
			switch (event)
			{
				case Emulator::EVENT_LOAD:
				case Emulator::EVENT_UNLOAD:

					UpdateMenu();
					break;
			}
		}
コード例 #23
0
ファイル: KeyBinder.cpp プロジェクト: Super-Man/luacode
void KeyBinder::UpdateMenuBar(wxMenuBar* menuBar)
{

    int numMenus = menuBar->GetMenuCount();

    for (int i = 0; i < numMenus; ++i)
    {
        UpdateMenu(menuBar->GetMenu(i));
    }

}
コード例 #24
0
ファイル: UMain.cpp プロジェクト: BajlandoKG/xvm-updater
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  ReadIniSettings();
  SetCaption();
  UpdateMenu();
  if (ParamCount > 0)
    try {
      AbZipOutline1->FileName = ParamStr(1);
    }
    catch (...) {}
}
コード例 #25
0
ファイル: main.cpp プロジェクト: slotwin/miranda-ng
static INT_PTR InitMenu()
{
	CLISTMENUITEM mi = {sizeof(mi)};
	mi.flags = CMIM_ALL;
	mi.position = 100000000;
	mi.icolibItem = GetIconHandle(MENU_NAME);
	mi.pszPopupName = MENU_NAME;
	mi.pszService = SS_SERVICE_NAME;
	hSSMenuToggleOnOff = Menu_AddMainMenuItem(&mi);
	UpdateMenu();
	return 0;
}
コード例 #26
0
ファイル: LDesktop.cpp プロジェクト: LeFroid/lumina
void LDesktop::SettingsChanged(){
  if(issyncing){ return; } //don't refresh for internal modifications to the 
  issyncing = true;
  qDebug() << "Found Settings Change:" << desktopnumber;
  settings->sync(); //make sure to sync with external settings changes
  UpdateBackground();
  UpdateDesktop();
  UpdatePanels();
  UpdateMenu();
  issyncing = false;
  QTimer::singleShot(100, this, SLOT(UnlockSettings()) ); //give it a few moments to settle before performing another sync
}
コード例 #27
0
void HlView::Update()
{
	m_isJustLoaded = BtFalse;

	if( BtStrCompare( m_lastArchiveName, m_archiveName ) == BtFalse )
	{
		Unload();
		Load();
		m_isJustLoaded = BtTrue;
	}
 
	// Update the menu
	UpdateMenu();
}
コード例 #28
0
ファイル: LDesktop.cpp プロジェクト: codersean/lumina
// =====================
//     PRIVATE SLOTS
// =====================
void LDesktop::InitDesktop(){
  //This is called *once* during the main initialization routines
  checkResolution(); //Adjust the desktop config file first (if necessary)
  if(DEBUG){ qDebug() << "Init Desktop:" << desktopnumber; }
    //connect(desktop, SIGNAL(resized(int)), this, SLOT(UpdateGeometry(int)));
  if(DEBUG){ qDebug() << "Desktop #"<<desktopnumber<<" -> "<< desktop->screenGeometry(desktopnumber) << LSession::handle()->screenGeom(desktopnumber); }
  deskMenu = new QMenu(0);
    connect(deskMenu, SIGNAL(triggered(QAction*)), this, SLOT(SystemApplication(QAction*)) );
  winMenu = new QMenu(0);
    winMenu->setTitle(tr("Window List"));
    winMenu->setIcon( LXDG::findIcon("preferences-system-windows","") );
  connect(winMenu, SIGNAL(triggered(QAction*)), this, SLOT(winClicked(QAction*)) );
  workspacelabel = new QLabel(0);
    workspacelabel->setAlignment(Qt::AlignCenter);
  wkspaceact = new QWidgetAction(0);
    wkspaceact->setDefaultWidget(workspacelabel);
  bgtimer = new QTimer(this);
    bgtimer->setSingleShot(true);
    connect(bgtimer, SIGNAL(timeout()), this, SLOT(UpdateBackground()) );

    connect(QApplication::instance(), SIGNAL(DesktopConfigChanged()), this, SLOT(SettingsChanged()) );
    connect(QApplication::instance(), SIGNAL(DesktopFilesChanged()), this, SLOT(UpdateDesktop()) );
    connect(QApplication::instance(), SIGNAL(LocaleChanged()), this, SLOT(LocaleChanged()) );

  if(DEBUG){ qDebug() << "Create bgWindow"; }
  bgWindow = new QWidget();
	bgWindow->setObjectName("bgWindow");
	bgWindow->setContextMenuPolicy(Qt::CustomContextMenu);
	bgWindow->setFocusPolicy(Qt::StrongFocus);
  	bgWindow->setWindowFlags(Qt::WindowStaysOnBottomHint | Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
	LSession::handle()->XCB->SetAsDesktop(bgWindow->winId());
	bgWindow->setGeometry(LSession::handle()->screenGeom(desktopnumber));
	connect(bgWindow, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(ShowMenu()) );
  if(DEBUG){ qDebug() << "Create bgDesktop"; }
  bgDesktop = new LDesktopPluginSpace(bgWindow); //new QMdiArea(bgWindow);
      int grid = settings->value(DPREFIX+"GridSize",-1).toInt();
      if(grid<0 && bgWindow->height() > 2000){ grid = 200; }
      else if(grid<0){ grid = 100; }
      bgDesktop->SetIconSize( grid );
      connect(bgDesktop, SIGNAL(PluginRemovedByUser(QString)), this, SLOT(RemoveDeskPlugin(QString)) );
      connect(bgDesktop, SIGNAL(IncreaseIcons()), this, SLOT(IncreaseDesktopPluginIcons()) );
      connect(bgDesktop, SIGNAL(DecreaseIcons()), this, SLOT(DecreaseDesktopPluginIcons()) );
      connect(bgDesktop, SIGNAL(HideDesktopMenu()), deskMenu, SLOT(hide()));
  if(DEBUG){ qDebug() << " - Desktop Init Done:" << desktopnumber; }
  //Start the update processes
  QTimer::singleShot(10,this, SLOT(UpdateMenu()) );
  QTimer::singleShot(0,this, SLOT(UpdateBackground()) );
  QTimer::singleShot(1,this, SLOT(UpdateDesktop()) );
  QTimer::singleShot(2,this, SLOT(UpdatePanels()) );
}
コード例 #29
0
// メニューの最大文字列を設定する
void CRecentDocumentListFixed::Impl::SetMaxItemLength(int cchMaxLen)
{
	ATLASSERT( (cchMaxLen >= m_cchMaxItemLen_Min && cchMaxLen <= m_cchMaxItemLen_Max) || cchMaxLen == -1 );

	if (cchMaxLen != -1) {
		if (cchMaxLen < m_cchMaxItemLen_Min)
			cchMaxLen = m_cchMaxItemLen_Min;
		else if (cchMaxLen > m_cchMaxItemLen_Max)
			cchMaxLen = m_cchMaxItemLen_Max;
	}

	m_cchMaxItemLen = cchMaxLen;
	UpdateMenu();
}
コード例 #30
0
void CAcceleratorManager::UpdateMenu(HMENU menu)
{
  int count = GetMenuItemCount(menu);

  MENUITEMINFO info;
  wchar_t ss[128];
  ZeroMemory(&info, sizeof(info));
  info.cbSize = sizeof(info);
  info.fMask = MIIM_ID | MIIM_SUBMENU;
  for(int i = 0; i < count; i++) {
    GetMenuItemInfo(menu, i, TRUE, &info);

    if(info.hSubMenu != NULL) {
      UpdateMenu(info.hSubMenu);
    } else {
      if(info.wID != -1) {
        MENUITEMINFOW info2;
        ZeroMemory(&info2, sizeof(info2));
        info2.cbSize = sizeof(info2);
        info2.fMask = MIIM_STRING;
        info2.dwTypeData = ss;
        info2.cch = 128;
        GetMenuItemInfoW(menu, i, MF_BYPOSITION, &info2);
        CStdStringW str = ss;
        int index = str.Find('\t');
        if(index != -1)
          str = str.Left(index);

        CMapWordToCCmdAccelOb::iterator it = m_mapAccelTable.find(info.wID);

        if(it != m_mapAccelTable.end()) {
          CCmdAccelOb *o = it->second;
          if(o->m_Accels.begin() != o->m_Accels.end()) {
            std::list<CAccelsOb*>::iterator j = o->m_Accels.begin();

            CAccelsOb *accel = *j;

            CStdString s;
            accel->GetString(s);
            str += "\t";
            str += s;
          }
        }
        if(str != ss)
          ModifyMenuW(menu, i, MF_BYPOSITION | MF_STRING, info.wID, str);
      }
    }
  }
}