linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #03135
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 2404: Icon support for sub-items in lists
------------------------------------------------------------
revno: 2404
committer: Jacek Sieka <arnetheduck@xxxxxxxxx>
branch nick: dcplusplus
timestamp: Sun 2011-01-30 14:28:11 +0100
message:
Icon support for sub-items in lists
modified:
dwt/src/widgets/Table.cpp
win32/DirectoryListingFrame.cpp
win32/DirectoryListingFrame.h
win32/FavHubGroupsDlg.cpp
win32/FavHubGroupsDlg.h
win32/FinishedFrameBase.h
win32/HubFrame.cpp
win32/HubFrame.h
win32/PublicHubsFrame.h
win32/QueueFrame.cpp
win32/QueueFrame.h
win32/SearchFrame.cpp
win32/SearchFrame.h
win32/TransferView.cpp
win32/TransferView.h
win32/TypedTable.h
win32/UsersFrame.h
win32/WinUtil.cpp
--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk
Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'dwt/src/widgets/Table.cpp'
--- dwt/src/widgets/Table.cpp 2011-01-27 23:46:12 +0000
+++ dwt/src/widgets/Table.cpp 2011-01-30 13:28:11 +0000
@@ -52,7 +52,7 @@
Table::Seed::Seed() :
BaseType::Seed(WS_CHILD | WS_TABSTOP | LVS_REPORT),
font(new Font(DefaultGuiFont)),
- lvStyle(0)
+ lvStyle(LVS_EX_DOUBLEBUFFER | LVS_EX_SUBITEMIMAGES)
{
}
@@ -240,7 +240,7 @@
}
// now insert sub-items (for columns)
- lvi.mask = LVIF_TEXT;
+ lvi.mask = LVIF_TEXT | LVIF_IMAGE;
lvi.iSubItem = 1;
for(std::vector<tstring>::const_iterator i = row.begin() + 1, iend = row.end(); i != iend; ++i) {
lvi.pszText = const_cast<LPTSTR>(i->c_str());
=== modified file 'win32/DirectoryListingFrame.cpp'
--- win32/DirectoryListingFrame.cpp 2011-01-12 14:38:02 +0000
+++ win32/DirectoryListingFrame.cpp 2011-01-30 13:28:11 +0000
@@ -53,7 +53,11 @@
TStringList DirectoryListingFrame::lastSearches;
-int DirectoryListingFrame::ItemInfo::getImage() const {
+int DirectoryListingFrame::ItemInfo::getImage(int col) const {
+ if(col != 0) {
+ return -1;
+ }
+
if(type == DIRECTORY || type == USER) {
return dir->getComplete() ? WinUtil::DIR_ICON : WinUtil::DIR_ICON_INCOMPLETE;
}
@@ -481,7 +485,7 @@
ShellMenuPtr DirectoryListingFrame::makeSingleMenu(ItemInfo* ii) {
ShellMenuPtr menu = addChild(ShellMenu::Seed());
- menu->setTitle(escapeMenu(ii->getText(COLUMN_FILENAME)), WinUtil::fileImages->getIcon(ii->getImage()));
+ menu->setTitle(escapeMenu(ii->getText(COLUMN_FILENAME)), WinUtil::fileImages->getIcon(ii->getImage(0)));
menu->appendItem(T_("&Download"), std::bind(&DirectoryListingFrame::handleDownload, this), WinUtil::menuIcon(IDI_DOWNLOAD), true, true);
addTargets(menu, ii);
@@ -521,7 +525,7 @@
ShellMenuPtr menu = addChild(ShellMenu::Seed());
menu->setTitle(escapeMenu(ii ? ii->getText(COLUMN_FILENAME) : getText()),
- ii ? WinUtil::fileImages->getIcon(ii->getImage()) : getParent()->getIcon(this));
+ ii ? WinUtil::fileImages->getIcon(ii->getImage(0)) : getParent()->getIcon(this));
menu->appendItem(T_("&Download"), std::bind(&DirectoryListingFrame::handleDownload, this), WinUtil::menuIcon(IDI_DOWNLOAD), true, true);
addTargets(menu);
=== modified file 'win32/DirectoryListingFrame.h'
--- win32/DirectoryListingFrame.h 2011-01-10 21:49:08 +0000
+++ win32/DirectoryListingFrame.h 2011-01-30 13:28:11 +0000
@@ -132,10 +132,10 @@
return columns[COLUMN_FILENAME];
}
- int getImage() const;
+ int getImage(int col = 0) const;
int getSelectedImage() const {
- return getImage();
+ return getImage(0);
}
const tstring& getText(int col) const {
=== modified file 'win32/FavHubGroupsDlg.cpp'
--- win32/FavHubGroupsDlg.cpp 2011-01-02 17:12:02 +0000
+++ win32/FavHubGroupsDlg.cpp 2011-01-30 13:28:11 +0000
@@ -66,8 +66,8 @@
return columns[col];
}
-int FavHubGroupsDlg::GroupInfo::getImage() const {
- return 0;
+int FavHubGroupsDlg::GroupInfo::getImage(int) const {
+ return -1;
}
int FavHubGroupsDlg::GroupInfo::compareItems(const GroupInfo* a, const GroupInfo* b, int col) {
=== modified file 'win32/FavHubGroupsDlg.h'
--- win32/FavHubGroupsDlg.h 2011-01-02 17:12:02 +0000
+++ win32/FavHubGroupsDlg.h 2011-01-30 13:28:11 +0000
@@ -45,7 +45,7 @@
GroupInfo(const FavHubGroup& group_);
const tstring& getText(int col) const;
- int getImage() const;
+ int getImage(int) const;
static int compareItems(const GroupInfo* a, const GroupInfo* b, int col);
=== modified file 'win32/FinishedFrameBase.h'
--- win32/FinishedFrameBase.h 2011-01-29 14:15:43 +0000
+++ win32/FinishedFrameBase.h 2011-01-30 13:28:11 +0000
@@ -257,8 +257,8 @@
const tstring& getText(int col) const {
return columns[col];
}
- int getImage() const {
- return WinUtil::getFileIcon(Text::toT(file));
+ int getImage(int col) const {
+ return col == 0 ? WinUtil::getFileIcon(Text::toT(file)) : -1;
}
static int compareItems(FileInfo* a, FileInfo* b, int col) {
@@ -338,7 +338,7 @@
const tstring& getText(int col) const {
return columns[col];
}
- int getImage() const {
+ int getImage(int) const {
return 0;
}
@@ -437,7 +437,7 @@
ShellMenuPtr menu = filesWindow->addChild(ShellMenu::Seed());
menu->setTitle(selData ? escapeMenu(selData->getText(FILES_COLUMN_FILE)) : str(TF_("%1% files") % sel),
- selData ? WinUtil::fileImages->getIcon(selData->getImage()) : tabs->getIcon(filesWindow));
+ selData ? WinUtil::fileImages->getIcon(selData->getImage(0)) : tabs->getIcon(filesWindow));
menu->appendItem(T_("&View as text"), std::bind(&ThisType::handleViewAsText, this), dwt::IconPtr(), checker.allFilesExist && !checker.isBz2);
menu->appendItem(T_("&Open"), std::bind(&ThisType::handleOpenFile, this), dwt::IconPtr(), checker.allFilesExist, true);
menu->appendItem(T_("Open &folder"), std::bind(&ThisType::handleOpenFolder, this));
@@ -465,7 +465,7 @@
dwt::MenuPtr menu = usersWindow->addChild(WinUtil::Seeds::menu);
menu->setTitle(selData ? escapeMenu(selData->getText(USERS_COLUMN_NICK)) : str(TF_("%1% users") % sel),
- selData ? WinUtil::userImages->getIcon(selData->getImage()) : tabs->getIcon(usersWindow));
+ selData ? WinUtil::userImages->getIcon(selData->getImage(0)) : tabs->getIcon(usersWindow));
menu->appendItem(T_("&Remove"), std::bind(&ThisType::handleRemoveUsers, this));
menu->appendItem(T_("Remove &all"), std::bind(&ThisType::handleRemoveAll, this));
menu->appendSeparator();
=== modified file 'win32/HubFrame.cpp'
--- win32/HubFrame.cpp 2011-01-09 22:09:24 +0000
+++ win32/HubFrame.cpp 2011-01-30 13:28:11 +0000
@@ -707,7 +707,11 @@
return ChatType::handleMessageKeyDown(c);
}
-int HubFrame::UserInfo::getImage() const {
+int HubFrame::UserInfo::getImage(int col) const {
+ if(col != 0) {
+ return -1;
+ }
+
int image = identity.isBot() ? WinUtil::USER_ICON_BOT : identity.isAway() ? WinUtil::USER_ICON_AWAY : WinUtil::USER_ICON;
image *= WinUtil::USER_ICON_MOD_START * WinUtil::USER_ICON_MOD_START;
=== modified file 'win32/HubFrame.h'
--- win32/HubFrame.h 2011-01-09 14:54:10 +0000
+++ win32/HubFrame.h 2011-01-30 13:28:11 +0000
@@ -121,7 +121,7 @@
const tstring& getText(int col) const {
return columns[col];
}
- int getImage() const;
+ int getImage(int col) const;
static int compareItems(const UserInfo* a, const UserInfo* b, int col);
bool update(const Identity& identity, int sortCol);
=== modified file 'win32/PublicHubsFrame.h'
--- win32/PublicHubsFrame.h 2011-01-09 14:54:10 +0000
+++ win32/PublicHubsFrame.h 2011-01-30 13:28:11 +0000
@@ -83,7 +83,7 @@
static int compareItems(const HubInfo* a, const HubInfo* b, int col);
const tstring& getText(int column) const { return columns[column]; }
- int getImage() const { return 0; }
+ int getImage(int) const { return 0; }
const HubEntry* entry;
=== modified file 'win32/QueueFrame.cpp'
--- win32/QueueFrame.cpp 2011-01-09 14:54:10 +0000
+++ win32/QueueFrame.cpp 2011-01-30 13:28:11 +0000
@@ -425,8 +425,8 @@
}
-int QueueFrame::DirItemInfo::getImage() {
- return WinUtil::DIR_ICON;
+int QueueFrame::DirItemInfo::getImage(int col) {
+ return col == 0 ? WinUtil::DIR_ICON : -1;
}
int QueueFrame::DirItemInfo::getSelectedImage() {
@@ -848,7 +848,7 @@
MenuPtr QueueFrame::makeSingleMenu(QueueItemInfo* qii) {
MenuPtr menu = addChild(WinUtil::Seeds::menu);
- menu->setTitle(escapeMenu(qii->getText(COLUMN_TARGET)), WinUtil::fileImages->getIcon(qii->getImage()));
+ menu->setTitle(escapeMenu(qii->getText(COLUMN_TARGET)), WinUtil::fileImages->getIcon(qii->getImage(0)));
WinUtil::addHashItems(menu, qii->getTTH(), Text::toT(Util::getFileName(qii->getTarget())), qii->getSize());
menu->appendItem(T_("&Move/Rename"), std::bind(&QueueFrame::handleMove, this));
@@ -883,7 +883,7 @@
auto selData = dirs->getSelectedData();
menu->setTitle(escapeMenu(selData ? selData->getText() : getText()),
- selData ? WinUtil::fileImages->getIcon(selData->getImage()) : getParent()->getIcon(this));
+ selData ? WinUtil::fileImages->getIcon(selData->getImage(0)) : getParent()->getIcon(this));
addPriorityMenu(menu);
menu->appendItem(T_("&Move/Rename"), std::bind(&QueueFrame::handleMove, this));
=== modified file 'win32/QueueFrame.h'
--- win32/QueueFrame.h 2011-01-09 14:54:10 +0000
+++ win32/QueueFrame.h 2011-01-30 13:28:11 +0000
@@ -73,7 +73,7 @@
DirItemInfo(const string& dir);
DirItemInfo(const string& dir_, const tstring& text_) : dir(dir_), text(text_) { }
const tstring& getText() const { return text; }
- int getImage();
+ int getImage(int col = 0);
int getSelectedImage();
const string& getDir() const { return dir; }
private:
@@ -128,8 +128,8 @@
return getDisplay()->columns[col];
}
- int getImage() const {
- return WinUtil::getFileIcon(Text::toT(getTarget()));
+ int getImage(int col) const {
+ return col == 0 ? WinUtil::getFileIcon(Text::toT(getTarget())) : -1;
}
static int compareItems(QueueItemInfo* a, QueueItemInfo* b, int col) {
=== modified file 'win32/SearchFrame.cpp'
--- win32/SearchFrame.cpp 2011-01-29 14:15:43 +0000
+++ win32/SearchFrame.cpp 2011-01-30 13:28:11 +0000
@@ -49,7 +49,11 @@
SearchFrame::FrameSet SearchFrame::frames;
-int SearchFrame::SearchInfo::getImage() {
+int SearchFrame::SearchInfo::getImage(int col) const {
+ if(col != 0) {
+ return -1;
+ }
+
const SearchResultPtr& sr = srs[0];
return sr->getType() == SearchResult::TYPE_FILE ? WinUtil::getFileIcon(Text::toT(sr->getFile())) : WinUtil::DIR_ICON;
}
=== modified file 'win32/SearchFrame.h'
--- win32/SearchFrame.h 2011-01-09 14:54:10 +0000
+++ win32/SearchFrame.h 2011-01-30 13:28:11 +0000
@@ -120,7 +120,7 @@
};
const tstring& getText(int col) const { return columns[col]; }
- int getImage();
+ int getImage(int col) const;
static int compareItems(SearchInfo* a, SearchInfo* b, int col);
@@ -140,7 +140,7 @@
const tstring& getText(int col) const {
return (col == 0) ? name : Util::emptyStringT;
}
- int getImage() const {
+ int getImage(int) const {
return 0;
}
static int compareItems(HubInfo* a, HubInfo* b, int col) {
=== modified file 'win32/TransferView.cpp'
--- win32/TransferView.cpp 2011-01-09 14:54:10 +0000
+++ win32/TransferView.cpp 2011-01-30 13:28:11 +0000
@@ -197,7 +197,7 @@
MenuPtr menu = addChild(WinUtil::Seeds::menu);
menu->setTitle(selData ? escapeMenu(selData->getText(CONNECTION_COLUMN_USER)) : str(TF_("%1% users") % sel),
- selData ? arrows->getIcon(selData->getImage()) : 0);
+ selData ? arrows->getIcon(selData->getImage(0)) : 0);
appendUserItems(mdi, menu, false);
menu->appendSeparator();
@@ -225,7 +225,7 @@
MenuPtr menu = addChild(WinUtil::Seeds::menu);
menu->setTitle(selData ? escapeMenu(selData->getText(DOWNLOAD_COLUMN_FILE)) : str(TF_("%1% files") % sel),
- selData ? WinUtil::fileImages->getIcon(selData->getImage()) : 0);
+ selData ? WinUtil::fileImages->getIcon(selData->getImage(0)) : 0);
if(selData) {
WinUtil::addHashItems(menu, selData->tth, selData->getText(DOWNLOAD_COLUMN_FILE), selData->size);
@@ -234,7 +234,7 @@
selData = downloads->getData(i);
if(selData) {
const tstring& file = selData->getText(DOWNLOAD_COLUMN_FILE);
- WinUtil::addHashItems(menu->appendPopup(file, WinUtil::fileImages->getIcon(selData->getImage())),
+ WinUtil::addHashItems(menu->appendPopup(file, WinUtil::fileImages->getIcon(selData->getImage(0))),
selData->tth, file, selData->size);
}
}
@@ -667,8 +667,8 @@
update();
}
-int TransferView::DownloadInfo::getImage() const {
- return WinUtil::getFileIcon(Text::toT(path));
+int TransferView::DownloadInfo::getImage(int col) const {
+ return col == 0 ? WinUtil::getFileIcon(Text::toT(path)) : -1;
}
void TransferView::DownloadInfo::update(const TransferView::TickInfo& ti) {
=== modified file 'win32/TransferView.h'
--- win32/TransferView.h 2011-01-09 14:54:10 +0000
+++ win32/TransferView.h 2011-01-30 13:28:11 +0000
@@ -129,8 +129,8 @@
const tstring& getText(int col) const {
return columns[col];
}
- int getImage() const {
- return download ? IMAGE_DOWNLOAD : IMAGE_UPLOAD;
+ int getImage(int col) const {
+ return col == 0 ? (download ? IMAGE_DOWNLOAD : IMAGE_UPLOAD) : -1;
}
static int compareItems(ConnectionInfo* a, ConnectionInfo* b, int col);
@@ -202,7 +202,7 @@
return columns[col];
}
- int getImage() const;
+ int getImage(int col) const;
static int compareItems(DownloadInfo* a, DownloadInfo* b, int col) {
switch(col) {
=== modified file 'win32/TypedTable.h'
--- win32/TypedTable.h 2011-01-02 17:12:02 +0000
+++ win32/TypedTable.h 2011-01-30 13:28:11 +0000
@@ -197,7 +197,7 @@
}
if(nm->item.mask & LVIF_IMAGE) {
ContentType* content = reinterpret_cast<ContentType*>(nm->item.lParam);
- nm->item.iImage = content->getImage();
+ nm->item.iImage = content->getImage(nm->item.iSubItem);
}
return true;
}
=== modified file 'win32/UsersFrame.h'
--- win32/UsersFrame.h 2011-01-29 14:15:43 +0000
+++ win32/UsersFrame.h 2011-01-30 13:28:11 +0000
@@ -79,7 +79,7 @@
return columns[col];
}
- int getImage() const {
+ int getImage(int col) const {
return 0;
}
=== modified file 'win32/WinUtil.cpp'
--- win32/WinUtil.cpp 2011-01-29 14:15:43 +0000
+++ win32/WinUtil.cpp 2011-01-30 13:28:11 +0000
@@ -230,7 +230,7 @@
xTable.style |= WS_HSCROLL | WS_VSCROLL | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS;
xTable.exStyle = WS_EX_CLIENTEDGE;
- xTable.lvStyle = LVS_EX_HEADERDRAGDROP | LVS_EX_FULLROWSELECT | LVS_EX_LABELTIP | LVS_EX_DOUBLEBUFFER;
+ xTable.lvStyle = LVS_EX_HEADERDRAGDROP | LVS_EX_FULLROWSELECT | LVS_EX_LABELTIP | LVS_EX_DOUBLEBUFFER | LVS_EX_SUBITEMIMAGES;
xTable.font = font;
xtextBox.exStyle = WS_EX_CLIENTEDGE;