minor refactoring
This commit is contained in:
parent
06cd1e98ff
commit
7ae79b263d
|
|
@ -39,7 +39,7 @@ const unsigned int RENDER_ALPHATEST = 1 << 4; // glEnable(GL_ALPHA_TEST)
|
||||||
const unsigned int RENDER_DEPTHTEST = 1 << 5; // glEnable(GL_DEPTH_TEST)
|
const unsigned int RENDER_DEPTHTEST = 1 << 5; // glEnable(GL_DEPTH_TEST)
|
||||||
const unsigned int RENDER_DEPTHWRITE = 1 << 6; // glDepthMask(GL_TRUE)
|
const unsigned int RENDER_DEPTHWRITE = 1 << 6; // glDepthMask(GL_TRUE)
|
||||||
const unsigned int RENDER_COLOURWRITE = 1 << 7; // glColorMask(GL_TRUE; GL_TRUE; GL_TRUE; GL_TRUE)
|
const unsigned int RENDER_COLOURWRITE = 1 << 7; // glColorMask(GL_TRUE; GL_TRUE; GL_TRUE; GL_TRUE)
|
||||||
const unsigned int RENDER_CULLFACE = 1 << 8; // glglEnable(GL_CULL_FACE)
|
const unsigned int RENDER_CULLFACE = 1 << 8; // glEnable(GL_CULL_FACE)
|
||||||
const unsigned int RENDER_SCALED = 1 << 9; // glEnable(GL_NORMALIZE)
|
const unsigned int RENDER_SCALED = 1 << 9; // glEnable(GL_NORMALIZE)
|
||||||
const unsigned int RENDER_SMOOTH = 1 << 10; // glShadeModel
|
const unsigned int RENDER_SMOOTH = 1 << 10; // glShadeModel
|
||||||
const unsigned int RENDER_FOG = 1 << 11; // glEnable(GL_FOG)
|
const unsigned int RENDER_FOG = 1 << 11; // glEnable(GL_FOG)
|
||||||
|
|
|
||||||
|
|
@ -87,15 +87,16 @@ MotionDeltaFunction m_function;
|
||||||
void* m_data;
|
void* m_data;
|
||||||
|
|
||||||
static gboolean deferred_motion( gpointer data ){
|
static gboolean deferred_motion( gpointer data ){
|
||||||
reinterpret_cast<DeferredMotionDelta*>( data )->m_function(
|
DeferredMotionDelta* self = reinterpret_cast<DeferredMotionDelta*>( data );
|
||||||
reinterpret_cast<DeferredMotionDelta*>( data )->m_delta_x,
|
self->m_function(
|
||||||
reinterpret_cast<DeferredMotionDelta*>( data )->m_delta_y,
|
self->m_delta_x,
|
||||||
reinterpret_cast<DeferredMotionDelta*>( data )->m_state,
|
self->m_delta_y,
|
||||||
reinterpret_cast<DeferredMotionDelta*>( data )->m_data
|
self->m_state,
|
||||||
|
self->m_data
|
||||||
);
|
);
|
||||||
reinterpret_cast<DeferredMotionDelta*>( data )->m_motion_handler = 0;
|
self->m_motion_handler = 0;
|
||||||
reinterpret_cast<DeferredMotionDelta*>( data )->m_delta_x = 0;
|
self->m_delta_x = 0;
|
||||||
reinterpret_cast<DeferredMotionDelta*>( data )->m_delta_y = 0;
|
self->m_delta_y = 0;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
|
|
@ -121,7 +122,8 @@ class FreezePointer
|
||||||
{
|
{
|
||||||
unsigned int handle_motion;
|
unsigned int handle_motion;
|
||||||
int recorded_x, recorded_y, last_x, last_y, center_x, center_y;
|
int recorded_x, recorded_y, last_x, last_y, center_x, center_y;
|
||||||
GtkWidget* m_weedjet;
|
GtkWindow* m_window;
|
||||||
|
GtkWidget* m_widget;
|
||||||
typedef void ( *MotionDeltaFunction )( int x, int y, unsigned int state, void* data );
|
typedef void ( *MotionDeltaFunction )( int x, int y, unsigned int state, void* data );
|
||||||
MotionDeltaFunction m_function;
|
MotionDeltaFunction m_function;
|
||||||
void* m_data;
|
void* m_data;
|
||||||
|
|
@ -163,7 +165,7 @@ static gboolean motion_delta( GtkWidget *widget, GdkEventMotion *event, FreezePo
|
||||||
}
|
}
|
||||||
|
|
||||||
void freeze_pointer( GtkWindow* window, GtkWidget* widget, MotionDeltaFunction function, void* data ){
|
void freeze_pointer( GtkWindow* window, GtkWidget* widget, MotionDeltaFunction function, void* data ){
|
||||||
ASSERT_MESSAGE( m_function == 0, "can't freeze pointer" );
|
ASSERT_MESSAGE( m_function == 0, "can't freeze pointer: already frozen" );
|
||||||
|
|
||||||
const GdkEventMask mask = static_cast<GdkEventMask>( GDK_POINTER_MOTION_MASK
|
const GdkEventMask mask = static_cast<GdkEventMask>( GDK_POINTER_MOTION_MASK
|
||||||
| GDK_POINTER_MOTION_HINT_MASK
|
| GDK_POINTER_MOTION_HINT_MASK
|
||||||
|
|
@ -182,9 +184,8 @@ void freeze_pointer( GtkWindow* window, GtkWidget* widget, MotionDeltaFunction f
|
||||||
drags with pressed buttons have no problem at all w/o this */
|
drags with pressed buttons have no problem at all w/o this */
|
||||||
gdk_pointer_grab( GTK_WIDGET( window )->window, TRUE, mask, 0, cursor, GDK_CURRENT_TIME );
|
gdk_pointer_grab( GTK_WIDGET( window )->window, TRUE, mask, 0, cursor, GDK_CURRENT_TIME );
|
||||||
//gdk_window_set_cursor ( GTK_WIDGET( window )->window, cursor );
|
//gdk_window_set_cursor ( GTK_WIDGET( window )->window, cursor );
|
||||||
/* is needed to fix activating neighbour widgets, that happens, if using upper one */
|
/* is needed to fix activating neighbor widgets, that happens, if using upper one */
|
||||||
gtk_grab_add( widget );
|
gtk_grab_add( widget );
|
||||||
m_weedjet = widget;
|
|
||||||
|
|
||||||
gdk_cursor_unref( cursor );
|
gdk_cursor_unref( cursor );
|
||||||
|
|
||||||
|
|
@ -200,28 +201,33 @@ void freeze_pointer( GtkWindow* window, GtkWidget* widget, MotionDeltaFunction f
|
||||||
last_x = center_x;
|
last_x = center_x;
|
||||||
last_y = center_y;
|
last_y = center_y;
|
||||||
|
|
||||||
|
m_widget = widget;
|
||||||
|
m_window = window;
|
||||||
|
|
||||||
m_function = function;
|
m_function = function;
|
||||||
m_data = data;
|
m_data = data;
|
||||||
|
|
||||||
handle_motion = g_signal_connect( G_OBJECT( window ), "motion_notify_event", G_CALLBACK( motion_delta ), this );
|
handle_motion = g_signal_connect( G_OBJECT( window ), "motion_notify_event", G_CALLBACK( motion_delta ), this );
|
||||||
}
|
}
|
||||||
|
|
||||||
void unfreeze_pointer( GtkWindow* window, bool centerize ){
|
void unfreeze_pointer( bool centerize ){
|
||||||
g_signal_handler_disconnect( G_OBJECT( window ), handle_motion );
|
ASSERT_MESSAGE( m_function != 0, "can't unfreeze pointer: is not frozen" );
|
||||||
|
|
||||||
|
g_signal_handler_disconnect( G_OBJECT( m_window ), handle_motion );
|
||||||
|
|
||||||
m_function = 0;
|
m_function = 0;
|
||||||
m_data = 0;
|
m_data = 0;
|
||||||
|
|
||||||
if( centerize ){
|
if( centerize ){
|
||||||
Sys_SetCursorPos( window, center_x, center_y );
|
Sys_SetCursorPos( m_window, center_x, center_y );
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
Sys_SetCursorPos( window, recorded_x, recorded_y );
|
Sys_SetCursorPos( m_window, recorded_x, recorded_y );
|
||||||
}
|
}
|
||||||
// gdk_window_set_cursor( GTK_WIDGET( window )->window, 0 );
|
// gdk_window_set_cursor( GTK_WIDGET( m_window )->window, 0 );
|
||||||
gdk_pointer_ungrab( GDK_CURRENT_TIME );
|
gdk_pointer_ungrab( GDK_CURRENT_TIME );
|
||||||
if( m_weedjet )
|
|
||||||
gtk_grab_remove( m_weedjet );
|
gtk_grab_remove( m_widget );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -238,12 +244,13 @@ ValueChangedFunction m_function;
|
||||||
void* m_data;
|
void* m_data;
|
||||||
|
|
||||||
static gboolean deferred_value_changed( gpointer data ){
|
static gboolean deferred_value_changed( gpointer data ){
|
||||||
reinterpret_cast<DeferredAdjustment*>( data )->m_function(
|
DeferredAdjustment* self = reinterpret_cast<DeferredAdjustment*>( data );
|
||||||
reinterpret_cast<DeferredAdjustment*>( data )->m_data,
|
self->m_function(
|
||||||
reinterpret_cast<DeferredAdjustment*>( data )->m_value
|
self->m_data,
|
||||||
|
self->m_value
|
||||||
);
|
);
|
||||||
reinterpret_cast<DeferredAdjustment*>( data )->m_handler = 0;
|
self->m_handler = 0;
|
||||||
reinterpret_cast<DeferredAdjustment*>( data )->m_value = 0;
|
self->m_value = 0;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -1856,7 +1856,7 @@ void CamWnd::DisableFreeMove(){
|
||||||
CamWnd_Remove_Handlers_FreeMove( *this );
|
CamWnd_Remove_Handlers_FreeMove( *this );
|
||||||
CamWnd_Add_Handlers_Move( *this );
|
CamWnd_Add_Handlers_Move( *this );
|
||||||
|
|
||||||
m_freezePointer.unfreeze_pointer( m_parent, true );
|
m_freezePointer.unfreeze_pointer( true );
|
||||||
g_signal_handler_disconnect( G_OBJECT( m_gl_widget ), m_freemove_handle_focusout );
|
g_signal_handler_disconnect( G_OBJECT( m_gl_widget ), m_freemove_handle_focusout );
|
||||||
|
|
||||||
CamWnd_Update( *this );
|
CamWnd_Update( *this );
|
||||||
|
|
|
||||||
|
|
@ -432,6 +432,8 @@ void Entity_createFromSelection( const char* name, const Vector3& origin ){
|
||||||
entitypath.push( makeReference( node.get() ) );
|
entitypath.push( makeReference( node.get() ) );
|
||||||
scene::Instance& instance = findInstance( entitypath );
|
scene::Instance& instance = findInstance( entitypath );
|
||||||
|
|
||||||
|
Entity* entity = Node_getEntity( node );
|
||||||
|
|
||||||
if ( entityClass->fixedsize || ( isModel && !brushesSelected ) ) {
|
if ( entityClass->fixedsize || ( isModel && !brushesSelected ) ) {
|
||||||
//Select_Delete();
|
//Select_Delete();
|
||||||
|
|
||||||
|
|
@ -449,7 +451,7 @@ void Entity_createFromSelection( const char* name, const Vector3& origin ){
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( g_pGameDescription->mGameType == "doom3" ) {
|
if ( g_pGameDescription->mGameType == "doom3" ) {
|
||||||
Node_getEntity( node )->setKeyValue( "model", Node_getEntity( node )->getKeyValue( "name" ) );
|
entity->setKeyValue( "model", entity->getKeyValue( "name" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
Scene_parentSelectedBrushesToEntity( GlobalSceneGraph(), node );
|
Scene_parentSelectedBrushesToEntity( GlobalSceneGraph(), node );
|
||||||
|
|
@ -470,7 +472,7 @@ void Entity_createFromSelection( const char* name, const Vector3& origin ){
|
||||||
g_iLastLightIntensity = intensity;
|
g_iLastLightIntensity = intensity;
|
||||||
char buf[30];
|
char buf[30];
|
||||||
sprintf( buf, "255 255 255 %d", intensity );
|
sprintf( buf, "255 255 255 %d", intensity );
|
||||||
Node_getEntity( node )->setKeyValue( "_light", buf );
|
entity->setKeyValue( "_light", buf );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -482,24 +484,24 @@ void Entity_createFromSelection( const char* name, const Vector3& origin ){
|
||||||
g_iLastLightIntensity = intensity;
|
g_iLastLightIntensity = intensity;
|
||||||
char buf[10];
|
char buf[10];
|
||||||
sprintf( buf, "%d", intensity );
|
sprintf( buf, "%d", intensity );
|
||||||
Node_getEntity( node )->setKeyValue( "light", buf );
|
entity->setKeyValue( "light", buf );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( brushesSelected ) { // use workzone to set light position/size for doom3 lights, if there are brushes selected
|
else if ( brushesSelected ) { // use workzone to set light position/size for doom3 lights, if there are brushes selected
|
||||||
AABB bounds( Doom3Light_getBounds( workzone ) );
|
AABB bounds( Doom3Light_getBounds( workzone ) );
|
||||||
StringOutputStream key( 64 );
|
StringOutputStream key( 64 );
|
||||||
key << bounds.origin[0] << " " << bounds.origin[1] << " " << bounds.origin[2];
|
key << bounds.origin[0] << " " << bounds.origin[1] << " " << bounds.origin[2];
|
||||||
Node_getEntity( node )->setKeyValue( "origin", key.c_str() );
|
entity->setKeyValue( "origin", key.c_str() );
|
||||||
key.clear();
|
key.clear();
|
||||||
key << bounds.extents[0] << " " << bounds.extents[1] << " " << bounds.extents[2];
|
key << bounds.extents[0] << " " << bounds.extents[1] << " " << bounds.extents[2];
|
||||||
Node_getEntity( node )->setKeyValue( "light_radius", key.c_str() );
|
entity->setKeyValue( "light_radius", key.c_str() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isModel ) {
|
if ( isModel ) {
|
||||||
const char* model = misc_model_dialog( GTK_WIDGET( MainFrame_getWindow() ) );
|
const char* model = misc_model_dialog( GTK_WIDGET( MainFrame_getWindow() ) );
|
||||||
if ( model != 0 ) {
|
if ( model != 0 ) {
|
||||||
Node_getEntity( node )->setKeyValue( entityClass->miscmodel_key() , model );
|
entity->setKeyValue( entityClass->miscmodel_key(), model );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3125,6 +3125,12 @@ void MainFrame::Create(){
|
||||||
|
|
||||||
if ( FloatingGroupDialog() ) {
|
if ( FloatingGroupDialog() ) {
|
||||||
g_page_console = GroupDialog_addPage( "Console", Console_constructWindow( GroupDialog_getWindow() ), RawStringExportCaller( "Console" ) );
|
g_page_console = GroupDialog_addPage( "Console", Console_constructWindow( GroupDialog_getWindow() ), RawStringExportCaller( "Console" ) );
|
||||||
|
{
|
||||||
|
GtkFrame* frame = create_framed_widget( TextureBrowser_constructWindow( GroupDialog_getWindow() ) );
|
||||||
|
g_page_textures = GroupDialog_addPage( "Textures", GTK_WIDGET( frame ), TextureBrowserExportTitleCaller() );
|
||||||
|
/* workaround for gtk 2.24 issue: not displayed glwidget after toggle */
|
||||||
|
g_object_set_data( G_OBJECT( g_page_textures ), "glwidget", TextureBrowser_getGLWidget() );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
@ -3146,7 +3152,6 @@ void MainFrame::Create(){
|
||||||
gtk_widget_show( GTK_WIDGET( window ) );
|
gtk_widget_show( GTK_WIDGET( window ) );
|
||||||
|
|
||||||
if ( CurrentStyle() == eRegular || CurrentStyle() == eRegularLeft ) {
|
if ( CurrentStyle() == eRegular || CurrentStyle() == eRegularLeft ) {
|
||||||
{
|
|
||||||
GtkWidget* hsplit = gtk_hpaned_new();
|
GtkWidget* hsplit = gtk_hpaned_new();
|
||||||
m_hSplit = hsplit;
|
m_hSplit = hsplit;
|
||||||
gtk_box_pack_start( GTK_BOX( vbox ), hsplit, TRUE, TRUE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox ), hsplit, TRUE, TRUE, 0 );
|
||||||
|
|
@ -3191,7 +3196,6 @@ void MainFrame::Create(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if ( CurrentStyle() == eFloating ) {
|
else if ( CurrentStyle() == eFloating ) {
|
||||||
{
|
{
|
||||||
GtkWindow* window = create_persistent_floating_window( "Camera", m_window );
|
GtkWindow* window = create_persistent_floating_window( "Camera", m_window );
|
||||||
|
|
@ -3277,13 +3281,6 @@ void MainFrame::Create(){
|
||||||
g_floating_windows.push_back( GTK_WIDGET( window ) );
|
g_floating_windows.push_back( GTK_WIDGET( window ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
|
||||||
GtkFrame* frame = create_framed_widget( TextureBrowser_constructWindow( GroupDialog_getWindow() ) );
|
|
||||||
g_page_textures = GroupDialog_addPage( "Textures", GTK_WIDGET( frame ), TextureBrowserExportTitleCaller() );
|
|
||||||
/* workaround for gtk 2.24 issue: not displayed glwidget after toggle */
|
|
||||||
g_object_set_data( G_OBJECT( g_page_textures ), "glwidget", TextureBrowser_getGLWidget() );
|
|
||||||
}
|
|
||||||
|
|
||||||
m_vSplit = 0;
|
m_vSplit = 0;
|
||||||
m_hSplit = 0;
|
m_hSplit = 0;
|
||||||
m_vSplit2 = 0;
|
m_vSplit2 = 0;
|
||||||
|
|
@ -3315,13 +3312,6 @@ void MainFrame::Create(){
|
||||||
|
|
||||||
m_hSplit = create_split_views( camera, yz, xy, xz, m_vSplit, m_vSplit2 );
|
m_hSplit = create_split_views( camera, yz, xy, xz, m_vSplit, m_vSplit2 );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox ), m_hSplit, TRUE, TRUE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox ), m_hSplit, TRUE, TRUE, 0 );
|
||||||
|
|
||||||
{
|
|
||||||
GtkFrame* frame = create_framed_widget( TextureBrowser_constructWindow( GroupDialog_getWindow() ) );
|
|
||||||
g_page_textures = GroupDialog_addPage( "Textures", GTK_WIDGET( frame ), TextureBrowserExportTitleCaller() );
|
|
||||||
/* workaround for gtk 2.24 issue: not displayed glwidget after toggle */
|
|
||||||
g_object_set_data( G_OBJECT( g_page_textures ), "glwidget", TextureBrowser_getGLWidget() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EntityList_constructWindow( window );
|
EntityList_constructWindow( window );
|
||||||
|
|
|
||||||
|
|
@ -718,7 +718,7 @@ void Map_ImportSelected( TextInputStream& in, const MapFormat& format ){
|
||||||
EBrushType brush_type = GlobalBrushCreator().getFormat();
|
EBrushType brush_type = GlobalBrushCreator().getFormat();
|
||||||
format.readGraph( node, in, GlobalEntityCreator() );
|
format.readGraph( node, in, GlobalEntityCreator() );
|
||||||
if ( brush_type != GlobalBrushCreator().getFormat() ) {
|
if ( brush_type != GlobalBrushCreator().getFormat() ) {
|
||||||
Node_getTraversable( *node.get_pointer() )->traverse( Convert_Brushes( BrushType_getTexdefType( GlobalBrushCreator().getFormat() ), BrushType_getTexdefType( brush_type ) ) );
|
Node_getTraversable( node )->traverse( Convert_Brushes( BrushType_getTexdefType( GlobalBrushCreator().getFormat() ), BrushType_getTexdefType( brush_type ) ) );
|
||||||
GlobalBrushCreator().toggleFormat( brush_type );
|
GlobalBrushCreator().toggleFormat( brush_type );
|
||||||
}
|
}
|
||||||
Map_gatherNamespaced( node );
|
Map_gatherNamespaced( node );
|
||||||
|
|
|
||||||
|
|
@ -620,7 +620,7 @@ public:
|
||||||
void tracking_MouseUp(){
|
void tracking_MouseUp(){
|
||||||
if( m_move_started ){
|
if( m_move_started ){
|
||||||
m_move_started = false;
|
m_move_started = false;
|
||||||
m_freezePointer.unfreeze_pointer( m_parent, false );
|
m_freezePointer.unfreeze_pointer( false );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void tracking_MouseDown(){
|
void tracking_MouseDown(){
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,7 @@
|
||||||
#include "gtkutil/widget.h"
|
#include "gtkutil/widget.h"
|
||||||
#include "gtkutil/glwidget.h"
|
#include "gtkutil/glwidget.h"
|
||||||
#include "gtkutil/messagebox.h"
|
#include "gtkutil/messagebox.h"
|
||||||
|
#include "gtkutil/toolbar.h"
|
||||||
|
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "map.h"
|
#include "map.h"
|
||||||
|
|
@ -88,8 +89,6 @@
|
||||||
#include "preferences.h"
|
#include "preferences.h"
|
||||||
#include "commands.h"
|
#include "commands.h"
|
||||||
|
|
||||||
void TextureBrowser_queueDraw( TextureBrowser& textureBrowser );
|
|
||||||
|
|
||||||
bool string_equal_start( const char* string, StringRange start ){
|
bool string_equal_start( const char* string, StringRange start ){
|
||||||
return string_equal_n( string, start.first, start.last - start.first );
|
return string_equal_n( string, start.first, start.last - start.first );
|
||||||
}
|
}
|
||||||
|
|
@ -135,10 +134,6 @@ bool g_TextureBrowser_filter_searchFromStart = false;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TextureBrowser;
|
|
||||||
|
|
||||||
typedef ReferenceCaller<TextureBrowser, TextureBrowser_queueDraw> TextureBrowserQueueDrawCaller;
|
|
||||||
|
|
||||||
void TextureBrowser_scrollChanged( void* data, gdouble value );
|
void TextureBrowser_scrollChanged( void* data, gdouble value );
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -260,10 +255,8 @@ static bool wads;
|
||||||
// Return the display width of a texture in the texture browser
|
// Return the display width of a texture in the texture browser
|
||||||
void getTextureWH( qtexture_t* tex, int &W, int &H ){
|
void getTextureWH( qtexture_t* tex, int &W, int &H ){
|
||||||
// Don't use uniform size
|
// Don't use uniform size
|
||||||
W = (int)( tex->width * ( (float)m_textureScale / 100 ) );
|
W = std::max( std::size_t( 1 ), tex->width * m_textureScale / 100 );
|
||||||
H = (int)( tex->height * ( (float)m_textureScale / 100 ) );
|
H = std::max( std::size_t( 1 ), tex->height * m_textureScale / 100 );
|
||||||
if ( W < 1 ) W = 1;
|
|
||||||
if ( H < 1 ) H = 1;
|
|
||||||
|
|
||||||
if ( g_TextureBrowser_fixedSize ){
|
if ( g_TextureBrowser_fixedSize ){
|
||||||
if ( W >= H ) {
|
if ( W >= H ) {
|
||||||
|
|
@ -329,6 +322,12 @@ void ( *TextureBrowser_textureSelected )( const char* shader );
|
||||||
void TextureBrowser_updateScroll( TextureBrowser& textureBrowser );
|
void TextureBrowser_updateScroll( TextureBrowser& textureBrowser );
|
||||||
|
|
||||||
|
|
||||||
|
void TextureBrowser_queueDraw( TextureBrowser& textureBrowser ){
|
||||||
|
if ( textureBrowser.m_gl_widget != 0 ) {
|
||||||
|
gtk_widget_queue_draw( textureBrowser.m_gl_widget );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const char* TextureBrowser_getComonShadersName(){
|
const char* TextureBrowser_getComonShadersName(){
|
||||||
const char* value = g_pGameDescription->getKeyValue( "common_shaders_name" );
|
const char* value = g_pGameDescription->getKeyValue( "common_shaders_name" );
|
||||||
if ( !string_empty( value ) ) {
|
if ( !string_empty( value ) ) {
|
||||||
|
|
@ -612,8 +611,6 @@ void TextureBrowser_addActiveShadersChangedCallback( const SignalHandler& handle
|
||||||
g_activeShadersChangedCallbacks.connectLast( handler );
|
g_activeShadersChangedCallbacks.connectLast( handler );
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureBrowser_constructTreeStore();
|
|
||||||
|
|
||||||
class ShadersObserver : public ModuleObserver
|
class ShadersObserver : public ModuleObserver
|
||||||
{
|
{
|
||||||
Signal0 m_realiseCallbacks;
|
Signal0 m_realiseCallbacks;
|
||||||
|
|
@ -989,14 +986,12 @@ void TextureBrowser_trackingDelta( int x, int y, unsigned int state, void* data
|
||||||
void TextureBrowser_Tracking_MouseUp( TextureBrowser& textureBrowser ){
|
void TextureBrowser_Tracking_MouseUp( TextureBrowser& textureBrowser ){
|
||||||
if( textureBrowser.m_move_started ){
|
if( textureBrowser.m_move_started ){
|
||||||
textureBrowser.m_move_started = false;
|
textureBrowser.m_move_started = false;
|
||||||
textureBrowser.m_freezePointer.unfreeze_pointer( textureBrowser.m_parent, false );
|
textureBrowser.m_freezePointer.unfreeze_pointer( false );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureBrowser_Tracking_MouseDown( TextureBrowser& textureBrowser ){
|
void TextureBrowser_Tracking_MouseDown( TextureBrowser& textureBrowser ){
|
||||||
if( textureBrowser.m_move_started ){
|
|
||||||
TextureBrowser_Tracking_MouseUp( textureBrowser );
|
TextureBrowser_Tracking_MouseUp( textureBrowser );
|
||||||
}
|
|
||||||
textureBrowser.m_move_started = true;
|
textureBrowser.m_move_started = true;
|
||||||
textureBrowser.m_move_amount = 0;
|
textureBrowser.m_move_amount = 0;
|
||||||
textureBrowser.m_freezePointer.freeze_pointer( textureBrowser.m_parent, textureBrowser.m_gl_widget, TextureBrowser_trackingDelta, &textureBrowser );
|
textureBrowser.m_freezePointer.freeze_pointer( textureBrowser.m_parent, textureBrowser.m_gl_widget, TextureBrowser_trackingDelta, &textureBrowser );
|
||||||
|
|
@ -1199,12 +1194,6 @@ void Texture_Draw( TextureBrowser& textureBrowser ){
|
||||||
//qglFinish();
|
//qglFinish();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureBrowser_queueDraw( TextureBrowser& textureBrowser ){
|
|
||||||
if ( textureBrowser.m_gl_widget != 0 ) {
|
|
||||||
gtk_widget_queue_draw( textureBrowser.m_gl_widget );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void TextureBrowser_setScale( TextureBrowser& textureBrowser, std::size_t scale ){
|
void TextureBrowser_setScale( TextureBrowser& textureBrowser, std::size_t scale ){
|
||||||
textureBrowser.m_textureScale = scale;
|
textureBrowser.m_textureScale = scale;
|
||||||
|
|
@ -1728,7 +1717,7 @@ GtkMenuItem* TextureBrowser_constructViewMenu( GtkMenu* menu ){
|
||||||
return textures_menu_item;
|
return textures_menu_item;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Popup_View_Menu( GtkWidget *widget, GtkMenu *menu ){
|
void Popup_View_Menu( GtkMenu *menu ){
|
||||||
gtk_menu_popup( menu, NULL, NULL, NULL, NULL, 1, gtk_get_current_event_time() );
|
gtk_menu_popup( menu, NULL, NULL, NULL, NULL, 1, gtk_get_current_event_time() );
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
|
|
@ -2089,26 +2078,19 @@ GtkWidget* TextureBrowser_constructWindow( GtkWindow* toplevel ){
|
||||||
GtkToolbar* toolbar;
|
GtkToolbar* toolbar;
|
||||||
|
|
||||||
{ // menu bar
|
{ // menu bar
|
||||||
GtkWidget* menu_view = gtk_menu_new();
|
GtkMenu* menu_view = GTK_MENU( gtk_menu_new() );
|
||||||
TextureBrowser_constructViewMenu( GTK_MENU( menu_view ) );
|
TextureBrowser_constructViewMenu( menu_view );
|
||||||
gtk_menu_set_title( GTK_MENU( menu_view ), "View" );
|
gtk_menu_set_title( menu_view, "View" );
|
||||||
|
|
||||||
toolbar = GTK_TOOLBAR( gtk_toolbar_new() );
|
toolbar = GTK_TOOLBAR( gtk_toolbar_new() );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( toolbar ), FALSE, FALSE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( toolbar ), FALSE, FALSE, 0 );
|
||||||
|
|
||||||
//view menu button
|
//view menu button
|
||||||
GtkButton* button = GTK_BUTTON( gtk_button_new() );
|
GtkButton* button = toolbar_append_button( toolbar, "View", "texbro_view.png", PointerCaller<GtkMenu, Popup_View_Menu>( menu_view ) );
|
||||||
button_set_icon( button, "texbro_view.png" );
|
gtk_widget_set_size_request( GTK_WIDGET( button ), 24, 24 ); // 24 is minimal here for non scissored icon with any gtk theme
|
||||||
gtk_widget_show( GTK_WIDGET( button ) );
|
|
||||||
gtk_button_set_relief( button, GTK_RELIEF_NONE );
|
|
||||||
gtk_widget_set_size_request( GTK_WIDGET( button ), 24, 24 );
|
|
||||||
GTK_WIDGET_UNSET_FLAGS( GTK_WIDGET( button ), GTK_CAN_FOCUS );
|
|
||||||
GTK_WIDGET_UNSET_FLAGS( GTK_WIDGET( button ), GTK_CAN_DEFAULT );
|
|
||||||
gtk_toolbar_append_element( toolbar, GTK_TOOLBAR_CHILD_WIDGET, GTK_WIDGET( button ), "", "View", "", 0, 0, 0 );
|
|
||||||
g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( Popup_View_Menu ), menu_view );
|
|
||||||
|
|
||||||
//show detached menu over floating tex bro
|
//show detached menu over floating tex bro
|
||||||
gtk_menu_attach_to_widget( GTK_MENU( menu_view ), GTK_WIDGET( button ), NULL );
|
gtk_menu_attach_to_widget( menu_view, GTK_WIDGET( button ), NULL );
|
||||||
|
|
||||||
button = toolbar_append_button( toolbar, "Find / Replace...", "texbro_gtk-find-and-replace.png", "FindReplaceTextures" );
|
button = toolbar_append_button( toolbar, "Find / Replace...", "texbro_gtk-find-and-replace.png", "FindReplaceTextures" );
|
||||||
gtk_widget_set_size_request( GTK_WIDGET( button ), 22, 22 );
|
gtk_widget_set_size_request( GTK_WIDGET( button ), 22, 22 );
|
||||||
|
|
@ -2117,16 +2099,15 @@ GtkWidget* TextureBrowser_constructWindow( GtkWindow* toplevel ){
|
||||||
gtk_widget_set_size_request( GTK_WIDGET( button ), 22, 22 );
|
gtk_widget_set_size_request( GTK_WIDGET( button ), 22, 22 );
|
||||||
gtk_widget_show( GTK_WIDGET( toolbar ) );
|
gtk_widget_show( GTK_WIDGET( toolbar ) );
|
||||||
}
|
}
|
||||||
{//filter entry
|
{ // filter entry
|
||||||
GtkWidget* entry = gtk_entry_new();
|
GtkWidget* entry = g_TextureBrowser.m_filter_entry = gtk_entry_new();
|
||||||
gtk_widget_set_size_request( GTK_WIDGET( entry ), 64, -1 );
|
gtk_widget_set_size_request( entry, 64, -1 );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( entry ), FALSE, FALSE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox ), entry, FALSE, FALSE, 0 );
|
||||||
gtk_entry_set_icon_from_stock( GTK_ENTRY( entry ), GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLEAR );
|
gtk_entry_set_icon_from_stock( GTK_ENTRY( entry ), GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLEAR );
|
||||||
gtk_entry_set_icon_sensitive( GTK_ENTRY( entry ), GTK_ENTRY_ICON_SECONDARY, FALSE );
|
gtk_entry_set_icon_sensitive( GTK_ENTRY( entry ), GTK_ENTRY_ICON_SECONDARY, FALSE );
|
||||||
TextureBrowser_filterSetModeIcon( GTK_ENTRY( entry ) );
|
TextureBrowser_filterSetModeIcon( GTK_ENTRY( entry ) );
|
||||||
gtk_entry_set_icon_tooltip_text( GTK_ENTRY( entry ), GTK_ENTRY_ICON_PRIMARY, "toggle match mode ( start / any position )" );
|
gtk_entry_set_icon_tooltip_text( GTK_ENTRY( entry ), GTK_ENTRY_ICON_PRIMARY, "toggle match mode ( start / any position )" );
|
||||||
gtk_widget_show( entry );
|
gtk_widget_show( entry );
|
||||||
g_TextureBrowser.m_filter_entry = entry;
|
|
||||||
g_signal_connect( G_OBJECT( entry ), "changed", G_CALLBACK( TextureBrowser_filterChanged ), &g_TextureBrowser );
|
g_signal_connect( G_OBJECT( entry ), "changed", G_CALLBACK( TextureBrowser_filterChanged ), &g_TextureBrowser );
|
||||||
g_signal_connect( G_OBJECT( entry ), "icon-press", G_CALLBACK( TextureBrowser_filterIconPress ), 0 );
|
g_signal_connect( G_OBJECT( entry ), "icon-press", G_CALLBACK( TextureBrowser_filterIconPress ), 0 );
|
||||||
g_signal_connect( G_OBJECT( entry ), "key_press_event", G_CALLBACK( TextureBrowser_filterKeypress ), 0 );
|
g_signal_connect( G_OBJECT( entry ), "key_press_event", G_CALLBACK( TextureBrowser_filterKeypress ), 0 );
|
||||||
|
|
@ -2134,52 +2115,51 @@ GtkWidget* TextureBrowser_constructWindow( GtkWindow* toplevel ){
|
||||||
g_signal_connect( G_OBJECT( entry ), "leave_notify_event", G_CALLBACK( TextureBrowser_filterEntryUnfocus ), 0 );
|
g_signal_connect( G_OBJECT( entry ), "leave_notify_event", G_CALLBACK( TextureBrowser_filterEntryUnfocus ), 0 );
|
||||||
}
|
}
|
||||||
{ // Texture TreeView
|
{ // Texture TreeView
|
||||||
g_TextureBrowser.m_scr_win_tree = gtk_scrolled_window_new( NULL, NULL );
|
GtkWidget* w = g_TextureBrowser.m_scr_win_tree = gtk_scrolled_window_new( NULL, NULL );
|
||||||
gtk_container_set_border_width( GTK_CONTAINER( g_TextureBrowser.m_scr_win_tree ), 0 );
|
gtk_container_set_border_width( GTK_CONTAINER( w ), 0 );
|
||||||
|
|
||||||
// vertical only scrolling for treeview
|
// vertical only scrolling for treeview
|
||||||
gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( g_TextureBrowser.m_scr_win_tree ), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS );
|
gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( w ), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS );
|
||||||
|
|
||||||
gtk_widget_show( g_TextureBrowser.m_scr_win_tree );
|
gtk_widget_show( w );
|
||||||
|
|
||||||
TextureBrowser_createTreeViewTree();
|
TextureBrowser_createTreeViewTree();
|
||||||
|
|
||||||
//gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW( g_TextureBrowser.m_scr_win_tree ), g_TextureBrowser.m_treeViewTree );
|
//gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW( w ), g_TextureBrowser.m_treeViewTree );
|
||||||
gtk_container_add( GTK_CONTAINER( g_TextureBrowser.m_scr_win_tree ), g_TextureBrowser.m_treeViewTree ); //GtkTreeView has native scrolling support; should not be used with the GtkViewport proxy.
|
gtk_container_add( GTK_CONTAINER( w ), g_TextureBrowser.m_treeViewTree ); //GtkTreeView has native scrolling support; should not be used with the GtkViewport proxy.
|
||||||
gtk_widget_show( GTK_WIDGET( g_TextureBrowser.m_treeViewTree ) );
|
gtk_widget_show( g_TextureBrowser.m_treeViewTree );
|
||||||
}
|
}
|
||||||
{ // gl_widget scrollbar
|
{ // gl_widget scrollbar
|
||||||
GtkWidget* w = gtk_vscrollbar_new( GTK_ADJUSTMENT( gtk_adjustment_new( 0, 0, 0, 1, 1, 0 ) ) );
|
GtkWidget* w = g_TextureBrowser.m_texture_scroll = gtk_vscrollbar_new( GTK_ADJUSTMENT( gtk_adjustment_new( 0, 0, 0, 1, 1, 0 ) ) );
|
||||||
gtk_table_attach( GTK_TABLE( table ), w, 2, 3, 1, 2, GTK_SHRINK, GTK_FILL, 0, 0 );
|
gtk_table_attach( GTK_TABLE( table ), w, 2, 3, 1, 2, GTK_SHRINK, GTK_FILL, 0, 0 );
|
||||||
gtk_widget_show( w );
|
gtk_widget_show( w );
|
||||||
g_TextureBrowser.m_texture_scroll = w;
|
|
||||||
|
|
||||||
GtkAdjustment *vadjustment = gtk_range_get_adjustment( GTK_RANGE( g_TextureBrowser.m_texture_scroll ) );
|
GtkAdjustment *vadjustment = gtk_range_get_adjustment( GTK_RANGE( w ) );
|
||||||
g_signal_connect( G_OBJECT( vadjustment ), "value_changed", G_CALLBACK( TextureBrowser_verticalScroll ), &g_TextureBrowser );
|
g_signal_connect( G_OBJECT( vadjustment ), "value_changed", G_CALLBACK( TextureBrowser_verticalScroll ), &g_TextureBrowser );
|
||||||
|
|
||||||
widget_set_visible( g_TextureBrowser.m_texture_scroll, g_TextureBrowser.m_showTextureScrollbar );
|
widget_set_visible( w, g_TextureBrowser.m_showTextureScrollbar );
|
||||||
}
|
}
|
||||||
{ // gl_widget
|
{ // gl_widget
|
||||||
#if NV_DRIVER_GAMMA_BUG
|
#if NV_DRIVER_GAMMA_BUG
|
||||||
g_TextureBrowser.m_gl_widget = glwidget_new( TRUE );
|
GtkWidget* w = g_TextureBrowser.m_gl_widget = glwidget_new( TRUE );
|
||||||
#else
|
#else
|
||||||
g_TextureBrowser.m_gl_widget = glwidget_new( FALSE );
|
GtkWidget* w = g_TextureBrowser.m_gl_widget = glwidget_new( FALSE );
|
||||||
#endif
|
#endif
|
||||||
gtk_widget_ref( g_TextureBrowser.m_gl_widget );
|
gtk_widget_ref( w );
|
||||||
|
|
||||||
gtk_widget_set_events( g_TextureBrowser.m_gl_widget, GDK_DESTROY | GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_SCROLL_MASK );
|
gtk_widget_set_events( w, GDK_DESTROY | GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_SCROLL_MASK );
|
||||||
GTK_WIDGET_SET_FLAGS( g_TextureBrowser.m_gl_widget, GTK_CAN_FOCUS );
|
GTK_WIDGET_SET_FLAGS( w, GTK_CAN_FOCUS );
|
||||||
|
|
||||||
gtk_table_attach_defaults( GTK_TABLE( table ), g_TextureBrowser.m_gl_widget, 1, 2, 1, 2 );
|
gtk_table_attach_defaults( GTK_TABLE( table ), w, 1, 2, 1, 2 );
|
||||||
gtk_widget_show( g_TextureBrowser.m_gl_widget );
|
gtk_widget_show( w );
|
||||||
|
|
||||||
g_TextureBrowser.m_sizeHandler = g_signal_connect( G_OBJECT( g_TextureBrowser.m_gl_widget ), "size_allocate", G_CALLBACK( TextureBrowser_size_allocate ), &g_TextureBrowser );
|
g_TextureBrowser.m_sizeHandler = g_signal_connect( G_OBJECT( w ), "size_allocate", G_CALLBACK( TextureBrowser_size_allocate ), &g_TextureBrowser );
|
||||||
g_TextureBrowser.m_exposeHandler = g_signal_connect( G_OBJECT( g_TextureBrowser.m_gl_widget ), "expose_event", G_CALLBACK( TextureBrowser_expose ), &g_TextureBrowser );
|
g_TextureBrowser.m_exposeHandler = g_signal_connect( G_OBJECT( w ), "expose_event", G_CALLBACK( TextureBrowser_expose ), &g_TextureBrowser );
|
||||||
|
|
||||||
g_signal_connect( G_OBJECT( g_TextureBrowser.m_gl_widget ), "button_press_event", G_CALLBACK( TextureBrowser_button_press ), &g_TextureBrowser );
|
g_signal_connect( G_OBJECT( w ), "button_press_event", G_CALLBACK( TextureBrowser_button_press ), &g_TextureBrowser );
|
||||||
g_signal_connect( G_OBJECT( g_TextureBrowser.m_gl_widget ), "button_release_event", G_CALLBACK( TextureBrowser_button_release ), &g_TextureBrowser );
|
g_signal_connect( G_OBJECT( w ), "button_release_event", G_CALLBACK( TextureBrowser_button_release ), &g_TextureBrowser );
|
||||||
g_signal_connect( G_OBJECT( g_TextureBrowser.m_gl_widget ), "motion_notify_event", G_CALLBACK( TextureBrowser_motion ), &g_TextureBrowser );
|
g_signal_connect( G_OBJECT( w ), "motion_notify_event", G_CALLBACK( TextureBrowser_motion ), &g_TextureBrowser );
|
||||||
g_signal_connect( G_OBJECT( g_TextureBrowser.m_gl_widget ), "scroll_event", G_CALLBACK( TextureBrowser_scroll ), &g_TextureBrowser );
|
g_signal_connect( G_OBJECT( w ), "scroll_event", G_CALLBACK( TextureBrowser_scroll ), &g_TextureBrowser );
|
||||||
}
|
}
|
||||||
|
|
||||||
// tag stuff
|
// tag stuff
|
||||||
|
|
@ -2193,26 +2173,15 @@ GtkWidget* TextureBrowser_constructWindow( GtkWindow* toplevel ){
|
||||||
TextureBrowser_buildTagList();
|
TextureBrowser_buildTagList();
|
||||||
}
|
}
|
||||||
{ // tag menu bar
|
{ // tag menu bar
|
||||||
GtkWidget* menu_tags = gtk_menu_new();
|
GtkMenu* menu_tags = GTK_MENU( gtk_menu_new() );
|
||||||
gtk_menu_set_title( GTK_MENU( menu_tags ), "Tags" );
|
gtk_menu_set_title( menu_tags, "Tags" );
|
||||||
TextureBrowser_constructTagsMenu( GTK_MENU( menu_tags ) );
|
TextureBrowser_constructTagsMenu( menu_tags );
|
||||||
|
|
||||||
GtkButton* button = GTK_BUTTON( gtk_button_new() );
|
GtkButton* button = toolbar_append_button( toolbar, "Tags", "texbro_tags.png", PointerCaller<GtkMenu, Popup_View_Menu>( menu_tags ) );
|
||||||
button_set_icon( button, "texbro_tags.png" );
|
|
||||||
// GtkWidget *label = gtk_label_new ( ">t" );
|
|
||||||
// gtk_container_add( GTK_CONTAINER( button ), label );
|
|
||||||
// gtk_widget_show( label );
|
|
||||||
|
|
||||||
gtk_widget_show( GTK_WIDGET( button ) );
|
|
||||||
gtk_button_set_relief( button, GTK_RELIEF_NONE );
|
|
||||||
gtk_widget_set_size_request( GTK_WIDGET( button ), 22, 22 );
|
gtk_widget_set_size_request( GTK_WIDGET( button ), 22, 22 );
|
||||||
GTK_WIDGET_UNSET_FLAGS( GTK_WIDGET( button ), GTK_CAN_FOCUS );
|
|
||||||
GTK_WIDGET_UNSET_FLAGS( GTK_WIDGET( button ), GTK_CAN_DEFAULT );
|
|
||||||
gtk_toolbar_append_element( toolbar, GTK_TOOLBAR_CHILD_WIDGET, GTK_WIDGET( button ), "", "Tags", "", 0, 0, 0 );
|
|
||||||
g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( Popup_View_Menu ), menu_tags );
|
|
||||||
|
|
||||||
//show detached menu over floating tex bro and main wnd...
|
//show detached menu over floating tex bro and main wnd...
|
||||||
gtk_menu_attach_to_widget( GTK_MENU( menu_tags ), GTK_WIDGET( button ), NULL );
|
gtk_menu_attach_to_widget( menu_tags, GTK_WIDGET( button ), NULL );
|
||||||
}
|
}
|
||||||
{ // Tag TreeView
|
{ // Tag TreeView
|
||||||
g_TextureBrowser.m_scr_win_tags = gtk_scrolled_window_new( NULL, NULL );
|
g_TextureBrowser.m_scr_win_tags = gtk_scrolled_window_new( NULL, NULL );
|
||||||
|
|
|
||||||
|
|
@ -1077,7 +1077,7 @@ void XYWnd::Move_Begin(){
|
||||||
|
|
||||||
void XYWnd::Move_End(){
|
void XYWnd::Move_End(){
|
||||||
m_move_started = false;
|
m_move_started = false;
|
||||||
g_xywnd_freezePointer.unfreeze_pointer( m_parent != 0 ? m_parent : MainFrame_getWindow(), false );
|
g_xywnd_freezePointer.unfreeze_pointer( false );
|
||||||
g_signal_handler_disconnect( G_OBJECT( m_gl_widget ), m_move_focusOut );
|
g_signal_handler_disconnect( G_OBJECT( m_gl_widget ), m_move_focusOut );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1127,7 +1127,7 @@ void XYWnd::Zoom_Begin( int x, int y ){
|
||||||
|
|
||||||
void XYWnd::Zoom_End(){
|
void XYWnd::Zoom_End(){
|
||||||
m_zoom_started = false;
|
m_zoom_started = false;
|
||||||
g_xywnd_freezePointer.unfreeze_pointer( m_parent != 0 ? m_parent : MainFrame_getWindow(), false );
|
g_xywnd_freezePointer.unfreeze_pointer( false );
|
||||||
g_signal_handler_disconnect( G_OBJECT( m_gl_widget ), m_zoom_focusOut );
|
g_signal_handler_disconnect( G_OBJECT( m_gl_widget ), m_zoom_focusOut );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user