#include "ConsoleMenu.h"
#include "..\Menu\MenuCommon.h"
extern MenuCommon *pMenuCommon;
extern Settings *pSettings;
char consoleBroam[] = "@xoblite Console";
char consolePlacementBroam[] = "@xoblite Console Placement";
#define GROUP_CONSOLE_PLACEMENT 1
#define GROUP_CONSOLE_TRANSPARENCY_MODE 2
ConsoleMenu::ConsoleMenu(char* pszTitle) : FolderItem(NULL, pszTitle, NULL)
{
}
ConsoleMenu::~ConsoleMenu()
{
m_pParent->RemoveChild(m_pSubMenu);
if (m_pSubMenu) delete m_pSubMenu;
m_pSubMenu = NULL;
}
bool ConsoleMenu::Active(bool bActivate)
{
if (bActivate && !m_bActive) UpdateFolder();
return FolderItem::Active(bActivate);
}
void ConsoleMenu::Attached(Menu* pMenu)
{
m_pParent = pMenu;
m_pSubMenu = new Menu(pMenuCommon->hInst);
m_pParent->AddChild(m_pSubMenu);
m_pSubMenu->SetParent(m_pParent);
}
void ConsoleMenu::UpdateFolder()
{
m_pSubMenu->DeleteMenuItems();
pMenuCommon->AddHeaderItem(m_pSubMenu, m_pszTitleANSI);
MenuItem* groupItem;
char command[50];
Menu* placementSubMenu = MakeMenu("Placement");
if (pSettings->ConsolePlacement.placement == PLACEMENT_MANUAL)
{
char itemTitle[128];
sprintf_s(itemTitle, sizeof(itemTitle), "<%s>", pSettings->ConsolePlacement.rcString);
groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_EDITSTRING, consolePlacementBroam, pSettings->ConsolePlacement.rcString, itemTitle, true);
}
else groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_EDITSTRING, consolePlacementBroam, "Manual xC yC", "<Manual xC yC>", false);
groupItem->AddToSelectionGroup(GROUP_CONSOLE_PLACEMENT);
pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, consolePlacementBroam, "TopLeft", "Top Left", (pSettings->ConsolePlacement.placement == PLACEMENT_TOP_LEFT));
groupItem->AddToSelectionGroup(GROUP_CONSOLE_PLACEMENT);
groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, consolePlacementBroam, "CenterLeft", "Center Left", (pSettings->ConsolePlacement.placement == PLACEMENT_CENTER_LEFT));
groupItem->AddToSelectionGroup(GROUP_CONSOLE_PLACEMENT);
groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, consolePlacementBroam, "BottomLeft", "Bottom Left", (pSettings->ConsolePlacement.placement == PLACEMENT_BOTTOM_LEFT));
groupItem->AddToSelectionGroup(GROUP_CONSOLE_PLACEMENT);
pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, consolePlacementBroam, "TopCenter", "Top Center", (pSettings->ConsolePlacement.placement == PLACEMENT_TOP_CENTER));
groupItem->AddToSelectionGroup(GROUP_CONSOLE_PLACEMENT);
groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, consolePlacementBroam, "CenterCenter", "Center Center", (pSettings->ConsolePlacement.placement == PLACEMENT_CENTER_CENTER));
groupItem->AddToSelectionGroup(GROUP_CONSOLE_PLACEMENT);
groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, consolePlacementBroam, "BottomCenter", "Bottom Center", (pSettings->ConsolePlacement.placement == PLACEMENT_BOTTOM_CENTER));
groupItem->AddToSelectionGroup(GROUP_CONSOLE_PLACEMENT);
pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, consolePlacementBroam, "TopRight", "Top Right", (pSettings->ConsolePlacement.placement == PLACEMENT_TOP_RIGHT));
groupItem->AddToSelectionGroup(GROUP_CONSOLE_PLACEMENT);
groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, consolePlacementBroam, "CenterRight", "Center Right", (pSettings->ConsolePlacement.placement == PLACEMENT_CENTER_RIGHT));
groupItem->AddToSelectionGroup(GROUP_CONSOLE_PLACEMENT);
groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, consolePlacementBroam, "BottomRight", "Bottom Right", (pSettings->ConsolePlacement.placement == PLACEMENT_BOTTOM_RIGHT));
groupItem->AddToSelectionGroup(GROUP_CONSOLE_PLACEMENT);
MakeSubmenu(m_pSubMenu, placementSubMenu, "Placement");
Menu* messagesSubMenu = MakeMenu("Number of messages");
sprintf_s(command, sizeofArray(command), "\"@xoblite Console Messages Maximized\" %d 1 255", pSettings->consoleMaximizedMessages);
pMenuCommon->CreateMenuItem(messagesSubMenu, MENUITEM_EDITINT, command, NULL, "Maximized:", false);
sprintf_s(command, sizeofArray(command), "\"@xoblite Console Messages Restored\" %d 1 255", pSettings->consoleRestoredMessages);
pMenuCommon->CreateMenuItem(messagesSubMenu, MENUITEM_EDITINT, command, NULL, "Restored:", false);
MakeSubmenu(m_pSubMenu, messagesSubMenu, "Number of messages");
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
sprintf_s(command, sizeofArray(command), "\"@xoblite Console Transparency\" %d 1 255", pSettings->consoleTransparencyAlpha);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_EDITINT, command, NULL, "Transparency:", false);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_BOOLEAN, "@xoblite Console ToggleDesktopMode", NULL, "Desktop mode", pSettings->consoleDesktopMode);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_BOOLEAN, "@xoblite Console ToggleRoundedCorners", NULL, "Rounded corners", pSettings->consoleRoundedCorners);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_COMMAND, "@xoblite Console ClearHistory", NULL, "Clear history...", false);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_BOOLEAN, "@xoblite Console Toggle", NULL, "Hide Console", pSettings->consoleHidden);
pMenuCommon->AddFooterItem(m_pSubMenu, "");
m_pSubMenu->Invalidate();
m_pSubMenu->Validate();
}