Initial
This commit is contained in:
114
statbar/statbarx.cpp
Normal file
114
statbar/statbarx.cpp
Normal file
@@ -0,0 +1,114 @@
|
||||
#include <statbar/statbarx.hpp>
|
||||
|
||||
StatusBarEx::StatusBarEx(GUIWindow &frameWindow,GUIWindow &clientWindow,UINT controlID)
|
||||
: StatusBarMenu(frameWindow), mParentWindow(&frameWindow), mClientWindow(&clientWindow)
|
||||
{
|
||||
mMenuSelectHandler.setCallback(this,&StatusBarEx::menuSelectHandler);
|
||||
mSizeHandler.setCallback(this,&StatusBarEx::sizeHandler);
|
||||
mParentWindow->insertHandler(VectorHandler::MenuSelectHandler,&mMenuSelectHandler);
|
||||
mParentWindow->insertHandler(VectorHandler::SizeHandler,&mSizeHandler);
|
||||
createControl("",*mParentWindow,controlID);
|
||||
}
|
||||
|
||||
StatusBarEx::StatusBarEx(GUIWindow &parentWindow,UINT controlID)
|
||||
: StatusBarMenu(parentWindow), mParentWindow(&parentWindow)
|
||||
{
|
||||
mMenuSelectHandler.setCallback(this,&StatusBarEx::menuSelectHandler);
|
||||
mSizeHandler.setCallback(this,&StatusBarEx::sizeHandler);
|
||||
mParentWindow->insertHandler(VectorHandler::MenuSelectHandler,&mMenuSelectHandler);
|
||||
mParentWindow->insertHandler(VectorHandler::SizeHandler,&mSizeHandler);
|
||||
createControl("",*mParentWindow,controlID);
|
||||
}
|
||||
|
||||
StatusBarEx::~StatusBarEx()
|
||||
{
|
||||
mParentWindow->removeHandler(VectorHandler::MenuSelectHandler,&mMenuSelectHandler);
|
||||
mParentWindow->removeHandler(VectorHandler::SizeHandler,&mSizeHandler);
|
||||
}
|
||||
|
||||
StatusBarEx &StatusBarEx::operator=(const StatusBarEx &someStatusBarEx)
|
||||
{ // private implementation
|
||||
return *this;
|
||||
}
|
||||
|
||||
StatusBarEx &StatusBarEx::operator=(const GUIWindow &someGUIWindow)
|
||||
{
|
||||
(StatusBarMenu&)*this=someGUIWindow;
|
||||
return *this;
|
||||
}
|
||||
|
||||
StatusBarEx &StatusBarEx::operator=(const PureMenu &somePureMenu)
|
||||
{
|
||||
(StatusBarMenu&)*this=somePureMenu;
|
||||
return *this;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType StatusBarEx::sizeHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
moveWindow(0,0,0,0);
|
||||
return (CallbackData::ReturnType)TRUE;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType StatusBarEx::menuSelectHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
UINT itemID(someCallbackData.menuSelectID());
|
||||
WORD menuFlags(someCallbackData.menuSelectFlags());
|
||||
HMENU hMenu(someCallbackData.menuSelectMenu());
|
||||
|
||||
if((0==hMenu&&0xFFFF==menuFlags)||!itemID){setText(" ");return (CallbackData::ReturnType)0;}
|
||||
if(menuFlags&MF_POPUP)setStatBarText(PureMenu(someCallbackData.menuSelectIDPopup()),TRUE);
|
||||
else if(!setStatBarText(itemID,TRUE))
|
||||
{
|
||||
PureMenu pureMenu(hMenu);
|
||||
setText(pureMenu.menuItemString(itemID,PureMenu::ByCommand));
|
||||
}
|
||||
return (CallbackData::ReturnType)FALSE;
|
||||
}
|
||||
|
||||
BOOL StatusBarEx::setSequentialResourceDescriptors(UINT menuID,UINT stringID,WORD itemCount)
|
||||
{
|
||||
for(int i=0;i<itemCount;i++)setMenuItemDescriptor(MenuItem(String((int)(stringID+i)),menuID+i));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL StatusBarEx::setSequentialResourceLabels(UINT stringID,WORD itemCount)
|
||||
{
|
||||
Block<String> menuLabels;
|
||||
|
||||
for(int itemIndex=0;itemIndex<itemCount;itemIndex++)menuLabels.insert(&String((int)stringID+itemIndex));
|
||||
setMenuLabelDescriptors(menuLabels);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void StatusBarEx::setText(const String &strText)
|
||||
{
|
||||
StatusControl::setText(strText,0);
|
||||
update();
|
||||
}
|
||||
|
||||
void StatusBarEx::setText(const String &strText,UINT partIndex)
|
||||
{
|
||||
StatusControl::setText(strText,partIndex);
|
||||
update();
|
||||
}
|
||||
|
||||
BOOL StatusBarEx::setStatBarText(PureMenu &somePureMenu,WORD redrawFlag)
|
||||
{
|
||||
MenuItem menuItem;
|
||||
|
||||
if(!getMenuItemDescriptor(somePureMenu,menuItem))return FALSE;
|
||||
if(!redrawFlag)return TRUE;
|
||||
setText(menuItem.itemString());
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL StatusBarEx::setStatBarText(int itemID,WORD redrawFlag)
|
||||
{
|
||||
MenuItem menuItem;
|
||||
|
||||
menuItem.itemID(itemID);
|
||||
if(-1!=itemID)if(!getMenuItemDescriptor(menuItem))return FALSE;
|
||||
if(!redrawFlag)return TRUE;
|
||||
setText(menuItem.itemString());
|
||||
return TRUE;
|
||||
}
|
||||
Reference in New Issue
Block a user