#include "GwenTextureWindow.h" #include "gwenUserInterface.h" #include "gwenInternalData.h" #include "Gwen/Controls/ImagePanel.h" class MyGraphWindow : public Gwen::Controls::WindowControl { Gwen::Controls::ImagePanel* m_imgPanel; public: class MyMenuItems2* m_menuItems; MyGraphWindow(const MyGraphInput& input) : Gwen::Controls::WindowControl(input.m_data->pCanvas), m_menuItems(0) { Gwen::UnicodeString str = Gwen::Utility::StringToUnicode(input.m_name); SetTitle(str); SetPos(input.m_xPos, input.m_yPos); SetSize(12 + input.m_width + 2 * input.m_borderWidth, 30 + input.m_height + 2 * input.m_borderWidth); m_imgPanel = new Gwen::Controls::ImagePanel(this); if (input.m_texName) { Gwen::UnicodeString texName = Gwen::Utility::StringToUnicode(input.m_texName); m_imgPanel->SetImage(texName); } m_imgPanel->SetBounds(input.m_borderWidth, input.m_borderWidth, input.m_width, input.m_height); // this->Dock( Gwen::Pos::Bottom); } virtual ~MyGraphWindow() { delete m_imgPanel; } }; class MyMenuItems2 : public Gwen::Controls::Base { MyGraphWindow* m_graphWindow; public: Gwen::Controls::MenuItem* m_item; MyMenuItems2(MyGraphWindow* graphWindow) : Gwen::Controls::Base(0), m_graphWindow(graphWindow), m_item(0) { } void MenuItemSelect(Gwen::Controls::Base* pControl) { if (m_graphWindow->Hidden()) { m_graphWindow->SetHidden(false); //@TODO(erwincoumans) setCheck/SetCheckable drawing is broken, need to see what's wrong // if (m_item) // m_item->SetCheck(false); } else { m_graphWindow->SetHidden(true); // if (m_item) // m_item->SetCheck(true); } } }; MyGraphWindow* setupTextureWindow(const MyGraphInput& input) { MyGraphWindow* graphWindow = new MyGraphWindow(input); MyMenuItems2* menuItems = new MyMenuItems2(graphWindow); graphWindow->m_menuItems = menuItems; Gwen::UnicodeString str = Gwen::Utility::StringToUnicode(input.m_name); menuItems->m_item = input.m_data->m_viewMenu->GetMenu()->AddItem(str, menuItems, (Gwen::Event::Handler::Function)&MyMenuItems2::MenuItemSelect); // menuItems->m_item->SetCheckable(true); return graphWindow; } void destroyTextureWindow(MyGraphWindow* window) { delete window->m_menuItems->m_item; delete window->m_menuItems; delete window; }