]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/brushmodule.cpp
Group import/export callbacks
[xonotic/netradiant.git] / radiant / brushmodule.cpp
index bd51cf55530d12711db32878643c4163ec47eed0..fb67b498cbf3e56e53ef7d1da023824d7de23e14 100644 (file)
@@ -34,7 +34,7 @@
 #include "mainframe.h"
 #include "preferences.h"
 
-LatchedBool g_useAlternativeTextureProjection( false, "Use alternative texture-projection (\"brush primitives\")" );
+LatchedValue<bool> g_useAlternativeTextureProjection( false, "Use alternative texture-projection (\"brush primitives\")" );
 bool g_showAlternativeTextureProjectionOption = false;
 bool g_brush_always_caulk;
 
@@ -45,18 +45,16 @@ bool getTextureLockEnabled(){
 void Face_importSnapPlanes( bool value ){
        Face::m_quantise = value ? quantiseInteger : quantiseFloating;
 }
-typedef FreeCaller<void(bool), Face_importSnapPlanes> FaceImportSnapPlanesCaller;
 
-void Face_exportSnapPlanes( const BoolImportCallback& importer ){
+void Face_exportSnapPlanes( const ImportExportCallback<bool>::Import_t& importer ){
        importer( Face::m_quantise == quantiseInteger );
 }
-typedef FreeCaller<void(const BoolImportCallback&), Face_exportSnapPlanes> FaceExportSnapPlanesCaller;
 
 void Brush_constructPreferences( PreferencesPage& page ){
        page.appendCheckBox(
                "", "Snap planes to integer grid",
-               FaceImportSnapPlanesCaller(),
-               FaceExportSnapPlanesCaller()
+               {makeCallbackF(Face_importSnapPlanes),
+                makeCallbackF(Face_exportSnapPlanes)}
                );
        page.appendEntry(
                "Default texture scale",
@@ -65,8 +63,7 @@ void Brush_constructPreferences( PreferencesPage& page ){
        if ( g_showAlternativeTextureProjectionOption ) {
                page.appendCheckBox(
                        "", "Use alternative texture-projection (\"brush primitives\")",
-                       LatchedBoolImportCaller( g_useAlternativeTextureProjection ),
-                       BoolExportCaller( g_useAlternativeTextureProjection.m_latched )
+                       mkImportExportCallback(g_useAlternativeTextureProjection)
                        );
        }
        // d1223m
@@ -80,7 +77,7 @@ void Brush_constructPage( PreferenceGroup& group ){
        Brush_constructPreferences( page );
 }
 void Brush_registerPreferencesPage(){
-       PreferencesDialog_addSettingsPage( FreeCaller<void(PreferenceGroup&), Brush_constructPage>() );
+       PreferencesDialog_addSettingsPage( makeCallbackF(Brush_constructPage) );
 }
 
 void Brush_unlatchPreferences(){
@@ -155,11 +152,11 @@ void Brush_Construct( EBrushType type ){
        }
 
        GlobalPreferenceSystem().registerPreference( "TextureLock", BoolImportStringCaller( g_brush_texturelock_enabled ), BoolExportStringCaller( g_brush_texturelock_enabled ) );
-       GlobalPreferenceSystem().registerPreference( "BrushSnapPlanes", makeBoolStringImportCallback( FaceImportSnapPlanesCaller() ), makeBoolStringExportCallback( FaceExportSnapPlanesCaller() ) );
+       GlobalPreferenceSystem().registerPreference( "BrushSnapPlanes", makeBoolStringImportCallback( FreeCaller<void(bool), Face_importSnapPlanes>() ), makeBoolStringExportCallback( FreeCaller<void(const ImportExportCallback<bool>::Import_t&), Face_exportSnapPlanes>() ) );
        GlobalPreferenceSystem().registerPreference( "TexdefDefaultScale", FloatImportStringCaller( g_texdef_default_scale ), FloatExportStringCaller( g_texdef_default_scale ) );
 
        GridStatus_getTextureLockEnabled = getTextureLockEnabled;
-       g_texture_lock_status_changed = FreeCaller<void(), GridStatus_onTextureLockEnabledChanged>();
+       g_texture_lock_status_changed = makeCallbackF(GridStatus_onTextureLockEnabledChanged);
 }
 
 void Brush_Destroy(){