Bookmarks sub-startmenu. More...
#include <startmenu.h>


Public Types | |
| typedef StartMenu | super |
Public Member Functions | |
| FavoritesMenu (HWND hwnd, const StartMenuCreateInfo &create_info) | |
Protected Member Functions | |
| virtual int | Command (int id, int code) |
| virtual void | AddEntries () |
Protected Attributes | |
| BookmarkList | _bookmarks |
| BookmarkMap | _entries |
Bookmarks sub-startmenu.
Definition at line 459 of file startmenu.h.
| typedef StartMenu FavoritesMenu::super |
Reimplemented from StartMenu.
Definition at line 461 of file startmenu.h.
| FavoritesMenu::FavoritesMenu | ( | HWND | hwnd, |
| const StartMenuCreateInfo & | create_info | ||
| ) | [inline] |
Definition at line 463 of file startmenu.h.
: super(hwnd, create_info), _bookmarks(*(BookmarkList*)create_info._info) { }
| void FavoritesMenu::AddEntries | ( | ) | [protected, virtual] |
Reimplemented from StartMenu.
Definition at line 2243 of file startmenu.cpp.
References _bookmarks, StartMenu::_create_info, Bookmark::_description, _entries, StartMenuCreateInfo::_filter, ExplorerGlobals::_icon_cache, Bookmark::_icon_idx, Bookmark::_icon_path, Bookmark::_name, BookmarkFolder::_name, StartMenu::_next_id, BookmarkNode::_pbookmark, BookmarkNode::_pfolder, _tcsstr, BookmarkNode::_type, Bookmark::_url, StartMenu::AddButton(), StartMenu::AddEntries(), BookmarkNode::BMNT_BOOKMARK, BookmarkNode::BMNT_FOLDER, IconCache::extract(), g_Globals, ICID_BOOKMARK, ICID_FOLDER, ICID_NONE, and String::toLower().
{
super::AddEntries();
String lwr_filter = _create_info._filter;
lwr_filter.toLower();
for(BookmarkList::iterator it=_bookmarks.begin(); it!=_bookmarks.end(); ++it) {
BookmarkNode& node = *it;
int id = ++_next_id;
_entries[id] = node;
if (node._type == BookmarkNode::BMNT_FOLDER) {
BookmarkFolder& folder = *node._pfolder;
AddButton(folder._name, ICID_FOLDER, true, id);
} else if (node._type == BookmarkNode::BMNT_BOOKMARK) {
Bookmark& bookmark = *node._pbookmark;
ICON_ID icon = ICID_NONE;
if (!bookmark._icon_path.empty())
icon = g_Globals._icon_cache.extract(bookmark._icon_path, bookmark._icon_idx);
// filter non-directory entries
if (!lwr_filter.empty()) {
String lwr_name = bookmark._name;
String lwr_desc = bookmark._description;
String lwr_url = bookmark._url;
lwr_name.toLower();
lwr_desc.toLower();
lwr_url.toLower();
if (!_tcsstr(lwr_name,lwr_filter) && !_tcsstr(lwr_desc,lwr_filter) && !_tcsstr(lwr_url,lwr_filter))
continue;
}
AddButton(bookmark._name, icon!=ICID_NONE?icon:ICID_BOOKMARK, false, id);
}
}
}

| int FavoritesMenu::Command | ( | int | id, |
| int | code | ||
| ) | [protected, virtual] |
Reimplemented from StartMenu.
Definition at line 2288 of file startmenu.cpp.
References BookmarkFolder::_bookmarks, _entries, WindowHandle::_hwnd, BookmarkFolder::_name, BookmarkNode::_pbookmark, BookmarkNode::_pfolder, BookmarkNode::_type, Bookmark::_url, BookmarkNode::BMNT_BOOKMARK, BookmarkNode::BMNT_FOLDER, StartMenu::CloseOtherSubmenus(), StartMenu::CloseStartMenu(), StartMenu::Command(), StartMenu::CreateSubmenu(), HWND, launch_file(), and STARTMENU_CREATOR.
{
BookmarkMap::iterator found = _entries.find(id);
if (found != _entries.end()) {
BookmarkNode& node = found->second;
if (node._type == BookmarkNode::BMNT_FOLDER) {
BookmarkFolder& folder = *node._pfolder;
if (CloseOtherSubmenus(id))
CreateSubmenu(id, folder._name, STARTMENU_CREATOR(FavoritesMenu), &static_cast<BookmarkList&>(folder._bookmarks));
} else if (node._type == BookmarkNode::BMNT_BOOKMARK) {
Bookmark& bookmark = *node._pbookmark;
String url = bookmark._url;
HWND hparent = GetParent(_hwnd);
CloseStartMenu(id);
launch_file(hparent, url, SW_SHOWNORMAL);
}
return 0;
}
return super::Command(id, code);
}

BookmarkList FavoritesMenu::_bookmarks [protected] |
Definition at line 473 of file startmenu.h.
Referenced by AddEntries().
BookmarkMap FavoritesMenu::_entries [protected] |
Reimplemented from StartMenu.
Definition at line 474 of file startmenu.h.
Referenced by AddEntries(), and Command().
|
ROS Explorer Source Code Documentation
generated on 02.01.2013 by
|