class FindTextureDialog : public Dialog
{
public:
+WindowPositionTracker m_position_tracker;
static void setReplaceStr( const char* name );
static void setFindStr( const char* name );
static bool isOpen();
FindTextureDialog::FindTextureDialog(){
m_bSelectedOnly = FALSE;
+ //m_position_tracker.setPosition( c_default_window_pos );
}
FindTextureDialog::~FindTextureDialog(){
auto dlg = ui::Window(create_floating_window( "Find / Replace Texture(s)", m_parent ));
+ m_position_tracker.connect( dlg );
+
auto hbox = ui::HBox( FALSE, 5 );
hbox.show();
dlg.add(hbox);
}
void FindTextureDialog::show(){
+ // workaround for strange gtk behaviour - modifying the contents of a window while it is not visible causes the window position to change without sending a configure_event
+ g_FindTextureDialog.m_position_tracker.sync( g_FindTextureDialog.GetWidget() );
g_FindTextureDialog.ShowDlg();
+ gtk_window_present( g_FindTextureDialog.GetWidget() );
}
g_FindTextureDialog.updateTextures( name );
}
+#include "preferencesystem.h"
+
void FindTextureDialog_Construct(){
GlobalCommands_insert( "FindReplaceTextures", FindTextureDialog::ShowCaller() );
+ GlobalPreferenceSystem().registerPreference( "FindReplacehWnd", WindowPositionTrackerImportStringCaller( g_FindTextureDialog.m_position_tracker ), WindowPositionTrackerExportStringCaller( g_FindTextureDialog.m_position_tracker ) );
}
void FindTextureDialog_Destroy(){