/*
-Copyright (C) 1999-2007 id Software, Inc. and contributors.
-For a list of contributors, see the accompanying CONTRIBUTORS file.
-
-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 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
-*/
-
-#ifndef _TEXWINDOW_H_
-#define _TEXWINDOW_H_
-
-#include "glwindow.h"
-
-class TexWnd : public GLWindow
-{
-public:
- TexWnd();
- void UpdateFilter(const char* pFilter);
- void UpdatePrefs();
- void FocusEdit();
- bool CheckFilter( const char* );
- virtual ~TexWnd();
-
- GtkWidget *m_pFilter;
-
-protected:
- bool m_bNeedRange;
-
- void OnCreate ();
- void OnExpose ();
- void OnLButtonDown (guint32 flags, int x, int y);
- void OnRButtonDown (guint32 flags, int x, int y);
- void OnMButtonDown (guint32 flags, int x, int y);
- void OnLButtonUp (guint32 flags, int pointx, int pointy);
- void OnRButtonUp (guint32 flags, int pointx, int pointy);
- void OnMButtonUp (guint32 flags, int pointx, int pointy);
- void OnMouseMove (guint32 flags, int pointx, int pointy);
- void OnSize (int cx, int cy);
-
- void OnMouseWheel(bool bUp);
-
- public:
- void OnVScroll ();
-
- private:
- void DragDropTexture (guint32 flags, int pointx, int pointy);
-};
-
-#endif // _TEXWINDOW_H_
+ 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.
+
+ 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.
+
+ 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
+ */
+
+#if !defined( INCLUDED_TEXWINDOW_H )
+#define INCLUDED_TEXWINDOW_H
+
+#include <uilib/uilib.h>
+#include "property.h"
+#include "math/vector.h"
+#include "generic/callback.h"
+#include "signal/signalfwd.h"
+#include "xml/xmltextags.h"
+
+class TextureBrowser;
+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 );
+
+const char* TextureBrowser_GetSelectedShader( TextureBrowser& textureBrower );
+
+void TextureBrowser_Construct();
+void TextureBrowser_Destroy();
+
+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 );
+
+void TextureBrowser_addActiveShadersChangedCallback( const SignalHandler& handler );
+void TextureBrowser_addShadersRealiseCallback( const SignalHandler& handler );
+
+void TextureBrowser_RefreshShaders();
+
+#ifdef WORKAROUND_WINDOWS_GTK2_GLWIDGET
+ui::GLArea TextureBrowser_getGLWidget();
+#endif // WORKAROUND_WINDOWS_GTK2_GLWIDGET
+
+#ifdef WORKAROUND_MACOS_GTK2_GLWIDGET
+void TextureBrowser_showGLWidget();
+void TextureBrowser_hideGLWidget();
+#endif // WORKAROUND_MACOS_GTK2_GLWIDGET
+
+#endif