void ExportManager::SetDeleteWithoutExportEvents(int _deltaTime, DWORD _now) { exp = NULL; deltaTime = _deltaTime; now = _now; RefreshEventList(); }
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 ); // Refresh event list RefreshEventList(); } return TRUE; }
bool ExportManager::Export(IExport::ExportType type) { exp = NULL; UINT cp; std::wstring encoding; bool isBin = false; switch(type) { case IExport::Txt: exp = new TxtExport(); cp = Options::instance->codepageTxt; encoding = Options::instance->encodingTxt; isFlat = true; break; case IExport::PlainHtml: exp = new PlainHtmlExport(); cp = Options::instance->codepageHtml1; encoding = Options::instance->encodingHtml1; break; case IExport::RichHtml: exp = new RichHtmlExport(); cp = Options::instance->codepageHtml2; encoding = Options::instance->encodingHtml2; break; case IExport::Binary: exp = new BinaryExport(); cp = CP_UTF8; encoding = L"UTF8"; isFlat = true; oldOnTop = true; isBin = true; break; case IExport::Dat: exp = new DatExport(); cp = CP_UTF8; encoding = L"UTF8"; isFlat = true; oldOnTop = true; isBin = true; break; default: return false; } std::wstring fileName; if (file.empty()) fileName = GetFile(exp->GetExt(), hwnd, false); else fileName = ReplaceExt(file, exp->GetExt()); if (fileName.empty()) return false; std::wofstream* stream; if (!isBin) { stream = new std::wofstream (fileName.c_str()); if (!stream->is_open()) return false; std::locale filelocale(std::locale(), new codecvt_CodePage<wchar_t>(cp)); stream->imbue(filelocale); exp->SetStream(stream); } else { std::ofstream* cstream = new std::ofstream (fileName.c_str(), std::ios_base::binary); if (!cstream->is_open()) return false; stream = (std::wofstream*)cstream; exp->SetStream(stream); } exp->WriteHeader(fileName, GetFilterName(), GetMyName(), GetMyId(), GetContactName(), GetProtocolName(), GetContactId(), GetBaseProtocol(), encoding); RefreshEventList(); exp->WriteFooter(); if (!isBin) { stream->close(); delete stream; } else { std::ofstream* cstream = (std::ofstream*)stream; cstream->close(); delete cstream; } delete exp; return true; }
static gint ci_add( GtkWidget *widget, gpointer data ) { GtkWidget *window, *w, *vbox, *vbox2, *hbox, *frame, *parameters; GtkWidget *eventWidget[EVENT_COUNT]; EMessageBoxReturn ret; int i, loop = 1; GSList *eventTypeRadio = NULL; // char buf[128]; 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 ) ); g_object_set_data (G_OBJECT (window), "loop", &loop); g_object_set_data (G_OBJECT (window), "ret", &ret); gtk_widget_realize (window); // fill the window vbox = gtk_vbox_new( FALSE, 5 ); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_widget_show( vbox ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); frame = gtk_frame_new( "Type" ); gtk_box_pack_start( GTK_BOX( hbox ), frame, TRUE, TRUE, 0 ); gtk_widget_show( frame ); 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 ); // -------------------------- // 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); } // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); w = gtk_label_new( "Parameters:" ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); parameters = gtk_entry_new(); gtk_box_pack_start( GTK_BOX( hbox ), parameters, TRUE, TRUE, 0 ); gtk_widget_show( parameters ); // -------------------------- // w = gtk_hseparator_new (); gtk_box_pack_start (GTK_BOX (vbox), w, FALSE, FALSE, 2); gtk_widget_show (w); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); 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); GTK_WIDGET_SET_FLAGS( w, GTK_CAN_DEFAULT ); 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); ret = eIDCANCEL; // -------------------------- // gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); gtk_widget_show (window); gtk_grab_add (window); bool dialogError = TRUE; while (dialogError) { loop = 1; while (loop) gtk_main_iteration (); dialogError = FALSE; if( ret == eIDOK ) { const char *str = gtk_entry_get_text( GTK_ENTRY(parameters) ); 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] ) ) break; } // Add the event GetCurrentCam()->GetCam()->addEvent( static_cast<idCameraEvent::eventType>(type), str, (long)(g_pTimeLine->value) ); // Refresh event list RefreshEventList(); } else { dialogError = TRUE; } } } gtk_grab_remove (window); gtk_widget_destroy (window); return TRUE; }
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() ) ) //if( combo_cam->HasBeenSaved() ) { 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(); } SetCurrentCam( combo_cam ); 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() ); // 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 ); sprintf( buf, "%.2f", GetCurrentCam()->GetCam()->getTotalTime() ); gtk_label_set_text( g_pCurrentTime, "0.00" ); gtk_label_set_text( g_pTotalTime, buf ); gtk_adjustment_set_value( g_pTimeLine, 0.f ); g_pTimeLine->upper = GetCurrentCam()->GetCam()->getTotalTime() * 1000; } else { // Set Name 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_label_set_text( g_pCurrentTime, "0.00" ); gtk_label_set_text( g_pTotalTime, "30.00" ); gtk_adjustment_set_value( g_pTimeLine, 0.f ); g_pTimeLine->upper = 30000; } // Refresh event list RefreshEventList(); } RefreshPathListCombo(); // start edit mode g_iActiveTarget = -1; if( g_pCameraInspectorWnd && GTK_WIDGET_VISIBLE( g_pCameraInspectorWnd ) ) DoStartEdit( GetCurrentCam() ); return TRUE; }
static gint ci_add_target( GtkWidget *widget, gpointer data ) { GtkWidget *window, *w, *vbox, *vbox2, *hbox, *frame, *name; GtkWidget *fixed, *interpolated, *spline; EMessageBoxReturn ret; int loop = 1; GSList *targetTypeRadio = NULL; char buf[128]; 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 ) ); g_object_set_data (G_OBJECT (window), "loop", &loop); g_object_set_data (G_OBJECT (window), "ret", &ret); gtk_widget_realize (window); // fill the window vbox = gtk_vbox_new( FALSE, 5 ); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_widget_show( vbox ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); w = gtk_label_new( "Name:" ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); name = gtk_entry_new(); gtk_box_pack_start( GTK_BOX( hbox ), name, TRUE, TRUE, 0 ); gtk_widget_show( name ); sprintf( buf, "target%i", GetCurrentCam()->GetCam()->numTargets() + 1 ); 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 ); frame = gtk_frame_new( "Type" ); gtk_box_pack_start( GTK_BOX( hbox ), frame, TRUE, TRUE, 0 ); gtk_widget_show( frame ); 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 ); // -------------------------- // 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 ) ); 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 ) ); 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 ) ); // -------------------------- // w = gtk_hseparator_new (); gtk_box_pack_start (GTK_BOX (vbox), w, FALSE, FALSE, 2); gtk_widget_show (w); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); 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); GTK_WIDGET_SET_FLAGS( w, GTK_CAN_DEFAULT ); 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); ret = eIDCANCEL; // -------------------------- // gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); gtk_widget_show (window); gtk_grab_add (window); bool dialogError = TRUE; while (dialogError) { loop = 1; while (loop) gtk_main_iteration (); dialogError = FALSE; if( ret == eIDOK ) { const char *str = gtk_entry_get_text( GTK_ENTRY(name) ); if( str && str[0] ) { int type; GList *li; if( gtk_toggle_button_get_active( (GtkToggleButton*)fixed ) ) type = 0; else if( gtk_toggle_button_get_active( (GtkToggleButton*)interpolated ) ) type = 1; else if( gtk_toggle_button_get_active( (GtkToggleButton*)spline ) ) type = 2; // Add the target GetCurrentCam()->GetCam()->addTarget( str, static_cast<idCameraPosition::positionType>(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) ); // If this was the first one, refresh the event list if( GetCurrentCam()->GetCam()->numTargets() == 1 ) { RefreshEventList(); } // Go to editmode Add gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(g_pEditModeAddRadioButton), TRUE ); } else { dialogError = TRUE; } } } gtk_grab_remove (window); gtk_widget_destroy (window); return TRUE; }