+ bool m_bSelectedOnly;
+ CopiedString m_strFind;
+ CopiedString m_strReplace;
+};
+
+FindTextureDialog g_FindTextureDialog;
+static bool g_bFindActive = true;
+
+namespace {
+ void FindTextureDialog_apply()
+ {
+ StringOutputStream find(256);
+ StringOutputStream replace(256);
+
+ find << "textures/" << g_FindTextureDialog.m_strFind.c_str();
+ replace << "textures/" << g_FindTextureDialog.m_strReplace.c_str();
+ FindReplaceTextures(find.c_str(), replace.c_str(), g_FindTextureDialog.m_bSelectedOnly);
+ }
+
+ static void OnApply(ui::Widget widget, gpointer data)
+ {
+ g_FindTextureDialog.exportData();
+ FindTextureDialog_apply();
+ }
+
+ static void OnFind(ui::Widget widget, gpointer data)
+ {
+ g_FindTextureDialog.exportData();
+ FindTextureDialog_apply();
+ }
+
+ static void OnOK(ui::Widget widget, gpointer data)
+ {
+ g_FindTextureDialog.exportData();
+ FindTextureDialog_apply();
+ g_FindTextureDialog.HideDlg();
+ }
+
+ static void OnClose(ui::Widget widget, gpointer data)
+ {
+ g_FindTextureDialog.HideDlg();
+ }
+
+
+ static gint find_focus_in(ui::Widget widget, GdkEventFocus *event, gpointer data)
+ {
+ g_bFindActive = true;
+ return FALSE;
+ }
+
+ static gint replace_focus_in(ui::Widget widget, GdkEventFocus *event, gpointer data)
+ {
+ g_bFindActive = false;
+ return FALSE;
+ }