X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=radiant%2Fsurfacedialog.cpp;h=f4471578bf404487d5479b9b468f4ddcfbe2ae4c;hb=e844fa8d0ab125e51378a0f96132bbed2e3ef096;hp=498182d60aa1fd45f0b177bc544466bad635ff9b;hpb=51fa1a72ab2099fab13b429097300ed464c25a9d;p=xonotic%2Fnetradiant.git diff --git a/radiant/surfacedialog.cpp b/radiant/surfacedialog.cpp index 498182d6..f4471578 100644 --- a/radiant/surfacedialog.cpp +++ b/radiant/surfacedialog.cpp @@ -122,17 +122,17 @@ float& m_f; public: ui::SpinButton m_spin; ui::Entry m_entry; -Increment( float& f ) : m_f( f ), m_spin( 0 ), m_entry( ui::null ){ +Increment( float& f ) : m_f( f ), m_spin( ui::null ), m_entry( ui::null ){ } void cancel(){ entry_set_float( m_entry, m_f ); } -typedef MemberCaller CancelCaller; +typedef MemberCaller CancelCaller; void apply(){ m_f = static_cast( entry_get_float( m_entry ) ); spin_button_set_step( m_spin, m_f ); } -typedef MemberCaller ApplyCaller; +typedef MemberCaller ApplyCaller; }; void SurfaceInspector_GridChange(); @@ -162,8 +162,6 @@ NonModalEntry m_valueEntry; ui::Entry m_valueEntryWidget{ui::null}; public: WindowPositionTracker m_positionTracker; -WindowPositionTrackerImportStringCaller m_importPosition; -WindowPositionTrackerExportStringCaller m_exportPosition; // Dialog Data float m_fitHorizontal; @@ -190,8 +188,6 @@ SurfaceInspector() : m_rotateEntry( Increment::ApplyCaller( m_rotateIncrement ), Increment::CancelCaller( m_rotateIncrement ) ), m_idleDraw( UpdateCaller( *this ) ), m_valueEntry( ApplyFlagsCaller( *this ), UpdateCaller( *this ) ), - m_importPosition( m_positionTracker ), - m_exportPosition( m_positionTracker ), m_hshiftIncrement( g_si_globals.shift[0] ), m_vshiftIncrement( g_si_globals.shift[1] ), m_hscaleIncrement( g_si_globals.scale[0] ), @@ -205,7 +201,7 @@ SurfaceInspector() : void constructWindow( ui::Window main_window ){ m_parent = main_window; Create(); - AddGridChangeCallback( FreeCaller() ); + AddGridChangeCallback( FreeCaller() ); } void destroyWindow(){ Destroy(); @@ -220,13 +216,13 @@ void queueDraw(){ } void Update(); -typedef MemberCaller UpdateCaller; +typedef MemberCaller UpdateCaller; void ApplyShader(); -typedef MemberCaller ApplyShaderCaller; +typedef MemberCaller ApplyShaderCaller; void ApplyTexdef(); -typedef MemberCaller ApplyTexdefCaller; +typedef MemberCaller ApplyTexdefCaller; void ApplyFlags(); -typedef MemberCaller ApplyFlagsCaller; +typedef MemberCaller ApplyFlagsCaller; }; namespace @@ -577,7 +573,7 @@ const char* getContentFlagName( std::size_t bit ){ // ============================================================================= // SurfaceInspector class -guint togglebutton_connect_toggled( ui::ToggleButton button, const Callback& callback ){ +guint togglebutton_connect_toggled( ui::ToggleButton button, const Callback& callback ){ return g_signal_connect_swapped( G_OBJECT( button ), "toggled", G_CALLBACK( callback.getThunk() ), callback.getEnvironment() ); } @@ -859,14 +855,14 @@ ui::Window SurfaceInspector::BuildDialog(){ spin.show(); table.attach(spin, {2, 3, 1, 2}, {GTK_EXPAND | GTK_FILL, 0}); spin.dimensions(60, -1); - AddDialogData( *GTK_SPIN_BUTTON( spin ), m_fitHorizontal ); + AddDialogData( spin, m_fitHorizontal ); } { auto spin = ui::SpinButton( ui::Adjustment( 1, 0, 1 << 16, 1, 10, 0 ), 0, 6 ); spin.show(); table.attach(spin, {3, 4, 1, 2}, {GTK_EXPAND | GTK_FILL, 0}); spin.dimensions(60, -1); - AddDialogData( *GTK_SPIN_BUTTON( spin ), m_fitVertical ); + AddDialogData( spin, m_fitVertical ); } } } @@ -937,7 +933,7 @@ ui::Window SurfaceInspector::BuildDialog(){ } // not allowed to modify detail flag using Surface Inspector - gtk_widget_set_sensitive( ui::CheckButton(m_contentFlags[BRUSH_DETAIL_FLAG]), FALSE ); + gtk_widget_set_sensitive( ui::CheckButton::from(m_contentFlags[BRUSH_DETAIL_FLAG]), FALSE ); } } } @@ -1102,12 +1098,12 @@ void SurfaceInspector::Update(){ for ( GtkCheckButton** p = m_surfaceFlags; p != m_surfaceFlags + 32; ++p ) { - toggle_button_set_active_no_signal( ui::CheckButton( *p ), flags.m_surfaceFlags & ( 1 << ( p - m_surfaceFlags ) ) ); + toggle_button_set_active_no_signal( ui::CheckButton::from( *p ), flags.m_surfaceFlags & ( 1 << ( p - m_surfaceFlags ) ) ); } for ( GtkCheckButton** p = m_contentFlags; p != m_contentFlags + 32; ++p ) { - toggle_button_set_active_no_signal( ui::CheckButton( *p ), flags.m_contentFlags & ( 1 << ( p - m_contentFlags ) ) ); + toggle_button_set_active_no_signal( ui::CheckButton::from( *p ), flags.m_contentFlags & ( 1 << ( p - m_contentFlags ) ) ); } } } @@ -1183,14 +1179,14 @@ void Face_getTexture( Face& face, CopiedString& shader, TextureProjection& proje face.GetTexdef( projection ); flags = face.getShader().m_flags; } -typedef Function4 FaceGetTexture; +typedef Function FaceGetTexture; void Face_setTexture( Face& face, const char* shader, const TextureProjection& projection, const ContentsFlagsValue& flags ){ face.SetShader( shader ); face.SetTexdef( projection ); face.SetFlags( flags ); } -typedef Function4 FaceSetTexture; +typedef Function FaceSetTexture; void Patch_getTexture( Patch& patch, CopiedString& shader, TextureProjection& projection, ContentsFlagsValue& flags ){ @@ -1198,16 +1194,16 @@ void Patch_getTexture( Patch& patch, CopiedString& shader, TextureProjection& pr projection = TextureProjection( texdef_t(), brushprimit_texdef_t(), Vector3( 0, 0, 0 ), Vector3( 0, 0, 0 ) ); flags = ContentsFlagsValue( 0, 0, 0, false ); } -typedef Function4 PatchGetTexture; +typedef Function PatchGetTexture; void Patch_setTexture( Patch& patch, const char* shader, const TextureProjection& projection, const ContentsFlagsValue& flags ){ patch.SetShader( shader ); } -typedef Function4 PatchSetTexture; +typedef Function PatchSetTexture; -typedef Callback3 GetTextureCallback; -typedef Callback3 SetTextureCallback; +typedef Callback GetTextureCallback; +typedef Callback SetTextureCallback; struct Texturable { @@ -1222,8 +1218,8 @@ void Face_getClosest( Face& face, SelectionTest& test, SelectionIntersection& be if ( intersection.valid() && SelectionIntersection_closer( intersection, bestIntersection ) ) { bestIntersection = intersection; - texturable.setTexture = makeCallback3( FaceSetTexture(), face ); - texturable.getTexture = makeCallback3( FaceGetTexture(), face ); + texturable.setTexture = makeCallback( FaceSetTexture(), face ); + texturable.getTexture = makeCallback( FaceGetTexture(), face ); } } @@ -1277,8 +1273,8 @@ bool pre( const scene::Path& path, scene::Instance& instance ) const { if ( occluded ) { Patch* patch = Node_getPatch( path.top() ); if ( patch != 0 ) { - m_texturable.setTexture = makeCallback3( PatchSetTexture(), *patch ); - m_texturable.getTexture = makeCallback3( PatchGetTexture(), *patch ); + m_texturable.setTexture = makeCallback( PatchSetTexture(), *patch ); + m_texturable.getTexture = makeCallback( PatchGetTexture(), *patch ); } else { @@ -1393,15 +1389,15 @@ void SurfaceInspector_constructPage( PreferenceGroup& group ){ SurfaceInspector_constructPreferences( page ); } void SurfaceInspector_registerPreferencesPage(){ - PreferencesDialog_addSettingsPage( FreeCaller1() ); + PreferencesDialog_addSettingsPage( makeCallbackF(SurfaceInspector_constructPage) ); } void SurfaceInspector_registerCommands(){ - GlobalCommands_insert( "FitTexture", FreeCaller(), Accelerator( 'B', (GdkModifierType)GDK_SHIFT_MASK ) ); - GlobalCommands_insert( "SurfaceInspector", FreeCaller(), Accelerator( 'S' ) ); + GlobalCommands_insert( "FitTexture", makeCallbackF(SurfaceInspector_FitTexture), Accelerator( 'B', (GdkModifierType)GDK_SHIFT_MASK ) ); + GlobalCommands_insert( "SurfaceInspector", makeCallbackF(SurfaceInspector_toggleShown), Accelerator( 'S' ) ); - GlobalCommands_insert( "FaceCopyTexture", FreeCaller() ); - GlobalCommands_insert( "FacePasteTexture", FreeCaller() ); + GlobalCommands_insert( "FaceCopyTexture", makeCallbackF(SelectedFaces_copyTexture) ); + GlobalCommands_insert( "FacePasteTexture", makeCallbackF(SelectedFaces_pasteTexture) ); } @@ -1415,17 +1411,17 @@ void SurfaceInspector_Construct(){ FaceTextureClipboard_setDefault(); - GlobalPreferenceSystem().registerPreference( "SurfaceWnd", getSurfaceInspector().m_importPosition, getSurfaceInspector().m_exportPosition ); - GlobalPreferenceSystem().registerPreference( "SI_SurfaceTexdef_Scale1", FloatImportStringCaller( g_si_globals.scale[0] ), FloatExportStringCaller( g_si_globals.scale[0] ) ); - GlobalPreferenceSystem().registerPreference( "SI_SurfaceTexdef_Scale2", FloatImportStringCaller( g_si_globals.scale[1] ), FloatExportStringCaller( g_si_globals.scale[1] ) ); - GlobalPreferenceSystem().registerPreference( "SI_SurfaceTexdef_Shift1", FloatImportStringCaller( g_si_globals.shift[0] ), FloatExportStringCaller( g_si_globals.shift[0] ) ); - GlobalPreferenceSystem().registerPreference( "SI_SurfaceTexdef_Shift2", FloatImportStringCaller( g_si_globals.shift[1] ), FloatExportStringCaller( g_si_globals.shift[1] ) ); - GlobalPreferenceSystem().registerPreference( "SI_SurfaceTexdef_Rotate", FloatImportStringCaller( g_si_globals.rotate ), FloatExportStringCaller( g_si_globals.rotate ) ); - GlobalPreferenceSystem().registerPreference( "SnapTToGrid", BoolImportStringCaller( g_si_globals.m_bSnapTToGrid ), BoolExportStringCaller( g_si_globals.m_bSnapTToGrid ) ); + GlobalPreferenceSystem().registerPreference( "SurfaceWnd", make_property( getSurfaceInspector().m_positionTracker) ); + GlobalPreferenceSystem().registerPreference( "SI_SurfaceTexdef_Scale1", make_property_string( g_si_globals.scale[0] ) ); + GlobalPreferenceSystem().registerPreference( "SI_SurfaceTexdef_Scale2", make_property_string( g_si_globals.scale[1] ) ); + GlobalPreferenceSystem().registerPreference( "SI_SurfaceTexdef_Shift1", make_property_string( g_si_globals.shift[0] ) ); + GlobalPreferenceSystem().registerPreference( "SI_SurfaceTexdef_Shift2", make_property_string( g_si_globals.shift[1] ) ); + GlobalPreferenceSystem().registerPreference( "SI_SurfaceTexdef_Rotate", make_property_string( g_si_globals.rotate ) ); + GlobalPreferenceSystem().registerPreference( "SnapTToGrid", make_property_string( g_si_globals.m_bSnapTToGrid ) ); - typedef FreeCaller1 SurfaceInspectorSelectionChangedCaller; + typedef FreeCaller SurfaceInspectorSelectionChangedCaller; GlobalSelectionSystem().addSelectionChangeCallback( SurfaceInspectorSelectionChangedCaller() ); - typedef FreeCaller SurfaceInspectorUpdateSelectionCaller; + typedef FreeCaller SurfaceInspectorUpdateSelectionCaller; Brush_addTextureChangedCallback( SurfaceInspectorUpdateSelectionCaller() ); Patch_addTextureChangedCallback( SurfaceInspectorUpdateSelectionCaller() );