#include <storyboard.h>
Collaboration diagram for Storyboard:

Public Member Functions | |
| Storyboard (KinoCommon *common) | |
| ~Storyboard () | |
| void | redraw () |
| void | select (int scene) |
| void | setSensitive (bool sensitive) |
| void | moveScene (unsigned int destScene) |
| GtkTreeView * | getView () |
| GtkTreeStore * | getModel () |
| bool | getSkipSelect () |
| void | reset () |
| bool | getSkip () |
| void | setSkip () |
| void | clearSkip () |
| SMIL::MediaClippingTime & | getTime () |
Private Attributes | |
| GtkTreeView * | view |
| GtkTreeStore * | model |
| KinoCommon * | common |
| int | selection |
| bool | skipSelect |
| bool | skip |
| SMIL::MediaClippingTime | m_time |
|
|
Definition at line 451 of file storyboard.cc. References COLUMN_NAME, COLUMN_NAME_MODE, COLUMN_THUMBNAIL, COLUMN_VALUE, COLUMN_VALUE_MODE, KinoCommon::getCurrentScene(), KinoCommon::getWidget(), lookup_widget(), model, N_COLUMNS, on_name_edited(), on_name_show_popup(), on_name_start_editing(), on_value_edited(), on_value_show_popup(), on_value_start_editing(), select(), selection, tree_model_row_inserted_cb(), tree_view_row_activated(), tree_view_row_select(), and view. 00451 : 00452 common( common ), skipSelect( false ), skip( false ) 00453 { 00454 GtkCellRenderer* renderer; 00455 GtkTreeViewColumn* column; 00456 GtkTreeSelection* select; 00457 00458 gdk_threads_enter(); 00459 00460 // Create the tree view 00461 view = GTK_TREE_VIEW( lookup_widget( common->getWidget(), "treeview_storyboard" ) ); 00462 g_signal_connect( G_OBJECT( view ), "button-release-event", G_CALLBACK( tree_view_row_select ), this ); 00463 g_signal_connect( G_OBJECT( view ), "row-activated", G_CALLBACK( tree_view_row_activated ), this ); 00464 gtk_tree_view_set_enable_search( view, FALSE ); 00465 00466 // Store the current scene 00467 selection = common->getCurrentScene(); 00468 00469 // Create the model and connect it to the view 00470 model = gtk_tree_store_new( N_COLUMNS, G_TYPE_OBJECT, G_TYPE_STRING, 00471 G_TYPE_INT, G_TYPE_STRING, G_TYPE_INT ); 00472 gtk_tree_view_set_model( view, GTK_TREE_MODEL( model ) ); 00473 g_signal_connect( G_OBJECT( model ), "row-inserted", 00474 G_CALLBACK( tree_model_row_inserted_cb ), static_cast<gpointer>( this ) ); 00475 00476 // Add the thumbnail column 00477 renderer = gtk_cell_renderer_pixbuf_new(); 00478 column = gtk_tree_view_column_new_with_attributes( 00479 _( "Storyboard" ), renderer, "pixbuf", COLUMN_THUMBNAIL, NULL ); 00480 gtk_tree_view_column_set_fixed_width( column, 100 ); 00481 gtk_tree_view_column_set_min_width( column, 100 ); 00482 gtk_tree_view_column_set_max_width( column, 100 ); 00483 gtk_tree_view_append_column( view, column ); 00484 gtk_tree_view_set_expander_column( view, column ); 00485 00486 // Add the meta name column 00487 column = gtk_tree_view_column_new(); 00488 gtk_tree_view_column_set_title( column, _("Property") ); 00489 gtk_tree_view_column_set_resizable( column, TRUE ); 00490 gtk_tree_view_append_column( view, column ); 00491 00492 renderer = mg_cell_renderer_list_new(); 00493 g_object_set( G_OBJECT( renderer ), "editable", TRUE, NULL ); 00494 gtk_tree_view_column_pack_start( column, renderer, TRUE ); 00495 gtk_tree_view_column_set_attributes( column, renderer, 00496 "text", COLUMN_NAME, 00497 "mode", COLUMN_NAME_MODE, 00498 NULL ); 00499 00500 g_signal_connect( G_OBJECT( renderer ), 00501 "start-editing", 00502 G_CALLBACK( on_name_start_editing ), 00503 NULL ); 00504 g_signal_connect( G_OBJECT( renderer ), 00505 "show_popup", 00506 G_CALLBACK( on_name_show_popup ), 00507 model ); 00508 g_signal_connect( G_OBJECT( renderer ), 00509 "edited", 00510 G_CALLBACK( on_name_edited ), 00511 model ); 00512 00513 // Add the meta value column 00514 column = gtk_tree_view_column_new(); 00515 gtk_tree_view_column_set_title( column, _("Value") ); 00516 gtk_tree_view_column_set_resizable( column, FALSE ); 00517 gtk_tree_view_append_column( view, column ); 00518 00519 renderer = mg_cell_renderer_list_new(); 00520 g_object_set( G_OBJECT( renderer ), "editable", TRUE, NULL ); 00521 00522 gtk_tree_view_column_pack_start( column, renderer, TRUE ); 00523 gtk_tree_view_column_set_attributes( column, renderer, 00524 "text", COLUMN_VALUE, 00525 "mode", COLUMN_VALUE_MODE, 00526 NULL ); 00527 00528 g_signal_connect( G_OBJECT( renderer ), 00529 "start-editing", 00530 G_CALLBACK( on_value_start_editing ), 00531 NULL ); 00532 g_signal_connect( G_OBJECT( renderer ), 00533 "show_popup", 00534 G_CALLBACK( on_value_show_popup ), 00535 model ); 00536 g_signal_connect( G_OBJECT( renderer ), 00537 "edited", 00538 G_CALLBACK( on_value_edited ), 00539 model ); 00540 00541 select = gtk_tree_view_get_selection( view ); 00542 gtk_tree_selection_set_mode( select, GTK_SELECTION_SINGLE ); 00543 00544 gdk_threads_leave(); 00545 g_object_unref( G_OBJECT( model ) ); // view has the reference 00546 }
|
|
|
Definition at line 548 of file storyboard.cc. 00549 {}
|
|
|
Definition at line 62 of file storyboard.h. References skip. Referenced by showScenesThread(). 00063 {
00064 this->skip = false;
00065 }
|
|
|
Definition at line 42 of file storyboard.h. References model. Referenced by showScenesThread(). 00043 {
00044 return this->model;
00045 }
|
|
|
Definition at line 54 of file storyboard.h. References skip. Referenced by tree_model_row_inserted_cb(). 00055 {
00056 return this->skip;
00057 }
|
|
|
Definition at line 46 of file storyboard.h. References skipSelect. 00047 {
00048 return this->skipSelect;
00049 }
|
|
|
Definition at line 66 of file storyboard.h. References m_time. Referenced by showScenesThread(). 00067 {
00068 return m_time;
00069 }
|
|
|
Definition at line 38 of file storyboard.h. References view. Referenced by showScenesThread(). 00039 {
00040 return this->view;
00041 }
|
|
|
Definition at line 786 of file storyboard.cc. References common, KinoCommon::getPageEditor(), KinoCommon::getPlayList(), KinoCommon::moveToFrame(), redraw(), scenes, and selection. Referenced by tree_model_row_inserted_cb(). 00787 {
00788 std::cerr << "moving scene " << selection << " to scene " << destScene << std::endl;
00789 std::vector <int> scenes = common->getPageEditor() ->GetScene();
00790 int start = ( selection == 0 ) ? 0 : scenes[ selection - 1 ];
00791 int end = common->getPlayList() ->FindEndOfScene( start );
00792 int destFrame = 0;
00793
00794 common->getPageEditor() ->CopyFrames( start, end );
00795 common->getPlayList() ->Delete( start, end );
00796
00797 if ( destScene >= scenes.size() )
00798 {
00799 destFrame = common->getPlayList() ->GetNumFrames();
00800 }
00801 else if ( ( int ) destScene > selection )
00802 {
00803 common->getPageEditor() ->ResetBar();
00804 scenes = common->getPageEditor() ->GetScene();
00805 destFrame = scenes[ destScene - 2 ];
00806 }
00807 else if ( destScene > 0 )
00808 {
00809 common->getPageEditor() ->ResetBar();
00810 scenes = common->getPageEditor() ->GetScene();
00811 destFrame = scenes[ destScene - 1 ];
00812 }
00813
00814 common->getPageEditor() ->PasteFrames( destFrame );
00815 common->moveToFrame( destFrame );
00816
00817 redraw( );
00818 }
|
|
|
Definition at line 733 of file storyboard.cc. References SCENE_IDLE, SCENE_INIT, SCENE_RESTART, SCENE_RUNNING, SCENE_STARTING, selection, showScenesRunning, and showScenesThread(). Referenced by moveScene(). 00734 {
00735 static pthread_t scenes_thread;
00736 static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
00737
00738 pthread_mutex_lock( &mutex );
00739 selection = -1;
00740
00741 // If running then, set as RESTART otherwise start the thread,
00742 // otherwise we're already waiting on a restart so do nothing
00743 if ( showScenesRunning == SCENE_RUNNING )
00744 {
00745 showScenesRunning = SCENE_RESTART;
00746 }
00747 else if ( showScenesRunning == SCENE_INIT )
00748 {
00749 showScenesRunning = SCENE_STARTING;
00750 pthread_create( &scenes_thread, NULL, showScenesThread, this );
00751 }
00752 else if ( showScenesRunning == SCENE_IDLE )
00753 {
00754 pthread_join( scenes_thread, NULL );
00755 showScenesRunning = SCENE_STARTING;
00756 pthread_create( &scenes_thread, NULL, showScenesThread, this );
00757 }
00758
00759 pthread_mutex_unlock( &mutex );
00760 }
|
|
|
Definition at line 50 of file storyboard.h. References selection. 00051 {
00052 this->selection = -1;
00053 }
|
|
|
Definition at line 762 of file storyboard.cc. References model, selection, skipSelect, and view. Referenced by showScenesThread(), and Storyboard(). 00763 {
00764 if ( scene > -1 && scene < gtk_tree_model_iter_n_children( GTK_TREE_MODEL( model ), NULL ) )
00765 {
00766 GtkTreeIter iter;
00767 GtkTreeSelection* selection = gtk_tree_view_get_selection( view );
00768 if ( gtk_tree_model_iter_nth_child( GTK_TREE_MODEL( model ), &iter, NULL, scene ) )
00769 {
00770 GtkTreePath * path = gtk_tree_model_get_path( GTK_TREE_MODEL( model ), &iter );
00771 skipSelect = true;
00772 gtk_tree_selection_select_iter( selection, &iter );
00773 gtk_tree_view_scroll_to_cell( view, path, NULL, TRUE, 0.5, 0.0 );
00774 gtk_tree_path_free( path );
00775 skipSelect = false;
00776 }
00777 this->selection = scene;
00778 }
00779 }
|
|
|
Definition at line 781 of file storyboard.cc. References view. 00782 {
00783 gtk_widget_set_sensitive( GTK_WIDGET( view ), sensitive ? TRUE : FALSE );
00784 }
|
|
|
Definition at line 58 of file storyboard.h. References skip. Referenced by showScenesThread(), and tree_model_row_inserted_cb(). 00059 {
00060 this->skip = true;
00061 }
|
|
|
Definition at line 74 of file storyboard.h. Referenced by moveScene(). |
|
|
Definition at line 78 of file storyboard.h. Referenced by getTime(). |
|
|
Definition at line 73 of file storyboard.h. Referenced by getModel(), select(), and Storyboard(). |
|
|
Definition at line 75 of file storyboard.h. Referenced by moveScene(), redraw(), reset(), select(), and Storyboard(). |
|
|
Definition at line 77 of file storyboard.h. Referenced by clearSkip(), getSkip(), and setSkip(). |
|
|
Definition at line 76 of file storyboard.h. Referenced by getSkipSelect(), and select(). |
|
|
Definition at line 72 of file storyboard.h. Referenced by getView(), select(), setSensitive(), and Storyboard(). |
1.4.2