Changeset 457

Show
Ignore:
Timestamp:
01/05/07 01:05:20 (2 years ago)
Author:
radekk
Message:

Time Markers support work in progress.
Bugfix for named selections feature.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sweep/branches/sweep-info-panel/AUTHORS

    r373 r457  
    3939 
    4040Peter Shorthose 
    41  gtk2 port and various tweaks/bug fixes 
     41        gtk2 port and various tweaks/bug fixes 
    4242  
    4343Daniel Dreschers 
    44    ALSA 1.0 updates 
     44        ALSA 1.0 updates 
     45 
     46Radoslaw Korzeniewski <radoslaw@korzeniewski.net> 
     47        Info Panel 
     48        Named Selections 
     49        TagLib Support (reading and writting) 
     50        Markers 
    4551 
    4652Borrowed Code 
  • sweep/branches/sweep-info-panel/include/sweep/sweep_marker.h

    r455 r457  
    2424 
    2525sw_mark * 
    26 marks_new (sw_framecount_t frame, sw_mark_type_t type, gchar * name); 
     26mark_new (sw_framecount_t frame, sw_mark_type_t type, gchar * name); 
    2727 
    2828sw_mark * 
  • sweep/branches/sweep-info-panel/include/sweep/sweep_types.h

    r455 r457  
    102102 */ 
    103103typedef enum { 
    104   SWEEP_MARK_TYPE_STEP
     104  SWEEP_MARK_TYPE_SIMPLE
    105105  SWEEP_MARK_TYPE_LOOP, 
    106106  SWEEP_MARK_TYPE_END 
  • sweep/branches/sweep-info-panel/po/pl.po

    r445 r457  
    13861386#: src/info-panel.c:540 
    13871387msgid "Add Selection..." 
    1388 msgstr "Dodaj zaznaczenie
     1388msgstr "Dodaj zaznaczenie...
    13891389 
    13901390#: src/info-panel.c:548 
  • sweep/branches/sweep-info-panel/src/db_ruler.c

    r340 r457  
    239239  else 
    240240    y = event->y; 
    241  
     241#if 0 
    242242  if (DB_RULER(widget)->dragging && (state & GDK_BUTTON1_MASK)) { 
     243 
     244g_print("Jestem ale nie wiem co robie!!!!\n"); 
     245 
    243246    ydelta = DB_RULER(widget)->y - y; 
    244247 
     
    252255    gtk_ruler_draw_ticks (ruler); 
    253256  } 
    254  
     257#endif 
    255258  DB_RULER(widget)->y = y; 
    256259 
     
    327330  DB_RULER(widget)->dragging = FALSE; 
    328331 
     332g_print("db_ruler_leave_notify\n"); 
     333   
    329334  return TRUE; 
    330335} 
     
    390395                 height - ythickness); 
    391396 
    392 upper = ruler->upper / ruler->metric->pixels_per_unit; 
    393 lower = ruler->lower / ruler->metric->pixels_per_unit; 
     397  upper = ruler->upper / ruler->metric->pixels_per_unit; 
     398  lower = ruler->lower / ruler->metric->pixels_per_unit; 
    394399 
    395400//   upper = ruler->upper; 
     
    403408 
    404409// * strlen (unit_str) 
    405 text_height =  digit_height + 1; 
     410  text_height =  digit_height + 1; 
    406411 
    407412  for (scale = 0; scale < MAXIMUM_SCALES; scale++) 
    408413 /*   if (ruler->metric->ruler_scale[scale] * fabs(increment) > 2 * text_height) 
    409414      break;*/ 
    410 if (ruler_scale[scale] * abs_increment > 2 * digit_height) 
     415  if (ruler_scale[scale] * abs_increment > 2 * digit_height) 
    411416      break; 
     417   
    412418  if (scale == MAXIMUM_SCALES) 
    413419    scale = MAXIMUM_SCALES - 1; 
     
    421427                  ruler->backing_store, 
    422428                  GTK_WIDGET_STATE (widget), 
    423                                  FALSE, 
     429                  FALSE, 
    424430                  NULL, 
    425431                  widget, 
    426432                  "vruler", 
    427433                  2, 
    428                   (digit_height/2), 
     434                  (digit_height / 2), 
    429435                  layout); 
    430436 
  • sweep/branches/sweep-info-panel/src/info-panel.c

    r456 r457  
    3535#include <sweep/sweep_undo.h> 
    3636#include <sweep/sweep_selection.h> 
     37#include <sweep/sweep_marker.h> 
    3738 
    3839#include "sweep_app.h" 
     
    7475 
    7576 
    76 GdkPixbuf * done_icon; 
    77 GdkPixbuf * revert_icon; 
     77static GdkPixbuf * sample_icon = NULL; 
     78static GdkPixbuf * select_icon = NULL; 
     79static GdkPixbuf * select_add_icon = NULL; 
     80static GdkPixbuf * select_del_icon = NULL; 
     81static GdkPixbuf * undo_icon = NULL; 
     82static GdkPixbuf * done_icon = NULL; 
     83static GdkPixbuf * marker_icon = NULL; 
     84static GdkPixbuf * marker_add_icon = NULL; 
     85static GdkPixbuf * marker_del_icon = NULL; 
     86 
     87#ifdef INFO_PANEL_REVERT 
     88        static GdkPixbuf * revert_icon = NULL; 
     89#endif 
    7890 
    7991 
     
    99111} 
    100112 
     113GtkWidget * info_panel_menu_item_new_with_ico_label (const gchar * text, GdkPixbuf * icon) 
     114{ 
     115        GtkWidget *menuitem; 
     116        GtkWidget *hbox, *label, *image; 
     117 
     118        menuitem = gtk_menu_item_new(); 
     119 
     120        hbox = gtk_hbox_new(FALSE, 6); 
     121 
     122        label = gtk_label_new(text); 
     123 
     124        image = gtk_image_new_from_pixbuf( icon ); 
     125 
     126        gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(image), FALSE, FALSE, 0); 
     127        gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(label), FALSE, FALSE, 0); 
     128 
     129        gtk_container_add(GTK_CONTAINER(menuitem), hbox); 
     130 
     131        return menuitem; 
     132} 
     133 
    101134GtkTreeModel * info_panel_create_sample_model (void) 
    102135{ 
    103136        GtkTreeStore * treestore; 
    104137        GtkTreeIter toplevel, child; 
    105         GdkPixbuf * icon; 
    106138 
    107139        /* sample_info */ 
     
    115147 
    116148        // toplevel 
    117         icon = info_panel_load_icon("sample.png"); 
     149        if (sample_icon == NULL) 
     150                sample_icon = info_panel_load_icon("sample.png"); 
    118151        gtk_tree_store_append(treestore, &toplevel, NULL); 
    119152        gtk_tree_store_set(treestore, &toplevel, 
    120153                INFO_PANEL_SAMPLE_COL_NAME, _("Sample info"), 
    121154                INFO_PANEL_SAMPLE_COL_TYPE, INFO_PANEL_SAMPLE, 
    122                 INFO_PANEL_SAMPLE_COL_ICON, icon, 
     155                INFO_PANEL_SAMPLE_COL_ICON, sample_icon, 
    123156                -1); 
    124157 
     
    204237        GtkTreeStore * treestore; 
    205238        GtkTreeIter toplevel; 
    206         GdkPixbuf * icon; 
    207239 
    208240        treestore = gtk_tree_store_new(INFO_PANEL_SELECTIONS_NUM_COLS, 
     
    216248                       ); 
    217249 
    218         icon = info_panel_load_icon("select.png"); 
     250        if (select_icon == NULL) 
     251                select_icon = info_panel_load_icon("select.png"); 
    219252        gtk_tree_store_append(treestore, &toplevel, NULL); 
    220253        gtk_tree_store_set(treestore, &toplevel, 
    221254                INFO_PANEL_SELECTIONS_COL_NAME, _("Selections"), 
    222255                INFO_PANEL_SELECTIONS_COL_TYPE, INFO_PANEL_SELECTIONS, 
    223                 INFO_PANEL_SELECTIONS_COL_ICON, icon, 
     256                INFO_PANEL_SELECTIONS_COL_ICON, select_icon, 
    224257                -1); 
    225258         
     259        if (select_add_icon == NULL) 
     260                select_add_icon = info_panel_load_icon("select-add-ico.png"); 
     261        if (select_del_icon == NULL) 
     262                select_del_icon = info_panel_load_icon("select-del-ico.png"); 
     263 
    226264        return GTK_TREE_MODEL(treestore); 
    227265} 
     
    231269        GtkTreeStore * treestore; 
    232270        GtkTreeIter toplevel, child; 
    233         GdkPixbuf * icon; 
    234271 
    235272        treestore = gtk_tree_store_new(INFO_PANEL_UNDOS_NUM_COLS, 
     
    242279                       ); 
    243280 
    244         done_icon = info_panel_load_icon("done.png"); 
     281        if (done_icon == NULL) 
     282                done_icon = info_panel_load_icon("done.png"); 
    245283 
    246284#ifdef INFO_PANEL_REVERT 
    247         revert_icon = info_panel_load_icon("revert.png"); 
     285        if (revert_icon == NULL) 
     286                revert_icon = info_panel_load_icon("revert.png"); 
    248287#endif 
    249288 
    250         icon = info_panel_load_icon("undo.png"); 
     289        if (undo_icon == NULL) 
     290                undo_icon = info_panel_load_icon("undo.png"); 
    251291        gtk_tree_store_append(treestore, &toplevel, NULL); 
    252292        gtk_tree_store_set(treestore, &toplevel, 
    253293                INFO_PANEL_UNDOS_COL_NAME, _("Undo"), 
    254294                INFO_PANEL_UNDOS_COL_TYPE, INFO_PANEL_UNDOS, 
    255                 INFO_PANEL_UNDOS_COL_ICON, icon, 
     295                INFO_PANEL_UNDOS_COL_ICON, undo_icon, 
    256296                -1); 
    257297 
     
    270310        GtkTreeStore * treestore; 
    271311        GtkTreeIter toplevel, child; 
    272       GdkPixbuf * icon; 
     312//    GdkPixbuf * icon; 
    273313 
    274314        treestore = gtk_tree_store_new(INFO_PANEL_MARKERS_NUM_COLS, 
     
    276316                       G_TYPE_UINT,             // type 
    277317                       GDK_TYPE_PIXBUF,         // icon 
    278                        G_TYPE_STRING            // value 
     318                       G_TYPE_STRING,           // value 
     319                       G_TYPE_UINT,             // color 
     320                       G_TYPE_UINT,             // mtype 
     321                       G_TYPE_BOOLEAN,          // ed_name 
     322                       G_TYPE_BOOLEAN           // ed_value 
    279323                       ); 
    280324 
    281325 
    282         icon = info_panel_load_icon("marker.png"); 
     326        if (marker_icon == NULL) 
     327                marker_icon = info_panel_load_icon("marker.png"); 
    283328        gtk_tree_store_append(treestore, &toplevel, NULL); 
    284329        gtk_tree_store_set(treestore, &toplevel, 
    285330                INFO_PANEL_MARKERS_COL_NAME, _("Markers"), 
    286331                INFO_PANEL_MARKERS_COL_TYPE, INFO_PANEL_MARKERS, 
    287                 INFO_PANEL_MARKERS_COL_ICON, icon, 
     332                INFO_PANEL_MARKERS_COL_ICON, marker_icon, 
    288333                -1); 
     334 
     335        if (marker_add_icon == NULL) 
     336                marker_add_icon = info_panel_load_icon("marker-add-ico.png"); 
     337        if (marker_del_icon == NULL) 
     338                marker_del_icon = info_panel_load_icon("marker-del-ico.png"); 
    289339 
    290340        return GTK_TREE_MODEL(treestore); 
     
    307357 
    308358 
    309         icon = info_panel_load_icon("marker.png"); 
     359        icon = info_panel_load_icon("plugin.png"); 
    310360        gtk_tree_store_append(treestore, &toplevel, NULL); 
    311361        gtk_tree_store_set(treestore, &toplevel, 
     
    445495                nsel++; 
    446496 
    447         /* more selections then available data slots */ 
     497        /*  
     498         * more selections then available data slots  
     499         * so we have to add some data slots  
     500         */ 
    448501        if (nsel > n){ 
    449502                 
     
    453506                 
    454507                        gtk_tree_store_set(GTK_TREE_STORE(info_panel), &child, 
    455                                                 INFO_PANEL_SELECTIONS_COL_TYPE, INFO_PANEL_SELECTION_ITEM
     508                                                INFO_PANEL_SELECTIONS_COL_TYPE, INFO_PANEL_SELECTIONS_NAME
    456509                                                -1); 
    457510                } 
    458511                 
    459512        } else 
    460         /* more data slots then selections */ 
     513        /*  
     514         * more data slots then selections  
     515         * we have to remove some of data slots 
     516         */ 
    461517        if (nsel < n){ 
    462518                 
     
    844900} 
    845901 
    846  
    847902void info_panel_selection_popup_menu (GtkWidget *treeview, GdkEventButton *event, sw_view * view, gboolean del) 
    848903{ 
     
    851906        menu = gtk_menu_new(); 
    852907 
    853         menuitem = gtk_menu_item_new_with_label(_("Add Selection...")); 
     908        menuitem = info_panel_menu_item_new_with_ico_label(_("Add Selection..."), select_add_icon); 
    854909 
    855910        g_signal_connect(menuitem, "activate", 
     
    859914 
    860915        if (del){ 
    861                 menuitem = gtk_menu_item_new_with_label(_("Delete All Selections...")); 
     916                menuitem = info_panel_menu_item_new_with_ico_label(_("Delete All Selections"), select_del_icon); 
    862917 
    863918                g_signal_connect(menuitem, "activate", 
     
    885940        menu = gtk_menu_new(); 
    886941 
    887         menuitem = gtk_menu_item_new_with_label(_("Delete Selection")); 
     942        menuitem = info_panel_menu_item_new_with_ico_label(_("Delete Selection"), select_del_icon); 
    888943 
    889944        data = g_malloc(sizeof(PopupData)); 
     
    9881043 
    9891044} 
     1045 
     1046void info_panel_add_markers_cb (GtkWidget * menuitem, sw_view * view) 
     1047{ 
     1048        GtkWidget * dialog; 
     1049        GtkWidget * table; 
     1050        GtkWidget * label; 
     1051        GtkWidget * entry; 
     1052        GtkWidget * spin; 
     1053 
     1054        dialog = gtk_dialog_new_with_buttons ( _("Add time marker"), 
     1055                                                GTK_WINDOW(view->window), 
     1056                                                GTK_DIALOG_MODAL, 
     1057                                                GTK_STOCK_OK, 
     1058                                                GTK_RESPONSE_ACCEPT, 
     1059                                                GTK_STOCK_CANCEL, 
     1060                                                GTK_RESPONSE_REJECT, 
     1061                                                NULL); 
     1062        g_signal_connect_swapped (dialog, 
     1063                                "response",  
     1064                                G_CALLBACK (gtk_widget_destroy), 
     1065                                dialog); 
     1066 
     1067        table = gtk_table_new (4, 2, TRUE); 
     1068 
     1069        label = gtk_label_new(_("Marker time")); 
     1070        gtk_table_attach (GTK_TABLE(table), label, 
     1071                        0, 1, 0, 1, 
     1072                        GTK_EXPAND|GTK_FILL|GTK_SHRINK, GTK_FILL, 
     1073                        6, 6); 
     1074        entry = gtk_entry_new_with_max_length (14); 
     1075        gtk_entry_set_text (GTK_ENTRY(entry), "00:00:00.000"); 
     1076        gtk_table_attach (GTK_TABLE(table), entry, 
     1077                        1, 2, 0, 1, 
     1078                        GTK_EXPAND|GTK_FILL|GTK_SHRINK, GTK_FILL, 
     1079                        6, 6); 
     1080         
     1081        label = gtk_label_new(_("Marker frame")); 
     1082        gtk_table_attach (GTK_TABLE(table), label, 
     1083                        0, 1, 1, 2, 
     1084                        GTK_EXPAND|GTK_FILL|GTK_SHRINK, GTK_FILL, 
     1085                        6, 6); 
     1086        spin = gtk_spin_button_new_with_range (0, 10000, 1); 
     1087        gtk_table_attach (GTK_TABLE(table), spin, 
     1088                        1, 2, 1, 2, 
     1089                        GTK_EXPAND|GTK_FILL|GTK_SHRINK, GTK_FILL, 
     1090                        0, 0); 
     1091#if 0 
     1092        label = gtk_label_new(_("End of selection")); 
     1093        gtk_table_attach (GTK_TABLE(table), label, 
     1094                        0, 1, 2, 3, 
     1095                        GTK_EXPAND|GTK_FILL|GTK_SHRINK, GTK_FILL, 
     1096                        6, 6); 
     1097        entry = gtk_entry_new_with_max_length (14); 
     1098        gtk_entry_set_text (GTK_ENTRY(entry), "00:00:01.000"); 
     1099        gtk_table_attach (GTK_TABLE(table), entry, 
     1100                        1, 2, 2, 3, 
     1101                        GTK_EXPAND|GTK_FILL|GTK_SHRINK, GTK_FILL, 
     1102                        6, 6); 
     1103         
     1104        label = gtk_label_new(_("End frame")); 
     1105        gtk_table_attach (GTK_TABLE(table), label, 
     1106                        0, 1, 3, 4, 
     1107                        GTK_EXPAND|GTK_FILL|GTK_SHRINK, GTK_FILL, 
     1108                        6, 6); 
     1109        spin = gtk_spin_button_new_with_range (0, 10000, 1); 
     1110        gtk_table_attach (GTK_TABLE(table), spin, 
     1111                        1, 2, 3, 4, 
     1112                        GTK_EXPAND|GTK_FILL|GTK_SHRINK, GTK_FILL, 
     1113                        0, 0); 
     1114#endif 
     1115        gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), 
     1116                        table); 
     1117 
     1118        gtk_widget_show_all (dialog); 
     1119} 
     1120 
     1121void info_panel_add_markers_1_cb (GtkWidget * menuitem, sw_view * view) 
     1122{ 
     1123        sw_mark * mark; 
     1124 
     1125        mark = mark_new( 100, SWEEP_MARK_TYPE_SIMPLE, "TEST1" ); 
     1126 
     1127        view->sample->sounddata->marks = marks_add_marker( view->sample->sounddata->marks, mark ); 
     1128 
     1129} 
     1130 
     1131void info_panel_markers_popup_menu (GtkWidget *treeview, GdkEventButton *event, sw_view * view, gboolean del) 
     1132{ 
     1133        GtkWidget *menu, *menuitem; 
     1134 
     1135        menu = gtk_menu_new(); 
     1136 
     1137        menuitem = info_panel_menu_item_new_with_ico_label(_("Add Time Marker..."), marker_add_icon); 
     1138 
     1139        g_signal_connect(menuitem, "activate", 
     1140                                 (GCallback) info_panel_add_markers_1_cb, view); 
     1141 
     1142        gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 
     1143 
     1144        if (del){ 
     1145                menuitem = info_panel_menu_item_new_with_ico_label(_("Delete All Time Markers"), marker_del_icon); 
     1146 
     1147//              g_signal_connect(menuitem, "activate", 
     1148//                               (GCallback) info_panel_delete_all_selections_cb, view); 
     1149 
     1150                gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 
     1151        } 
     1152 
     1153        gtk_widget_show_all(menu); 
     1154 
     1155        /* Note: event can be NULL here when called from view_onPopupMenu; 
     1156         * gdk_event_get_time() accepts a NULL argument */ 
     1157 
     1158        gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 
     1159                               (event != NULL) ? event->button : 0, 
     1160                                gdk_event_get_time((GdkEvent*)event)); 
     1161 
     1162} 
     1163 
     1164void info_panel_markers_item_popup_menu (GtkWidget *treeview, GdkEventButton *event, sw_view * view) 
     1165{ 
     1166#if 0 
     1167        GtkWidget *menu, *menuitem; 
     1168        PopupData * data; 
     1169         
     1170        menu = gtk_menu_new(); 
     1171 
     1172        menuitem = gtk_menu_item_new_with_label(_("Delete Selection")); 
     1173 
     1174        data = g_malloc(sizeof(PopupData)); 
     1175         
     1176        data->view = view; 
     1177        data->treeview = GTK_TREE_VIEW(treeview); 
     1178         
     1179        g_signal_connect(menuitem, "activate", 
     1180                                 (GCallback) info_panel_delete_selection_cb, data); 
     1181 
     1182        gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 
     1183 
     1184        gtk_widget_show_all(menu); 
     1185 
     1186        /* Note: event can be NULL here when called from view_onPopupMenu; 
     1187         * gdk_event_get_time() accepts a NULL argument */ 
     1188 
     1189        gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 
     1190                               (event != NULL) ? event->button : 0, 
     1191                                gdk_event_get_time((GdkEvent*)event)); 
     1192#endif 
     1193} 
     1194 
    9901195 
    9911196gboolean info_panel_selections_bpress_cb (GtkWidget *treeview, GdkEventButton *event, sw_view * view) 
     
    10241229 
    10251230                                        break; 
    1026                                 case INFO_PANEL_SELECTION_ITEM
     1231                                case INFO_PANEL_SELECTIONS_NAME
    10271232 
    10281233                                        info_panel_selection_item_popup_menu(treeview, event, view); 
     
    11401345#endif 
    11411346 
     1347gboolean info_panel_markers_bpress_cb (GtkWidget *treeview, GdkEventButton *event, sw_view * view) 
     1348{ 
     1349        GtkTreeSelection * selection; 
     1350        GtkTreeModel * model; 
     1351        GtkTreePath * path; 
     1352        GtkTreeIter iter; 
     1353        gint type; 
     1354 
     1355        if (event->type == GDK_BUTTON_PRESS && event->button == 3){ 
     1356                selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); 
     1357 
     1358                if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(treeview), 
     1359                                                (gint) event->x, 
     1360                                                (gint) event->y, 
     1361                                                &path, NULL, NULL, NULL)) 
     1362                { 
     1363                        gtk_tree_selection_unselect_all(selection); 
     1364                        gtk_tree_selection_select_path(selection, path); 
     1365 
     1366                        model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); 
     1367         
     1368                        gtk_tree_model_get_iter(model, &iter, path); 
     1369         
     1370                        gtk_tree_model_get(model, &iter, INFO_PANEL_SELECTIONS_COL_TYPE, &type, -1); 
     1371 
     1372                        switch (type){ 
     1373                                case INFO_PANEL_MARKERS: 
     1374 
     1375                                        if (gtk_tree_model_iter_n_children(model, &iter)){ 
     1376                                                info_panel_markers_popup_menu(treeview, event, view, TRUE); 
     1377                                        } else { 
     1378                                                info_panel_markers_popup_menu(treeview, event, view, FALSE); 
     1379                                        } 
     1380 
     1381                                        break; 
     1382                                case INFO_PANEL_MARKERS_NAME: 
     1383 
     1384                                        info_panel_markers_item_popup_menu(treeview, event, view); 
     1385 
     1386                                        break; 
     1387                        } 
     1388                        gtk_tree_path_free(path); 
     1389                } 
     1390                return TRUE; 
     1391        } 
     1392 
     1393        return FALSE; 
     1394} 
     1395 
    11421396static sw_sample * info_panel_selection_modify (sw_sample * s, sw_param_set unused, SelectionData * seldata) 
    11431397{ 
     
    11741428 
    11751429        switch (type){ 
    1176                 case INFO_PANEL_SELECTION_ITEM
     1430                case INFO_PANEL_SELECTIONS_NAME
    11771431                        gtk_tree_model_get(model, &iter, INFO_PANEL_SELECTIONS_COL_NAME, &name, INFO_PANEL_SELECTIONS_COL_POINTER, &gl, -1); 
    11781432 
     
    14661720 
    14671721        switch (type){ 
    1468                 case INFO_PANEL_SELECTION_ITEM
     1722                case INFO_PANEL_SELECTIONS_NAME
    14691723                        gtk_tree_model_get(model, &iter, INFO_PANEL_SELECTIONS_COL_VALUE, &param, INFO_PANEL_SELECTIONS_COL_POINTER, &gl, -1); 
    14701724 
     
    17251979        renderer = gtk_cell_renderer_pixbuf_new(); 
    17261980        gtk_tree_view_column_pack_start(col, renderer, FALSE); 
    1727         gtk_tree_view_column_set_attributes(col, renderer, "pixbuf", INFO_PANEL_SELECTIONS_COL_ICON, NULL); 
     1981        gtk_tree_view_column_set_attributes(col, renderer, "pixbuf", INFO_PANEL_MARKERS_COL_ICON, NULL); 
    17281982 
    17291983        renderer = gtk_cell_renderer_text_new(); 
    17301984        gtk_tree_view_column_pack_start(col, renderer, FALSE); 
    1731         gtk_tree_view_column_add_attribute(col, renderer, "text", INFO_PANEL_SELECTIONS_COL_NAME); 
    1732 /*     gtk_tree_view_column_add_attribute(col, renderer, "editable", INFO_PANEL_SELECTIONS_COL_EDITABLE_NAME); 
    1733         g_signal_connect(renderer, "edited", (GCallback) info_panel_selections_edited_name_cb, view); 
    1734 */ 
     1985        gtk_tree_view_column_add_attribute(col, renderer, "text", INFO_PANEL_MARKERS_COL_NAME); 
     1986       gtk_tree_view_column_add_attribute(col, renderer, "editable", INFO_PANEL_MARKERS_COL_EDITABLE_NAME); 
     1987        //g_signal_connect(renderer, "edited", (GCallback) info_panel_markers_edited_name_cb, view); 
     1988 
    17351989        renderer = gtk_cell_renderer_text_new(); 
    17361990        gtk_tree_view_column_pack_start(col, renderer, FALSE); 
    1737         gtk_tree_view_column_add_attribute(col, renderer, "text", INFO_PANEL_SELECTIONS_COL_VALUE); 
    1738 /*     gtk_tree_view_column_add_attribute(col, renderer, "editable", INFO_PANEL_SELECTIONS_COL_EDITABLE_VALUE); 
    1739          
    1740         g_signal_connect(renderer, "edited", (GCallback) info_panel_selections_edited_value_cb, view); 
    1741         g_signal_connect(treeview, "button-press-event", (GCallback) info_panel_selections_bpress_cb, view); 
    1742 */ 
     1991        gtk_tree_view_column_add_attribute(col, renderer, "text", INFO_PANEL_MARKERS_COL_VALUE); 
     1992       gtk_tree_view_column_add_attribute(col, renderer, "editable", INFO_PANEL_MARKERS_COL_EDITABLE_VALUE); 
     1993         
     1994        //g_signal_connect(renderer, "edited", (GCallback) info_panel_markers_edited_value_cb, view); 
     1995        g_signal_connect(treeview, "button-press-event", (GCallback) info_panel_markers_bpress_cb, view); 
     1996 
    17431997        return treeview; 
    17441998} 
    1745  
    17461999 
    17472000 
  • sweep/branches/sweep-info-panel/src/info-panel.h

    r456 r457  
    7272{ 
    7373        INFO_PANEL_SELECTIONS = 1, 
    74         INFO_PANEL_SELECTION_ITEM 
     74        INFO_PANEL_SELECTIONS_NAME, 
     75        INFO_PANEL_SELECTIONS_START, 
     76        INFO_PANEL_SELECTIONS_END 
    7577} info_panel_selections_type_t; 
    7678 
     
    113115{ 
    114116        INFO_PANEL_MARKERS = 1, 
    115         INFO_PANEL_MARKER_ITEM 
     117        INFO_PANEL_MARKERS_NAME, 
     118        INFO_PANEL_MARKERS_FRAME, 
     119        INFO_PANEL_MARKERS_TYPE, 
     120        INFO_PANEL_MARKERS_COLOR 
    116121} info_panel_markers_type_t; 
    117122 
     
    123128        INFO_PANEL_MARKERS_COL_ICON, 
    124129        INFO_PANEL_MARKERS_COL_VALUE, 
     130        INFO_PANEL_MARKERS_COL_COLOR, 
     131        INFO_PANEL_MARKERS_COL_MTYPE, 
     132        INFO_PANEL_MARKERS_COL_EDITABLE_NAME, 
     133        INFO_PANEL_MARKERS_COL_EDITABLE_VALUE, 
    125134        INFO_PANEL_MARKERS_NUM_COLS 
    126135} info_panel_markers_t; 
  • sweep/branches/sweep-info-panel/src/sample-display.c

    r456 r457  
    12811281 
    12821282static void 
    1283 sample_display_draw_mark (GdkDrawable * win, 
     1283sample_display_draw_marks (GdkDrawable * win, 
    12841284                         const SampleDisplay * s, 
    12851285                         int x_min, int x_max) 
     
    12951295    mark = (sw_mark *)gl->data; 
    12961296 
    1297 g_print("MARK: DRAW\n"); 
    12981297 
    12991298    x = OFFSET_TO_XPOS(mark->frame); 
     
    13021301 
    13031302    x1 = CLAMP (x - 3, x_min, x_max); 
    1304     x2 = CLAMP (x + 3, x_min, x_max); 
    1305  
    1306     gdk_draw_line(win, s->user_gc, 
     1303    x2 = CLAMP (x + 4, x_min, x_max); 
     1304 
     1305    gdk_draw_line(win, s->rec_gc, 
    13071306                  x, 8, 
    13081307                  x, s->height); 
     
    13161315    poly[0].y = 0; 
    13171316    poly[1].y = 0; 
    1318     poly[2].y = 5
    1319     poly[3].y = 8
    1320     poly[4].y = 5
    1321  
    1322     gdk_draw_polygon (win, s->user_gc, TRUE, poly, 5); 
     1317    poly[2].y = 7
     1318    poly[3].y = 10
     1319    poly[4].y = 7
     1320 
     1321    gdk_draw_polygon (win, s->rec_gc, TRUE, poly, 5); 
    13231322 
    13241323  } 
     
    16081607 
    16091608    /* draw markers */ 
    1610     sample_display_draw_mark (drawable, s, x_min, x_max); 
     1609    sample_display_draw_marks (drawable, s, x_min, x_max); 
    16111610 
    16121611    /* draw the offset cursors */ 
     
    16551654 
    16561655/*** EVENT HANDLERS ***/ 
    1657  
    16581656 
    16591657static gint 
  • sweep/branches/sweep-info-panel/src/sweep_sample.c

    r456 r457  
    16111611sample_clear_tmp_sel (sw_sample * s) 
    16121612{ 
    1613  if (s->tmp_sel) g_free (s->tmp_sel); 
     1613 if (s->tmp_sel != NULL){ 
     1614   if (s->tmp_sel->name != NULL) 
     1615     g_free (s->tmp_sel->name); 
     1616   g_free (s->tmp_sel); 
     1617 } 
    16141618 s->tmp_sel = NULL; 
    16151619 last_tmp_view = NULL; 
     
    16601664} 
    16611665 
    1662 /* For convenience, as the tmp_sel handling is internal to the application, 
     1666/*  
     1667 * For convenience, as the tmp_sel handling is internal to the application, 
    16631668 * we pass the actual sw_sample pointer to the tmp_sel handling ops. 
    16641669 */ 
     
    17001705        n = snprintf (buf, BUF_LEN, _("Insert selection")); 
    17011706 
    1702  g_mutex_lock (s->sounddata->sels_mutex); 
     1707// g_mutex_lock (s->sounddata->sels_mutex); 
    17031708 
    17041709  sel = sel_copy (s->tmp_sel); 
    1705  
    1706   s->tmp_sel = NULL; 
    1707   last_tmp_view = NULL; 
    1708  
    1709   g_mutex_unlock (s->sounddata->sels_mutex); 
     1710   
     1711  sample_clear_tmp_sel (s); 
     1712//  s->tmp_sel = NULL; 
     1713//  last_tmp_view = NULL; 
     1714 
     1715//  g_mutex_unlock (s->sounddata->sels_mutex); 
    17101716   
    17111717  perform_selection_op (s, buf, ssits, NULL, sel); 
     
    17531759  n += snprintf (buf+n, BUF_LEN-n, "]"); 
    17541760 
    1755   g_mutex_lock (s->sounddata->sels_mutex); 
     1761//  g_mutex_lock (s->sounddata->sels_mutex); 
    17561762 
    17571763  sel = sel_copy (s->tmp_sel); 
    17581764 
    1759   s->tmp_sel = NULL; 
    1760   last_tmp_view = NULL; 
    1761  
    1762   g_mutex_unlock (s->sounddata->sels_mutex); 
     1765  sample_clear_tmp_sel (s); 
     1766//  s->tmp_sel = NULL; 
     1767//  last_tmp_view = NULL; 
     1768 
     1769//  g_mutex_unlock (s->sounddata->sels_mutex); 
    17631770   
    17641771  perform_selection_op (s, buf, sssts, NULL, sel); 
  • sweep/branches/sweep-info-panel/src/sweep_selection.c

    r455 r457  
    5151  if (name != NULL) 
    5252        sel->name = g_strdup(name); 
     53  else 
     54        sel->name = NULL; 
    5355 
    5456  return sel;