#if !defined( INCLUDED_TEXWINDOW_H )
#define INCLUDED_TEXWINDOW_H
+#include <uilib/uilib.h>
+#include "property.h"
#include "math/vector.h"
-#include "generic/callbackfwd.h"
+#include "generic/callback.h"
#include "signal/signalfwd.h"
#include "xml/xmltextags.h"
-typedef struct _GtkWidget GtkWidget;
-
class TextureBrowser;
-TextureBrowser& GlobalTextureBrowser();
-typedef struct _GtkWindow GtkWindow;
-GtkWidget* TextureBrowser_constructWindow( GtkWindow* toplevel );
+TextureBrowser &GlobalTextureBrowser();
+
+ui::Widget TextureBrowser_constructWindow(ui::Window toplevel);
+
void TextureBrowser_destroyWindow();
-void TextureBrowser_ShowDirectory( TextureBrowser& textureBrowser, const char* name );
-void TextureBrowser_ShowStartupShaders( TextureBrowser& textureBrowser );
+void TextureBrowser_ShowDirectory(TextureBrowser &textureBrowser, const char *name);
-const char* TextureBrowser_GetSelectedShader( TextureBrowser& textureBrower );
+void TextureBrowser_ShowStartupShaders(TextureBrowser &textureBrowser);
+
+const char *TextureBrowser_GetSelectedShader(TextureBrowser &textureBrower);
void TextureBrowser_Construct();
+
void TextureBrowser_Destroy();
-typedef Callback1<const char*> StringImportCallback;
-template<typename FirstArgument, void( *func ) (FirstArgument)>
-class FreeCaller1;
+extern ui::Widget g_page_textures;
+
+void TextureBrowser_exportTitle(const Callback<void(const char *)> &importer);
+
+typedef FreeCaller<void(
+ const Callback<void(const char *)> &), TextureBrowser_exportTitle> TextureBrowserExportTitleCaller;
+
+const Vector3 &TextureBrowser_getBackgroundColour(TextureBrowser &textureBrowser);
+
+void TextureBrowser_setBackgroundColour(TextureBrowser &textureBrowser, const Vector3 &colour);
-extern GtkWidget* g_page_textures;
-void TextureBrowser_exportTitle( const StringImportCallback& importer );
-typedef FreeCaller1<const StringImportCallback&, TextureBrowser_exportTitle> TextureBrowserExportTitleCaller;
+void TextureBrowser_addActiveShadersChangedCallback(const SignalHandler &handler);
-const Vector3& TextureBrowser_getBackgroundColour( TextureBrowser& textureBrowser );
-void TextureBrowser_setBackgroundColour( TextureBrowser& textureBrowser, const Vector3& colour );
+void TextureBrowser_addShadersRealiseCallback(const SignalHandler &handler);
-void TextureBrowser_addActiveShadersChangedCallback( const SignalHandler& handler );
-void TextureBrowser_addShadersRealiseCallback( const SignalHandler& handler );
+void TextureBrowser_RefreshShaders();
#endif