linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #04173
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 2533: add icons in balloons
------------------------------------------------------------
revno: 2533
committer: poy <poy@xxxxxxxxxx>
branch nick: trunk
timestamp: Fri 2011-05-27 13:03:29 +0200
message:
add icons in balloons
modified:
changelog.txt
win32/HubFrame.cpp
win32/MainWindow.cpp
win32/MainWindow.h
win32/NotificationsPage.cpp
win32/NotificationsPage.h
win32/PrivateFrame.cpp
win32/WinUtil.cpp
win32/WinUtil.h
--
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 'changelog.txt'
--- changelog.txt 2011-05-06 22:46:06 +0000
+++ changelog.txt 2011-05-27 11:03:29 +0000
@@ -24,7 +24,7 @@
* Increase the max bandwidth limit from 32 MiB/s to 1 GiB/s
* More icons (many from the Crystal Clear project, thanks to them)
* Add notifications via balloon popups and sound (poy)
-* Fix taskbar thumbnails and "Aero Peek" live previews when DC++ is elevated (poy)
+* Fix taskbar tab previews when DC++ is elevated (poy)
* When holding shift at start, hubs are opened but not connected to (poy)
-- 0.782 2011-03-05 --
=== modified file 'win32/HubFrame.cpp'
--- win32/HubFrame.cpp 2011-05-06 22:46:06 +0000
+++ win32/HubFrame.cpp 2011-05-27 11:03:29 +0000
@@ -463,7 +463,7 @@
void HubFrame::addChat(const tstring& aLine) {
ChatType::addChat(client, aLine);
- WinUtil::notify(SettingsManager::SOUND_MAIN_CHAT, SettingsManager::BALLOON_MAIN_CHAT, T_("Main chat message"), aLine);
+ WinUtil::notify(WinUtil::NOTIFICATION_MAIN_CHAT, aLine);
setDirty(SettingsManager::BOLD_HUB);
if(BOOLSETTING(LOG_MAIN_CHAT)) {
=== modified file 'win32/MainWindow.cpp'
--- win32/MainWindow.cpp 2011-05-06 22:46:06 +0000
+++ win32/MainWindow.cpp 2011-05-27 11:03:29 +0000
@@ -586,8 +586,8 @@
return false;
}
-void MainWindow::notify(const tstring& title, const tstring& message) {
- notifier->addMessage(_T("DC++ - ") + title, message);
+void MainWindow::notify(const tstring& title, const tstring& message, const dwt::IconPtr& balloonIcon) {
+ notifier->addMessage(_T("DC++ - ") + title, message, balloonIcon);
}
void MainWindow::setStaticWindowState(const string& id, bool open) {
@@ -1515,8 +1515,7 @@
auto user = qi->getDownloads()[0]->getHintedUser();
callAsync([this, file, dir, user, speed] {
DirectoryListingFrame::openWindow(getTabView(), Text::toT(file), Text::toT(dir), user, speed);
- WinUtil::notify(SettingsManager::SOUND_FINISHED_FL, SettingsManager::BALLOON_FINISHED_FL,
- T_("File list downloaded"), Text::toT(Util::getFileName(file)));
+ WinUtil::notify(WinUtil::NOTIFICATION_FINISHED_FL, Text::toT(Util::getFileName(file)));
});
} else if(qi->isSet(QueueItem::FLAG_TEXT)) {
@@ -1531,8 +1530,7 @@
if(!qi->isSet(QueueItem::FLAG_USER_LIST)) {
auto file = qi->getTarget();
callAsync([file] {
- WinUtil::notify(SettingsManager::SOUND_FINISHED_DL, SettingsManager::BALLOON_FINISHED_DL,
- T_("Download finished"), Text::toT(file));
+ WinUtil::notify(WinUtil::NOTIFICATION_FINISHED_DL, Text::toT(file));
});
}
}
=== modified file 'win32/MainWindow.h'
--- win32/MainWindow.h 2011-05-06 22:46:06 +0000
+++ win32/MainWindow.h 2011-05-27 11:03:29 +0000
@@ -64,7 +64,7 @@
void handleSettings();
- void notify(const tstring& title, const tstring& message);
+ void notify(const tstring& title, const tstring& message, const dwt::IconPtr& balloonIcon = 0);
void setStaticWindowState(const string& id, bool open);
void TrayPM();
=== modified file 'win32/NotificationsPage.cpp'
--- win32/NotificationsPage.cpp 2011-05-04 19:32:00 +0000
+++ win32/NotificationsPage.cpp 2011-05-27 11:03:29 +0000
@@ -27,25 +27,11 @@
#include "resource.h"
#include "MainWindow.h"
-#include "WinUtil.h"
using dwt::Grid;
using dwt::GridInfo;
using dwt::LoadDialog;
-NotificationsPage::Option NotificationsPage::options[] = {
- { N_("Download finished"), SettingsManager::SOUND_FINISHED_DL, Util::emptyStringT,
- SettingsManager::BALLOON_FINISHED_DL, 0, IDH_SETTINGS_NOTIFICATIONS_FINISHED_DL },
- { N_("File list downloaded"), SettingsManager::SOUND_FINISHED_FL, Util::emptyStringT,
- SettingsManager::BALLOON_FINISHED_FL, 0, IDH_SETTINGS_NOTIFICATIONS_FINISHED_FL },
- { N_("Main chat message received"), SettingsManager::SOUND_MAIN_CHAT, Util::emptyStringT,
- SettingsManager::BALLOON_MAIN_CHAT, 0, IDH_SETTINGS_NOTIFICATIONS_MAIN_CHAT },
- { N_("Private message received"), SettingsManager::SOUND_PM, Util::emptyStringT,
- SettingsManager::BALLOON_PM, 0, IDH_SETTINGS_NOTIFICATIONS_PM },
- { N_("Private message window opened"), SettingsManager::SOUND_PM_WINDOW, Util::emptyStringT,
- SettingsManager::BALLOON_PM_WINDOW, 0, IDH_SETTINGS_NOTIFICATIONS_PM_WINDOW }
-};
-
static const ColumnInfo columns[] = {
{ "", 0, false },
{ N_("Event"), 100, false },
@@ -65,6 +51,12 @@
{
setHelpId(IDH_NOTIFICATIONSPAGE);
+ options[WinUtil::NOTIFICATION_FINISHED_DL].helpId = IDH_SETTINGS_NOTIFICATIONS_FINISHED_DL;
+ options[WinUtil::NOTIFICATION_FINISHED_FL].helpId = IDH_SETTINGS_NOTIFICATIONS_FINISHED_FL;
+ options[WinUtil::NOTIFICATION_MAIN_CHAT].helpId = IDH_SETTINGS_NOTIFICATIONS_MAIN_CHAT;
+ options[WinUtil::NOTIFICATION_PM].helpId = IDH_SETTINGS_NOTIFICATIONS_PM;
+ options[WinUtil::NOTIFICATION_PM_WINDOW].helpId = IDH_SETTINGS_NOTIFICATIONS_PM_WINDOW;
+
grid->column(0).mode = GridInfo::FILL;
grid->row(0).mode = GridInfo::FILL;
grid->row(0).align = GridInfo::STRETCH;
@@ -137,12 +129,12 @@
WinUtil::makeColumns(table, columns, COLUMN_LAST);
- for(size_t i = 0, n = sizeof(options) / sizeof(Option); i < n; ++i) {
- options[i].sound = Text::toT(SettingsManager::getInstance()->get((SettingsManager::StrSetting)options[i].soundSetting));
- options[i].balloon = SettingsManager::getInstance()->get((SettingsManager::IntSetting)options[i].balloonSetting);
+ for(size_t i = 0; i < WinUtil::NOTIFICATION_LAST; ++i) {
+ options[i].sound = Text::toT(SettingsManager::getInstance()->get((SettingsManager::StrSetting)WinUtil::notifications[i].sound));
+ options[i].balloon = SettingsManager::getInstance()->get((SettingsManager::IntSetting)WinUtil::notifications[i].balloon);
TStringList row(COLUMN_LAST);
- row[COLUMN_TEXT] = T_(options[i].text);
+ row[COLUMN_TEXT] = T_(WinUtil::notifications[i].title);
table->insert(row);
updateSound(i);
@@ -170,8 +162,8 @@
void NotificationsPage::write() {
SettingsManager* settings = SettingsManager::getInstance();
for(size_t i = 0, n = sizeof(options) / sizeof(Option); i < n; ++i) {
- settings->set((SettingsManager::StrSetting)options[i].soundSetting, Text::fromT(options[i].sound));
- settings->set((SettingsManager::IntSetting)options[i].balloonSetting, options[i].balloon);
+ settings->set((SettingsManager::StrSetting)WinUtil::notifications[i].sound, Text::fromT(options[i].sound));
+ settings->set((SettingsManager::IntSetting)WinUtil::notifications[i].balloon, options[i].balloon);
}
}
=== modified file 'win32/NotificationsPage.h'
--- win32/NotificationsPage.h 2011-04-25 21:52:03 +0000
+++ win32/NotificationsPage.h 2011-05-27 11:03:29 +0000
@@ -20,6 +20,7 @@
#define DCPLUSPLUS_WIN32_NOTIFICATIONS_PAGE_H
#include "PropPage.h"
+#include "WinUtil.h"
class NotificationsPage : public PropPage
{
@@ -32,14 +33,12 @@
private:
struct Option {
- const char* text;
- int soundSetting;
tstring sound;
- int balloonSetting;
int balloon;
unsigned helpId;
+ Option() : balloon(0), helpId(0) { }
};
- static Option options[];
+ Option options[WinUtil::NOTIFICATION_LAST];
enum {
COLUMN_DUMMY, // so that the first column doesn't have a blank space.
=== modified file 'win32/PrivateFrame.cpp'
--- win32/PrivateFrame.cpp 2011-05-04 19:32:00 +0000
+++ win32/PrivateFrame.cpp 2011-05-27 11:03:29 +0000
@@ -69,10 +69,10 @@
if(!(BOOLSETTING(NO_AWAYMSG_TO_BOTS) && user->isSet(User::BOT)))
p->sendMessage(Text::toT(Util::getAwayMessage()));
}
- WinUtil::notify(SettingsManager::SOUND_PM_WINDOW, SettingsManager::BALLOON_PM_WINDOW, T_("Private message window"), aMessage);
+ WinUtil::notify(WinUtil::NOTIFICATION_PM_WINDOW, aMessage);
} else {
i->second->addChat(aMessage);
- WinUtil::notify(SettingsManager::SOUND_PM, SettingsManager::BALLOON_PM, T_("Private message"), aMessage);
+ WinUtil::notify(WinUtil::NOTIFICATION_PM, aMessage);
}
}
=== modified file 'win32/WinUtil.cpp'
--- win32/WinUtil.cpp 2011-05-06 21:57:07 +0000
+++ win32/WinUtil.cpp 2011-05-27 11:03:29 +0000
@@ -82,6 +82,14 @@
// def taken from <gettextP.h>
extern "C" const char *_nl_locale_name_default(void);
+WinUtil::Notification WinUtil::notifications[NOTIFICATION_LAST] = {
+ { SettingsManager::SOUND_FINISHED_DL, SettingsManager::BALLOON_FINISHED_DL, N_("Download finished"), IDI_DOWNLOAD },
+ { SettingsManager::SOUND_FINISHED_FL, SettingsManager::BALLOON_FINISHED_FL, N_("File list downloaded"), IDI_DIRECTORY },
+ { SettingsManager::SOUND_MAIN_CHAT, SettingsManager::BALLOON_MAIN_CHAT, N_("Main chat message received"), IDI_BALLOON },
+ { SettingsManager::SOUND_PM, SettingsManager::BALLOON_PM, N_("Private message received"), IDI_PRIVATE },
+ { SettingsManager::SOUND_PM_WINDOW, SettingsManager::BALLOON_PM_WINDOW, N_("Private message window opened"), IDI_PRIVATE }
+};
+
tstring WinUtil::tth;
dwt::BrushPtr WinUtil::bgBrush;
COLORREF WinUtil::textColor = 0;
@@ -548,15 +556,17 @@
return true;
}
-void WinUtil::notify(int soundSetting, int balloonSetting, const tstring& balloonTitle, const tstring& balloonText) {
- const string& s = SettingsManager::getInstance()->get((SettingsManager::StrSetting)soundSetting);
+void WinUtil::notify(NotificationType notification, const tstring& balloonText) {
+ const auto& n = notifications[notification];
+
+ const string& s = SettingsManager::getInstance()->get((SettingsManager::StrSetting)n.sound);
if(!s.empty()) {
playSound(Text::toT(s));
}
- int b = SettingsManager::getInstance()->get((SettingsManager::IntSetting)balloonSetting);
+ int b = SettingsManager::getInstance()->get((SettingsManager::IntSetting)n.balloon);
if(b == SettingsManager::BALLOON_ALWAYS || (b == SettingsManager::BALLOON_BACKGROUND && !mainWindow->onForeground())) {
- mainWindow->notify(balloonTitle, balloonText);
+ mainWindow->notify(Text::toT(n.title), balloonText, createIcon(n.icon, 16));
}
}
=== modified file 'win32/WinUtil.h'
--- win32/WinUtil.h 2011-05-04 19:32:00 +0000
+++ win32/WinUtil.h 2011-05-27 11:03:29 +0000
@@ -97,6 +97,25 @@
USER_ICON_LAST
};
+ enum NotificationType {
+ NOTIFICATION_FINISHED_DL,
+ NOTIFICATION_FINISHED_FL,
+ NOTIFICATION_MAIN_CHAT,
+ NOTIFICATION_PM,
+ NOTIFICATION_PM_WINDOW,
+
+ NOTIFICATION_LAST
+ };
+
+ struct Notification {
+ int sound;
+ int balloon;
+ const char* title;
+ unsigned icon;
+ };
+
+ static Notification notifications[NOTIFICATION_LAST];
+
static tstring tth;
static dwt::BrushPtr bgBrush;
@@ -162,7 +181,7 @@
*/
static bool checkCommand(tstring& cmd, tstring& param, tstring& message, tstring& status, bool& thirdPerson);
- static void notify(int soundSetting, int balloonSetting, const tstring& balloonTitle, const tstring& balloonText);
+ static void notify(NotificationType notification, const tstring& balloonText);
static void playSound(const tstring& sound);
static void openFile(const tstring& file);