// TODO: This comes out later
int mode;
GtkWidget *modes[ 4 ];
+
+ struct page_t *parent_page;
}
*page_clips, page_clips_t;
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
- list_store = gtk_list_store_new( 6, G_TYPE_BOOLEAN, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING, G_TYPE_INT );
+ list_store = gtk_list_store_new( 6,
+ G_TYPE_BOOLEAN,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_INT );
gtk_tree_view_set_model( GTK_TREE_VIEW( treeview ), GTK_TREE_MODEL( list_store ) );
renderer = gtk_cell_renderer_toggle_new( );
for ( index = 0; index < mvcp_list_count( list ); index ++ )
{
+ char tc1[12], tc2[12], tc3[12];
mvcp_list_get( list, index, &entry );
gtk_list_store_append( list_store, &iter );
- gtk_list_store_set( list_store, &iter, 0, index == clip, 1, ( int )entry.in, 2, ( int )entry.out, 3, ( int )entry.size, 4, entry.full, 5, entry.clip, -1 );
+ gtk_list_store_set( list_store, &iter,
+ 0, index == clip,
+ 1, frames2tc( entry.in, entry.fps, tc1),
+ 2, frames2tc( entry.out, entry.fps, tc2),
+ 3, frames2tc( entry.size, entry.fps, tc3),
+ 4, entry.full,
+ 5, entry.clip,
+ -1 );
}
this->clip = clip;
mvcp_unit_append( this->dv, dv1394app_get_selected_unit( this->app ), temp, -1, -1 );
break;
case 3:
- mvcp_unit_clip_insert( this->dv, dv1394app_get_selected_unit( this->app ), mvcp_relative, 1, temp, -1, -1 );
+ {
+ GtkWidget *widget = lookup_widget( this_page_get_widget( this ), "treeview1" );
+ GtkTreeSelection *select = gtk_tree_view_get_selection( GTK_TREE_VIEW( widget ) );
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ int clip;
+
+ if ( gtk_tree_selection_get_selected( select, &model, &iter ) )
+ {
+ gtk_tree_model_get( model, &iter, 5, &clip, -1 );
+ mvcp_unit_clip_insert( this->dv, dv1394app_get_selected_unit( this->app ), mvcp_absolute, clip, temp, -1, -1 );
+ }
break;
+ }
}
free( temp );
static gboolean on_up( GtkWidget *dummy, gpointer data )
{
page_clips this = data;
- mvcp_unit_clip_move( this->dv, dv1394app_get_selected_unit( this->app ), mvcp_relative, 0, mvcp_relative, -1 );
+ GtkWidget *widget = lookup_widget( this_page_get_widget( this ), "treeview1" );
+ GtkTreeSelection *select = gtk_tree_view_get_selection( GTK_TREE_VIEW( widget ) );
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ int clip;
+
+ if ( gtk_tree_selection_get_selected( select, &model, &iter ) )
+ {
+ gtk_tree_model_get( model, &iter, 5, &clip, -1 );
+ mvcp_unit_clip_move( this->dv, dv1394app_get_selected_unit( this->app ), mvcp_absolute, clip, mvcp_absolute, clip - 1 < 0 ? 0 : clip - 1 );
+ }
return TRUE;
}
static gboolean on_down( GtkWidget *dummy, gpointer data )
{
page_clips this = data;
- mvcp_unit_clip_move( this->dv, dv1394app_get_selected_unit( this->app ), mvcp_relative, 0, mvcp_relative, 1 );
+ GtkWidget *widget = lookup_widget( this_page_get_widget( this ), "treeview1" );
+ GtkTreeSelection *select = gtk_tree_view_get_selection( GTK_TREE_VIEW( widget ) );
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ int clip;
+
+ if ( gtk_tree_selection_get_selected( select, &model, &iter ) )
+ {
+ gtk_tree_model_get( model, &iter, 5, &clip, -1 );
+ mvcp_unit_clip_move( this->dv, dv1394app_get_selected_unit( this->app ), mvcp_absolute, clip, mvcp_absolute, clip + 1 );
+ }
return TRUE;
}
static gboolean on_remove( GtkWidget *dummy, gpointer data )
{
page_clips this = data;
- mvcp_unit_remove_current_clip( this->dv, dv1394app_get_selected_unit( this->app ) );
+ GtkWidget *widget = lookup_widget( this_page_get_widget( this ), "treeview1" );
+ GtkTreeSelection *select = gtk_tree_view_get_selection( GTK_TREE_VIEW( widget ) );
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ int clip;
+
+ if ( gtk_tree_selection_get_selected( select, &model, &iter ) )
+ {
+ gtk_tree_model_get( model, &iter, 5, &clip, -1 );
+ mvcp_unit_clip_remove( this->dv, dv1394app_get_selected_unit( this->app ), mvcp_absolute, clip );
+ }
return TRUE;
}
static GtkWidget *this_page_get_widget( page_clips this )
{
if ( this->widget == NULL )
- this->widget = create_page_clips( );
+ this->widget = this->parent_page->get_widget(this->parent_page);
return this->widget;
}
free( this );
}
-page page_clips_init( dv1394app app )
+page page_clips_init( dv1394app app, struct page_t *parent_page)
{
page_clips this = calloc( 1, sizeof( page_clips_t ) );
GtkWidget *widget;
int index = 0;
+ this->parent_page = parent_page;
this->parent.get_widget = ( GtkWidget *(*)( page ) )this_page_get_widget;
this->parent.get_toolbar_info = this_page_get_toolbar_info;
this->parent.on_connect = ( void (*)( page ) )this_page_on_connect;