Change pointer's image

tomneo2000

23-10-2009 09:37:40

Now i have a MyGUI default pointer, i want to dynamic change pointer's image when my pointer is over some panel, how can i change pointer's image

my.name

23-10-2009 11:35:32

widget->setPointer("pointer_name");

tomneo2000

24-10-2009 07:01:40

But is say it have to take 2 arguments first is name and second is WidgetPtr, how can i get back default pointer's widget?

tomneo2000

24-10-2009 10:42:05

Anyone know ?
Forgive me ask one more question, what type is pointer(cursor), like button is MyGUI::ButtonPtr how about pointer(cursor)?

my.name

26-10-2009 04:09:28

bool BaseManager::mouseMoved( const OIS::MouseEvent &arg )
{
if (mGUI->injectMouseMove(arg))
{
// gui
}
else
{
// scene

// pick scene and find scene object

// default cursor (core_pointer.xml)
std::string cursor = "arrow";

// pick object
Object* object = PickScene();
if (object != 0)
cursor = "my cursor name";

MyGUI::PointerManager::getInstance().setPointer(cursor);
}
return true;
}

tomneo2000

26-10-2009 10:15:26

bool BaseManager::mouseMoved( const OIS::MouseEvent &arg )
{
if (mGUI->injectMouseMove(arg))
{
// gui
}
else
{
// scene

// pick scene and find scene object

// default cursor (core_pointer.xml)
std::string cursor = "arrow";

// pick object
Object* object = PickScene();
if (object != 0)
cursor = "my cursor name";

MyGUI::PointerManager::getInstance().setPointer(cursor);
}
return true;
}



my.name thank you for reply. I was doing exactly same thing like you did but i got this error :
1>c:\documents and settings\administrator\桌面\ogreproject\object_picking\object_picking\objectpicking.cpp(727) : error C2660: 'MyGUI::PointerManager::setPointer' : function does not take 1 arguments

It is because it takes two arguments and i don't know what should i give for second parameter, it is type of WidgetPtr.

my.name

26-10-2009 11:27:14

MyGUI::PointerManager::getInstance().setPointer(cursor, 0);
=)

tomneo2000

27-10-2009 02:30:53

MyGUI::PointerManager::getInstance().setPointer(cursor, 0);
=)


my.name thank you for help me, it works.

Could you give me a direction. I know there is a file "core_pointer.xml", how can i script a new one and load in as default pointer display on screen.

my.name

27-10-2009 02:55:01

my_pointers.xml
<?xml version="1.0" encoding="UTF-8"?>

<MyGUI type="Pointer">

<Pointer>
<Info name="my pointer name1" point="0 0" size="32 32" resource="pic_MyResourceName1"/>
<Info name="my pointer name2" point="0 0" size="32 32" resource="pic_MyResourceName2"/>
</Pointer>

</MyGUI>


MyGUI::Gui::getInstance().load("my_pointers.xml");