fix some btgui issues on Mac OSX

This commit is contained in:
Erwin Coumans
2014-05-20 14:43:19 -07:00
parent 4912bebfbf
commit 7f300a877f
5 changed files with 45 additions and 32 deletions

View File

@@ -103,6 +103,7 @@ Base::~Base()
extern int avoidUpdate;
void Base::Invalidate()
{

View File

@@ -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();

View File

@@ -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++;

View File

@@ -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);
}
}

View File

@@ -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),