CHANGED: #1471 added the winEvent, macEvent, x11Event handlers from Dnk's Nel widget to my own, and now the GUI widget resizes the rendered image as the widget is resized.
--HG-- branch : gsoc2012-gui-editor
This commit is contained in:
parent
af7eb699c2
commit
165762c94c
2 changed files with 79 additions and 0 deletions
|
@ -18,9 +18,14 @@
|
||||||
#include "nel3d_widget.h"
|
#include "nel3d_widget.h"
|
||||||
#include "nel/3d/u_driver.h"
|
#include "nel/3d/u_driver.h"
|
||||||
#include "nel/3d/text_context.h"
|
#include "nel/3d/text_context.h"
|
||||||
|
#include "nel/3d/driver_user.h"
|
||||||
#include "nel/misc/rgba.h"
|
#include "nel/misc/rgba.h"
|
||||||
#include "nel/misc/path.h"
|
#include "nel/misc/path.h"
|
||||||
|
|
||||||
|
#ifdef NL_OS_WINDOWS
|
||||||
|
#include <Windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
namespace GUIEditor
|
namespace GUIEditor
|
||||||
{
|
{
|
||||||
|
@ -94,6 +99,69 @@ namespace GUIEditor
|
||||||
driver->clearBuffers( NLMISC::CRGBA::Black );
|
driver->clearBuffers( NLMISC::CRGBA::Black );
|
||||||
driver->swapBuffers();
|
driver->swapBuffers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if defined ( NL_OS_WINDOWS )
|
||||||
|
|
||||||
|
typedef bool ( *winProc )( NL3D::IDriver *driver, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam );
|
||||||
|
|
||||||
|
bool Nel3DWidget::winEvent( MSG *message, long *result )
|
||||||
|
{
|
||||||
|
if( driver != NULL )
|
||||||
|
{
|
||||||
|
NL3D::IDriver *iDriver = dynamic_cast< NL3D::CDriverUser* >( driver )->getDriver();
|
||||||
|
if( iDriver != NULL )
|
||||||
|
{
|
||||||
|
winProc proc = (winProc)iDriver->getWindowProc();
|
||||||
|
return proc( iDriver, message->hwnd, message->message, message->wParam, message->lParam );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif defined( NL_OS_MAC )
|
||||||
|
|
||||||
|
typedef bool ( *cocoaProc )( NL3D::IDriver *, const void *e );
|
||||||
|
|
||||||
|
bool Nel3DWidget::macEvent( EventHandlerCallRef caller, EventRef event )
|
||||||
|
{
|
||||||
|
if( caller )
|
||||||
|
nlerror( "You are using QtCarbon! Only QtCocoa supported, please upgrade Qt" );
|
||||||
|
|
||||||
|
if( driver != NULL )
|
||||||
|
{
|
||||||
|
NL3D::IDriver *iDriver = dynamic_cast< NL3D::CDriverUser* >( driver )->getDriver();
|
||||||
|
if( iDriver != NULL )
|
||||||
|
{
|
||||||
|
cocoaProc proc = ( cocoaProc )iDriver->getWindowProc();
|
||||||
|
return proc( iDriver, event );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif defined( NL_OS_UNIX )
|
||||||
|
|
||||||
|
typedef bool ( *x11Proc )( NL3D::IDriver *drv, XEvent *e );
|
||||||
|
|
||||||
|
bool Nel3DWidget::x11Event( XEvent *event )
|
||||||
|
{
|
||||||
|
if( driver != NULL )
|
||||||
|
{
|
||||||
|
NL3D::IDriver *iDriver = dynamic_cast< NL3D::CDriverUser* >( driver )->getDriver();
|
||||||
|
if( driver != NULL )
|
||||||
|
{
|
||||||
|
x11Proc proc = ( x11Proc )iDriver->getWindowProc();
|
||||||
|
return proc( iDriver, event );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#define NEL3D_WIDGET_H
|
#define NEL3D_WIDGET_H
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
#include "nel/misc/types_nl.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
namespace NL3D
|
namespace NL3D
|
||||||
|
@ -52,6 +53,16 @@ namespace GUIEditor
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void clear();
|
void clear();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
#if defined(NL_OS_WINDOWS)
|
||||||
|
virtual bool winEvent( MSG *message, long *result );
|
||||||
|
#elif defined(NL_OS_MAC)
|
||||||
|
virtual bool macEvent( EventHandlerCallRef caller, EventRef event );
|
||||||
|
#elif defined(NL_OS_UNIX)
|
||||||
|
virtual bool x11Event( XEvent *event );
|
||||||
|
#endif
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NL3D::UDriver *driver;
|
NL3D::UDriver *driver;
|
||||||
NL3D::UTextContext *textContext;
|
NL3D::UTextContext *textContext;
|
||||||
|
|
Loading…
Reference in a new issue