1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
/*!
@file
@author George Evmenov
@date 02/2010
*/
#include "Precompiled.h"
#include "DemoKeeper.h"
#include "Base/Main.h"
namespace demo
{
MyGUI::ImageBox* image;
MyGUI::RotatingSkin* rotato;
void DemoKeeper::setupResources()
{
base::BaseManager::setupResources();
addResourceLocation(getRootMedia() + "/Common/Demos");
}
void DemoKeeper::createScene()
{
base::BaseDemoManager::createScene();
const MyGUI::VectorWidgetPtr& root = MyGUI::LayoutManager::getInstance().loadLayout("HelpPanel.layout");
root.at(0)->findWidget("Text")->castType<MyGUI::TextBox>()->setCaption("Move mouse to rotate skin. Right mouse click to set new center.");
MyGUI::Window* window = MyGUI::Gui::getInstance().createWidget<MyGUI::Window>("WindowCS", MyGUI::IntCoord(100, 100, 400, 400), MyGUI::Align::Default, "Main");
window->setMinSize(100, 100);
image = window->createWidget<MyGUI::ImageBox>("RotatingSkin", MyGUI::IntCoord(150, 150, 100, 150), MyGUI::Align::Default/*, "Main"*/);
image->setImageTexture("Wallpaper.png");
MyGUI::ISubWidget* main = image->getSubWidgetMain();
rotato = main->castType<MyGUI::RotatingSkin>();
}
void DemoKeeper::injectMousePress(int _absx, int _absy, MyGUI::MouseButton _id)
{
if (_id == MyGUI::MouseButton::Right)
rotato->setCenter(MyGUI::IntPoint(_absx, _absy) - image->getAbsolutePosition());
base::BaseManager::injectMousePress(_absx, _absy, _id);
}
void DemoKeeper::injectMouseMove(int _absx, int _absy, int _absz)
{
rotato->setAngle(atan2(-(float)_absx + rotato->getCenter(false).left, (float)_absy - rotato->getCenter(false).top));
base::BaseManager::injectMouseMove(_absx, _absy, _absz);
}
} // namespace demo
MYGUI_APP(demo::DemoKeeper)
|