X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fnetradiant.git;a=blobdiff_plain;f=contrib%2Fcamera%2Fdialogs.cpp;h=e2366239877e3683e800dc09e320166cda9bf10a;hp=40df284ec4e5e69cb3a206f3d1b9e8e62123ce14;hb=69b4f74e6c95e22d6c6ce10d0e137c875fd83cc4;hpb=231225d6f97d0b926b2e896e5783cccfbc7c5619 diff --git a/contrib/camera/dialogs.cpp b/contrib/camera/dialogs.cpp index 40df284e..e2366239 100644 --- a/contrib/camera/dialogs.cpp +++ b/contrib/camera/dialogs.cpp @@ -1,28 +1,28 @@ /* -Copyright (C) 1999-2006 Id Software, Inc. and contributors. -For a list of contributors, see the accompanying CONTRIBUTORS file. + 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. + 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 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. + 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 -*/ + 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 + */ /* -Camera plugin for GtkRadiant -Copyright (C) 2002 Splash Damage Ltd. -*/ + Camera plugin for GtkRadiant + Copyright (C) 2002 Splash Damage Ltd. + */ #include "camera.h" @@ -38,192 +38,188 @@ static GtkWidget *g_pTrackCamera = NULL; static GtkWidget *g_pCamName = NULL; static char *g_cNull = '\0'; -static gint ci_editmode_edit( GtkWidget *widget, gpointer data ) -{ +static gint ci_editmode_edit( GtkWidget *widget, gpointer data ){ g_iEditMode = 0; return TRUE; } -static gint ci_editmode_add( GtkWidget *widget, gpointer data ) -{ +static gint ci_editmode_add( GtkWidget *widget, gpointer data ){ g_iEditMode = 1; return TRUE; } /*static gint ci_delete_selected( GtkWidget *widget, gpointer data ) -{ - return TRUE; -} + { + return TRUE; + } -static gint ci_select_all( GtkWidget *widget, gpointer data ) -{ - return TRUE; -}*/ + static gint ci_select_all( GtkWidget *widget, gpointer data ) + { + return TRUE; + }*/ -static gint ci_new( GtkWidget *widget, gpointer data ) -{ - GtkWidget *window, *w, *vbox, *vbox2, *hbox, *frame; //, *name; +static gint ci_new( GtkWidget *widget, gpointer data ){ + GtkWidget *w, *hbox; //, *name; GtkWidget *fixed, *interpolated, *spline; EMessageBoxReturn ret; - int loop = 1; + int loop = 1; GSList *targetTypeRadio = NULL; // char buf[128]; // create the window - window = gtk_window_new( GTK_WINDOW_TOPLEVEL ); - gtk_window_set_title( GTK_WINDOW (window), "New Camera" ); - gtk_signal_connect( GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC( dialog_delete_callback ), NULL ); - gtk_signal_connect( GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC( gtk_widget_destroy ), NULL ); - gtk_window_set_transient_for( GTK_WINDOW( window ), GTK_WINDOW( g_pCameraInspectorWnd ) ); + auto window = ui::Window( ui::window_type::TOP ); + gtk_window_set_title( GTK_WINDOW( window ), "New Camera" ); + window.connect( "delete_event", G_CALLBACK( dialog_delete_callback ), NULL ); + window.connect( "destroy", G_CALLBACK( gtk_widget_destroy ), NULL ); + gtk_window_set_transient_for( GTK_WINDOW( window ), GTK_WINDOW( g_pCameraInspectorWnd ) ); - g_object_set_data (G_OBJECT (window), "loop", &loop); - g_object_set_data (G_OBJECT (window), "ret", &ret); + g_object_set_data( G_OBJECT( window ), "loop", &loop ); + g_object_set_data( G_OBJECT( window ), "ret", &ret ); - gtk_widget_realize (window); + gtk_widget_realize( window ); // fill the window - vbox = gtk_vbox_new( FALSE, 5 ); - gtk_container_add (GTK_CONTAINER (window), vbox); - gtk_widget_show( vbox ); + auto vbox = ui::VBox( FALSE, 5 ); + window.add(vbox); + vbox.show(); - // -------------------------- // + // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - frame = gtk_frame_new( "Type" ); - gtk_box_pack_start( GTK_BOX( hbox ), frame, TRUE, TRUE, 0 ); - gtk_widget_show( frame ); + auto frame = ui::Frame( "Type" ); + hbox.pack_start( frame, TRUE, TRUE, 0 ); + frame.show(); - vbox2 = gtk_vbox_new( FALSE, 5 ); - gtk_container_add( GTK_CONTAINER( frame ), vbox2 ); - gtk_container_set_border_width( GTK_CONTAINER (vbox2), 5 ); - gtk_widget_show( vbox2 ); + auto vbox2 = ui::VBox( FALSE, 5 ); + frame.add(vbox2); + gtk_container_set_border_width( GTK_CONTAINER( vbox2 ), 5 ); + vbox2.show(); // -------------------------- // fixed = gtk_radio_button_new_with_label( targetTypeRadio, "Fixed" ); - gtk_box_pack_start( GTK_BOX( vbox2 ), fixed, FALSE, FALSE, 3 ); - gtk_widget_show( fixed ); - targetTypeRadio = gtk_radio_button_group( GTK_RADIO_BUTTON( fixed ) ); + vbox2.pack_start( fixed, FALSE, FALSE, 3 ); + fixed.show(); + targetTypeRadio = gtk_radio_button_get_group( GTK_RADIO_BUTTON( fixed ) ); interpolated = gtk_radio_button_new_with_label( targetTypeRadio, "Interpolated" ); - gtk_box_pack_start( GTK_BOX( vbox2 ), interpolated, FALSE, FALSE, 3 ); - gtk_widget_show( interpolated ); - targetTypeRadio = gtk_radio_button_group( GTK_RADIO_BUTTON( interpolated ) ); + vbox2.pack_start( interpolated, FALSE, FALSE, 3 ); + interpolated.show(); + targetTypeRadio = gtk_radio_button_get_group( GTK_RADIO_BUTTON( interpolated ) ); spline = gtk_radio_button_new_with_label( targetTypeRadio, "Spline" ); - gtk_box_pack_start( GTK_BOX( vbox2 ), spline, FALSE, FALSE, 3 ); - gtk_widget_show( spline ); - targetTypeRadio = gtk_radio_button_group( GTK_RADIO_BUTTON( spline ) ); + vbox2.pack_start( spline, FALSE, FALSE, 3 ); + spline.show(); + targetTypeRadio = gtk_radio_button_get_group( GTK_RADIO_BUTTON( spline ) ); - // -------------------------- // + // -------------------------- // - w = gtk_hseparator_new (); - gtk_box_pack_start (GTK_BOX (vbox), w, FALSE, FALSE, 2); - gtk_widget_show (w); + w = gtk_hseparator_new(); + vbox.pack_start( w, FALSE, FALSE, 2 ); + w.show(); // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - w = gtk_button_new_with_label ("Ok"); - gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0); - gtk_signal_connect (GTK_OBJECT (w), "clicked", GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (eIDOK)); - gtk_widget_show (w); + w = ui::Button( "Ok" ); + hbox.pack_start( w, TRUE, TRUE, 0 ); + w.connect( "clicked", G_CALLBACK( dialog_button_callback ), GINT_TO_POINTER( eIDOK ) ); + w.show(); - GTK_WIDGET_SET_FLAGS( w, GTK_CAN_DEFAULT ); + gtk_widget_set_can_default( w, true ); gtk_widget_grab_default( w ); - w = gtk_button_new_with_label ("Cancel"); - gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0); - gtk_signal_connect (GTK_OBJECT (w), "clicked", GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (eIDCANCEL)); - gtk_widget_show (w); + w = ui::Button( "Cancel" ); + hbox.pack_start( w, TRUE, TRUE, 0 ); + w.connect( "clicked", G_CALLBACK( dialog_button_callback ), GINT_TO_POINTER( eIDCANCEL ) ); + w.show(); ret = eIDCANCEL; // -------------------------- // - gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); - gtk_widget_show (window); - gtk_grab_add (window); + gtk_window_set_position( GTK_WINDOW( window ),GTK_WIN_POS_CENTER ); + window.show(); + gtk_grab_add( window ); bool dialogError = TRUE; - while (dialogError) { + while ( dialogError ) { loop = 1; - while (loop) - gtk_main_iteration (); - + while ( loop ) + gtk_main_iteration(); + dialogError = FALSE; - if( ret == eIDOK ) { - if( gtk_toggle_button_get_active( (GtkToggleButton*)fixed ) ) + if ( ret == eIDOK ) { + if ( gtk_toggle_button_get_active( (GtkToggleButton*)fixed ) ) { DoNewFixedCamera(); - else if( gtk_toggle_button_get_active( (GtkToggleButton*)interpolated ) ) + } + else if ( gtk_toggle_button_get_active( (GtkToggleButton*)interpolated ) ) { DoNewInterpolatedCamera(); - else if( gtk_toggle_button_get_active( (GtkToggleButton*)spline ) ) + } + else if ( gtk_toggle_button_get_active( (GtkToggleButton*)spline ) ) { DoNewSplineCamera(); + } } } - gtk_grab_remove (window); - gtk_widget_destroy (window); + gtk_grab_remove( window ); + window.destroy(); - return TRUE; + return TRUE; } -static gint ci_load( GtkWidget *widget, gpointer data ) -{ - DoLoadCamera(); +static gint ci_load( GtkWidget *widget, gpointer data ){ + DoLoadCamera(); - return TRUE; + return TRUE; } -static gint ci_save( GtkWidget *widget, gpointer data ) -{ - DoSaveCamera(); +static gint ci_save( GtkWidget *widget, gpointer data ){ + DoSaveCamera(); - return TRUE; + return TRUE; } -static gint ci_unload( GtkWidget *widget, gpointer data ) -{ +static gint ci_unload( GtkWidget *widget, gpointer data ){ DoUnloadCamera(); return TRUE; } -static gint ci_apply( GtkWidget *widget, gpointer data ) -{ - if( GetCurrentCam() ) { +static gint ci_apply( GtkWidget *widget, gpointer data ){ + if ( GetCurrentCam() ) { const char *str; char buf[128]; bool build = false; - str = gtk_entry_get_text( GTK_ENTRY(g_pCamName) ); + str = gtk_entry_get_text( GTK_ENTRY( g_pCamName ) ); - if( str ) { + if ( str ) { GetCurrentCam()->GetCam()->setName( str ); build = true; } - str = gtk_entry_get_text( GTK_ENTRY(g_pSecondsEntry) ); - - if( str ) { + str = gtk_entry_get_text( GTK_ENTRY( g_pSecondsEntry ) ); + + if ( str ) { GetCurrentCam()->GetCam()->setBaseTime( atof( str ) ); build = true; } - if( build ) { + if ( build ) { GetCurrentCam()->GetCam()->buildCamera(); } sprintf( buf, "%.2f", GetCurrentCam()->GetCam()->getBaseTime() ); - gtk_entry_set_text( GTK_ENTRY(g_pSecondsEntry), buf ); + gtk_entry_set_text( GTK_ENTRY( g_pSecondsEntry ), buf ); sprintf( buf, "%.2f", GetCurrentCam()->GetCam()->getTotalTime() ); gtk_label_set_text( g_pCurrentTime, "0.00" ); @@ -235,111 +231,113 @@ static gint ci_apply( GtkWidget *widget, gpointer data ) GetCurrentCam()->HasBeenModified(); } - return TRUE; + return TRUE; } -static gint ci_preview( GtkWidget *widget, gpointer data ) -{ - if( GetCurrentCam() ) { +static gint ci_preview( GtkWidget *widget, gpointer data ){ + if ( GetCurrentCam() ) { g_iPreviewRunning = 1; g_FuncTable.m_pfnSysUpdateWindows( W_XY_OVERLAY | W_CAMERA ); } - return TRUE; + return TRUE; } -static gint ci_expose( GtkWidget *widget, gpointer data ) -{ - // start edit mode - DoStartEdit( GetCurrentCam() ); +static gint ci_expose( GtkWidget *widget, gpointer data ){ + // start edit mode + DoStartEdit( GetCurrentCam() ); - return FALSE; + return FALSE; } -static gint ci_close( GtkWidget *widget, gpointer data ) -{ - gtk_widget_hide( g_pCameraInspectorWnd ); +static gint ci_close( GtkWidget *widget, gpointer data ){ + gtk_widget_hide( g_pCameraInspectorWnd ); - // exit edit mode - DoStopEdit(); + // exit edit mode + DoStopEdit(); - return TRUE; + return TRUE; } static GtkWidget *g_pPathListCombo = NULL; static GtkLabel *g_pPathType = NULL; -static void RefreshPathListCombo( void ) -{ - if( !g_pPathListCombo ) - return; +static void RefreshPathListCombo( void ){ + if ( !g_pPathListCombo ) { + return; + } - GList *combo_list = (GList*)NULL; + GList *combo_list = (GList*)NULL; - if( GetCurrentCam() ) { - combo_list = g_list_append( combo_list, (void *)GetCurrentCam()->GetCam()->getPositionObj()->getName() ); - for( int i = 0; i < GetCurrentCam()->GetCam()->numTargets(); i++ ) { - combo_list = g_list_append( combo_list, (void *)GetCurrentCam()->GetCam()->getActiveTarget( i )->getName() ); - } - } else { + if ( GetCurrentCam() ) { + combo_list = g_list_append( combo_list, (void *)GetCurrentCam()->GetCam()->getPositionObj()->getName() ); + for ( int i = 0; i < GetCurrentCam()->GetCam()->numTargets(); i++ ) { + combo_list = g_list_append( combo_list, (void *)GetCurrentCam()->GetCam()->getActiveTarget( i )->getName() ); + } + } + else { // add one empty string make gtk be quiet combo_list = g_list_append( combo_list, (gpointer)g_cNull ); - } + } - gtk_combo_set_popdown_strings( GTK_COMBO( g_pPathListCombo ), combo_list ); - g_list_free( combo_list ); + gtk_combo_set_popdown_strings( GTK_COMBO( g_pPathListCombo ), combo_list ); + g_list_free( combo_list ); } -static gint ci_pathlist_changed( GtkWidget *widget, gpointer data ) -{ - const char *str = gtk_entry_get_text( GTK_ENTRY(widget) ); +static gint ci_pathlist_changed( GtkWidget *widget, gpointer data ){ + const char *str = gtk_entry_get_text( GTK_ENTRY( widget ) ); - if( !str || !GetCurrentCam() ) - return TRUE; + if ( !str || !GetCurrentCam() ) { + return TRUE; + } int i; - for( i = 0; i < GetCurrentCam()->GetCam()->numTargets(); i++ ) { - if( !strcmp( str, GetCurrentCam()->GetCam()->getActiveTarget( i )->getName() ) ) - break; - } - - if( i >= 0 && i < GetCurrentCam()->GetCam()->numTargets() ) { - GetCurrentCam()->GetCam()->setActiveTarget( i ); - - g_iActiveTarget = i; - if( g_pPathType ) - gtk_label_set_text( g_pPathType, GetCurrentCam()->GetCam()->getActiveTarget(g_iActiveTarget)->typeStr() ); - } else { - g_iActiveTarget = -1; - if( g_pPathType ) + for ( i = 0; i < GetCurrentCam()->GetCam()->numTargets(); i++ ) { + if ( !strcmp( str, GetCurrentCam()->GetCam()->getActiveTarget( i )->getName() ) ) { + break; + } + } + + if ( i >= 0 && i < GetCurrentCam()->GetCam()->numTargets() ) { + GetCurrentCam()->GetCam()->setActiveTarget( i ); + + g_iActiveTarget = i; + if ( g_pPathType ) { + gtk_label_set_text( g_pPathType, GetCurrentCam()->GetCam()->getActiveTarget( g_iActiveTarget )->typeStr() ); + } + } + else { + g_iActiveTarget = -1; + if ( g_pPathType ) { gtk_label_set_text( g_pPathType, GetCurrentCam()->GetCam()->getPositionObj()->typeStr() ); - } + } + } - // start edit mode - if( g_pCameraInspectorWnd && GTK_WIDGET_VISIBLE( g_pCameraInspectorWnd ) ) - DoStartEdit( GetCurrentCam() ); + // start edit mode + if ( g_pCameraInspectorWnd && gtk_widget_get_visible( g_pCameraInspectorWnd ) ) { + DoStartEdit( GetCurrentCam() ); + } - return TRUE; + return TRUE; } -static void RefreshEventList( void ) -{ +static void RefreshEventList( void ){ int i; char buf[128]; // Clear events list - gtk_clist_freeze( GTK_CLIST(g_pEventsList) ); - gtk_clist_clear( GTK_CLIST(g_pEventsList) ); + gtk_clist_freeze( GTK_CLIST( g_pEventsList ) ); + gtk_clist_clear( GTK_CLIST( g_pEventsList ) ); - if( GetCurrentCam() ) { + if ( GetCurrentCam() ) { // Fill events list - for( i = 0; i < GetCurrentCam()->GetCam()->numEvents(); i++ ) { + for ( i = 0; i < GetCurrentCam()->GetCam()->numEvents(); i++ ) { char rowbuf[3][128], *row[3]; // FIXME: sort by time? - sprintf( rowbuf[0], "%li", GetCurrentCam()->GetCam()->getEvent(i)->getTime() ); row[0] = rowbuf[0]; - strncpy( rowbuf[1], GetCurrentCam()->GetCam()->getEvent(i)->typeStr(), sizeof(rowbuf[0]) ); row[1] = rowbuf[1]; - strncpy( rowbuf[2], GetCurrentCam()->GetCam()->getEvent(i)->getParam(), sizeof(rowbuf[1]) ); row[2] = rowbuf[2]; - gtk_clist_append( GTK_CLIST(g_pEventsList), row ); + sprintf( rowbuf[0], "%li", GetCurrentCam()->GetCam()->getEvent( i )->getTime() ); row[0] = rowbuf[0]; + strncpy( rowbuf[1], GetCurrentCam()->GetCam()->getEvent( i )->typeStr(), sizeof( rowbuf[0] ) ); row[1] = rowbuf[1]; + strncpy( rowbuf[2], GetCurrentCam()->GetCam()->getEvent( i )->getParam(), sizeof( rowbuf[1] ) ); row[2] = rowbuf[2]; + gtk_clist_append( GTK_CLIST( g_pEventsList ), row ); } // Total duration might have changed @@ -351,370 +349,380 @@ static void RefreshEventList( void ) g_pTimeLine->upper = ( GetCurrentCam()->GetCam()->getTotalTime() * 1000 ); } - gtk_clist_thaw( GTK_CLIST(g_pEventsList) ); + gtk_clist_thaw( GTK_CLIST( g_pEventsList ) ); } -static gint ci_rename( GtkWidget *widget, gpointer data ) -{ - GtkWidget *window, *w, *vbox, *hbox, *name; +static gint ci_rename( GtkWidget *widget, gpointer data ){ + GtkWidget *w, *hbox, *name; EMessageBoxReturn ret; - int loop = 1; + int loop = 1; - if( !GetCurrentCam() ) + if ( !GetCurrentCam() ) { return TRUE; + } // create the window - window = gtk_window_new( GTK_WINDOW_TOPLEVEL ); - gtk_window_set_title( GTK_WINDOW (window), "Rename Path" ); - gtk_signal_connect( GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC( dialog_delete_callback ), NULL ); - gtk_signal_connect( GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC( gtk_widget_destroy ), NULL ); - gtk_window_set_transient_for( GTK_WINDOW( window ), GTK_WINDOW( g_pCameraInspectorWnd ) ); + auto window = ui::Window( ui::window_type::TOP ); + gtk_window_set_title( GTK_WINDOW( window ), "Rename Path" ); + window.connect( "delete_event", G_CALLBACK( dialog_delete_callback ), NULL ); + window.connect( "destroy", G_CALLBACK( gtk_widget_destroy ), NULL ); + gtk_window_set_transient_for( GTK_WINDOW( window ), GTK_WINDOW( g_pCameraInspectorWnd ) ); - g_object_set_data (G_OBJECT (window), "loop", &loop); - g_object_set_data (G_OBJECT (window), "ret", &ret); + g_object_set_data( G_OBJECT( window ), "loop", &loop ); + g_object_set_data( G_OBJECT( window ), "ret", &ret ); - gtk_widget_realize ( window ); + gtk_widget_realize( window ); // fill the window - vbox = gtk_vbox_new( FALSE, 5 ); - gtk_container_add (GTK_CONTAINER (window), vbox); - gtk_widget_show( vbox ); + auto vbox = ui::VBox( FALSE, 5 ); + window.add(vbox); + vbox.show(); - // -------------------------- // + // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - w = gtk_label_new( "Name:" ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( "Name:" ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); - name = gtk_entry_new(); - gtk_box_pack_start( GTK_BOX( hbox ), name, FALSE, FALSE, 0 ); - gtk_widget_show( name ); + name = ui::Entry(); + hbox.pack_start( name, FALSE, FALSE, 0 ); + name.show(); - if( g_iActiveTarget < 0 ) - gtk_entry_set_text( GTK_ENTRY(name), GetCurrentCam()->GetCam()->getPositionObj()->getName() ); - else - gtk_entry_set_text( GTK_ENTRY(name), GetCurrentCam()->GetCam()->getActiveTarget(g_iActiveTarget)->getName() ); + if ( g_iActiveTarget < 0 ) { + gtk_entry_set_text( GTK_ENTRY( name ), GetCurrentCam()->GetCam()->getPositionObj()->getName() ); + } + else{ + gtk_entry_set_text( GTK_ENTRY( name ), GetCurrentCam()->GetCam()->getActiveTarget( g_iActiveTarget )->getName() ); + } - // -------------------------- // + // -------------------------- // - w = gtk_hseparator_new (); - gtk_box_pack_start (GTK_BOX (vbox), w, FALSE, FALSE, 2); - gtk_widget_show (w); + w = gtk_hseparator_new(); + vbox.pack_start( w, FALSE, FALSE, 2 ); + w.show(); // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - w = gtk_button_new_with_label ("Ok"); - gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0); - gtk_signal_connect (GTK_OBJECT (w), "clicked", GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (eIDOK)); - gtk_widget_show (w); + w = ui::Button( "Ok" ); + hbox.pack_start( w, TRUE, TRUE, 0 ); + w.connect( "clicked", G_CALLBACK( dialog_button_callback ), GINT_TO_POINTER( eIDOK ) ); + w.show(); - GTK_WIDGET_SET_FLAGS( w, GTK_CAN_DEFAULT ); + gtk_widget_set_can_default( w, true ); gtk_widget_grab_default( w ); - w = gtk_button_new_with_label ("Cancel"); - gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0); - gtk_signal_connect (GTK_OBJECT (w), "clicked", GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (eIDCANCEL)); - gtk_widget_show (w); + w = ui::Button( "Cancel" ); + hbox.pack_start( w, TRUE, TRUE, 0 ); + w.connect( "clicked", G_CALLBACK( dialog_button_callback ), GINT_TO_POINTER( eIDCANCEL ) ); + w.show(); ret = eIDCANCEL; // -------------------------- // - gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); - gtk_widget_show (window); - gtk_grab_add (window); + gtk_window_set_position( GTK_WINDOW( window ),GTK_WIN_POS_CENTER ); + window.show(); + gtk_grab_add( window ); bool dialogError = TRUE; - while (dialogError) { + while ( dialogError ) { loop = 1; - while (loop) - gtk_main_iteration (); - + while ( loop ) + gtk_main_iteration(); + dialogError = FALSE; - if( ret == eIDOK ) { - const char *str = gtk_entry_get_text( GTK_ENTRY(name) ); + if ( ret == eIDOK ) { + const char *str = gtk_entry_get_text( GTK_ENTRY( name ) ); - if( str && str[0] ) { + if ( str && str[0] ) { // Update the path - if( g_iActiveTarget < 0 ) + if ( g_iActiveTarget < 0 ) { GetCurrentCam()->GetCam()->getPositionObj()->setName( str ); - else - GetCurrentCam()->GetCam()->getActiveTarget(g_iActiveTarget)->setName( str ); + } + else{ + GetCurrentCam()->GetCam()->getActiveTarget( g_iActiveTarget )->setName( str ); + } GetCurrentCam()->GetCam()->buildCamera(); // Rebuild the listbox RefreshPathListCombo(); - } else { + } + else { dialogError = TRUE; } } } - gtk_grab_remove (window); - gtk_widget_destroy (window); + gtk_grab_remove( window ); + window.destroy(); - return TRUE; + return TRUE; } -static gint ci_add_target( GtkWidget *widget, gpointer data ) -{ - GtkWidget *window, *w, *vbox, *vbox2, *hbox, *frame, *name; +static gint ci_add_target( GtkWidget *widget, gpointer data ){ + GtkWidget *w, *hbox, *name; GtkWidget *fixed, *interpolated, *spline; EMessageBoxReturn ret; - int loop = 1; + int loop = 1; GSList *targetTypeRadio = NULL; char buf[128]; - if( !GetCurrentCam() ) + if ( !GetCurrentCam() ) { return TRUE; + } // create the window - window = gtk_window_new( GTK_WINDOW_TOPLEVEL ); - gtk_window_set_title( GTK_WINDOW (window), "Add Target" ); - gtk_signal_connect( GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC( dialog_delete_callback ), NULL ); - gtk_signal_connect( GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC( gtk_widget_destroy ), NULL ); - gtk_window_set_transient_for( GTK_WINDOW( window ), GTK_WINDOW( g_pCameraInspectorWnd ) ); + auto window = ui::Window( ui::window_type::TOP ); + gtk_window_set_title( GTK_WINDOW( window ), "Add Target" ); + window.connect( "delete_event", G_CALLBACK( dialog_delete_callback ), NULL ); + window.connect( "destroy", G_CALLBACK( gtk_widget_destroy ), NULL ); + gtk_window_set_transient_for( GTK_WINDOW( window ), GTK_WINDOW( g_pCameraInspectorWnd ) ); - g_object_set_data (G_OBJECT (window), "loop", &loop); - g_object_set_data (G_OBJECT (window), "ret", &ret); + g_object_set_data( G_OBJECT( window ), "loop", &loop ); + g_object_set_data( G_OBJECT( window ), "ret", &ret ); - gtk_widget_realize (window); + gtk_widget_realize( window ); // fill the window - vbox = gtk_vbox_new( FALSE, 5 ); - gtk_container_add (GTK_CONTAINER (window), vbox); - gtk_widget_show( vbox ); + auto vbox = ui::VBox( FALSE, 5 ); + window.add(vbox); + vbox.show(); - // -------------------------- // + // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - w = gtk_label_new( "Name:" ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( "Name:" ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); - name = gtk_entry_new(); - gtk_box_pack_start( GTK_BOX( hbox ), name, TRUE, TRUE, 0 ); - gtk_widget_show( name ); + name = ui::Entry(); + hbox.pack_start( name, TRUE, TRUE, 0 ); + name.show(); sprintf( buf, "target%i", GetCurrentCam()->GetCam()->numTargets() + 1 ); - gtk_entry_set_text( GTK_ENTRY(name), buf ); + gtk_entry_set_text( GTK_ENTRY( name ), buf ); - // -------------------------- // + // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - frame = gtk_frame_new( "Type" ); - gtk_box_pack_start( GTK_BOX( hbox ), frame, TRUE, TRUE, 0 ); - gtk_widget_show( frame ); + auto frame = ui::Frame( "Type" ); + hbox.pack_start( frame, TRUE, TRUE, 0 ); + frame.show(); - vbox2 = gtk_vbox_new( FALSE, 5 ); - gtk_container_add( GTK_CONTAINER( frame ), vbox2 ); - gtk_container_set_border_width( GTK_CONTAINER (vbox2), 5 ); - gtk_widget_show( vbox2 ); + auto vbox2 = ui::VBox( FALSE, 5 ); + frame.add(vbox2); + gtk_container_set_border_width( GTK_CONTAINER( vbox2 ), 5 ); + vbox2.show(); // -------------------------- // fixed = gtk_radio_button_new_with_label( targetTypeRadio, "Fixed" ); - gtk_box_pack_start( GTK_BOX( vbox2 ), fixed, FALSE, FALSE, 3 ); - gtk_widget_show( fixed ); - targetTypeRadio = gtk_radio_button_group( GTK_RADIO_BUTTON( fixed ) ); + vbox2.pack_start( fixed, FALSE, FALSE, 3 ); + fixed.show(); + targetTypeRadio = gtk_radio_button_get_group( GTK_RADIO_BUTTON( fixed ) ); interpolated = gtk_radio_button_new_with_label( targetTypeRadio, "Interpolated" ); - gtk_box_pack_start( GTK_BOX( vbox2 ), interpolated, FALSE, FALSE, 3 ); - gtk_widget_show( interpolated ); - targetTypeRadio = gtk_radio_button_group( GTK_RADIO_BUTTON( interpolated ) ); + vbox2.pack_start( interpolated, FALSE, FALSE, 3 ); + interpolated.show(); + targetTypeRadio = gtk_radio_button_get_group( GTK_RADIO_BUTTON( interpolated ) ); spline = gtk_radio_button_new_with_label( targetTypeRadio, "Spline" ); - gtk_box_pack_start( GTK_BOX( vbox2 ), spline, FALSE, FALSE, 3 ); - gtk_widget_show( spline ); - targetTypeRadio = gtk_radio_button_group( GTK_RADIO_BUTTON( spline ) ); + vbox2.pack_start( spline, FALSE, FALSE, 3 ); + spline.show(); + targetTypeRadio = gtk_radio_button_get_group( GTK_RADIO_BUTTON( spline ) ); - // -------------------------- // + // -------------------------- // - w = gtk_hseparator_new (); - gtk_box_pack_start (GTK_BOX (vbox), w, FALSE, FALSE, 2); - gtk_widget_show (w); + w = gtk_hseparator_new(); + vbox.pack_start( w, FALSE, FALSE, 2 ); + w.show(); // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - w = gtk_button_new_with_label ("Ok"); - gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0); - gtk_signal_connect (GTK_OBJECT (w), "clicked", GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (eIDOK)); - gtk_widget_show (w); + w = ui::Button( "Ok" ); + hbox.pack_start( w, TRUE, TRUE, 0 ); + w.connect( "clicked", G_CALLBACK( dialog_button_callback ), GINT_TO_POINTER( eIDOK ) ); + w.show(); - GTK_WIDGET_SET_FLAGS( w, GTK_CAN_DEFAULT ); + gtk_widget_set_can_default( w, true ); gtk_widget_grab_default( w ); - w = gtk_button_new_with_label ("Cancel"); - gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0); - gtk_signal_connect (GTK_OBJECT (w), "clicked", GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (eIDCANCEL)); - gtk_widget_show (w); + w = ui::Button( "Cancel" ); + hbox.pack_start( w, TRUE, TRUE, 0 ); + w.connect( "clicked", G_CALLBACK( dialog_button_callback ), GINT_TO_POINTER( eIDCANCEL ) ); + w.show(); ret = eIDCANCEL; // -------------------------- // - gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); - gtk_widget_show (window); - gtk_grab_add (window); + gtk_window_set_position( GTK_WINDOW( window ),GTK_WIN_POS_CENTER ); + window.show(); + gtk_grab_add( window ); bool dialogError = TRUE; - while (dialogError) { + while ( dialogError ) { loop = 1; - while (loop) - gtk_main_iteration (); - + while ( loop ) + gtk_main_iteration(); + dialogError = FALSE; - if( ret == eIDOK ) { - const char *str = gtk_entry_get_text( GTK_ENTRY(name) ); + if ( ret == eIDOK ) { + const char *str = gtk_entry_get_text( GTK_ENTRY( name ) ); - if( str && str[0] ) { + if ( str && str[0] ) { int type; GList *li; - if( gtk_toggle_button_get_active( (GtkToggleButton*)fixed ) ) + if ( gtk_toggle_button_get_active( (GtkToggleButton*)fixed ) ) { type = 0; - else if( gtk_toggle_button_get_active( (GtkToggleButton*)interpolated ) ) + } + else if ( gtk_toggle_button_get_active( (GtkToggleButton*)interpolated ) ) { type = 1; - else if( gtk_toggle_button_get_active( (GtkToggleButton*)spline ) ) + } + else if ( gtk_toggle_button_get_active( (GtkToggleButton*)spline ) ) { type = 2; + } // Add the target - GetCurrentCam()->GetCam()->addTarget( str, static_cast(type) ); + GetCurrentCam()->GetCam()->addTarget( str, static_cast( type ) ); // Rebuild the listbox RefreshPathListCombo(); // Select the last item in the listbox - li = g_list_last( GTK_LIST(GTK_COMBO(g_pPathListCombo)->list)->children ); - gtk_list_select_child( GTK_LIST(GTK_COMBO(g_pPathListCombo)->list), GTK_WIDGET (li->data) ); + li = g_list_last( GTK_LIST( GTK_COMBO( g_pPathListCombo )->list )->children ); + gtk_list_select_child( GTK_LIST( GTK_COMBO( g_pPathListCombo )->list ), li->data ); // If this was the first one, refresh the event list - if( GetCurrentCam()->GetCam()->numTargets() == 1 ) { + if ( GetCurrentCam()->GetCam()->numTargets() == 1 ) { RefreshEventList(); } // Go to editmode Add - gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(g_pEditModeAddRadioButton), TRUE ); + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( g_pEditModeAddRadioButton ), TRUE ); - } else { + } + else { dialogError = TRUE; } } } - gtk_grab_remove (window); - gtk_widget_destroy (window); + gtk_grab_remove( window ); + window.destroy(); - return TRUE; + return TRUE; } static GtkWidget *g_pCamListCombo = NULL; static GtkLabel *g_pCamType = NULL; -void RefreshCamListCombo( void ) -{ - if( !g_pCamListCombo ) - return; +void RefreshCamListCombo( void ){ + if ( !g_pCamListCombo ) { + return; + } - GList *combo_list = (GList*)NULL; - CCamera *combo_cam = firstCam; - if( combo_cam ) { - while( combo_cam ) { + GList *combo_list = (GList*)NULL; + CCamera *combo_cam = firstCam; + if ( combo_cam ) { + while ( combo_cam ) { //combo_list = g_list_append( combo_list, (void *)combo_cam->GetCam()->getName() ); //if( combo_cam->HasBeenSaved() ) { - combo_list = g_list_append( combo_list, (void *)combo_cam->GetFileName() ); + combo_list = g_list_append( combo_list, (void *)combo_cam->GetFileName() ); /*} else { - char buf[128]; - sprintf( buf, "Unsaved Camera %i", combo_cam->GetCamNum() ); - combo_list = g_list_append( combo_list, (void *)buf ); + char buf[128]; + sprintf( buf, "Unsaved Camera %i", combo_cam->GetCamNum() ); + combo_list = g_list_append( combo_list, (void *)buf ); - //combo_list = g_list_append( combo_list, (void *)combo_cam->GetCam()->getName() ); // FIXME: this requires camera.dll to create unique names for new cams - }*/ + //combo_list = g_list_append( combo_list, (void *)combo_cam->GetCam()->getName() ); // FIXME: this requires camera.dll to create unique names for new cams + }*/ combo_cam = combo_cam->GetNext(); } - }else { + } + else { // add one empty string make gtk be quiet combo_list = g_list_append( combo_list, (gpointer)g_cNull ); } - gtk_combo_set_popdown_strings( GTK_COMBO( g_pCamListCombo ), combo_list ); - g_list_free( combo_list ); - - // select our current entry in the list - if( GetCurrentCam() ) { - // stop editing on the current cam - //GetCurrentCam()->GetCam()->stopEdit(); // FIXME: this crashed on creating new cameras, why is it here? - - GList *li = GTK_LIST( GTK_COMBO(g_pCamListCombo)->list)->children; - combo_cam = firstCam; - while( li && combo_cam ) { - if( combo_cam == GetCurrentCam() ) { - gtk_list_select_child( GTK_LIST( GTK_COMBO(g_pCamListCombo)->list ), GTK_WIDGET( li->data ) ); - break; - } - li = li->next; - combo_cam = combo_cam->GetNext(); - } - } - - RefreshPathListCombo(); + gtk_combo_set_popdown_strings( GTK_COMBO( g_pCamListCombo ), combo_list ); + g_list_free( combo_list ); + + // select our current entry in the list + if ( GetCurrentCam() ) { + // stop editing on the current cam + //GetCurrentCam()->GetCam()->stopEdit(); // FIXME: this crashed on creating new cameras, why is it here? + + GList *li = GTK_LIST( GTK_COMBO( g_pCamListCombo )->list )->children; + combo_cam = firstCam; + while ( li && combo_cam ) { + if ( combo_cam == GetCurrentCam() ) { + gtk_list_select_child( GTK_LIST( GTK_COMBO( g_pCamListCombo )->list ), li->data ); + break; + } + li = li->next; + combo_cam = combo_cam->GetNext(); + } + } + + RefreshPathListCombo(); } -static gint ci_camlist_changed( GtkWidget *widget, gpointer data ) -{ - const char *str = gtk_entry_get_text( GTK_ENTRY(widget) ); +static gint ci_camlist_changed( GtkWidget *widget, gpointer data ){ + const char *str = gtk_entry_get_text( GTK_ENTRY( widget ) ); - CCamera *combo_cam = firstCam; - while( str && combo_cam ) { - //if( !strcmp( str, combo_cam->GetCam()->getName() ) ) + CCamera *combo_cam = firstCam; + while ( str && combo_cam ) { + //if( !strcmp( str, combo_cam->GetCam()->getName() ) ) //if( combo_cam->HasBeenSaved() ) { - if( !strcmp( str, combo_cam->GetFileName() ) ) - break; + if ( !strcmp( str, combo_cam->GetFileName() ) ) { + break; + } /*} else { - char buf[128]; - sprintf( buf, "Unsaved Camera %i", combo_cam->GetCamNum() ); - if( !strcmp( str, buf ) ) - //if( !strcmp( str, combo_cam->GetCam()->getName() ) ) - break; - }*/ - - combo_cam = combo_cam->GetNext(); - } + char buf[128]; + sprintf( buf, "Unsaved Camera %i", combo_cam->GetCamNum() ); + if( !strcmp( str, buf ) ) + //if( !strcmp( str, combo_cam->GetCam()->getName() ) ) + break; + }*/ + + combo_cam = combo_cam->GetNext(); + } - SetCurrentCam( combo_cam ); + SetCurrentCam( combo_cam ); - if( g_pCamType ) { - if( GetCurrentCam() ) { + if ( g_pCamType ) { + if ( GetCurrentCam() ) { // Fill in our widgets fields for this camera char buf[128]; // Set Name - gtk_entry_set_text( GTK_ENTRY(g_pCamName), GetCurrentCam()->GetCam()->getName() ); + gtk_entry_set_text( GTK_ENTRY( g_pCamName ), GetCurrentCam()->GetCam()->getName() ); // Set type gtk_label_set_text( g_pCamType, GetCurrentCam()->GetCam()->getPositionObj()->typeStr() ); // Set duration sprintf( buf, "%.2f", GetCurrentCam()->GetCam()->getBaseTime() ); - gtk_entry_set_text( GTK_ENTRY(g_pSecondsEntry), buf ); + gtk_entry_set_text( GTK_ENTRY( g_pSecondsEntry ), buf ); sprintf( buf, "%.2f", GetCurrentCam()->GetCam()->getTotalTime() ); gtk_label_set_text( g_pCurrentTime, "0.00" ); @@ -722,15 +730,16 @@ static gint ci_camlist_changed( GtkWidget *widget, gpointer data ) gtk_adjustment_set_value( g_pTimeLine, 0.f ); g_pTimeLine->upper = GetCurrentCam()->GetCam()->getTotalTime() * 1000; - } else { + } + else { // Set Name - gtk_entry_set_text( GTK_ENTRY(g_pCamName), "" ); + gtk_entry_set_text( GTK_ENTRY( g_pCamName ), "" ); // Set type gtk_label_set_text( g_pCamType, "" ); // Set duration - gtk_entry_set_text( GTK_ENTRY(g_pSecondsEntry), "30.00" ); + gtk_entry_set_text( GTK_ENTRY( g_pSecondsEntry ), "30.00" ); gtk_label_set_text( g_pCurrentTime, "0.00" ); gtk_label_set_text( g_pTotalTime, "30.00" ); @@ -743,50 +752,51 @@ static gint ci_camlist_changed( GtkWidget *widget, gpointer data ) RefreshEventList(); } - RefreshPathListCombo(); + RefreshPathListCombo(); - // start edit mode - g_iActiveTarget = -1; - if( g_pCameraInspectorWnd && GTK_WIDGET_VISIBLE( g_pCameraInspectorWnd ) ) - DoStartEdit( GetCurrentCam() ); + // start edit mode + g_iActiveTarget = -1; + if ( g_pCameraInspectorWnd && gtk_widget_get_visible( g_pCameraInspectorWnd ) ) { + DoStartEdit( GetCurrentCam() ); + } - return TRUE; + return TRUE; } enum camEventType { EVENT_NA = 0x00, - EVENT_WAIT, // - EVENT_TARGETWAIT, // - EVENT_SPEED, // - EVENT_TARGET, // char(name) - EVENT_SNAPTARGET, // - EVENT_FOV, // int(time), int(targetfov) - EVENT_CMD, // - EVENT_TRIGGER, // - EVENT_STOP, // - EVENT_CAMERA, // - EVENT_FADEOUT, // int(time) - EVENT_FADEIN, // int(time) - EVENT_FEATHER, // - EVENT_COUNT + EVENT_WAIT, // + EVENT_TARGETWAIT, // + EVENT_SPEED, // + EVENT_TARGET, // char(name) + EVENT_SNAPTARGET, // + EVENT_FOV, // int(time), int(targetfov) + EVENT_CMD, // + EVENT_TRIGGER, // + EVENT_STOP, // + EVENT_CAMERA, // + EVENT_FADEOUT, // int(time) + EVENT_FADEIN, // int(time) + EVENT_FEATHER, // + EVENT_COUNT }; // { requires parameters, enabled } const bool camEventFlags[][2] = { - { false, false }, - { false, true }, - { false, false }, - { false, false }, - { true, true }, - { false, false }, - { true, true }, - { false, false }, - { false, false }, - { false, true }, - { true, true }, - { true, true }, - { true, true }, - { false, true }, + { false, false }, + { false, true }, + { false, false }, + { false, false }, + { true, true }, + { false, false }, + { true, true }, + { false, false }, + { false, false }, + { false, true }, + { true, true }, + { true, true }, + { true, true }, + { false, true }, }; const char *camEventStr[] = { @@ -800,164 +810,165 @@ const char *camEventStr[] = { "Run Script", "Trigger", "Stop", - "Change to Camera (or ", + "Change to Camera (or ", "Fade Out ", "Fade In ", "Feather" }; -static gint ci_add( GtkWidget *widget, gpointer data ) -{ - GtkWidget *window, *w, *vbox, *vbox2, *hbox, *frame, *parameters; +static gint ci_add( GtkWidget *widget, gpointer data ){ + GtkWidget *w, *hbox, *parameters; GtkWidget *eventWidget[EVENT_COUNT]; EMessageBoxReturn ret; - int i, loop = 1; + int i, loop = 1; GSList *eventTypeRadio = NULL; // char buf[128]; - if( !GetCurrentCam() ) + if ( !GetCurrentCam() ) { return TRUE; + } // create the window - window = gtk_window_new( GTK_WINDOW_TOPLEVEL ); - gtk_window_set_title( GTK_WINDOW (window), "Add Event" ); - gtk_signal_connect( GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC( dialog_delete_callback ), NULL ); - gtk_signal_connect( GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC( gtk_widget_destroy ), NULL ); - gtk_window_set_transient_for( GTK_WINDOW( window ), GTK_WINDOW( g_pCameraInspectorWnd ) ); + auto window = ui::Window( ui::window_type::TOP ); + gtk_window_set_title( GTK_WINDOW( window ), "Add Event" ); + window.connect( "delete_event", G_CALLBACK( dialog_delete_callback ), NULL ); + window.connect( "destroy", G_CALLBACK( gtk_widget_destroy ), NULL ); + gtk_window_set_transient_for( GTK_WINDOW( window ), GTK_WINDOW( g_pCameraInspectorWnd ) ); - g_object_set_data (G_OBJECT (window), "loop", &loop); - g_object_set_data (G_OBJECT (window), "ret", &ret); + g_object_set_data( G_OBJECT( window ), "loop", &loop ); + g_object_set_data( G_OBJECT( window ), "ret", &ret ); - gtk_widget_realize (window); + gtk_widget_realize( window ); // fill the window - vbox = gtk_vbox_new( FALSE, 5 ); - gtk_container_add (GTK_CONTAINER (window), vbox); - gtk_widget_show( vbox ); + auto vbox = ui::VBox( FALSE, 5 ); + window.add(vbox); + vbox.show(); - // -------------------------- // + // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - frame = gtk_frame_new( "Type" ); - gtk_box_pack_start( GTK_BOX( hbox ), frame, TRUE, TRUE, 0 ); - gtk_widget_show( frame ); + auto frame = ui::Frame( "Type" ); + hbox.pack_start( frame, TRUE, TRUE, 0 ); + frame.show(); - vbox2 = gtk_vbox_new( FALSE, 5 ); - gtk_container_add( GTK_CONTAINER( frame ), vbox2 ); - gtk_container_set_border_width( GTK_CONTAINER (vbox2), 5 ); - gtk_widget_show( vbox2 ); + auto vbox2 = ui::VBox( FALSE, 5 ); + frame.add(vbox2); + gtk_container_set_border_width( GTK_CONTAINER( vbox2 ), 5 ); + vbox2.show(); // -------------------------- // - for( i = 1; i < EVENT_COUNT; i++ ) { + for ( i = 1; i < EVENT_COUNT; i++ ) { eventWidget[i] = gtk_radio_button_new_with_label( eventTypeRadio, camEventStr[i] ); - gtk_box_pack_start( GTK_BOX( vbox2 ), eventWidget[i], FALSE, FALSE, 3 ); - gtk_widget_show( eventWidget[i] ); - eventTypeRadio = gtk_radio_button_group( GTK_RADIO_BUTTON( eventWidget[i] ) ); - if( camEventFlags[i][1] == false ) - gtk_widget_set_sensitive (eventWidget[i], FALSE); + vbox2.pack_start( eventWidget[i], FALSE, FALSE, 3 ); + eventWidget[i].show(); + eventTypeRadio = gtk_radio_button_get_group( GTK_RADIO_BUTTON( eventWidget[i] ) ); + if ( camEventFlags[i][1] == false ) { + gtk_widget_set_sensitive( eventWidget[i], FALSE ); + } } - // -------------------------- // + // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - w = gtk_label_new( "Parameters:" ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( "Parameters:" ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); - parameters = gtk_entry_new(); - gtk_box_pack_start( GTK_BOX( hbox ), parameters, TRUE, TRUE, 0 ); - gtk_widget_show( parameters ); + parameters = ui::Entry(); + hbox.pack_start( parameters, TRUE, TRUE, 0 ); + parameters.show(); - // -------------------------- // + // -------------------------- // - w = gtk_hseparator_new (); - gtk_box_pack_start (GTK_BOX (vbox), w, FALSE, FALSE, 2); - gtk_widget_show (w); + w = gtk_hseparator_new(); + vbox.pack_start( w, FALSE, FALSE, 2 ); + w.show(); // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - w = gtk_button_new_with_label ("Ok"); - gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0); - gtk_signal_connect (GTK_OBJECT (w), "clicked", GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (eIDOK)); - gtk_widget_show (w); + w = ui::Button( "Ok" ); + hbox.pack_start( w, TRUE, TRUE, 0 ); + w.connect( "clicked", G_CALLBACK( dialog_button_callback ), GINT_TO_POINTER( eIDOK ) ); + w.show(); - GTK_WIDGET_SET_FLAGS( w, GTK_CAN_DEFAULT ); + gtk_widget_set_can_default( w, true ); gtk_widget_grab_default( w ); - w = gtk_button_new_with_label ("Cancel"); - gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0); - gtk_signal_connect (GTK_OBJECT (w), "clicked", GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (eIDCANCEL)); - gtk_widget_show (w); + w = ui::Button( "Cancel" ); + hbox.pack_start( w, TRUE, TRUE, 0 ); + w.connect( "clicked", G_CALLBACK( dialog_button_callback ), GINT_TO_POINTER( eIDCANCEL ) ); + w.show(); ret = eIDCANCEL; // -------------------------- // - gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); - gtk_widget_show (window); - gtk_grab_add (window); + gtk_window_set_position( GTK_WINDOW( window ),GTK_WIN_POS_CENTER ); + window.show(); + gtk_grab_add( window ); bool dialogError = TRUE; - while (dialogError) { + while ( dialogError ) { loop = 1; - while (loop) - gtk_main_iteration (); - + while ( loop ) + gtk_main_iteration(); + dialogError = FALSE; - if( ret == eIDOK ) { - const char *str = gtk_entry_get_text( GTK_ENTRY(parameters) ); + if ( ret == eIDOK ) { + const char *str = gtk_entry_get_text( GTK_ENTRY( parameters ) ); - if( !camEventFlags[i][0] || ( str && str[0] ) ) { + if ( !camEventFlags[i][0] || ( str && str[0] ) ) { int type = 0; // GList *li; - for( type = 1; type < EVENT_COUNT; type++ ) { - if( gtk_toggle_button_get_active( (GtkToggleButton*)eventWidget[type] ) ) + for ( type = 1; type < EVENT_COUNT; type++ ) { + if ( gtk_toggle_button_get_active( (GtkToggleButton*)eventWidget[type] ) ) { break; + } } // Add the event - GetCurrentCam()->GetCam()->addEvent( static_cast(type), str, (long)(g_pTimeLine->value) ); + GetCurrentCam()->GetCam()->addEvent( static_cast( type ), str, (long)( g_pTimeLine->value ) ); // Refresh event list RefreshEventList(); - } else { + } + else { dialogError = TRUE; } } } - gtk_grab_remove (window); - gtk_widget_destroy (window); + gtk_grab_remove( window ); + window.destroy(); - return TRUE; + return TRUE; } -static gint ci_del( GtkWidget *widget, gpointer data ) -{ +static gint ci_del( GtkWidget *widget, gpointer data ){ // TODO: add support to splines lib - if( GetCurrentCam() && GTK_CLIST(g_pEventsList)->focus_row >= 0 ) { - GetCurrentCam()->GetCam()->removeEvent( GTK_CLIST(g_pEventsList)->focus_row ); + if ( GetCurrentCam() && GTK_CLIST( g_pEventsList )->focus_row >= 0 ) { + GetCurrentCam()->GetCam()->removeEvent( GTK_CLIST( g_pEventsList )->focus_row ); // Refresh event list RefreshEventList(); } - return TRUE; + return TRUE; } -static gint ci_timeline_changed( GtkAdjustment *adjustment ) -{ +static gint ci_timeline_changed( GtkAdjustment *adjustment ){ char buf[128]; sprintf( buf, "%.2f", adjustment->value / 1000.f ); @@ -966,391 +977,390 @@ static gint ci_timeline_changed( GtkAdjustment *adjustment ) // FIXME: this will never work completely perfect. Startcamera calls buildcamera, which sets all events to 'nottriggered'. // So if you have a wait at the end of the path, this will go to nontriggered immediately when you go over it and the camera // will have no idea where on the track it should be. - if( GetCurrentCam() && gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(g_pTrackCamera) ) ) { + if ( GetCurrentCam() && gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( g_pTrackCamera ) ) ) { float fov; - vec3_t origin = { 0.0f, 0.0f, 0.0f }, dir = { 0.0f, 0.0f, 0.0f}, angles; + vec3_t origin = { 0.0f, 0.0f, 0.0f }, dir = { 0.0f, 0.0f, 0.0f}, angles; - GetCurrentCam()->GetCam()->startCamera( 0 ); + GetCurrentCam()->GetCam()->startCamera( 0 ); - GetCurrentCam()->GetCam()->getCameraInfo( (long)(adjustment->value), &origin[0], &dir[0], &fov ); - VectorSet( angles, asin (dir[2])*180/3.14159, atan2 (dir[1], dir[0])*180/3.14159, 0 ); - g_CameraTable.m_pfnSetCamera( origin, angles ); - } + GetCurrentCam()->GetCam()->getCameraInfo( (long)( adjustment->value ), &origin[0], &dir[0], &fov ); + VectorSet( angles, asin( dir[2] ) * 180 / 3.14159, atan2( dir[1], dir[0] ) * 180 / 3.14159, 0 ); + g_CameraTable.m_pfnSetCamera( origin, angles ); + } return TRUE; } -GtkWidget *CreateCameraInspectorDialog( void ) -{ - GtkWidget *window, *w, *vbox, *hbox, *table, *frame; +GtkWidget *CreateCameraInspectorDialog( void ){ + GtkWidget *w, *hbox; - // create the window - window = gtk_window_new( GTK_WINDOW_TOPLEVEL ); - gtk_window_set_title( GTK_WINDOW (window), "Camera Inspector" ); - gtk_signal_connect( GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC( ci_close ), NULL ); - gtk_signal_connect( GTK_OBJECT (window), "expose_event", GTK_SIGNAL_FUNC( ci_expose ), NULL ); - // gtk_signal_connect( GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC( gtk_widget_destroy ), NULL ); - gtk_window_set_transient_for( GTK_WINDOW( window ), GTK_WINDOW( g_pRadiantWnd ) ); + // create the window + auto window = ui::Window( ui::window_type::TOP ); + gtk_window_set_title( GTK_WINDOW( window ), "Camera Inspector" ); + window.connect( "delete_event", G_CALLBACK( ci_close ), NULL ); + window.connect( "expose_event", G_CALLBACK( ci_expose ), NULL ); + // window.connect( "destroy", G_CALLBACK( gtk_widget_destroy ), NULL ); + gtk_window_set_transient_for( GTK_WINDOW( window ), GTK_WINDOW( g_pRadiantWnd ) ); - // don't use show, as you don't want to have it displayed on startup ;-) - gtk_widget_realize( window ); + // don't use show, as you don't want to have it displayed on startup ;-) + gtk_widget_realize( window ); - // fill the window + // fill the window - // the table - // -------------------------- // + // the table + // -------------------------- // - table = gtk_table_new( 3, 2, FALSE ); - gtk_widget_show( table ); - gtk_container_add( GTK_CONTAINER( window ), table ); - gtk_container_set_border_width( GTK_CONTAINER( table ), 5 ); - gtk_table_set_row_spacings( GTK_TABLE( table ), 5 ); - gtk_table_set_col_spacings( GTK_TABLE( table ), 5 ); + auto table = ui::Table( 3, 2, FALSE ); + table.show(); + window.add(table); + gtk_container_set_border_width( GTK_CONTAINER( table ), 5 ); + gtk_table_set_row_spacings( GTK_TABLE( table ), 5 ); + gtk_table_set_col_spacings( GTK_TABLE( table ), 5 ); - // the properties column + // the properties column // -------------------------- // - vbox = gtk_vbox_new( FALSE, 5 ); - gtk_widget_show( vbox ); - gtk_table_attach( GTK_TABLE( table ), vbox, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_EXPAND|GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0 ); + vbox = ui::VBox( FALSE, 5 ); + vbox.show(); + gtk_table_attach( GTK_TABLE( table ), vbox, 0, 1, 0, 1, + (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), + (GtkAttachOptions) ( GTK_FILL ), 0, 0 ); - // -------------------------- // + // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - w = gtk_label_new( "File:" ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( "File:" ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); - g_pCamListCombo = gtk_combo_new(); - gtk_box_pack_start (GTK_BOX( hbox ), g_pCamListCombo, TRUE, TRUE, 0); - gtk_widget_show( g_pCamListCombo ); + g_pCamListCombo = gtk_combo_new(); + hbox.pack_start( g_pCamListCombo, TRUE, TRUE, 0 ); + g_pCamListCombo.show(); - // -------------------------- // + // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - w = gtk_label_new( "Name:" ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( "Name:" ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); - g_pCamName = gtk_entry_new(); - gtk_box_pack_start( GTK_BOX( hbox ), g_pCamName, FALSE, FALSE, 0 ); - gtk_widget_show( g_pCamName ); + g_pCamName = ui::Entry(); + hbox.pack_start( g_pCamName, FALSE, FALSE, 0 ); + g_pCamName.show(); - w = gtk_label_new( "Type: " ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( "Type: " ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); - w = gtk_label_new( "" ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( "" ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); g_pCamType = GTK_LABEL( w ); - RefreshCamListCombo(); + RefreshCamListCombo(); - gtk_entry_set_editable( GTK_ENTRY( GTK_COMBO(g_pCamListCombo)->entry ), FALSE ); - gtk_signal_connect( GTK_OBJECT(GTK_COMBO(g_pCamListCombo)->entry), "changed", GTK_SIGNAL_FUNC( ci_camlist_changed ), NULL ); + gtk_editable_set_editable( GTK_EDITABLE( GTK_COMBO( g_pCamListCombo )->entry ), FALSE ); + ( GTK_COMBO( g_pCamListCombo )->entry ).connect( "changed", G_CALLBACK( ci_camlist_changed ), NULL ); - // -------------------------- // + // -------------------------- // - frame = gtk_frame_new( "Path and Target editing" ); - gtk_widget_show( frame ); - gtk_table_attach( GTK_TABLE( table ), frame, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_EXPAND|GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0 ); + auto frame = ui::Frame( "Path and Target editing" ); + frame.show(); + gtk_table_attach( GTK_TABLE( table ), frame, 0, 1, 1, 2, + (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), + (GtkAttachOptions) ( GTK_FILL ), 0, 0 ); - vbox = gtk_vbox_new( FALSE, 5 ); - gtk_container_add( GTK_CONTAINER( frame ), vbox ); - gtk_container_set_border_width( GTK_CONTAINER (vbox), 5 ); - gtk_widget_show( vbox ); + auto vbox = ui::VBox( FALSE, 5 ); + frame.add(vbox); + gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 ); + vbox.show(); - // -------------------------- // + // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - w = gtk_label_new( "Edit:" ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( "Edit:" ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); - g_pPathListCombo = gtk_combo_new(); - gtk_box_pack_start (GTK_BOX( hbox ), g_pPathListCombo, TRUE, TRUE, 0); - gtk_widget_show( g_pPathListCombo ); + g_pPathListCombo = gtk_combo_new(); + hbox.pack_start( g_pPathListCombo, TRUE, TRUE, 0 ); + g_pPathListCombo.show(); - RefreshPathListCombo(); + RefreshPathListCombo(); - gtk_entry_set_editable( GTK_ENTRY( GTK_COMBO(g_pPathListCombo)->entry ), FALSE ); - gtk_signal_connect( GTK_OBJECT(GTK_COMBO(g_pPathListCombo)->entry), "changed", GTK_SIGNAL_FUNC( ci_pathlist_changed ), NULL ); + gtk_editable_set_editable( GTK_EDITABLE( GTK_COMBO( g_pPathListCombo )->entry ), FALSE ); + ( GTK_COMBO( g_pPathListCombo )->entry ).connect( "changed", G_CALLBACK( ci_pathlist_changed ), NULL ); - // -------------------------- // + // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); g_pEditModeEditRadioButton = gtk_radio_button_new_with_label( g_pEditTypeRadio, "Edit Points" ); - gtk_box_pack_start( GTK_BOX( hbox ), g_pEditModeEditRadioButton, FALSE, FALSE, 3 ); - gtk_widget_show( g_pEditModeEditRadioButton ); - g_pEditTypeRadio = gtk_radio_button_group( GTK_RADIO_BUTTON( g_pEditModeEditRadioButton ) ); + hbox.pack_start( g_pEditModeEditRadioButton, FALSE, FALSE, 3 ); + g_pEditModeEditRadioButton.show(); + g_pEditTypeRadio = gtk_radio_button_get_group( GTK_RADIO_BUTTON( g_pEditModeEditRadioButton ) ); - gtk_signal_connect( GTK_OBJECT( g_pEditModeEditRadioButton ), "clicked", GTK_SIGNAL_FUNC( ci_editmode_edit ), NULL ); + g_pEditModeEditRadioButton.connect( "clicked", G_CALLBACK( ci_editmode_edit ), NULL ); g_pEditModeAddRadioButton = gtk_radio_button_new_with_label( g_pEditTypeRadio, "Add Points" ); - gtk_box_pack_start( GTK_BOX( hbox ), g_pEditModeAddRadioButton, FALSE, FALSE, 3 ); - gtk_widget_show( g_pEditModeAddRadioButton ); - g_pEditTypeRadio = gtk_radio_button_group( GTK_RADIO_BUTTON( g_pEditModeAddRadioButton ) ); + hbox.pack_start( g_pEditModeAddRadioButton, FALSE, FALSE, 3 ); + g_pEditModeAddRadioButton.show(); + g_pEditTypeRadio = gtk_radio_button_get_group( GTK_RADIO_BUTTON( g_pEditModeAddRadioButton ) ); - gtk_signal_connect( GTK_OBJECT( g_pEditModeAddRadioButton ), "clicked", GTK_SIGNAL_FUNC( ci_editmode_add ), NULL ); + g_pEditModeAddRadioButton.connect( "clicked", G_CALLBACK( ci_editmode_add ), NULL ); // see if we should use a different default - if( g_iEditMode == 1 ) { + if ( g_iEditMode == 1 ) { // Go to editmode Add - gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(g_pEditModeAddRadioButton), TRUE ); + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( g_pEditModeAddRadioButton ), TRUE ); } - w = gtk_label_new( "Type: " ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( "Type: " ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); - w = gtk_label_new( "" ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( "" ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); g_pPathType = GTK_LABEL( w ); - // -------------------------- // + // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - w = gtk_button_new_with_label( "Rename..." ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, TRUE, 0); - gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_rename ), NULL ); - gtk_widget_show( w ); + w = ui::Button( "Rename..." ); + hbox.pack_start( w, FALSE, TRUE, 0 ); + w.connect( "clicked", G_CALLBACK( ci_rename ), NULL ); + w.show(); - w = gtk_button_new_with_label( "Add Target..." ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, TRUE, 0); - gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_add_target ), NULL ); - gtk_widget_show( w ); + w = ui::Button( "Add Target..." ); + hbox.pack_start( w, FALSE, TRUE, 0 ); + w.connect( "clicked", G_CALLBACK( ci_add_target ), NULL ); + w.show(); // not available in splines library /*w = gtk_button_new_with_label( "Delete Selected" ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, TRUE, 0); - gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_delete_selected ), NULL ); - gtk_widget_show( w ); + hbox.pack_start( w, FALSE, TRUE, 0); + w.connect( "clicked", G_CALLBACK( ci_delete_selected ), NULL ); + w.show(); - w = gtk_button_new_with_label( "Select All" ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, TRUE, 0); - gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_select_all ), NULL ); - gtk_widget_show( w );*/ + w = gtk_button_new_with_label( "Select All" ); + hbox.pack_start( w, FALSE, TRUE, 0); + w.connect( "clicked", G_CALLBACK( ci_select_all ), NULL ); + w.show();*/ - // -------------------------- // + // -------------------------- // - frame = gtk_frame_new( "Time" ); - gtk_widget_show( frame ); - gtk_table_attach( GTK_TABLE( table ), frame, 0, 1, 2, 3, - (GtkAttachOptions) (GTK_EXPAND|GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0 ); + frame = ui::Frame( "Time" ); + frame.show(); + gtk_table_attach( GTK_TABLE( table ), frame, 0, 1, 2, 3, + (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), + (GtkAttachOptions) ( GTK_FILL ), 0, 0 ); - vbox = gtk_vbox_new( FALSE, 5 ); - gtk_container_add( GTK_CONTAINER( frame ), vbox ); - gtk_container_set_border_width( GTK_CONTAINER (vbox), 5 ); - gtk_widget_show( vbox ); + vbox = ui::VBox( FALSE, 5 ); + frame.add(vbox); + gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 ); + vbox.show(); - // -------------------------- // + // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - w = gtk_label_new( "Length (seconds):" ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( "Length (seconds):" ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); - g_pSecondsEntry = gtk_entry_new(); - gtk_box_pack_start( GTK_BOX( hbox ), g_pSecondsEntry, FALSE, FALSE, 0 ); - gtk_widget_show( g_pSecondsEntry ); + g_pSecondsEntry = ui::Entry(); + hbox.pack_start( g_pSecondsEntry, FALSE, FALSE, 0 ); + g_pSecondsEntry.show(); - // -------------------------- // + // -------------------------- // - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - w = gtk_label_new( "Current Time: " ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( "Current Time: " ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); - w = gtk_label_new( "0.00" ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( "0.00" ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); g_pCurrentTime = GTK_LABEL( w ); - w = gtk_label_new( " of " ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( " of " ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); - w = gtk_label_new( "0.00" ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + w = ui::Label( "0.00" ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); g_pTotalTime = GTK_LABEL( w ); - // -------------------------- // - - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); - - g_pTimeLine = GTK_ADJUSTMENT( gtk_adjustment_new( 0, 0, 30000, 100, 250, 0 ) ); - gtk_signal_connect( GTK_OBJECT(g_pTimeLine), "value_changed", GTK_SIGNAL_FUNC( ci_timeline_changed ), NULL ); - w = gtk_hscale_new( g_pTimeLine ); - gtk_box_pack_start( GTK_BOX( hbox ), w, TRUE, TRUE, 0 ); - gtk_widget_show( w ); - gtk_scale_set_draw_value( GTK_SCALE( w ), FALSE ); - - // -------------------------- // - - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); - - g_pTrackCamera = gtk_check_button_new_with_label( "Track Camera" ); - gtk_box_pack_start( GTK_BOX( hbox ), g_pTrackCamera, FALSE, FALSE, 0 ); - gtk_widget_show( g_pTrackCamera ); + // -------------------------- // - // -------------------------- // + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + g_pTimeLine = ui::Adjustment( 0, 0, 30000, 100, 250, 0 ); + g_pTimeLine.connect( "value_changed", G_CALLBACK( ci_timeline_changed ), NULL ); + w = ui::HScale( g_pTimeLine ); + hbox.pack_start( w, TRUE, TRUE, 0 ); + w.show(); + gtk_scale_set_draw_value( GTK_SCALE( w ), FALSE ); - w = gtk_label_new( "Events:" ); - gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); - gtk_widget_show( w ); + // -------------------------- // - // -------------------------- // + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); - gtk_widget_show( hbox ); + g_pTrackCamera = ui::CheckButton( "Track Camera" ); + hbox.pack_start( g_pTrackCamera, FALSE, FALSE, 0 ); + g_pTrackCamera.show(); - w = gtk_scrolled_window_new( NULL, NULL ); - gtk_widget_set_usize( w, 0, 150 ); - gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( w ), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); - gtk_box_pack_start( GTK_BOX( hbox ), w, TRUE, TRUE, 0 ); - gtk_widget_show( w ); + // -------------------------- // - g_pEventsList = gtk_clist_new( 3 ); - gtk_container_add( GTK_CONTAINER(w), g_pEventsList); - //gtk_signal_connect( GTK_OBJECT(g_pEventsList), "select_row", GTK_SIGNAL_FUNC (proplist_select_row), NULL); - gtk_clist_set_selection_mode( GTK_CLIST(g_pEventsList), GTK_SELECTION_BROWSE ); - gtk_clist_column_titles_hide( GTK_CLIST(g_pEventsList) ); - gtk_clist_set_column_auto_resize( GTK_CLIST(g_pEventsList), 0, TRUE ); - gtk_clist_set_column_auto_resize( GTK_CLIST(g_pEventsList), 1, TRUE ); - gtk_clist_set_column_auto_resize( GTK_CLIST(g_pEventsList), 2, TRUE ); - gtk_widget_show( g_pEventsList ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); - vbox = gtk_vbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( hbox ), vbox, FALSE, FALSE, 0 ); - gtk_widget_show( vbox ); + w = ui::Label( "Events:" ); + hbox.pack_start( w, FALSE, FALSE, 0 ); + w.show(); - w = gtk_button_new_with_label( "Add..." ); - gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); - gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_add ), NULL ); - gtk_widget_show( w ); + // -------------------------- // - w = gtk_button_new_with_label( "Del" ); - gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); - gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_del ), NULL ); - gtk_widget_show( w ); + hbox = ui::HBox( FALSE, 5 ); + vbox.pack_start( hbox, FALSE, FALSE, 0 ); + hbox.show(); + + auto scr = w = ui::ScrolledWindow(); + gtk_widget_set_size_request( w, 0, 150 ); + gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( w ), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); + hbox.pack_start( w, TRUE, TRUE, 0 ); + w.show(); + + g_pEventsList = gtk_clist_new( 3 ); + scr.add(g_pEventsList); + //g_pEventsList.connect( "select_row", G_CALLBACK (proplist_select_row), NULL); + gtk_clist_set_selection_mode( GTK_CLIST( g_pEventsList ), GTK_SELECTION_BROWSE ); + gtk_clist_column_titles_hide( GTK_CLIST( g_pEventsList ) ); + gtk_clist_set_column_auto_resize( GTK_CLIST( g_pEventsList ), 0, TRUE ); + gtk_clist_set_column_auto_resize( GTK_CLIST( g_pEventsList ), 1, TRUE ); + gtk_clist_set_column_auto_resize( GTK_CLIST( g_pEventsList ), 2, TRUE ); + g_pEventsList.show(); + + vbox = ui::VBox( FALSE, 5 ); + hbox.pack_start( vbox, FALSE, FALSE, 0 ); + vbox.show(); + + w = ui::Button( "Add..." ); + vbox.pack_start( w, FALSE, FALSE, 0 ); + w.connect( "clicked", G_CALLBACK( ci_add ), NULL ); + w.show(); + + w = ui::Button( "Del" ); + vbox.pack_start( w, FALSE, FALSE, 0 ); + w.connect( "clicked", G_CALLBACK( ci_del ), NULL ); + w.show(); - // -------------------------- // + // -------------------------- // - /*/ - | - | - | - */ + /*/ + | + | + | + * / - // the buttons column - // -------------------------- // + // the buttons column + // -------------------------- // - vbox = gtk_vbox_new( FALSE, 5 ); - gtk_widget_show( vbox ); - gtk_table_attach( GTK_TABLE( table ), vbox, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0 ); + vbox = gtk_vbox_new( FALSE, 5 ); + vbox.show(); + gtk_table_attach( GTK_TABLE( table ), vbox, 1, 2, 0, 1, + (GtkAttachOptions) ( GTK_FILL ), + (GtkAttachOptions) ( GTK_FILL ), 0, 0 ); w = gtk_button_new_with_label( "New..." ); - gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); - gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_new ), NULL ); - gtk_widget_show( w ); + vbox.pack_start( w, FALSE, FALSE, 0 ); + w.connect( "clicked", G_CALLBACK( ci_new ), NULL ); + w.show(); w = gtk_button_new_with_label( "Load..." ); - gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); - gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_load ), NULL ); - gtk_widget_show( w ); + vbox.pack_start( w, FALSE, FALSE, 0 ); + w.connect( "clicked", G_CALLBACK( ci_load ), NULL ); + w.show(); - // -------------------------- // + // -------------------------- // - vbox = gtk_vbox_new( FALSE, 5 ); - gtk_widget_show( vbox ); - gtk_table_attach( GTK_TABLE( table ), vbox, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0 ); + vbox = gtk_vbox_new( FALSE, 5 ); + vbox.show(); + gtk_table_attach( GTK_TABLE( table ), vbox, 1, 2, 1, 2, + (GtkAttachOptions) ( GTK_FILL ), + (GtkAttachOptions) ( GTK_FILL ), 0, 0 ); w = gtk_button_new_with_label( "Save..." ); - gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); - gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_save ), NULL ); - gtk_widget_show( w ); + vbox.pack_start( w, FALSE, FALSE, 0 ); + w.connect( "clicked", G_CALLBACK( ci_save ), NULL ); + w.show(); w = gtk_button_new_with_label( "Unload" ); - gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); - gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_unload ), NULL ); - gtk_widget_show( w ); - - hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, TRUE, TRUE, 0 ); - gtk_widget_show( hbox ); - - w = gtk_button_new_with_label( "Apply" ); - gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); - gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_apply ), NULL ); - gtk_widget_show( w ); + vbox.pack_start( w, FALSE, FALSE, 0 ); + w.connect( "clicked", G_CALLBACK( ci_unload ), NULL ); + w.show(); + + hbox = gtk_hbox_new( FALSE, 5 ); + vbox.pack_start( hbox, TRUE, TRUE, 0 ); + hbox.show(); + + w = gtk_button_new_with_label( "Apply" ); + vbox.pack_start( w, FALSE, FALSE, 0 ); + w.connect( "clicked", G_CALLBACK( ci_apply ), NULL ); + w.show(); w = gtk_button_new_with_label( "Preview" ); - gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); - gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_preview ), NULL ); - gtk_widget_show( w ); + vbox.pack_start( w, FALSE, FALSE, 0 ); + w.connect( "clicked", G_CALLBACK( ci_preview ), NULL ); + w.show(); - // -------------------------- // + // -------------------------- // - vbox = gtk_vbox_new( FALSE, 5 ); - gtk_widget_show( vbox ); - gtk_table_attach( GTK_TABLE( table ), vbox, 1, 2, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0 ); + vbox = gtk_vbox_new( FALSE, 5 ); + vbox.show(); + gtk_table_attach( GTK_TABLE( table ), vbox, 1, 2, 2, 3, + (GtkAttachOptions) ( GTK_FILL ), + (GtkAttachOptions) ( GTK_FILL ), 0, 0 ); hbox = gtk_hbox_new( FALSE, 5 ); - gtk_box_pack_start( GTK_BOX( vbox ), hbox, TRUE, TRUE, 0 ); - gtk_widget_show( hbox ); + vbox.pack_start( hbox, TRUE, TRUE, 0 ); + hbox.show(); w = gtk_button_new_with_label( "Close" ); - gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); - gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_close ), NULL ); - GTK_WIDGET_SET_FLAGS( w, GTK_CAN_DEFAULT ); + vbox.pack_start( w, FALSE, FALSE, 0 ); + w.connect( "clicked", G_CALLBACK( ci_close ), NULL ); + gtk_widget_set_can_default( w, true ); gtk_widget_grab_default( w ); - gtk_widget_show( w ); + w.show(); - // -------------------------- // + // -------------------------- // - return window; + return window; }