class PatchInspector : public Dialog
{
-GtkWindow* BuildDialog();
+ui::Window BuildDialog();
Subdivisions m_subdivisions;
NonModalEntry m_horizontalSubdivisionsEntry;
NonModalEntry m_verticalSubdivisionsEntry;
Patch *m_Patch;
-CopiedString m_strName;
+std::string m_strName;
float m_fS;
float m_fT;
float m_fX;
PatchInspector g_PatchInspector;
-void PatchInspector_constructWindow( GtkWindow* main_window ){
+void PatchInspector_constructWindow( ui::Window main_window ){
g_PatchInspector.m_parent = main_window;
g_PatchInspector.Create();
}
// static functions
// memorize the current state (that is don't try to undo our do before changing something else)
-static void OnApply( GtkWidget *widget, gpointer data ){
+static void OnApply( ui::Widget widget, gpointer data ){
g_PatchInspector.exportData();
if ( g_PatchInspector.m_Patch != 0 ) {
UndoableCommand command( "patchSetTexture" );
}
}
-static void OnSelchangeComboColRow( GtkWidget *widget, gpointer data ){
+static void OnSelchangeComboColRow( ui::Widget widget, gpointer data ){
if ( !g_PatchInspector.m_bListenChanged ) {
return;
}
SceneChangeNotify();
}
-static void OnBtnPatchdetails( GtkWidget *widget, gpointer data ){
- UndoableCommand command( "patchCapTexture" );
-
- Scene_PatchCapTexture_Selected( GlobalSceneGraph() );
+static void OnBtnPatchdetails( ui::Widget widget, gpointer data ){
+ Patch_CapTexture();
}
-static void OnBtnPatchfit( GtkWidget *widget, gpointer data ){
- UndoableCommand command( "patchFitTexture" );
+static void OnBtnPatchfit( ui::Widget widget, gpointer data ){
+ Patch_FitTexture();
+}
- Scene_PatchTileTexture_Selected( GlobalSceneGraph(), 1, 1 );
+static void OnBtnPatchnatural( ui::Widget widget, gpointer data ){
+ Patch_NaturalTexture();
}
-static void OnBtnPatchnatural( GtkWidget *widget, gpointer data ){
- UndoableCommand command( "patchNaturalTexture" );
+static void OnBtnPatchreset( ui::Widget widget, gpointer data ){
+ Patch_ResetTexture();
+}
- Scene_PatchNaturalTexture_Selected( GlobalSceneGraph() );
+static void OnBtnPatchFlipX( ui::Widget widget, gpointer data ){
+ Patch_FlipTextureX();
}
-static void OnBtnPatchreset( GtkWidget *widget, gpointer data ){
- float fx, fy;
- if ( DoTextureLayout( &fx, &fy ) == eIDOK ) {
- UndoableCommand command( "patchTileTexture" );
- Scene_PatchTileTexture_Selected( GlobalSceneGraph(), fx, fy );
- }
+static void OnBtnPatchFlipY( ui::Widget widget, gpointer data ){
+ Patch_FlipTextureY();
}
struct PatchRotateTexture
Scene_forEachVisibleSelectedPatch( PatchTranslateTexture( s, t ) );
}
+static void OnBtnPatchAutoCap( ui::Widget widget, gpointer data ){
+ Patch_AutoCapTexture();
+}
+
static void OnSpinChanged( GtkAdjustment *adj, gpointer data ){
texdef_t td;
}
// update the point-by-point view
- OnSelchangeComboColRow( 0,0 );
+ OnSelchangeComboColRow( ui::root ,0 );
}
-static gint OnDialogKey( GtkWidget* widget, GdkEventKey* event, gpointer data ){
+static gint OnDialogKey( ui::Widget widget, GdkEventKey* event, gpointer data ){
if ( event->keyval == GDK_Return ) {
- OnApply( 0, 0 );
+ OnApply( ui::root, 0 );
return TRUE;
}
else if ( event->keyval == GDK_Escape ) {
// =============================================================================
// PatchInspector class
-GtkWindow* PatchInspector::BuildDialog(){
- GtkWindow* window = create_floating_window( "Patch Properties", m_parent );
+ui::Window PatchInspector::BuildDialog(){
+ ui::Window window = ui::Window(create_floating_window( "Patch Properties", m_parent ));
m_position_tracker.connect( window );
{
- GtkVBox* vbox = GTK_VBOX( gtk_vbox_new( FALSE, 5 ) );
+ GtkVBox* vbox = ui::VBox( FALSE, 5 );
gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
gtk_widget_show( GTK_WIDGET( vbox ) );
gtk_container_add( GTK_CONTAINER( window ), GTK_WIDGET( vbox ) );
gtk_widget_show( GTK_WIDGET( hbox ) );
gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( hbox ), TRUE, TRUE, 0 );
{
- GtkVBox* vbox2 = GTK_VBOX( gtk_vbox_new( FALSE, 0 ) );
+ GtkVBox* vbox2 = ui::VBox( FALSE, 0 );
gtk_container_set_border_width( GTK_CONTAINER( vbox2 ), 0 );
gtk_widget_show( GTK_WIDGET( vbox2 ) );
gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( vbox2 ), TRUE, TRUE, 0 );
gtk_widget_show( GTK_WIDGET( frame ) );
gtk_box_pack_start( GTK_BOX( vbox2 ), GTK_WIDGET( frame ), TRUE, TRUE, 0 );
{
- GtkVBox* vbox3 = GTK_VBOX( gtk_vbox_new( FALSE, 5 ) );
+ GtkVBox* vbox3 = ui::VBox( FALSE, 5 );
gtk_container_set_border_width( GTK_CONTAINER( vbox3 ), 5 );
gtk_widget_show( GTK_WIDGET( vbox3 ) );
gtk_container_add( GTK_CONTAINER( frame ), GTK_WIDGET( vbox3 ) );
gtk_table_set_row_spacings( table, 5 );
gtk_table_set_col_spacings( table, 5 );
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "Row:" ) );
+ GtkLabel* label = GTK_LABEL( ui::Label( "Row:" ) );
gtk_widget_show( GTK_WIDGET( label ) );
gtk_table_attach( table, GTK_WIDGET( label ), 0, 1, 0, 1,
(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),
(GtkAttachOptions)( 0 ), 0, 0 );
}
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "Column:" ) );
+ GtkLabel* label = GTK_LABEL( ui::Label( "Column:" ) );
gtk_widget_show( GTK_WIDGET( label ) );
gtk_table_attach( table, GTK_WIDGET( label ), 1, 2, 0, 1,
(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),
gtk_table_set_row_spacings( table, 5 );
gtk_table_set_col_spacings( table, 5 );
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "X:" ) );
+ GtkLabel* label = GTK_LABEL( ui::Label( "X:" ) );
gtk_widget_show( GTK_WIDGET( label ) );
gtk_table_attach( table, GTK_WIDGET( label ), 0, 1, 0, 1,
(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),
(GtkAttachOptions)( 0 ), 0, 0 );
}
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "Y:" ) );
+ GtkLabel* label = GTK_LABEL( ui::Label( "Y:" ) );
gtk_widget_show( GTK_WIDGET( label ) );
gtk_table_attach( table, GTK_WIDGET( label ), 0, 1, 1, 2,
(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),
(GtkAttachOptions)( 0 ), 0, 0 );
}
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "Z:" ) );
+ GtkLabel* label = GTK_LABEL( ui::Label( "Z:" ) );
gtk_widget_show( GTK_WIDGET( label ) );
gtk_table_attach( table, GTK_WIDGET( label ), 0, 1, 2, 3,
(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),
(GtkAttachOptions)( 0 ), 0, 0 );
}
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "S:" ) );
+ GtkLabel* label = GTK_LABEL( ui::Label( "S:" ) );
gtk_widget_show( GTK_WIDGET( label ) );
gtk_table_attach( table, GTK_WIDGET( label ), 0, 1, 3, 4,
(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),
(GtkAttachOptions)( 0 ), 0, 0 );
}
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "T:" ) );
+ GtkLabel* label = GTK_LABEL( ui::Label( "T:" ) );
gtk_widget_show( GTK_WIDGET( label ) );
gtk_table_attach( table, GTK_WIDGET( label ), 0, 1, 4, 5,
(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),
gtk_widget_show( GTK_WIDGET( frame ) );
gtk_box_pack_start( GTK_BOX( vbox2 ), GTK_WIDGET( frame ), TRUE, TRUE, 0 );
{
- GtkVBox* vbox3 = GTK_VBOX( gtk_vbox_new( FALSE, 5 ) );
+ GtkVBox* vbox3 = ui::VBox( FALSE, 5 );
gtk_container_set_border_width( GTK_CONTAINER( vbox3 ), 5 );
gtk_widget_show( GTK_WIDGET( vbox3 ) );
gtk_container_add( GTK_CONTAINER( frame ), GTK_WIDGET( vbox3 ) );
gtk_table_set_row_spacings( table, 5 );
gtk_table_set_col_spacings( table, 5 );
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "Fixed" ) );
+ GtkLabel* label = GTK_LABEL( ui::Label( "Fixed" ) );
gtk_widget_show( GTK_WIDGET( label ) );
gtk_table_attach( table, GTK_WIDGET( label ), 0, 1, 0, 1,
(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),
g_object_set_data( G_OBJECT( check ), "handler", gint_to_pointer( handler_id ) );
}
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "Horizontal" ) );
+ GtkLabel* label = GTK_LABEL( ui::Label( "Horizontal" ) );
gtk_widget_show( GTK_WIDGET( label ) );
gtk_table_attach( table, GTK_WIDGET( label ), 0, 1, 1, 2,
(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),
m_horizontalSubdivisionsEntry.connect( entry );
}
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "Vertical" ) );
+ GtkLabel* label = GTK_LABEL( ui::Label( "Vertical" ) );
gtk_widget_show( GTK_WIDGET( label ) );
gtk_table_attach( table, GTK_WIDGET( label ), 0, 1, 2, 3,
(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),
gtk_widget_show( GTK_WIDGET( frame ) );
gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( frame ), TRUE, TRUE, 0 );
{
- GtkVBox* vbox2 = GTK_VBOX( gtk_vbox_new( FALSE, 5 ) );
+ GtkVBox* vbox2 = ui::VBox( FALSE, 5 );
gtk_widget_show( GTK_WIDGET( vbox2 ) );
gtk_container_add( GTK_CONTAINER( frame ), GTK_WIDGET( vbox2 ) );
gtk_container_set_border_width( GTK_CONTAINER( vbox2 ), 5 );
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "Name:" ) );
+ GtkLabel* label = GTK_LABEL( ui::Label( "Name:" ) );
gtk_widget_show( GTK_WIDGET( label ) );
gtk_box_pack_start( GTK_BOX( vbox2 ), GTK_WIDGET( label ), TRUE, TRUE, 0 );
gtk_label_set_justify( label, GTK_JUSTIFY_LEFT );
g_signal_connect( G_OBJECT( entry ), "key_press_event", G_CALLBACK( OnDialogKey ), 0 );
}
{
- GtkTable* table = GTK_TABLE( gtk_table_new( 5, 3, FALSE ) );
+ GtkTable* table = GTK_TABLE( gtk_table_new( 5, 4, FALSE ) );
gtk_widget_show( GTK_WIDGET( table ) );
gtk_box_pack_start( GTK_BOX( vbox2 ), GTK_WIDGET( table ), TRUE, TRUE, 0 );
gtk_table_set_row_spacings( table, 5 );
gtk_table_set_col_spacings( table, 5 );
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "Horizontal Shift Step" ) );
+ GtkLabel* label = GTK_LABEL( ui::Label( "Horizontal Shift Step" ) );
gtk_widget_show( GTK_WIDGET( label ) );
- gtk_table_attach( table, GTK_WIDGET( label ), 2, 3, 0, 1,
- (GtkAttachOptions)( GTK_FILL ),
+ gtk_table_attach( table, GTK_WIDGET( label ), 2, 4, 0, 1,
+ (GtkAttachOptions)( GTK_FILL|GTK_EXPAND ),
(GtkAttachOptions)( 0 ), 0, 0 );
gtk_misc_set_alignment( GTK_MISC( label ), 0, 0.5 );
}
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "Vertical Shift Step" ) );
+ GtkLabel* label = GTK_LABEL( ui::Label( "Vertical Shift Step" ) );
gtk_widget_show( GTK_WIDGET( label ) );
- gtk_table_attach( table, GTK_WIDGET( label ), 2, 3, 1, 2,
- (GtkAttachOptions)( GTK_FILL ),
+ gtk_table_attach( table, GTK_WIDGET( label ), 2, 4, 1, 2,
+ (GtkAttachOptions)( GTK_FILL|GTK_EXPAND ),
(GtkAttachOptions)( 0 ), 0, 0 );
gtk_misc_set_alignment( GTK_MISC( label ), 0, 0.5 );
}
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "Horizontal Stretch Step" ) );
+ GtkLabel* label = GTK_LABEL( ui::Label( "Horizontal Stretch Step" ) );
gtk_widget_show( GTK_WIDGET( label ) );
gtk_table_attach( table, GTK_WIDGET( label ), 2, 3, 2, 3,
- (GtkAttachOptions)( GTK_FILL ),
+ (GtkAttachOptions)( GTK_FILL|GTK_EXPAND ),
(GtkAttachOptions)( 0 ), 0, 0 );
gtk_misc_set_alignment( GTK_MISC( label ), 0, 0.5 );
}
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "Vertical Stretch Step" ) );
+ GtkButton* button = GTK_BUTTON( gtk_button_new_with_label( "Flip" ) );
+ gtk_widget_show( GTK_WIDGET( button ) );
+ gtk_table_attach( table, GTK_WIDGET( button ), 3, 4, 2, 3,
+ (GtkAttachOptions)( GTK_FILL ),
+ (GtkAttachOptions)( 0 ), 0, 0 );
+ g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( OnBtnPatchFlipX ), 0 );
+ gtk_widget_set_usize( GTK_WIDGET( button ), 60, -1 );
+ }
+ {
+ GtkLabel* label = GTK_LABEL( ui::Label( "Vertical Stretch Step" ) );
gtk_widget_show( GTK_WIDGET( label ) );
gtk_table_attach( table, GTK_WIDGET( label ), 2, 3, 3, 4,
- (GtkAttachOptions)( GTK_FILL ),
+ (GtkAttachOptions)( GTK_FILL|GTK_EXPAND ),
(GtkAttachOptions)( 0 ), 0, 0 );
gtk_misc_set_alignment( GTK_MISC( label ), 0, 0.5 );
}
{
- GtkLabel* label = GTK_LABEL( gtk_label_new( "Rotate Step" ) );
- gtk_widget_show( GTK_WIDGET( label ) );
- gtk_table_attach( table, GTK_WIDGET( label ), 2, 3, 4, 5,
+ GtkButton* button = GTK_BUTTON( gtk_button_new_with_label( "Flip" ) );
+ gtk_widget_show( GTK_WIDGET( button ) );
+ gtk_table_attach( table, GTK_WIDGET( button ), 3, 4, 3, 4,
(GtkAttachOptions)( GTK_FILL ),
(GtkAttachOptions)( 0 ), 0, 0 );
+ g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( OnBtnPatchFlipY ), 0 );
+ gtk_widget_set_usize( GTK_WIDGET( button ), 60, -1 );
+ }
+ {
+ GtkLabel* label = GTK_LABEL( ui::Label( "Rotate Step" ) );
+ gtk_widget_show( GTK_WIDGET( label ) );
+ gtk_table_attach( table, GTK_WIDGET( label ), 2, 4, 4, 5,
+ (GtkAttachOptions)( GTK_FILL|GTK_EXPAND ),
+ (GtkAttachOptions)( 0 ), 0, 0 );
gtk_misc_set_alignment( GTK_MISC( label ), 0, 0.5 );
}
{
GtkHBox* hbox2 = GTK_HBOX( gtk_hbox_new( TRUE, 5 ) );
gtk_widget_show( GTK_WIDGET( hbox2 ) );
gtk_box_pack_start( GTK_BOX( vbox2 ), GTK_WIDGET( hbox2 ), TRUE, FALSE, 0 );
+ {
+ GtkButton* button = GTK_BUTTON( gtk_button_new_with_label( "Auto Cap" ) );
+ gtk_widget_show( GTK_WIDGET( button ) );
+ gtk_box_pack_end( GTK_BOX( hbox2 ), GTK_WIDGET( button ), TRUE, FALSE, 0 );
+ g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( OnBtnPatchAutoCap ), 0 );
+ gtk_widget_set_usize( GTK_WIDGET( button ), 60, -1 );
+ }
{
GtkButton* button = GTK_BUTTON( gtk_button_new_with_label( "CAP" ) );
gtk_widget_show( GTK_WIDGET( button ) );