#include 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 menuLabels; for(int itemIndex=0;itemIndex