#include "TaskbarMenu.h"
#include "..\Menu\FolderItem.h"
#include "..\Menu\MenuCommon.h"
#include "..\API\BBApi.h"
#include "..\Settings\Settings.h"
extern MenuCommon *pMenuCommon;
extern Settings *pSettings;
#define GROUP_TASKBAR_MODE 1
#define GROUP_TASKBAR_SORT 2
TaskbarMenu::TaskbarMenu(char* pszTitle) : FolderItem(NULL, pszTitle, NULL)
{
}
TaskbarMenu::~TaskbarMenu()
{
m_pParent->RemoveChild(m_pSubMenu);
if (m_pSubMenu) delete m_pSubMenu;
m_pSubMenu = NULL;
}
bool TaskbarMenu::Active(bool bActivate)
{
if (bActivate && !m_bActive) UpdateFolder();
return FolderItem::Active(bActivate);
}
void TaskbarMenu::Attached(Menu* pMenu)
{
m_pParent = pMenu;
m_pSubMenu = new Menu(pMenuCommon->hInst);
m_pParent->AddChild(m_pSubMenu);
m_pSubMenu->SetParent(m_pParent);
}
void TaskbarMenu::UpdateFolder()
{
m_pSubMenu->DeleteMenuItems();
pMenuCommon->AddHeaderItem(m_pSubMenu, m_pszTitleANSI);
MenuItem* groupItem;
groupItem = pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_COMMAND, "@xoblite Taskbar Hide", NULL, "Hidden", (pSettings->taskbarMode == TASKBAR_MODE_HIDDEN));
groupItem->AddToSelectionGroup(GROUP_TASKBAR_MODE);
groupItem = pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_COMMAND, "@xoblite Taskbar Mode Bars", NULL, "Bars mode", (pSettings->taskbarMode == TASKBAR_MODE_BARS));
groupItem->AddToSelectionGroup(GROUP_TASKBAR_MODE);
groupItem = pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_COMMAND, "@xoblite Taskbar Mode Bars+Icons", NULL, "Bars+Icons mode", (pSettings->taskbarMode == TASKBAR_MODE_BARSICONS));
groupItem->AddToSelectionGroup(GROUP_TASKBAR_MODE);
if (!pSettings->toolbarVertical)
{
groupItem = pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_COMMAND, "@xoblite Taskbar Mode Icons", NULL, "Icons mode", (pSettings->taskbarMode == TASKBAR_MODE_ICONS));
groupItem->AddToSelectionGroup(GROUP_TASKBAR_MODE);
}
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
char command[50];
sprintf_s(command, sizeofArray(command), "\"@xoblite Taskbar Items\" %d 1 255", pSettings->taskbarMaxItems);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_EDITINT, command, NULL, "Max # of visible items:", false);
Menu* sortingSubMenu = MakeMenu("Sort visible items");
groupItem = pMenuCommon->CreateMenuItem(sortingSubMenu, MENUITEM_COMMAND, "@xoblite Taskbar Sort Last Used", NULL, "Last used", (pSettings->taskbarSorting == TASKBAR_SORT_BY_LAST_USED));
groupItem->AddToSelectionGroup(GROUP_TASKBAR_SORT);
groupItem = pMenuCommon->CreateMenuItem(sortingSubMenu, MENUITEM_COMMAND, "@xoblite Taskbar Sort Follow Active", NULL, "Follow active", (pSettings->taskbarSorting == TASKBAR_SORT_FOLLOW_ACTIVE));
groupItem->AddToSelectionGroup(GROUP_TASKBAR_SORT);
groupItem = pMenuCommon->CreateMenuItem(sortingSubMenu, MENUITEM_COMMAND, "@xoblite Taskbar Sort Disabled", NULL, "Disabled", (pSettings->taskbarSorting == TASKBAR_SORT_DISABLED));
groupItem->AddToSelectionGroup(GROUP_TASKBAR_SORT);
MakeSubmenu(m_pSubMenu, sortingSubMenu, "Sort visible items");
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_BOOLEAN, "@xoblite Taskbar ToggleShowTaskWorkspace", NULL, "Show task workspace", pSettings->taskbarShowTaskWorkspace);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_BOOLEAN, "@xoblite Taskbar ToggleCurrentOnly", NULL, "Current workspace only", pSettings->taskbarCurrentOnly);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_BOOLEAN, "@xoblite Taskbar ToggleFlashing", NULL, "Disable task flashing", !pSettings->taskbarFlashing);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
sprintf_s(command, sizeofArray(command), "\"@xoblite Taskbar IconSaturation\" %d 0 255", pSettings->taskbarSaturationValue);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_EDITINT, command, NULL, "Icon saturation:", false);
sprintf_s(command, sizeofArray(command), "\"@xoblite Taskbar IconHue\" %d 0 255", pSettings->taskbarHueIntensity);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_EDITINT, command, NULL, "Icon hue:", false);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_BOOLEAN, "@xoblite Taskbar ToggleActiveSatHue", NULL, "Active task sat/hue", pSettings->taskbarActiveSatHue);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_BOOLEAN, "@xoblite Taskbar ToggleInactiveBackground", NULL, "Inactive task background", pSettings->taskbarInactiveBackground);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_BOOLEAN, "@xoblite Taskbar TogglePreviews", NULL, "Show previews", pSettings->taskbarPreviews);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_BOOLEAN, "@xoblite Taskbar ToggleTooltips", NULL, "Show tooltips", pSettings->taskbarTooltips);
pMenuCommon->AddFooterItem(m_pSubMenu, "");
m_pSubMenu->Invalidate();
m_pSubMenu->Validate();
}