void CBookmarksToolbar::OnBookmarkFolderAdded(const CBookmarkFolder &ParentBookmarkFolder,
	const CBookmarkFolder &BookmarkFolder,std::size_t Position)
{
	if(IsEqualGUID(ParentBookmarkFolder.GetGUID(),m_guidBookmarksToolbar))
	{
		InsertBookmarkFolder(BookmarkFolder,Position);
	}
}
void CManageBookmarksDialog::OnBookmarkAdded(const CBookmarkFolder &ParentBookmarkFolder,
	const CBookmark &Bookmark,std::size_t Position)
{
	if(IsEqualGUID(ParentBookmarkFolder.GetGUID(),m_guidCurrentFolder))
	{
		m_pBookmarkListView->InsertBookmarkIntoListView(Bookmark,static_cast<int>(Position));
	}
}
void CManageBookmarksDialog::BrowseBookmarkFolder(const CBookmarkFolder &BookmarkFolder)
{
	/* Temporary flag used to indicate whether history should
	be saved. It will be reset each time a folder is browsed. */
	if(m_bSaveHistory)
	{
		m_stackBack.push(m_guidCurrentFolder);
	}

	m_bSaveHistory = true;

	m_guidCurrentFolder = BookmarkFolder.GetGUID();
	m_pBookmarkTreeView->SelectFolder(BookmarkFolder.GetGUID());
	m_pBookmarkListView->InsertBookmarksIntoListView(BookmarkFolder);

	UpdateToolbarState();
}
Exemplo n.º 4
0
CAddBookmarkDialog::CAddBookmarkDialog(HINSTANCE hInstance,int iResource,HWND hParent,
	CBookmarkFolder &AllBookmarks,CBookmark &Bookmark) :
	CBaseDialog(hInstance, iResource, hParent, true),
	m_AllBookmarks(AllBookmarks),
	m_Bookmark(Bookmark),
	m_ErrorBrush(CreateSolidBrush(ERROR_BACKGROUND_COLOR))
{
	m_pabdps = &CAddBookmarkDialogPersistentSettings::GetInstance();

	/* If the singleton settings class has not been initialized
	yet, mark the root bookmark as selected and expanded. This
	is only needed the first time this dialog is shown, as
	selection and expansion info will be saved each time after
	that. */
	if(!m_pabdps->m_bInitialized)
	{
		m_pabdps->m_guidSelected = AllBookmarks.GetGUID();
		m_pabdps->m_setExpansion.insert(AllBookmarks.GetGUID());

		m_pabdps->m_bInitialized = true;
	}
}
CManageBookmarksDialog::CManageBookmarksDialog(HINSTANCE hInstance,int iResource,HWND hParent,
	CBookmarkFolder &AllBookmarks) :
m_AllBookmarks(AllBookmarks),
m_guidCurrentFolder(AllBookmarks.GetGUID()),
m_bNewFolderAdded(false),
m_bListViewInitialized(false),
m_bSearchFieldBlank(true),
m_bEditingSearchField(false),
m_hEditSearchFont(NULL),
m_bSaveHistory(true),
CBaseDialog(hInstance,iResource,hParent,true)
{
	m_pmbdps = &CManageBookmarksDialogPersistentSettings::GetInstance();

	if(!m_pmbdps->m_bInitialized)
	{
		m_pmbdps->m_guidSelected = AllBookmarks.GetGUID();
		m_pmbdps->m_setExpansion.insert(AllBookmarks.GetGUID());

		m_pmbdps->m_bInitialized = true;
	}
}
void CManageBookmarksDialog::OnBookmarkFolderAdded(const CBookmarkFolder &ParentBookmarkFolder,
	const CBookmarkFolder &BookmarkFolder,std::size_t Position)
{
	m_pBookmarkTreeView->BookmarkFolderAdded(ParentBookmarkFolder,BookmarkFolder,Position);

	if(IsEqualGUID(ParentBookmarkFolder.GetGUID(),m_guidCurrentFolder))
	{
		int iItem = m_pBookmarkListView->InsertBookmarkFolderIntoListView(BookmarkFolder,static_cast<int>(Position));

		if(IsEqualGUID(BookmarkFolder.GetGUID(),m_guidNewFolder))
		{
			HWND hListView = GetDlgItem(m_hDlg,IDC_MANAGEBOOKMARKS_LISTVIEW);

			SetFocus(hListView);
			NListView::ListView_SelectAllItems(hListView,FALSE);
			NListView::ListView_SelectItem(hListView,iItem,TRUE);
			ListView_EditLabel(hListView,iItem);

			m_bNewFolderAdded = false;
		}
	}
}
void CManageBookmarksDialog::OnNewFolder()
{
	TCHAR szTemp[64];
	LoadString(GetInstance(),IDS_BOOKMARKS_NEWBOOKMARKFOLDER,szTemp,SIZEOF_ARRAY(szTemp));
	CBookmarkFolder NewBookmarkFolder = CBookmarkFolder::Create(szTemp);

	/* Save the folder GUID, so that it can be selected and
	placed into edit mode once the bookmark notification
	comes through. */
	m_bNewFolderAdded = true;
	m_guidNewFolder = NewBookmarkFolder.GetGUID();

	HWND hTreeView = GetDlgItem(m_hDlg,IDC_BOOKMARK_TREEVIEW);
	HTREEITEM hSelectedItem = TreeView_GetSelection(hTreeView);

	assert(hSelectedItem != NULL);

	CBookmarkFolder &ParentBookmarkFolder = m_pBookmarkTreeView->GetBookmarkFolderFromTreeView(
		hSelectedItem);
	ParentBookmarkFolder.InsertBookmarkFolder(NewBookmarkFolder);
}
void CIPBookmarkItemNotifier::BookmarkItemAdded(const CBookmarkFolder &ParentBookmarkFolder,
	const NBookmark::SerializedData_t &sd,std::size_t Position,bool bFolder)
{
	IPBookmarkAddedNotification_t ipban;

	if(bFolder)
	{
		ipban.Type = NExplorerplusplus::IP_NOTIFICATION_TYPE_BOOKMARK_FOLDER_ADDED;
	}
	else
	{
		ipban.Type = NExplorerplusplus::IP_NOTIFICATION_TYPE_BOOKMARK_ADDED;
	}

	ipban.guidParent = ParentBookmarkFolder.GetGUID();
	ipban.uPosition = static_cast<UINT>(Position);

	EnumerationData_t ed = SetupIPData(&ipban,sizeof(ipban),sd.pData,sd.uSize);

	EnumWindows(BookmarkNotifierEnumWindowsStub,reinterpret_cast<LPARAM>(&ed));

	delete ed.pData;
}
void CBookmarksToolbar::InsertBookmarkFolder(const CBookmarkFolder &BookmarkFolder,std::size_t Position)
{
	InsertBookmarkItem(BookmarkFolder.GetName(),BookmarkFolder.GetGUID(),true,Position);
}