00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifdef HAVE_CONFIG_H
00021 #include <config.h>
00022 #endif
00023
00024 #include "callbacks.h"
00025 #include "support.h"
00026 #include "commands.h"
00027 #include "message.h"
00028
00029 #include <stdio.h>
00030
00031 extern GtkWidget *main_window;
00032
00033 struct navigate_control g_nav_ctl;
00034 static gboolean doShuttle = FALSE;
00035
00036 gboolean
00037 on_main_window_delete_event ( GtkWidget *widget,
00038 GdkEvent *event,
00039 gpointer user_data )
00040 {
00041 return kinoDeactivate();
00042 }
00043
00044 gboolean
00045 on_main_window_key_press_event ( GtkWidget *widget,
00046 GdkEventKey *event,
00047 gpointer user_data )
00048 {
00049
00050
00051 return processKeyboard( event );
00052 }
00053
00054 gboolean
00055 on_main_window_key_release_event ( GtkWidget *widget,
00056 GdkEventKey *event,
00057 gpointer user_data )
00058 {
00059
00060
00061
00062
00063
00064
00065 return FALSE;
00066 }
00067
00068 void
00069 on_new_activate ( GtkWidget *menuitem,
00070 gpointer user_data )
00071 {
00072 newFile( );
00073 gtk_widget_grab_focus( lookup_widget( menuitem, "eventbox_edit_drawingarea" ) );
00074 }
00075
00076
00077 void
00078 on_open_activate ( GtkWidget *menuitem,
00079 gpointer user_data )
00080 {
00081 openFile( );
00082 gtk_widget_grab_focus( lookup_widget( menuitem, "eventbox_edit_drawingarea" ) );
00083 }
00084
00085
00086 void
00087 on_save_activate ( GtkWidget *menuitem,
00088 gpointer user_data )
00089 {
00090 savePlayList( );
00091 gtk_widget_grab_focus( lookup_widget( menuitem, "eventbox_edit_drawingarea" ) );
00092 }
00093
00094
00095 void
00096 on_save_as_activate ( GtkMenuItem *menuitem,
00097 gpointer user_data )
00098 {
00099 savePlayListAs( );
00100 }
00101
00102
00103 void
00104 on_exit_activate ( GtkWidget *menuitem,
00105 gpointer user_data )
00106 {
00107 kinoDeactivate();
00108 }
00109
00110
00111 void
00112 on_cut_current_scene_activate ( GtkWidget *menuitem,
00113 gpointer user_data )
00114 {
00115 processCommand( "dd" );
00116 gtk_widget_grab_focus( lookup_widget( menuitem, "eventbox_edit_drawingarea" ) );
00117 }
00118
00119
00120 void
00121 on_copy_current_scene_activate ( GtkWidget *menuitem,
00122 gpointer user_data )
00123 {
00124 processCommand( "yy" );
00125 gtk_widget_grab_focus( lookup_widget( menuitem, "eventbox_edit_drawingarea" ) );
00126 }
00127
00128
00129 void
00130 on_paste_before_current_frame_activate ( GtkWidget *menuitem,
00131 gpointer user_data )
00132 {
00133 processCommand( "P" );
00134 gtk_widget_grab_focus( lookup_widget( menuitem, "eventbox_edit_drawingarea" ) );
00135 }
00136
00137
00138 void
00139 on_insert_movie_activate ( GtkWidget *menuitem,
00140 gpointer user_data )
00141 {
00142 insertFile();
00143 gtk_widget_grab_focus( lookup_widget( menuitem, "eventbox_edit_drawingarea" ) );
00144 }
00145
00146 gboolean
00147 on_expose_event ( GtkWidget *widget,
00148 GdkEventExpose *event,
00149 gpointer user_data )
00150 {
00151 #if 0
00152 if ( gdk_events_pending() )
00153 {
00154 GdkEvent * e;
00155 while ( ( e = gdk_event_get() ) != NULL )
00156 {
00157 if ( e->type != GDK_EXPOSE )
00158 {
00159 gdk_event_put( ( GdkEvent * ) e );
00160 break;
00161 }
00162 }
00163 }
00164 #endif
00165 windowMoved();
00166 return FALSE;
00167 }
00168
00169 void
00170 on_about_activate ( GtkWidget *menuitem,
00171 gpointer user_data )
00172 {
00173 GtkWidget * win = lookup_widget( menuitem, "about_window" );
00174 if ( win )
00175 {
00176 gtk_window_set_transient_for(GTK_WINDOW(win), GTK_WINDOW(main_window));
00177 gtk_widget_show( win );
00178 }
00179 }
00180
00181
00182 void
00183 on_main_notebook_switch_page ( GtkNotebook *notebook,
00184 GtkNotebookPage *page,
00185 gint page_num,
00186 gpointer user_data )
00187 {
00188 pageStart( page_num );
00189 }
00190
00191
00192 void
00193 on_video_start_movie_button_clicked ( GtkButton *button,
00194 gpointer user_data )
00195 {
00196 videoStart( );
00197 gtk_widget_grab_focus( lookup_widget( GTK_WIDGET( button ), "eventbox_edit_drawingarea" ) );
00198 }
00199
00200
00201 void
00202 on_video_start_scene_button_clicked ( GtkButton *button,
00203 gpointer user_data )
00204 {
00205 videoPreviousScene( );
00206 gtk_widget_grab_focus( lookup_widget( GTK_WIDGET( button ), "eventbox_edit_drawingarea" ) );
00207 }
00208
00209
00210 void
00211 on_video_rewind_button_clicked ( GtkButton *button,
00212 gpointer user_data )
00213 {
00214 videoRewind( );
00215 gtk_widget_grab_focus( lookup_widget( GTK_WIDGET( button ), "eventbox_edit_drawingarea" ) );
00216 }
00217
00218
00219 void
00220 on_video_back_button_clicked ( GtkButton *button,
00221 gpointer user_data )
00222 {
00223 videoBack( );
00224 gtk_widget_grab_focus( lookup_widget( GTK_WIDGET( button ), "eventbox_edit_drawingarea" ) );
00225 }
00226
00227
00228 void
00229 on_video_play_button_clicked ( GtkButton *button,
00230 gpointer user_data )
00231 {
00232 videoPlay( );
00233 gtk_widget_grab_focus( lookup_widget( GTK_WIDGET( button ) , "eventbox_edit_drawingarea" ) );
00234 }
00235
00236
00237 void
00238 on_video_forward_button_clicked ( GtkButton *button,
00239 gpointer user_data )
00240 {
00241 videoForward( );
00242 gtk_widget_grab_focus( lookup_widget( GTK_WIDGET( button ) , "eventbox_edit_drawingarea" ) );
00243 }
00244
00245
00246 void
00247 on_video_fast_forward_button_clicked ( GtkButton *button,
00248 gpointer user_data )
00249 {
00250 videoFastForward( );
00251 gtk_widget_grab_focus( lookup_widget( GTK_WIDGET( button ), "eventbox_edit_drawingarea" ) );
00252 }
00253
00254
00255 void
00256 on_video_end_scene_button_clicked ( GtkButton *button,
00257 gpointer user_data )
00258 {
00259 videoNextScene( );
00260 gtk_widget_grab_focus( lookup_widget( GTK_WIDGET( button ), "eventbox_edit_drawingarea" ) );
00261 }
00262
00263
00264 void
00265 on_video_end_movie_button_clicked ( GtkButton *button,
00266 gpointer user_data )
00267 {
00268 videoEndOfMovie( );
00269 gtk_widget_grab_focus( lookup_widget( GTK_WIDGET( button ), "eventbox_edit_drawingarea" ) );
00270 }
00271
00272
00273 void
00274 on_video_pause_button_clicked ( GtkButton *button,
00275 gpointer user_data )
00276 {
00277 videoPause( );
00278 gtk_widget_grab_focus( lookup_widget( GTK_WIDGET( button ), "eventbox_edit_drawingarea" ) );
00279 }
00280
00281
00282 void
00283 on_video_stop_button_clicked ( GtkButton *button,
00284 gpointer user_data )
00285 {
00286 videoStop( );
00287 gtk_widget_grab_focus( lookup_widget( GTK_WIDGET( button ), "eventbox_edit_drawingarea" ) );
00288 }
00289
00290
00291 void
00292 on_editor_activate ( GtkMenuItem *menuitem,
00293 gpointer user_data )
00294 {
00295 notebookChangePage( 0 );
00296 }
00297
00298
00299 void
00300 on_capture_activate ( GtkMenuItem *menuitem,
00301 gpointer user_data )
00302 {
00303 notebookChangePage( 1 );
00304 }
00305
00306
00307 void
00308 on_timeline_activate ( GtkMenuItem *menuitem,
00309 gpointer user_data )
00310 {
00311 notebookChangePage( 2 );
00312 }
00313
00314
00315 gboolean
00316 on_eventbox_edit_drawingarea_button_press_event ( GtkWidget *widget,
00317 GdkEventButton *event,
00318 gpointer user_data )
00319 {
00320 g_nav_ctl.escaped = FALSE;
00321 gtk_widget_grab_focus( widget );
00322 return FALSE;
00323 }
00324
00325
00326 void
00327 on_main_window_size_allocate ( GtkWidget *widget,
00328 GtkAllocation *allocation,
00329 gpointer user_data )
00330 {
00331 }
00332
00333 gboolean
00334 on_main_window_configure_event ( GtkWidget *widget,
00335 GdkEventConfigure *event,
00336 gpointer user_data )
00337 {
00338 windowMoved();
00339 return FALSE;
00340 }
00341
00342
00343 gboolean
00344 on_main_window_visibility_notify_event ( GtkWidget *widget,
00345 GdkEvent *event,
00346 gpointer user_data )
00347 {
00348 return FALSE;
00349 }
00350
00351
00352 gboolean
00353 on_main_window_event ( GtkWidget *widget,
00354 GdkEvent *event,
00355 gpointer user_data )
00356 {
00357
00358 return FALSE;
00359 }
00360
00361
00362 gboolean
00363 on_main_window_map_event ( GtkWidget *widget,
00364 GdkEvent *event,
00365 gpointer user_data )
00366 {
00367 visibilityChanged( TRUE );
00368 return FALSE;
00369 }
00370
00371
00372 gboolean
00373 on_main_window_unmap_event ( GtkWidget *widget,
00374 GdkEvent *event,
00375 gpointer user_data )
00376 {
00377 visibilityChanged( FALSE );
00378 return FALSE;
00379 }
00380
00381
00382 void
00383 on_export_activate ( GtkMenuItem *menuitem,
00384 gpointer user_data )
00385 {
00386 notebookChangePage( 5 );
00387
00388 }
00389
00390
00391 void
00392 on_50percent_activate ( GtkMenuItem *menuitem,
00393 gpointer user_data )
00394 {
00395 setPreviewSize( 0.5 );
00396 }
00397
00398
00399 void
00400 on_100percent_activate ( GtkWidget *menuitem,
00401 gpointer user_data )
00402 {
00403 setPreviewSize( 1.0 );
00404 }
00405
00406 void
00407 on_hscale_shuttle_value_changed (GtkRange *range,
00408 gpointer user_data)
00409 {
00410 if ( doShuttle == TRUE )
00411 videoShuttle( gtk_range_get_value( range ) );
00412 }
00413
00414 gboolean
00415 on_hscale_shuttle_button_press_event ( GtkWidget *widget,
00416 GdkEventButton *event,
00417 gpointer user_data )
00418 {
00419 doShuttle = TRUE;
00420 return FALSE;
00421 }
00422
00423 gboolean
00424 on_hscale_shuttle_button_release_event ( GtkWidget *widget,
00425 GdkEventButton *event,
00426 gpointer user_data )
00427 {
00428 doShuttle = FALSE;
00429 return FALSE;
00430 }
00431
00432 gboolean
00433 on_eventbox_capture_drawingarea_button_press_event
00434 ( GtkWidget *widget,
00435 GdkEventButton *event,
00436 gpointer user_data )
00437 {
00438
00439 g_nav_ctl.escaped = FALSE;
00440 gtk_entry_set_editable( GTK_ENTRY( lookup_widget( widget, "entry_capture_file" ) ), FALSE );
00441 gtk_widget_grab_focus( widget );
00442 return FALSE;
00443 }
00444
00445
00446
00447 void
00448 on_append_movie_activate ( GtkWidget *menuitem,
00449 gpointer user_data )
00450 {
00451 appendFile();
00452 gtk_widget_grab_focus( lookup_widget( menuitem, "eventbox_edit_drawingarea" ) );
00453 }
00454
00455
00456 void
00457 on_split_scene_activate ( GtkWidget *menuitem,
00458 gpointer user_data )
00459 {
00460 processCommand( "Ctrl+J" );
00461 gtk_widget_grab_focus( lookup_widget( menuitem, "eventbox_edit_drawingarea" ) );
00462 }
00463
00464
00465 void
00466 on_button_viewsize_clicked ( GtkButton *button,
00467 gpointer user_data )
00468 {
00469 setPreviewSize( -1.0 );
00470 gtk_widget_grab_focus( lookup_widget( GTK_WIDGET( button ), "eventbox_edit_drawingarea" ) );
00471 }
00472
00473 void
00474 on_help_topics_activate ( GtkWidget *menuitem,
00475 gpointer user_data )
00476 {
00477 showHelp( NULL );
00478 gtk_widget_grab_focus( lookup_widget( menuitem, "eventbox_edit_drawingarea" ) );
00479 }
00480
00481
00482 void
00483 on_undo_activate ( GtkWidget *menuitem,
00484 gpointer user_data )
00485 {
00486 processCommand( "u" );
00487 gtk_widget_grab_focus( lookup_widget( menuitem, "eventbox_edit_drawingarea" ) );
00488 }
00489
00490
00491 void
00492 on_redo_activate ( GtkWidget *menuitem,
00493 gpointer user_data )
00494 {
00495 processCommand( "Ctrl+R" );
00496 gtk_widget_grab_focus( lookup_widget( menuitem, "eventbox_edit_drawingarea" ) );
00497 }
00498
00499
00500 void
00501 on_join_scenes_activate ( GtkWidget *menuitem,
00502 gpointer user_data )
00503 {
00504 processCommand( "J" );
00505 gtk_widget_grab_focus( lookup_widget( menuitem, "eventbox_edit_drawingarea" ) );
00506 }
00507
00508
00509 gboolean
00510 on_eventbox_trim_button_press_event ( GtkWidget *widget,
00511 GdkEventButton *event,
00512 gpointer user_data )
00513 {
00514 g_nav_ctl.escaped = FALSE;
00515 gtk_widget_grab_focus( widget );
00516 return FALSE;
00517 }
00518
00519
00520 void
00521 on_menuitem_trim_activate ( GtkMenuItem *menuitem,
00522 gpointer user_data )
00523 {
00524 notebookChangePage( 3 );
00525 }
00526
00527
00528
00529 void
00530 on_fx1_activate ( GtkMenuItem *menuitem,
00531 gpointer user_data )
00532 {
00533 notebookChangePage( 4 );
00534 }
00535
00536
00537 void
00538 on_command_reference_activate ( GtkMenuItem *menuitem,
00539 gpointer user_data )
00540 {
00541 GtkWidget * dialog = lookup_widget( GTK_WIDGET( menuitem ), "keyhelp_window" );
00542 #include "cmd_ref.c"
00543
00544 if ( dialog )
00545 {
00546 gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(main_window));
00547 gtk_widget_show( dialog );
00548 }
00549
00550 }
00551
00552
00553 void
00554 on_time_format_smpte_activate ( GtkMenuItem *menuitem,
00555 gpointer user_data )
00556 {
00557 setTimeFormat( 2 );
00558
00559 }
00560
00561
00562 void
00563 on_time_format_frames_activate ( GtkMenuItem *menuitem,
00564 gpointer user_data )
00565 {
00566 setTimeFormat( 1 );
00567 }
00568
00569
00570 void
00571 on_time_format_none_activate ( GtkMenuItem *menuitem,
00572 gpointer user_data )
00573 {
00574 GtkLabel * l = GTK_LABEL( lookup_widget( GTK_WIDGET( menuitem ), "position_label_current" ) );
00575 gtk_label_set_text( l, "" );
00576 l = GTK_LABEL( lookup_widget( GTK_WIDGET( menuitem ), "position_label_total" ) );
00577 gtk_label_set_text( l, "" );
00578 setTimeFormat( 0 );
00579 }
00580
00581
00582 void
00583 on_autosize_activate ( GtkMenuItem *menuitem,
00584 gpointer user_data )
00585 {
00586 setPreviewSize( 0 );
00587 }
00588
00589
00590
00591 void
00592 on_hscale_shuttle_event_after (GtkWidget *widget,
00593 GdkEvent *event,
00594 gpointer user_data)
00595 {
00596 if ( event->type == GDK_BUTTON_RELEASE )
00597 {
00598 gtk_range_set_value( GTK_RANGE( widget ), 0 );
00599 doShuttle = FALSE;
00600 }
00601 }
00602
00603
00604 void
00605 on_save_still_frame_activate (GtkMenuItem *menuitem,
00606 gpointer user_data)
00607 {
00608 saveFrame( );
00609 }
00610
00611
00612 void
00613 on_publish_project_activate (GtkMenuItem *menuitem,
00614 gpointer user_data)
00615 {
00616 publishPlayList( );
00617 }
00618
00619
00620 void
00621 on_publish_still_activate (GtkMenuItem *menuitem,
00622 gpointer user_data)
00623 {
00624 publishFrame( );
00625 }
00626
00627
00628 void
00629 on_menuitem_v4l_activate (GtkMenuItem *menuitem,
00630 gpointer user_data)
00631 {
00632 notebookChangePage( 6 );
00633 }
00634
00635
00636 gboolean
00637 on_main_window_scroll_event (GtkWidget *widget,
00638 GdkEvent *event,
00639 gpointer user_data)
00640 {
00641 handleMouseScroll( event );
00642 return FALSE;
00643 }
00644
00645
00646 gboolean
00647 on_entry_focus_in_event (GtkWidget *widget,
00648 GdkEventFocus *event,
00649 gpointer user_data)
00650 {
00651
00652 g_nav_ctl.escaped = TRUE;
00653 return FALSE;
00654 }
00655
00656
00657 gboolean
00658 on_entry_focus_out_event (GtkWidget *widget,
00659 GdkEventFocus *event,
00660 gpointer user_data)
00661 {
00662 g_nav_ctl.escaped = FALSE;
00663 return FALSE;
00664 }
00665
00666 void
00667 on_time_format_clock_activate (GtkMenuItem *menuitem,
00668 gpointer user_data)
00669 {
00670 setTimeFormat( 3 );
00671 }
00672
00673
00674 void
00675 on_time_format_ms_activate (GtkMenuItem *menuitem,
00676 gpointer user_data)
00677 {
00678 setTimeFormat( 4 );
00679 }
00680
00681
00682 void
00683 on_time_format_s_activate (GtkMenuItem *menuitem,
00684 gpointer user_data)
00685 {
00686 setTimeFormat( 5 );
00687 }
00688
00689
00690 void
00691 on_time_format_min_activate (GtkMenuItem *menuitem,
00692 gpointer user_data)
00693 {
00694 setTimeFormat( 6 );
00695 }
00696
00697
00698 void
00699 on_time_format_h_activate (GtkMenuItem *menuitem,
00700 gpointer user_data)
00701 {
00702 setTimeFormat( 7 );
00703 }
00704
00705 void
00706 on_preferences_dialog_help_button_clicked
00707 (GtkButton *button,
00708 gpointer user_data)
00709 {
00710 int page = gtk_notebook_get_current_page( GTK_NOTEBOOK( lookup_widget( GTK_WIDGET( button ), "notebook" ) ) );
00711 char s[ 14 ];
00712 s[ 13 ] = '\0';
00713 snprintf( s, 13, "prefs%d", page );
00714 showHelp( s );
00715 }
00716
00717 void
00718 on_expander_properties_activate (GtkExpander *expander,
00719 gpointer user_data)
00720 {
00721 setMoreInfo( gtk_expander_get_expanded( expander ) ? 0 : 1 );
00722 windowMoved();
00723 gtk_widget_grab_focus( lookup_widget( GTK_WIDGET( expander ), "eventbox_edit_drawingarea" ) );
00724 }