void wxMenuBar::RebuildAccelTable() { // merge the accelerators of all menus into one accel table size_t nAccelCount = 0; size_t i, count = GetMenuCount(); wxMenuList::iterator it; for ( i = 0, it = m_menus.begin(); i < count; i++, it++ ) { nAccelCount += (*it)->GetAccelCount(); } if ( nAccelCount ) { wxAcceleratorEntry *accelEntries = new wxAcceleratorEntry[nAccelCount]; nAccelCount = 0; for ( i = 0, it = m_menus.begin(); i < count; i++, it++ ) { nAccelCount += (*it)->CopyAccels(&accelEntries[nAccelCount]); } SetAcceleratorTable(wxAcceleratorTable(nAccelCount, accelEntries)); delete [] accelEntries; } else // No (more) accelerators. { SetAcceleratorTable(wxAcceleratorTable()); } }
void KeyBinder::UpdateWindow(wxWindow* window) { // Build an updated accelerator table for the commands. std::vector<wxAcceleratorEntry> entries; entries.reserve(m_commands.size()); for (unsigned int i = 0; i < m_commands.size(); ++i) { for (unsigned int j = 0; j < m_commands[i]->keys.size(); ++j) { const Key& key = m_commands[i]->keys[j]; wxAcceleratorEntry entry; entry.Set(key.flags, key.code, m_commands[i]->id); entries.push_back(entry); } } m_accel = wxAcceleratorTable(entries.size(), &entries.front()); window->SetAcceleratorTable(m_accel); }
// Create an accelerator table consisting of all the accelerators // from the menubar in the given menus static wxAcceleratorTable wxCreateAcceleratorTableForMenuBar(wxMenuBar* menuBar) { wxList accelEntries; size_t i; for (i = 0; i < menuBar->GetMenuCount(); i++) { wxAddAccelerators(accelEntries, menuBar->GetMenu(i)); } size_t n = accelEntries.GetCount(); if (n == 0) return wxAcceleratorTable(); wxAcceleratorEntry* entries = new wxAcceleratorEntry[n]; for (i = 0; i < accelEntries.GetCount(); i++) { wxAcceleratorEntry* entry = (wxAcceleratorEntry*) accelEntries.Item(i)->GetData(); entries[i] = (*entry); delete entry; } wxAcceleratorTable table(n, entries); delete[] entries; return table; }
void wxMenuBar::RebuildAccelTable() { // // Merge the accelerators of all menus into one accel table // size_t nAccelCount = 0; size_t i; size_t nCount = GetMenuCount(); wxMenuList::iterator it; for (i = 0, it = m_menus.begin(); i < nCount; i++, it++) { nAccelCount += (*it)->GetAccelCount(); } if (nAccelCount) { wxAcceleratorEntry* pAccelEntries = new wxAcceleratorEntry[nAccelCount]; nAccelCount = 0; for (i = 0, it = m_menus.begin(); i < nCount; i++, it++) { nAccelCount += (*it)->CopyAccels(&pAccelEntries[nAccelCount]); } m_vAccelTable = wxAcceleratorTable( nAccelCount ,pAccelEntries ); delete [] pAccelEntries; } } // end of wxMenuBar::RebuildAccelTable
void wxMenuBar::RebuildAccelTable() { // // Merge the accelerators of all menus into one accel table // size_t nAccelCount = 0; size_t i; size_t nCount = GetMenuCount(); wxMenuList::iterator it; #if defined(__INTEL_COMPILER) && 1 // VDM auto patch # pragma ivdep # pragma swp # pragma unroll #endif #if defined(__INTEL_COMPILER) && 1 /* VDM auto patch */ # pragma ivdep # pragma swp # pragma unroll # pragma prefetch # if 0 # pragma simd noassert # endif #endif /* VDM auto patch */ for (i = 0, it = m_menus.begin(); i < nCount; i++, it++) { nAccelCount += (*it)->GetAccelCount(); } if (nAccelCount) { wxAcceleratorEntry* pAccelEntries = new wxAcceleratorEntry[nAccelCount]; nAccelCount = 0; #if defined(__INTEL_COMPILER) && 1 // VDM auto patch # pragma ivdep # pragma swp # pragma unroll #endif #if defined(__INTEL_COMPILER) && 1 /* VDM auto patch */ # pragma ivdep # pragma swp # pragma unroll # pragma prefetch # if 0 # pragma simd noassert # endif #endif /* VDM auto patch */ for (i = 0, it = m_menus.begin(); i < nCount; i++, it++) { nAccelCount += (*it)->CopyAccels(&pAccelEntries[nAccelCount]); } m_vAccelTable = wxAcceleratorTable( nAccelCount ,pAccelEntries ); delete [] pAccelEntries; } } // end of wxMenuBar::RebuildAccelTable
/** * Assembles an accelerator key table for the browser by calling down to AddAcceleratorTableEntries. */ void WxBrowser::SetBrowserAcceleratorTable(wxFrame* Frame) { TArray<wxAcceleratorEntry> Entries; // Allow derived classes an opportunity to register accelerator keys. AddAcceleratorTableEntries( Entries ); // Create the new table with these. Frame->SetAcceleratorTable( wxAcceleratorTable(Entries.Num(),Entries.GetTypedData()) ); }
csLabelEditingDialog::csLabelEditingDialog(wxWindow* parent) { //wxLoadFromResource(this, parent, wxT("shape_label_dialog")); // Accelerators const wxAcceleratorEntry accel[] = { wxAcceleratorEntry(wxACCEL_CTRL, WXK_RETURN, wxID_OK) }; SetAcceleratorTable(wxAcceleratorTable(WXSIZEOF(accel), accel)); Centre(); wxTextCtrl* textCtrl = XRCCTRL(*this, "text", wxTextCtrl); wxASSERT(textCtrl); // textCtrl->SetAcceleratorTable(accel); textCtrl->SetFocus(); }
CamuleDlg::CamuleDlg( wxWindow* pParent, const wxString &title, wxPoint where, wxSize dlg_size) : wxFrame( pParent, -1, title, where, dlg_size, wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxDIALOG_NO_PARENT| wxRESIZE_BORDER|wxMINIMIZE_BOX|wxMAXIMIZE_BOX|wxCLOSE_BOX, wxT("aMule")), m_activewnd(NULL), m_transferwnd(NULL), m_serverwnd(NULL), m_sharedfileswnd(NULL), m_searchwnd(NULL), m_chatwnd(NULL), m_statisticswnd(NULL), m_kademliawnd(NULL), m_prefsDialog(NULL), m_srv_split_pos(0), m_imagelist(16,16), m_tblist(32,32), m_prefsVisible(false), m_wndToolbar(NULL), m_wndTaskbarNotifier(NULL), m_nActiveDialog(DT_NETWORKS_WND), m_is_safe_state(false), m_BlinkMessages(false), m_CurrentBlinkBitmap(24), m_last_iconizing(0), m_skinFileName(), m_clientSkinNames(CLIENT_SKIN_SIZE) { // Initialize skin names m_clientSkinNames[Client_Green_Smiley] = wxT("Transfer"); m_clientSkinNames[Client_Red_Smiley] = wxT("Connecting"); m_clientSkinNames[Client_Yellow_Smiley] = wxT("OnQueue"); m_clientSkinNames[Client_Grey_Smiley] = wxT("A4AFNoNeededPartsQueueFull"); m_clientSkinNames[Client_White_Smiley] = wxT("StatusUnknown"); m_clientSkinNames[Client_ExtendedProtocol_Smiley] = wxT("ExtendedProtocol"); m_clientSkinNames[Client_SecIdent_Smiley] = wxT("SecIdent"); m_clientSkinNames[Client_BadGuy_Smiley] = wxT("BadGuy"); m_clientSkinNames[Client_CreditsGrey_Smiley] = wxT("CreditsGrey"); m_clientSkinNames[Client_CreditsYellow_Smiley] = wxT("CreditsYellow"); m_clientSkinNames[Client_Upload_Smiley] = wxT("Upload"); m_clientSkinNames[Client_Friend_Smiley] = wxT("Friend"); m_clientSkinNames[Client_eMule_Smiley] = wxT("eMule"); m_clientSkinNames[Client_mlDonkey_Smiley] = wxT("mlDonkey"); m_clientSkinNames[Client_eDonkeyHybrid_Smiley] = wxT("eDonkeyHybrid"); m_clientSkinNames[Client_aMule_Smiley] = wxT("aMule"); m_clientSkinNames[Client_lphant_Smiley] = wxT("lphant"); m_clientSkinNames[Client_Shareaza_Smiley] = wxT("Shareaza"); m_clientSkinNames[Client_xMule_Smiley] = wxT("xMule"); m_clientSkinNames[Client_Unknown] = wxT("Unknown"); m_clientSkinNames[Client_InvalidRating_Smiley] = wxT("InvalidRatingOnFile"); m_clientSkinNames[Client_PoorRating_Smiley] = wxT("PoorRatingOnFile"); m_clientSkinNames[Client_GoodRating_Smiley] = wxT("GoodRatingOnFile"); m_clientSkinNames[Client_FairRating_Smiley] = wxT("FairRatingOnFile"); m_clientSkinNames[Client_ExcellentRating_Smiley] = wxT("ExcellentRatingOnFile"); m_clientSkinNames[Client_CommentOnly_Smiley] = wxT("CommentOnly"); m_clientSkinNames[Client_Encryption_Smiley] = wxT("Encrypted"); // wxWidgets send idle events to ALL WINDOWS by default... *SIGH* wxIdleEvent::SetMode(wxIDLE_PROCESS_SPECIFIED); wxUpdateUIEvent::SetMode(wxUPDATE_UI_PROCESS_SPECIFIED); wxInitAllImageHandlers(); Apply_Clients_Skin(); #ifdef __WINDOWS__ wxSystemOptions::SetOption(wxT("msw.remap"), 0); #endif #if !(wxCHECK_VERSION(2, 9, 0) && defined(__WXMAC__)) // this crashes on Mac with wx 2.9 SetIcon(wxICON(aMule)); #endif srand(time(NULL)); // Create new sizer and stuff a wxPanel in there. wxFlexGridSizer *s_main = new wxFlexGridSizer(1); s_main->AddGrowableCol(0); s_main->AddGrowableRow(0); wxPanel* p_cnt = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize); s_main->Add(p_cnt, 0, wxGROW|wxEXPAND, 0); muleDlg(p_cnt, false, true); SetSizer(s_main, true); m_serverwnd = new CServerWnd(p_cnt, m_srv_split_pos); AddLogLineN(wxEmptyString); AddLogLineN(wxT(" - ") + CFormat(_("This is aMule %s based on eMule.")) % GetMuleVersion()); AddLogLineN(wxT(" ") + CFormat(_("Running on %s")) % wxGetOsDescription()); AddLogLineN(wxT(" - ") + wxString(_("Visit http://www.amule.org to check if a new version is available."))); AddLogLineN(wxEmptyString); #ifdef ENABLE_IP2COUNTRY m_GeoIPavailable = true; m_IP2Country = new CIP2Country(thePrefs::GetConfigDir()); #else m_GeoIPavailable = false; #endif m_searchwnd = new CSearchDlg(p_cnt); m_transferwnd = new CTransferWnd(p_cnt); m_sharedfileswnd = new CSharedFilesWnd(p_cnt); m_statisticswnd = new CStatisticsDlg(p_cnt, theApp->m_statistics); m_chatwnd = new CChatWnd(p_cnt); m_kademliawnd = CastChild(wxT("kadWnd"), CKadDlg); m_serverwnd->Show(false); m_searchwnd->Show(false); m_transferwnd->Show(false); m_sharedfileswnd->Show(false); m_statisticswnd->Show(false); m_chatwnd->Show(false); // Create the GUI timer gui_timer=new wxTimer(this,ID_GUI_TIMER_EVENT); if (!gui_timer) { AddLogLineN(_("FATAL ERROR: Failed to create Timer")); exit(1); } // Set transfers as active window Create_Toolbar(thePrefs::VerticalToolbar()); SetActiveDialog(DT_TRANSFER_WND, m_transferwnd); m_wndToolbar->ToggleTool(ID_BUTTONDOWNLOADS, true ); bool override_where = (where != wxDefaultPosition); bool override_size = ( (dlg_size.x != DEFAULT_SIZE_X) || (dlg_size.y != DEFAULT_SIZE_Y) ); if (!LoadGUIPrefs(override_where, override_size)) { // Prefs not loaded for some reason, exit AddLogLineC(wxT("Error! Unable to load Preferences") ); return; } // Prepare the dialog, sets the splitter-position (AFTER window size is set) m_transferwnd->Prepare(); m_is_safe_state = true; // Init statistics stuff, better do it asap m_statisticswnd->Init(); m_kademliawnd->Init(); m_searchwnd->UpdateCatChoice(); if (thePrefs::UseTrayIcon()) { CreateSystray(); } Show(true); // Must we start minimized? if (thePrefs::GetStartMinimized()) { DoIconize(true); } // Set shortcut keys wxAcceleratorEntry entries[] = { wxAcceleratorEntry(wxACCEL_CTRL, wxT('Q'), wxID_EXIT) }; SetAcceleratorTable(wxAcceleratorTable(itemsof(entries), entries)); ShowED2KLinksHandler( thePrefs::GetFED2KLH() ); wxNotebook* logs_notebook = CastChild( ID_SRVLOG_NOTEBOOK, wxNotebook); wxNotebook* networks_notebook = CastChild( ID_NETNOTEBOOK, wxNotebook); wxASSERT(logs_notebook->GetPageCount() == 4); wxASSERT(networks_notebook->GetPageCount() == 2); for (uint32 i = 0; i < logs_notebook->GetPageCount(); ++i) { m_logpages[i].page = logs_notebook->GetPage(i); m_logpages[i].name = logs_notebook->GetPageText(i); } for (uint32 i = 0; i < networks_notebook->GetPageCount(); ++i) { m_networkpages[i].page = networks_notebook->GetPage(i); m_networkpages[i].name = networks_notebook->GetPageText(i); } DoNetworkRearrange(); }
wxZRColaFrame::wxZRColaFrame() : m_hWndSource(NULL), m_chrSelect(NULL), m_settings(NULL), m_chrReq(NULL), wxZRColaFrameBase(NULL) { { // wxFrameBuilder 3.5 does not support wxAUI_TB_HORIZONTAL flag. Add it manually. wxAuiPaneInfo &paneInfo = m_mgr.GetPane(m_toolbarCompose); paneInfo.LeftDockable(false); paneInfo.RightDockable(false); m_toolbarCompose->SetWindowStyleFlag(m_toolbarCompose->GetWindowStyleFlag() | wxAUI_TB_HORIZONTAL); } // Load main window icons. #ifdef __WINDOWS__ wxIcon icon_small(wxT("00_zrcola.ico"), wxBITMAP_TYPE_ICO_RESOURCE, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON)); wxIconBundle icons; icons.AddIcon(icon_small); icons.AddIcon(wxIcon(wxT("00_zrcola.ico"), wxBITMAP_TYPE_ICO_RESOURCE, ::GetSystemMetrics(SM_CXICON ), ::GetSystemMetrics(SM_CYICON ))); SetIcons(icons); #else wxIcon icon_small(wxICON(00_zrcola.ico)); SetIcon(icon_small); #endif m_taskBarIcon = new wxTaskBarIcon(); if (m_taskBarIcon->IsOk()) { m_taskBarIcon->SetIcon(icon_small, _("ZRCola")); m_taskBarIcon->Connect(wxEVT_TASKBAR_LEFT_DOWN, wxTaskBarIconEventHandler(wxZRColaFrame::OnTaskbarIconClick), NULL, this); } else { // Taskbar icon creation failed. Not the end of the world. No taskbar icon then. delete m_taskBarIcon; } m_settings = new wxZRColaSettings(this); wxPersistentRegisterAndRestore<wxZRColaSettings>(m_settings); m_chrSelect = new wxZRColaCharSelect(this); wxPersistentRegisterAndRestore<wxZRColaCharSelect>(m_chrSelect); m_chrReq = new wxZRColaCharRequest(this); wxPersistentRegisterAndRestore<wxZRColaCharRequest>(m_chrReq); // Set focus. m_panel->m_decomposed->SetFocus(); #if defined(__WXMSW__) // Register notification sink for language detection. m_ulRefCount = 1; m_tfSource = NULL; ITfInputProcessorProfiles *pProfiles; HRESULT hr = CoCreateInstance(CLSID_TF_InputProcessorProfiles, NULL, CLSCTX_INPROC_SERVER, IID_ITfInputProcessorProfiles, (LPVOID*)&pProfiles); if(SUCCEEDED(hr)) { hr = pProfiles->QueryInterface(IID_ITfSource, (LPVOID*)&m_tfSource); if(SUCCEEDED(hr)) { hr = m_tfSource->AdviseSink(IID_ITfLanguageProfileNotifySink, (ITfLanguageProfileNotifySink*)this, &m_dwCookie); if (FAILED(hr) || m_dwCookie == -1) { m_tfSource->Release(); m_tfSource = NULL; } } pProfiles->Release(); } #endif // Register frame specific hotkey(s). { wxAcceleratorEntry entries[1]; entries[0].Set(wxACCEL_NORMAL, WXK_F4, wxID_FOCUS_CHARACTER_CATALOG); SetAcceleratorTable(wxAcceleratorTable(_countof(entries), entries)); } // Restore persistent state of wxAuiManager manually, since m_mgr is not on the heap. wxPersistentAuiManager(&m_mgr).Restore(); // Register global hotkey(s). if (!RegisterHotKey(wxZRColaHKID_INVOKE_COMPOSE, wxMOD_WIN, VK_F5)) wxMessageBox(_("ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available."), _("Warning"), wxOK | wxICON_WARNING); if (!RegisterHotKey(wxZRColaHKID_INVOKE_DECOMPOSE, wxMOD_WIN, VK_F6)) wxMessageBox(_("ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available."), _("Warning"), wxOK | wxICON_WARNING); }