diff --git a/btgui/Gwen/Controls/Base.cpp b/btgui/Gwen/Controls/Base.cpp index 4d649d8d1..5e90f1d49 100644 --- a/btgui/Gwen/Controls/Base.cpp +++ b/btgui/Gwen/Controls/Base.cpp @@ -103,6 +103,7 @@ Base::~Base() extern int avoidUpdate; + void Base::Invalidate() { diff --git a/btgui/Gwen/Controls/TreeControl.cpp b/btgui/Gwen/Controls/TreeControl.cpp index e75010bbd..128b0386d 100644 --- a/btgui/Gwen/Controls/TreeControl.cpp +++ b/btgui/Gwen/Controls/TreeControl.cpp @@ -204,13 +204,13 @@ bool TreeControl::OnKeyDown( bool bDown ) } return true; } - +extern int avoidUpdate; bool TreeControl::OnKeyRight( bool bDown ) { if (bDown) { - extern int avoidUpdate; + avoidUpdate = -3; ForceUpdateScrollBars(); iterate(ITERATE_ACTION_OPEN,0,0); @@ -250,7 +250,7 @@ bool TreeControl::OnKeyLeft( bool bDown ) { if (bDown) { - extern int avoidUpdate; + avoidUpdate = -3; ForceUpdateScrollBars(); diff --git a/btgui/GwenOpenGLTest/OpenGLSample.cpp b/btgui/GwenOpenGLTest/OpenGLSample.cpp index 137716af8..9ad7a009e 100644 --- a/btgui/GwenOpenGLTest/OpenGLSample.cpp +++ b/btgui/GwenOpenGLTest/OpenGLSample.cpp @@ -296,6 +296,8 @@ void keyCallback(int key, int value) } } +extern int avoidUpdate; + int main() { @@ -306,8 +308,9 @@ int main() b3gWindowConstructionInfo wci; wci.m_width = sWidth; wci.m_height = sHeight; - - window->createWindow(wci); + wci.m_resizeCallback = MyResizeCallback; + window->createWindow(wci); + window->setResizeCallback(MyResizeCallback); window->setWindowTitle("render test"); #ifndef __APPLE__ @@ -456,7 +459,7 @@ int main() pCanvas->RenderCanvas(); - extern int avoidUpdate; + if (avoidUpdate<=0) avoidUpdate++; diff --git a/btgui/OpenGLWindow/MacOpenGLWindow.mm b/btgui/OpenGLWindow/MacOpenGLWindow.mm index d765a4e78..340898aaf 100644 --- a/btgui/OpenGLWindow/MacOpenGLWindow.mm +++ b/btgui/OpenGLWindow/MacOpenGLWindow.mm @@ -91,6 +91,7 @@ float loop; // Get view dimensions in pixels // glViewport(0,0,10,10); + if (m_resizeCallback) { (*m_resizeCallback)(width,height); @@ -329,6 +330,7 @@ void MacOpenGLWindow::createWindow(const b3gWindowConstructionInfo& ci) m_internalData->m_myview = [TestView alloc]; [m_internalData->m_myview setResizeCallback:0]; + ///ci.m_resizeCallback]; [m_internalData->m_myview initWithFrame: frame]; @@ -366,6 +368,8 @@ void MacOpenGLWindow::createWindow(const b3gWindowConstructionInfo& ci) [m_internalData->m_window makeKeyAndOrderFront: nil]; [m_internalData->m_myview MakeCurrent]; + m_internalData->m_width = m_internalData->m_myview.GetWindowWidth; + m_internalData->m_height = m_internalData->m_myview.GetWindowHeight; glGenBuffers(n, vbo); checkError("glGenBuffers"); @@ -589,32 +593,32 @@ int getAsciiCodeFromVirtualKeycode(int virtualKeyCode) switch (virtualKeyCode) { - case kVK_ANSI_A : {keycode = 'A'; break;} - case kVK_ANSI_B : {keycode = 'B'; break;} - case kVK_ANSI_C : {keycode = 'C'; break;} - case kVK_ANSI_D : {keycode = 'D';break;} - case kVK_ANSI_E : {keycode = 'E'; break;} - case kVK_ANSI_F : {keycode = 'F'; break;} - case kVK_ANSI_G : {keycode = 'G'; break;} - case kVK_ANSI_H : {keycode = 'H'; break;} - case kVK_ANSI_I : {keycode = 'I'; break;} - case kVK_ANSI_J : {keycode = 'J'; break;} - case kVK_ANSI_K : {keycode = 'K'; break;} - case kVK_ANSI_L : {keycode = 'L'; break;} - case kVK_ANSI_M : {keycode = 'M'; break;} - case kVK_ANSI_N : {keycode = 'N'; break;} - case kVK_ANSI_O : {keycode = 'O'; break;} - case kVK_ANSI_P : {keycode = 'P'; break;} - case kVK_ANSI_Q : {keycode = 'Q'; break;} - case kVK_ANSI_R : {keycode = 'R'; break;} - case kVK_ANSI_S : {keycode = 'S';break;} - case kVK_ANSI_T : {keycode = 'T'; break;} - case kVK_ANSI_U : {keycode = 'U'; break;} - case kVK_ANSI_V : {keycode = 'V'; break;} - case kVK_ANSI_W : {keycode = 'W'; break;} - case kVK_ANSI_X : {keycode = 'X'; break;} - case kVK_ANSI_Y : {keycode = 'Y'; break;} - case kVK_ANSI_Z : {keycode = 'Z'; break;} + case kVK_ANSI_A : {keycode = 'a'; break;} + case kVK_ANSI_B : {keycode = 'b'; break;} + case kVK_ANSI_C : {keycode = 'c'; break;} + case kVK_ANSI_D : {keycode = 'd';break;} + case kVK_ANSI_E : {keycode = 'e'; break;} + case kVK_ANSI_F : {keycode = 'f'; break;} + case kVK_ANSI_G : {keycode = 'g'; break;} + case kVK_ANSI_H : {keycode = 'h'; break;} + case kVK_ANSI_I : {keycode = 'i'; break;} + case kVK_ANSI_J : {keycode = 'j'; break;} + case kVK_ANSI_K : {keycode = 'k'; break;} + case kVK_ANSI_L : {keycode = 'l'; break;} + case kVK_ANSI_M : {keycode = 'm'; break;} + case kVK_ANSI_N : {keycode = 'n'; break;} + case kVK_ANSI_O : {keycode = 'o'; break;} + case kVK_ANSI_P : {keycode = 'p'; break;} + case kVK_ANSI_Q : {keycode = 'q'; break;} + case kVK_ANSI_R : {keycode = 'r'; break;} + case kVK_ANSI_S : {keycode = 's';break;} + case kVK_ANSI_T : {keycode = 't'; break;} + case kVK_ANSI_U : {keycode = 'u'; break;} + case kVK_ANSI_V : {keycode = 'v'; break;} + case kVK_ANSI_W : {keycode = 'w'; break;} + case kVK_ANSI_X : {keycode = 'x'; break;} + case kVK_ANSI_Y : {keycode = 'y'; break;} + case kVK_ANSI_Z : {keycode = 'z'; break;} case kVK_ANSI_1 : {keycode = '1'; break;} case kVK_ANSI_2 : {keycode = '2'; break;} @@ -1012,6 +1016,10 @@ void MacOpenGLWindow::getMouseCoordinates(int& x, int& y) void MacOpenGLWindow::setResizeCallback(b3ResizeCallback resizeCallback) { [m_internalData->m_myview setResizeCallback:resizeCallback]; + if (resizeCallback) + { + (resizeCallback)(m_internalData->m_width,m_internalData->m_height); + } } diff --git a/btgui/OpenGLWindow/b3gWindowInterface.h b/btgui/OpenGLWindow/b3gWindowInterface.h index 2141fd65e..122d6a3c3 100644 --- a/btgui/OpenGLWindow/b3gWindowInterface.h +++ b/btgui/OpenGLWindow/b3gWindowInterface.h @@ -51,6 +51,7 @@ struct b3gWindowConstructionInfo void* m_windowHandle; const char* m_title; int m_openglVersion; + b3gWindowConstructionInfo(int width=1024, int height=768) :m_width(width),