wxTaskBarJumpListCategory& wxTaskBarJumpListImpl::GetTasks() { if ( m_tasks.get() == NULL ) m_tasks.reset(new wxTaskBarJumpListCategory(m_jumpList, wxT("Tasks"))); return *(m_tasks.get()); }
wxString wxFindFirstFile(const wxString& spec, int flags) { wxFileName::SplitPath(spec, &gs_dirPath, NULL, NULL); if ( gs_dirPath.empty() ) gs_dirPath = wxT("."); if ( !wxEndsWithPathSeparator(gs_dirPath ) ) gs_dirPath << wxFILE_SEP_PATH; gs_dir.reset(new wxDir(gs_dirPath)); if ( !gs_dir->IsOpened() ) { wxLogSysError(_("Cannot enumerate files '%s'"), spec); return wxEmptyString; } int dirFlags; switch (flags) { case wxDIR: dirFlags = wxDIR_DIRS; break; case wxFILE: dirFlags = wxDIR_FILES; break; default: dirFlags = wxDIR_DIRS | wxDIR_FILES; break; } wxString result; gs_dir->GetFirst(&result, wxFileNameFromPath(spec), dirFlags); if ( result.empty() ) return result; return gs_dirPath + result; }
const wxTaskBarJumpListCategory& wxTaskBarJumpListImpl::GetRecentCategory() { wxString title = wxT("Recent"); if ( m_recent.get() == NULL ) m_recent.reset(new wxTaskBarJumpListCategory(m_jumpList, title)); LoadKnownCategory(title); return *m_recent.get(); }
void MyApp::ShowPreferencesEditor(wxWindow* parent) { if ( !m_prefEditor ) { m_prefEditor.reset(new wxPreferencesEditor); m_prefEditor->AddPage(new PrefsPageGeneral()); m_prefEditor->AddPage(new PrefsPageTopics()); } m_prefEditor->Show(parent); }
void SocketTestCase::UrlTest() { if ( gs_serverHost.empty() ) return; SocketTestEventLoop loop(ms_useLoop); wxURL url("http://" + gs_serverHost); const wxScopedPtr<wxInputStream> in(url.GetInputStream()); CPPUNIT_ASSERT( in.get() ); wxStringOutputStream out; CPPUNIT_ASSERT_EQUAL( wxSTREAM_EOF, in->Read(out).GetLastError() ); }
void wxMenuBar::Init() { if ( !gs_emptyMenuBar ) { gs_emptyMenuBar.reset( new wxMenu() ); gs_emptyMenuBar->AppendSubMenu(CreateAppleMenu(), "\x14") ; } m_eventHandler = this; m_menuBarFrame = NULL; m_rootMenu = new wxMenu(); m_rootMenu->Attach(this); m_appleMenu = CreateAppleMenu(); m_rootMenu->AppendSubMenu(m_appleMenu, "\x14") ; }
void wxMenuBar::MacUninstallMenuBar() { if (s_macInstalledMenuBar == this) { gs_emptyMenuBar->GetPeer()->MakeRoot(); s_macInstalledMenuBar = NULL; } }
wxString wxFindNextFile() { wxCHECK_MSG( gs_dir, "", "You must call wxFindFirstFile before!" ); wxString result; if ( !gs_dir->GetNext(&result) || result.empty() ) return result; return gs_dirPath + result; }
void wxTaskBarJumpListImpl::AddTasksToDestinationList() { if ( !m_tasks.get() ) return; wxCOMPtr<IObjectCollection> collection(CreateObjectCollection()); if ( !collection ) return; const wxTaskBarJumpListItems& tasks = m_tasks->GetItems(); for ( wxTaskBarJumpListItems::const_iterator it = tasks.begin(); it != tasks.end(); ++it ) { wxASSERT_MSG( ((*it)->GetType() == wxTASKBAR_JUMP_LIST_TASK || (*it)->GetType() == wxTASKBAR_JUMP_LIST_SEPARATOR), "Invalid task Item." ); AddShellLink(collection, *(*it)); } m_destinationList->AddUserTasks(collection); }
wxMenu::~wxMenu() { #if wxOSX_USE_CARBON // when destroying the empty menu bar from the static scoped ptr // the peer destructor removes an association from an already deleted // hashmap leading to crashes. The guard avoids this, accepting some leaks... static bool finalmenubar = false; if ( this == gs_emptyMenuBar.get() ) finalmenubar = true; if ( !finalmenubar ) #endif delete m_peer; }
wxMenuBar::~wxMenuBar() { if (s_macCommonMenuBar == this) s_macCommonMenuBar = NULL; if (s_macInstalledMenuBar == this) { gs_emptyMenuBar->GetPeer()->MakeRoot(); s_macInstalledMenuBar = NULL; } wxDELETE( m_rootMenu ); // apple menu is a submenu, therefore we don't have to delete it m_appleMenu = NULL; // deleting the root menu also removes all its wxMenu* submenus, therefore // we must avoid double deleting them in the superclass destructor m_menus.clear(); }
void wxTaskBarJumpListImpl::LoadKnownCategory(const wxString& title) { IApplicationDocumentLists *docList = 0; HRESULT hr = CoCreateInstance ( wxCLSID_ApplicationDocumentLists, NULL, CLSCTX_INPROC_SERVER, wxIID_IApplicationDocumentLists, reinterpret_cast<void **>(&docList) ); if ( FAILED(hr) ) { wxLogApiError("CoCreateInstance(wxCLSID_ApplicationDocumentLists)", hr); return; } if ( !m_appID.empty() ) docList->SetAppID(m_appID.wc_str()); IObjectArray *array = NULL; wxASSERT_MSG( title == "Recent" || title == "Frequent", "Invalid title." ); hr = docList->GetList ( title == "Recent" ? ADLT_RECENT : ADLT_FREQUENT, 0, wxIID_IObjectArray, reinterpret_cast<void **>(&array) ); if ( FAILED(hr) ) { wxLogApiError("IApplicationDocumentLists::GetList", hr); return; } UINT count = 0; array->GetCount(&count); for (UINT i = 0; i < count; ++i) { IUnknown *collectionItem = NULL; hr = array->GetAt(i, wxIID_IUnknown, reinterpret_cast<void **>(&collectionItem)); if ( FAILED(hr) ) { wxLogApiError("IObjectArray::GetAt", hr); continue; } IShellLink *shellLink = NULL; IShellItem *shellItem = NULL; wxTaskBarJumpListItem* item = NULL; if ( SUCCEEDED(collectionItem->QueryInterface( wxIID_IShellLink, reinterpret_cast<void**>(&shellLink))) ) { item = GetItemFromIShellLink(shellLink); shellLink->Release(); } else if ( SUCCEEDED(collectionItem->QueryInterface( wxIID_IShellItem, reinterpret_cast<void**>(&shellItem))) ) { item = GetItemFromIShellItem(shellItem); shellItem->Release(); } else { wxLogError("Can not query interfaces: IShellLink or IShellItem."); } if ( item ) { if ( title == wxT("Frequent") ) m_frequent->Append(item); else m_recent->Append(item); } collectionItem->Release(); } array->Release(); docList->Release(); }
void MyApp::DismissPreferencesEditor() { if ( m_prefEditor ) m_prefEditor->Dismiss(); }