summaryrefslogtreecommitdiff
path: root/plugins/StatusManager/src/ss_toolbars.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/StatusManager/src/ss_toolbars.cpp')
-rw-r--r--plugins/StatusManager/src/ss_toolbars.cpp72
1 files changed, 72 insertions, 0 deletions
diff --git a/plugins/StatusManager/src/ss_toolbars.cpp b/plugins/StatusManager/src/ss_toolbars.cpp
new file mode 100644
index 0000000000..e264d0126c
--- /dev/null
+++ b/plugins/StatusManager/src/ss_toolbars.cpp
@@ -0,0 +1,72 @@
+/*
+ StartupStatus Plugin for Miranda-IM (www.miranda-im.org)
+ Copyright 2003-2006 P. Boon
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "stdafx.h"
+
+#define MAX_MMITEMS 6
+
+static LIST<void> ttbButtons(1);
+
+static IconItem iconList[] =
+{
+ { LPGEN("Pressed toolbar icon"), "StartupStatus/TtbDown", IDI_TTBDOWN },
+ { LPGEN("Released toolbar icon"), "StartupStatus/TtbUp", IDI_TTBUP },
+};
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+void RemoveTopToolbarButtons()
+{
+ for (auto &it : ttbButtons.rev_iter())
+ CallService(MS_TTB_REMOVEBUTTON, (WPARAM)it, 0);
+ ttbButtons.destroy();
+}
+
+int CreateTopToolbarButtons(WPARAM, LPARAM)
+{
+ if (iconList[0].hIcolib == nullptr)
+ g_plugin.registerIcon("Toolbar/StartupStatus", iconList);
+
+ int profileCount = CallService(MS_SS_GETPROFILECOUNT, 0, 0);
+
+ TTBButton ttb = {};
+ ttb.dwFlags = TTBBF_VISIBLE | TTBBF_SHOWTOOLTIP;
+ ttb.pszService = MS_SS_LOADANDSETPROFILE;
+ for (int i = 0; i < profileCount; i++) {
+ char setting[80];
+ mir_snprintf(setting, "%d_%s", i, SETTING_CREATETTBBUTTON);
+ if (!db_get_b(0, SSMODULENAME, setting, FALSE))
+ continue;
+
+ DBVARIANT dbv;
+ mir_snprintf(setting, "%d_%s", i, SETTING_PROFILENAME);
+ if (db_get(0, SSMODULENAME, setting, &dbv))
+ continue;
+
+ ttb.hIconHandleDn = iconList[0].hIcolib;
+ ttb.hIconHandleUp = iconList[1].hIcolib;
+ ttb.wParamDown = ttb.wParamUp = i;
+ ttb.name = ttb.pszTooltipUp = dbv.pszVal;
+ HANDLE ttbAddResult = g_plugin.addTTB(&ttb);
+ if (ttbAddResult)
+ ttbButtons.insert(ttbAddResult);
+ db_free(&dbv);
+ }
+ return 0;
+}