]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - contrib/bkgrnd2d/dialog.cpp
Merge branch 'msys2thread' into 'master'
[xonotic/netradiant.git] / contrib / bkgrnd2d / dialog.cpp
index ae6eef27e42c94ee253f5fbf5cf0dce618591c7f..01a1b985b9b3e091bbcce460f1b22671cdfe12ae 100644 (file)
@@ -1,6 +1,5 @@
 /*
-   Copyright (C) 1999-2007 id Software, Inc. and contributors.
-   For a list of contributors, see the accompanying CONTRIBUTORS file.
+   Copyright (C) 2003 Reed Mideke.
 
    This file is part of GtkRadiant.
 
 
 #include "bkgrnd2d.h"
 #include "dialog.h"
-#include <glib/gi18n.h>
 
 // spaces to make label nice and big
 #define NO_FILE_MSG "        (no file loaded)        "
 
-#ifdef _WIN32
-// TTimo: THIS IS UGLY
-#define snprintf _snprintf
-#endif
-
-static GtkWidget *pDialogWnd;
+static ui::Window pDialogWnd{ui::null};
 static GtkWidget *pNotebook;
 static GtkTooltips *pTooltips;
 
@@ -50,7 +43,7 @@ class CBackgroundDialogPage
 private:
 GtkWidget *m_pWidget;
 GtkWidget *m_pTabLabel;
-GtkWidget *m_pFileLabel;
+ui::Label m_pFileLabel;
 GtkWidget *m_pPosLabel;
 VIEWTYPE m_vt;
 bool m_bValidFile;
@@ -148,8 +141,9 @@ void CBackgroundDialogPage::Browse(){
 //does NOT need freeing contrary to include/qerplugin.h comments
 //TODO bug/patch for comments
 //TODO patern gets fucked up sometimes if empty
+//http://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=915
        newfile = g_FuncTable.m_pfnFileDialog( pDialogWnd,TRUE,
-                                                                                  _( "Load Background Image" ),browsedir,FILETYPE_KEY, NULL );
+                                                                                  "Load Background Image",browsedir,FILETYPE_KEY );
        if ( !newfile ) {
                Syn_Printf( MSG_PREFIX "newfile = NULL\n" );
                return;
@@ -165,20 +159,19 @@ void CBackgroundDialogPage::Browse(){
 
        if ( m_pImage->Load( newfile ) ) {
                m_bValidFile = true;
-               gtk_label_set_text( GTK_LABEL( m_pFileLabel ),newfile );
+               m_pFileLabel.text(newfile);
        }
 }
 
 void CBackgroundDialogPage::SetPosLabel(){
        char s[64];
-       snprintf( s, sizeof( s ) - 1, _( "Size/Position (%d,%d) (%d,%d)" ),(int)( m_pImage->m_xmin ),
-                         (int)( m_pImage->m_ymin ),(int)( m_pImage->m_xmax ),(int)( m_pImage->m_ymax ) );
-       gtk_label_set_text( GTK_LABEL( m_pPosLabel ),s );
+       // TODO no snprintf ?
+       sprintf( s, "Size/Position (%d,%d) (%d,%d)",(int)( m_pImage->m_xmin ),
+                        (int)( m_pImage->m_ymin ),(int)( m_pImage->m_xmax ),(int)( m_pImage->m_ymax ) );
+       m_pPosLabel.text(s);
 }
 
 CBackgroundDialogPage::CBackgroundDialogPage( VIEWTYPE vt ){
-       GtkWidget *frame;
-       GtkWidget *hbox;
        GtkWidget *w;
 
        m_vt = vt;
@@ -188,108 +181,103 @@ CBackgroundDialogPage::CBackgroundDialogPage( VIEWTYPE vt ){
        switch ( m_vt )
        {
        case XY:
-               m_pTabLabel = gtk_label_new( _( "X/Y" ) );
+               m_pTabLabel = ui::Label( "X/Y" );
                m_pImage = &backgroundXY;
                break;
        case XZ:
-               m_pTabLabel = gtk_label_new( _( "X/Z" ) );
+               m_pTabLabel = ui::Label( "X/Z" );
                m_pImage = &backgroundXZ;
                break;
        case YZ:
-               m_pTabLabel = gtk_label_new( _( "Y/Z" ) );
+               m_pTabLabel = ui::Label( "Y/Z" );
                m_pImage = &backgroundYZ;
                break;
        }
 // A vbox to hold everything
-       m_pWidget = gtk_vbox_new( FALSE,0 );
+       m_pWidget = ui::VBox( FALSE,0 );
 // Frame for file row
-       frame = gtk_frame_new( _( "File" ) );
-       gtk_box_pack_start( GTK_BOX( m_pWidget ),frame, FALSE, FALSE, 2 );
+       auto frame = ui::Frame( "File" );
+       m_pWidget.pack_start(frame, FALSE, FALSE, 2 );
 
 // hbox for first row
-       hbox = gtk_hbox_new( FALSE,5 );
+       auto hbox = ui::HBox( FALSE,5 );
        gtk_container_set_border_width( GTK_CONTAINER( hbox ),4 );
-       gtk_container_add( GTK_CONTAINER( frame ), hbox );
+       frame.add(hbox);
 
 // label to display filename
-       m_pFileLabel  = gtk_label_new( NO_FILE_MSG );
+       m_pFileLabel  = ui::Label( NO_FILE_MSG );
        gtk_label_set_selectable( GTK_LABEL( m_pFileLabel ),TRUE );
 //TODO set min size ? done with spaces right now
-       gtk_box_pack_start( GTK_BOX( hbox ),m_pFileLabel, TRUE, TRUE, 5 );
+       hbox.pack_start(m_pFileLabel, TRUE, TRUE, 5 );
 
-       gtk_widget_show( m_pFileLabel );
+       m_pFileLabel.show();
 
-       w = gtk_button_new_with_label( "Browse..." );
-       g_signal_connect( G_OBJECT( w ), "clicked", G_CALLBACK( browse_callback ),
-                                         ( gpointer ) this );
-       gtk_box_pack_start( GTK_BOX( hbox ),w, FALSE, FALSE, 5 );
+       w = ui::Button( "Browse..." );
+       w.connect( "clicked", G_CALLBACK( browse_callback ), ( gpointer ) this );
+       hbox.pack_start(w, FALSE, FALSE, 5 );
        gtk_tooltips_set_tip( pTooltips, w, "Select a file", NULL );
-       gtk_widget_show( w );
+       w.show();
 
-       w = gtk_button_new_with_label( "Reload" );
-       g_signal_connect( G_OBJECT( w ), "clicked", G_CALLBACK( reload_callback ),
-                                         ( gpointer ) this );
+       w = ui::Button( "Reload" );
+       w.connect( "clicked", G_CALLBACK( reload_callback ), ( gpointer ) this );
        // TODO disable until we have file
        // gtk_widget_set_sensitive(w,FALSE);
        gtk_tooltips_set_tip( pTooltips, w, "Reload current file", NULL );
-       gtk_box_pack_start( GTK_BOX( hbox ),w, FALSE, FALSE, 5 );
-       gtk_widget_show( w );
+       hbox.pack_start(w, FALSE, FALSE, 5 );
+       w.show();
 
-       gtk_widget_show( hbox );
-       gtk_widget_show( frame );
+       hbox.show();
+       frame.show();
 
 // second row (rendering options)
-       frame = gtk_frame_new( _( "Rendering" ) );
-       gtk_box_pack_start( GTK_BOX( m_pWidget ),frame, FALSE, FALSE, 2 );
+       frame = ui::Frame( "Rendering" );
+       m_pWidget.pack_start(frame, FALSE, FALSE, 2 );
 
-       hbox = gtk_hbox_new( FALSE,5 );
+       hbox = ui::HBox( FALSE,5 );
        gtk_container_set_border_width( GTK_CONTAINER( hbox ),4 );
-       gtk_container_add( GTK_CONTAINER( frame ), hbox );
+       frame.add(hbox);
 
-       w = gtk_label_new( _( "Vertex alpha:" ) );
-       gtk_box_pack_start( GTK_BOX( hbox ),w, FALSE, FALSE, 5 );
-       gtk_widget_show( w );
+       w = ui::Label( "Vertex alpha:" );
+       hbox.pack_start(w, FALSE, FALSE, 5 );
+       w.show();
 
-       w = gtk_hscale_new_with_range( 0.0,1.0,0.01 );
+       w = ui::HScale( 0.0, 1.0, 0.01 );
        gtk_range_set_value( GTK_RANGE( w ),0.5 );
        gtk_scale_set_value_pos( GTK_SCALE( w ),GTK_POS_LEFT );
-       g_signal_connect( G_OBJECT( w ), "value-changed",
-                                         G_CALLBACK( alpha_adjust_callback ), ( gpointer ) this );
-       gtk_box_pack_start( GTK_BOX( hbox ),w, TRUE, TRUE, 5 );
-       gtk_tooltips_set_tip( pTooltips, w, _( "Set image transparancy" ), NULL );
-       gtk_widget_show( w );
-
-       gtk_widget_show( hbox );
-       gtk_widget_show( frame );
+       w.connect( "value-changed", G_CALLBACK( alpha_adjust_callback ), ( gpointer ) this );
+       hbox.pack_start(w, TRUE, TRUE, 5 );
+       gtk_tooltips_set_tip( pTooltips, w, "Set image transparancy", NULL );
+       w.show();
+
+       hbox.show();
+       frame.show();
 // Third row (size and position)
-       frame = gtk_frame_new( _( "Size/Position (undefined)" ) );
+       frame = ui::Frame( "Size/Position (undefined)" );
        m_pPosLabel = gtk_frame_get_label_widget( GTK_FRAME( frame ) );
-       gtk_box_pack_start( GTK_BOX( m_pWidget ), frame, FALSE, FALSE, 2 );
+       m_pWidget.pack_start( frame, FALSE, FALSE, 2 );
 
-       hbox = gtk_hbox_new( FALSE,5 );
-       gtk_container_add( GTK_CONTAINER( frame ), hbox );
+       hbox = ui::HBox( FALSE,5 );
+       frame.add(hbox);
        gtk_container_set_border_width( GTK_CONTAINER( hbox ),4 );
 
-       w = gtk_button_new_with_label( _( "from selection" ) );
-       gtk_box_pack_start( GTK_BOX( hbox ),w, TRUE, FALSE, 5 );
-       g_signal_connect( G_OBJECT( w ), "clicked", G_CALLBACK( size_sel_callback ),
-                                         ( gpointer ) this );
-       gtk_tooltips_set_tip( pTooltips, w, _( "Set the size of the image to the bounding rectangle of all selected brushes and entities" ), NULL );
-       gtk_widget_show( w );
+       w = ui::Button( "from selection" );
+       hbox.pack_start(w, TRUE, FALSE, 5 );
+       w.connect( "clicked", G_CALLBACK( size_sel_callback ), ( gpointer ) this );
+       gtk_tooltips_set_tip( pTooltips, w, "Set the size of the image to the bounding rectangle of all selected brushes and entities", NULL );
+       w.show();
 
        if ( m_vt == XY ) {
-               w = gtk_button_new_with_label( _( "from map mins/maxs" ) );
-               gtk_box_pack_start( GTK_BOX( hbox ),w, TRUE, FALSE, 2 );
-               g_signal_connect( G_OBJECT( w ), "clicked", G_CALLBACK( size_mm_callback ),
-                                                 ( gpointer ) this );
-               gtk_tooltips_set_tip( pTooltips, w, _( "Set the size of the image using the mapcoordsmins and mapcoordsmaxs keys of the worldspawn entity" ), NULL );
-               gtk_widget_show( w );
+               w = ui::Button( "from map mins/maxs" );
+               hbox.pack_start(w, TRUE, FALSE, 2 );
+               w.connect( "clicked", G_CALLBACK( size_mm_callback ), ( gpointer ) this );
+               gtk_tooltips_set_tip( pTooltips, w, "Set the size of the image using the mapcoordsmins and mapcoordsmaxs keys of the worldspawn entity", NULL );
+               w.show();
        }
 
-       gtk_widget_show( hbox );
-       gtk_widget_show( frame );
+       hbox.show();
+       frame.show();
 
-       gtk_widget_show( m_pWidget );
+       m_pWidget.show();
 }
 
 void CBackgroundDialogPage::Append( GtkWidget *notebook ){
@@ -318,18 +306,16 @@ static gint close_callback( GtkWidget *widget, gpointer data ){
 void InitBackgroundDialog(){
        CBackgroundDialogPage *pPage;
 
-       pDialogWnd = gtk_dialog_new_with_buttons( _( "Background Images" ),
-                                                                                         GTK_WINDOW( g_pMainWidget ),
+       pDialogWnd = gtk_dialog_new_with_buttons( "Background Images",
+                                                                                         g_pMainWidget,
                                                                                          (GtkDialogFlags)( GTK_DIALOG_DESTROY_WITH_PARENT ),
                                                  // TODO dialog with no buttons
                                                  //                                                                              GTK_STOCK_CLOSE,
                                                  //                                                                              GTK_RESPONSE_CLOSE,
                                                                                          NULL );
-       gtk_signal_connect( GTK_OBJECT( pDialogWnd ), "delete_event",
-                                               GTK_SIGNAL_FUNC( close_callback ), NULL );
-       gtk_signal_connect( GTK_OBJECT( pDialogWnd ), "response",
-                                               GTK_SIGNAL_FUNC( response_callback ), NULL );
-//  gtk_signal_connect( GTK_OBJECT (pDialogWnd), "expose_event", GTK_SIGNAL_FUNC( ci_expose ), NULL );
+       pDialogWnd.connect( "delete_event", G_CALLBACK( close_callback ), NULL );
+       pDialogWnd.connect( "response", G_CALLBACK( response_callback ), NULL );
+//  pDialogWnd.connect( "expose_event", G_CALLBACK( ci_expose ), NULL );
 
        pTooltips = gtk_tooltips_new();
 
@@ -343,13 +329,13 @@ void InitBackgroundDialog(){
 
        gtk_box_pack_start( GTK_BOX( GTK_DIALOG( pDialogWnd )->vbox ), pNotebook, TRUE, TRUE, 0 );
 
-       gtk_widget_show( pNotebook );
+       pNotebook.show();
 
        gtk_widget_realize( pDialogWnd );
 }
 
 void ShowBackgroundDialog(){
-       gtk_window_present( GTK_WINDOW( pDialogWnd ) );
+       gtk_window_present( pDialogWnd );
 }
 
 void ShowBackgroundDialogPG( int page ){