]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/groupdialog.h
Merge branch 'optional_q3map2_type' into 'master'
[xonotic/netradiant.git] / radiant / groupdialog.h
index aa0184be496a5e0b4834ba92a293bb0ba5560233..63f36a02526df4d1c48c601da9a7dc4aec3add5b 100644 (file)
 /*
-Copyright (C) 1999-2007 id Software, Inc. and contributors.
-For a list of contributors, see the accompanying CONTRIBUTORS file.
+   Copyright (C) 1999-2006 Id Software, Inc. and contributors.
+   For a list of contributors, see the accompanying CONTRIBUTORS file.
 
-This file is part of GtkRadiant.
+   This file is part of GtkRadiant.
 
-GtkRadiant is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   GtkRadiant is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-GtkRadiant is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   GtkRadiant is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with GtkRadiant; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-*/
+   You should have received a copy of the GNU General Public License
+   along with GtkRadiant; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
 
-#ifndef _GROUPDIALOG_H_
-#define _GROUPDIALOG_H_
+#if !defined( INCLUDED_GROUPDIALOG_H )
+#define INCLUDED_GROUPDIALOG_H
 
-#define DlgXBorder 5
-#define DlgYBorder 5
+#include <uilib/uilib.h>
+#include "property.h"
+#include "generic/callback.h"
 
+void GroupDialog_Construct();
 
-enum
-{
-  EntList,
-  EntComment,
-// Spawnflags
-  EntCheck1,
-  EntCheck2,
-  EntCheck3,
-  EntCheck4,
-  EntCheck5,
-  EntCheck6,
-  EntCheck7,
-  EntCheck8,
-// Extra Spawnflags for Halflife Support
-  EntCheck9,
-  EntCheck10,
-  EntCheck11,
-  EntCheck12,
-  EntCheck13,
-  EntCheck14,
-  EntCheck15,
-  EntCheck16,
-
-  EntCheck17,
-  EntCheck18,
-  EntCheck19,
-  EntCheck20,
-
-  EntProps,
-  EntDir0,
-  EntDir45,
-  EntDir90,
-  EntDir135,
-  EntDir180,
-  EntDir225,
-  EntDir270,
-  EntDir315,
-  EntDirUp,
-  EntDirDown,
-  EntDelProp,
-  EntKeyLabel,
-  EntKeyField,
-  EntValueLabel,
-  EntValueField,
-  EntColor,
-  EntAssignSounds,
-  EntAssignModels,
-  EntTab,
-
-  EntLast,
-};
-
-extern GtkWidget* EntWidgets[EntLast];
-
-//extern int rgIds[EntLast];
-
-
-class GroupDlg
+void GroupDialog_Destroy();
+
+void GroupDialog_constructWindow(ui::Window main_window);
+
+void GroupDialog_destroyWindow();
+
+ui::Window GroupDialog_getWindow();
+
+void GroupDialog_show();
+
+inline void RawStringExport(const char *string, const Callback<void(const char *)> &importer)
 {
- public:
-  GroupDlg ();
-  void Create ();
+    importer(string);
+}
+
+typedef ConstPointerCaller<char, void(const Callback<void(const char *)> &), RawStringExport> RawStringExportCaller;
+
+ui::Widget GroupDialog_addPage(const char *tabLabel, ui::Widget widget,
+                               const Callback<void(const Callback<void(const char *)> &)> &title);
+
+void GroupDialog_showPage(ui::Widget page);
 
-  void Show ()
-    { gtk_widget_show (m_pWidget); };
-  void Hide ()
-    { gtk_widget_hide (m_pWidget); };
+void GroupDialog_updatePageTitle(ui::Widget page);
 
- public:
-  GtkWidget* m_pNotebook;
-  GtkWidget* m_pWidget;
-  GtkWidget* m_pTree;
-  GtkCTreeNode* m_hWorld; //leo: not used keeping because of the win32 version
-};
+bool GroupDialog_isShown();
 
-extern GroupDlg *g_pGroupDlg;
+ui::Widget GroupDialog_getPage();
 
-#endif // _GROUPDIALOG_H_
+#endif