* Model Browser: default bind '/'
m1 = assign model to selected entity nodes (shift + e to select nodes of group entities) m1x2 = insert "misc_model" with given model m1 drag = rotate model Preferences.Model Browser: list of * separated folderToLoad/depth values, e.g. *models/mapobjects/99*maps/1*; */99* loads root
This commit is contained in:
@@ -225,4 +225,46 @@ void unfreeze_pointer( GtkWindow* window, bool centerize ){
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class DeferredAdjustment
|
||||
{
|
||||
gdouble m_value;
|
||||
guint m_handler;
|
||||
typedef void ( *ValueChangedFunction )( void* data, gdouble value );
|
||||
ValueChangedFunction m_function;
|
||||
void* m_data;
|
||||
|
||||
static gboolean deferred_value_changed( gpointer data ){
|
||||
reinterpret_cast<DeferredAdjustment*>( data )->m_function(
|
||||
reinterpret_cast<DeferredAdjustment*>( data )->m_data,
|
||||
reinterpret_cast<DeferredAdjustment*>( data )->m_value
|
||||
);
|
||||
reinterpret_cast<DeferredAdjustment*>( data )->m_handler = 0;
|
||||
reinterpret_cast<DeferredAdjustment*>( data )->m_value = 0;
|
||||
return FALSE;
|
||||
}
|
||||
public:
|
||||
DeferredAdjustment( ValueChangedFunction function, void* data ) : m_value( 0 ), m_handler( 0 ), m_function( function ), m_data( data ){
|
||||
}
|
||||
void flush(){
|
||||
if ( m_handler != 0 ) {
|
||||
g_source_remove( m_handler );
|
||||
deferred_value_changed( this );
|
||||
}
|
||||
}
|
||||
void value_changed( gdouble value ){
|
||||
m_value = value;
|
||||
if ( m_handler == 0 ) {
|
||||
m_handler = g_idle_add( deferred_value_changed, this );
|
||||
}
|
||||
}
|
||||
static void adjustment_value_changed( GtkAdjustment *adjustment, DeferredAdjustment* self ){
|
||||
self->value_changed( adjustment->value );
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user