another error with scroll bars

Artic_Ice83

28-12-2007 09:21:27

Hi! i was still playing with scrolling and if i make text boxes go out the borders of a window, don't appear any scroll bar also if i set the window scrollable and if i go with the mouse out the border of the window the application crash.
this is my code:

window = mSheet->createWindow("Controls Window");
window->setDimensions(Rect(10,10,400,500));
window->hideTitlebar();
window->setBringToFrontOnFocus(false);
window->allowResizing(false);
window->allowScrolling(true);

tb123 = window->createTextBox("tb1");
tb123->setDimensions(Rect(10,30,320,30));
tb123->appearOverWidget(window);

QuickGUI::TextBox *tb234 = window->createTextBox("tb2");
tb234->setDimensions(Rect(10,100,320,30));
tb234->appearOverWidget(window);

QuickGUI::TextBox *tb345 = window->createTextBox("tb3");
tb345->setDimensions(Rect(10,500,320,30));
tb345->appearOverWidget(window);

my version is the latest of the svn before the change of the injection...

kungfoomasta

28-12-2007 18:25:13

Are you saying that when the mouse goes outside of the window, a crash occurs? Can you post a call stack?

Regarding scroll bars appearing, they will only appear if you call allowScrolling(true);

Artic_Ice83

28-12-2007 20:07:09

i'm sorry for my ignorance, but how can i make a call stack? :oops:

this is the screenshot of the error:

http://img299.imageshack.us/my.php?image=errorgk1.jpg

as you can see from my code, i call "window->allowScrolling(true);", but nothing happens...

kungfoomasta

28-12-2007 20:46:31

Build the project in "debug" mode. Press "F5" to debug. When the crash occurs, you should be able to view the contents of a "Call Stack" window in Visual Studio. Copy that and paste it here. The error you gave me isn't helpful at all, unfortunately. :(

Artic_Ice83

29-12-2007 12:34:20

this is the stack call:


msvcp80d.dll!std::_String_val<char,std::allocator<char>>::_String_val<char,std::allocator<char>>()+0x24byte
[I frame indicati di seguito possono essere errati e/o mancanti, non sono stati caricati simboli per msvcp80d.dll]
msvcp80d.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>>()+0x32byte

QuickGUI_d.dll!QuickGUI::SkinSet::getImageExtension() Riga 432 +0x12byte C++

QuickGUI_d.dll!QuickGUI::Button::applyButtonOverTexture() Riga 41 + 0xf byte C++

QuickGUI_d.dll!QuickGUI::Button::onMouseEnters(const QuickGUI::EventArgs & args={...}) Riga 81 + 0x12 byte C++
QuickGUI_d.dll!QuickGUI::MemberFunctionPointer<QuickGUI::Button>::execute(const QuickGUI::EventArgs & args={...}) Riga 47 + 0x14 byte C++
QuickGUI_d.dll!QuickGUI::Widget::fireEvent(QuickGUI::Widget::Event e=EVENT_MOUSE_ENTER, QuickGUI::EventArgs & args={...}) Riga 914 + 0x29 byte C++

QuickGUI_d.dll!QuickGUI::GUIManager::injectMouseMove(const int & xPixelOffset=3, const int & yPixelOffset=0) Riga 571 + 0x14 byte C++

prova_QuickGUI.exe!MyFrameListener::mouseMoved(const OIS::MouseEvent & arg={...}) Riga 324 + 0x22 byte C++

OIS_d.dll!OIS::Mouse::operator=() + 0xb239 byte

prova_QuickGUI.exe!ExampleFrameListener::frameStarted(const

Ogre::FrameEvent & evt={...}) Riga 320 + 0x17 byte C++

prova_QuickGUI.exe!MyFrameListener::frameStarted(const Ogre::FrameEvent & evt={...}) Riga 307 C++

OgreMain_d.dll!Ogre::Math::Sign() + 0x6f3b84 byte
OgreMain_d.dll!Ogre::Math::Sign() + 0x6f4210 byte
OgreMain_d.dll!Ogre::Math::Sign() + 0x6f4809 byte
OgreMain_d.dll!Ogre::Math::Sign() + 0x6f477f byte
prova_QuickGUI.exe!ExampleApplication::go() Riga 92 + 0xe byte C++

prova_QuickGUI.exe!WinMain(HINSTANCE__ * hInst=0x00400000,
HINSTANCE__ * __formal=0x00000000, char * strCmdLine=0x00151f4c, HINSTANCE__ * __formal=0x00000000) Riga 802 + 0xb byte C++
prova_QuickGUI.exe!__tmainCRTStartup() Riga 589 + 0x35 byte C
prova_QuickGUI.exe!WinMainCRTStartup() Riga 414 C
kernel32.dll!RegisterWaitForInputIdle() + 0x49 byte


and here is the screenshot:
http://img165.imageshack.us/my.php?image=stackcallek0.jpg

kungfoomasta

29-12-2007 21:53:33

QuickGUI_d.dll!QuickGUI::Button::applyButtonOverTexture()

You're code doesn't show anything related to buttons...

Update to latest SVN, and reproduce the issue, you should find an error message thrown which should help you some. :)

Artic_Ice83

30-12-2007 09:44:32

well. i've updated to latest svn and when i run my program comes this error:

"OGRE EXCEPTION(5:): Skin "" does not exist! Did you forget to load it using the SkinSetManager? in Button::applyButtonOverTexture"

I've noted that if i comment the line window->allowScrolling(true); the application don't crash...

what i've to do?

kungfoomasta

31-12-2007 08:03:06

I need more additional information regarding the crash, you aren't giving me all the details. The demo has a window with a hidden title bar, and there are no problems with that. It's saying there is a button with a skin of "" defined. I need to know who the parent of this button is, and why the button's skin is set to "".

Artic_Ice83

31-12-2007 08:48:37

the strange thing is that i haven't any button in my gui!!!the only buttons that adds automatically are those of the scrollar...

kungfoomasta

02-01-2008 00:03:29

Sorry, I looked into this more and I think it's fixed in SVN. Let me know if you still find problems related to this.