]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - contrib/brushexport/plugin.cpp
netradiant: strip 16-bit png to 8-bit, fix #153
[xonotic/netradiant.git] / contrib / brushexport / plugin.cpp
index f5e43635ddee786b4d217821500b38959c008b33..9b40fd69327bd8665f80c3442ca526382debfa9c 100644 (file)
 
 #include "typesystem.h"
 
-void CreateWindow(void);
-
-void DestroyWindow(void);
-
-bool IsWindowOpen(void);
-
-namespace BrushExport {
-    ui::Window g_mainwnd{ui::null};
-
-    const char *init(void *hApp, void *pMainWidget)
-    {
-        g_mainwnd = ui::Window::from(pMainWidget);
-        ASSERT_TRUE(g_mainwnd);
-        return "";
-    }
-
-    const char *getName()
-    {
-        return "Brush export Plugin";
-    }
-
-    const char *getCommandList()
-    {
-        return "Export selected as Wavefront Object;About";
-    }
-
-    const char *getCommandTitleList()
-    {
-        return "";
-    }
-
-    void dispatch(const char *command, float *vMin, float *vMax, bool bSingleBrush)
-    {
-        if (string_equal(command, "About")) {
-            GlobalRadiant().m_pfnMessageBox(g_mainwnd, "Brushexport plugin v 2.0 by namespace (www.codecreator.net)\n"
-                                                    "Enjoy!\n\nSend feedback to spam@codecreator.net", "About me...",
-                                            eMB_OK,
-                                            eMB_ICONDEFAULT);
-        } else if (string_equal(command, "Export selected as Wavefront Object")) {
-            if (IsWindowOpen()) {
-                DestroyWindow();
-            }
-            CreateWindow();
-        }
-    }
+#define CMD_ABOUT "About..."
+
+void CreateWindow( ui::Window main_window );
+void DestroyWindow( void );
+bool IsWindowOpen( void );
+
+ui::Widget g_pRadiantWnd{ui::null};
+
+namespace BrushExport
+{
+ui::Window g_mainwnd{ui::null};
+
+const char* init( void* hApp, void* pMainWidget ){
+       g_mainwnd = ui::Window::from(pMainWidget);
+       g_pRadiantWnd = ui::Window::from(pMainWidget);
+       ASSERT_TRUE( g_mainwnd );
+       return "";
+}
+const char* getName(){
+       return "Brush export Plugin";
+}
+const char* getCommandList(){
+       return CMD_ABOUT ";-;Export selected as Wavefront Object";
+}
+const char* getCommandTitleList(){
+       return "";
+}
+
+void dispatch( const char* command, float* vMin, float* vMax, bool bSingleBrush ){
+       if ( string_equal( command, CMD_ABOUT ) ) {
+               const char *label_text =
+                       PLUGIN_NAME " " PLUGIN_VERSION " for "
+                       RADIANT_NAME " " RADIANT_VERSION "\n\n"
+                       "Written by namespace <spam@codecreator.net>\n\n"
+//                     20200404 dead link
+//                     "http://www.codecreator.net"
+                       "Built against "
+                       RADIANT_NAME " " RADIANT_VERSION_STRING "\n"
+                       __DATE__;
+
+               GlobalRadiant().m_pfnMessageBox( g_mainwnd, label_text,
+                                                                               "About " PLUGIN_NAME,
+                                                                               eMB_OK,
+                                                                               eMB_ICONDEFAULT );
+       }
+       else if ( string_equal( command, "Export selected as Wavefront Object" ) ) {
+               if ( IsWindowOpen() ) {
+                       DestroyWindow();
+               }
+               CreateWindow( g_mainwnd );
+       }
+}
 }
 
 class BrushExportDependencies :
-        public GlobalRadiantModuleRef,
-        public GlobalFiletypesModuleRef,
-        public GlobalBrushModuleRef,
-        public GlobalFileSystemModuleRef,
-        public GlobalSceneGraphModuleRef,
-        public GlobalSelectionModuleRef {
+       public GlobalRadiantModuleRef,
+       public GlobalFiletypesModuleRef,
+       public GlobalBrushModuleRef,
+       public GlobalFileSystemModuleRef,
+       public GlobalSceneGraphModuleRef,
+       public GlobalSelectionModuleRef
+{
 public:
-    BrushExportDependencies(void)
-            : GlobalBrushModuleRef(GlobalRadiant().getRequiredGameDescriptionKeyValue("brushtypes"))
-    {}
+BrushExportDependencies( void )
+       : GlobalBrushModuleRef( GlobalRadiant().getRequiredGameDescriptionKeyValue( "brushtypes" ) )
+{}
 };
 
-class BrushExportModule : public TypeSystemRef {
-    _QERPluginTable m_plugin;
+class BrushExportModule : public TypeSystemRef
+{
+_QERPluginTable m_plugin;
 public:
-    typedef _QERPluginTable Type;
-
-    STRING_CONSTANT(Name, "brushexport2");
-
-    BrushExportModule()
-    {
-        m_plugin.m_pfnQERPlug_Init = &BrushExport::init;
-        m_plugin.m_pfnQERPlug_GetName = &BrushExport::getName;
-        m_plugin.m_pfnQERPlug_GetCommandList = &BrushExport::getCommandList;
-        m_plugin.m_pfnQERPlug_GetCommandTitleList = &BrushExport::getCommandTitleList;
-        m_plugin.m_pfnQERPlug_Dispatch = &BrushExport::dispatch;
-    }
-
-    _QERPluginTable *getTable()
-    {
-        return &m_plugin;
-    }
+typedef _QERPluginTable Type;
+STRING_CONSTANT( Name, PLUGIN_NAME );
+
+BrushExportModule(){
+       m_plugin.m_pfnQERPlug_Init = &BrushExport::init;
+       m_plugin.m_pfnQERPlug_GetName = &BrushExport::getName;
+       m_plugin.m_pfnQERPlug_GetCommandList = &BrushExport::getCommandList;
+       m_plugin.m_pfnQERPlug_GetCommandTitleList = &BrushExport::getCommandTitleList;
+       m_plugin.m_pfnQERPlug_Dispatch = &BrushExport::dispatch;
+}
+_QERPluginTable* getTable(){
+       return &m_plugin;
+}
 };
 
 typedef SingletonModule<BrushExportModule, BrushExportDependencies> SingletonBrushExportModule;
 SingletonBrushExportModule g_BrushExportModule;
 
-extern "C" void RADIANT_DLLEXPORT Radiant_RegisterModules(ModuleServer &server)
-{
-    initialiseModule(server);
-    g_BrushExportModule.selfRegister();
+extern "C" void RADIANT_DLLEXPORT Radiant_RegisterModules( ModuleServer& server ){
+       initialiseModule( server );
+       g_BrushExportModule.selfRegister();
 }