Changeset 458
- Timestamp:
- 01/06/07 01:11:22 (2 years ago)
- Files:
-
- sweep/branches/sweep-info-panel/include/sweep/sweep_types.h (modified) (1 diff)
- sweep/branches/sweep-info-panel/pixmaps/mark.xpm (added)
- sweep/branches/sweep-info-panel/src/db_ruler.c (modified) (2 diffs)
- sweep/branches/sweep-info-panel/src/info-panel.c (modified) (12 diffs)
- sweep/branches/sweep-info-panel/src/info-panel.h (modified) (2 diffs)
- sweep/branches/sweep-info-panel/src/sample-display.c (modified) (15 diffs)
- sweep/branches/sweep-info-panel/src/sample-display.h (modified) (3 diffs)
- sweep/branches/sweep-info-panel/src/sweep_app.h (modified) (2 diffs)
- sweep/branches/sweep-info-panel/src/sweep_marker.c (modified) (2 diffs)
- sweep/branches/sweep-info-panel/src/sweep_sample.c (modified) (1 diff)
- sweep/branches/sweep-info-panel/src/view.c (modified) (1 diff)
- sweep/branches/sweep-info-panel/src/view_pixmaps.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
sweep/branches/sweep-info-panel/include/sweep/sweep_types.h
r457 r458 113 113 * 114 114 */ 115 #define MARKER_COLOR_MAX 8 116 115 117 typedef struct _sw_mark sw_mark; 116 118 sweep/branches/sweep-info-panel/src/db_ruler.c
r457 r458 242 242 if (DB_RULER(widget)->dragging && (state & GDK_BUTTON1_MASK)) { 243 243 244 g_print("Jestem ale nie wiem co robie!!!!\n");245 246 244 ydelta = DB_RULER(widget)->y - y; 247 245 … … 330 328 DB_RULER(widget)->dragging = FALSE; 331 329 332 g_print("db_ruler_leave_notify\n");333 334 330 return TRUE; 335 331 } sweep/branches/sweep-info-panel/src/info-panel.c
r457 r458 309 309 { 310 310 GtkTreeStore * treestore; 311 GtkTreeIter toplevel , child;311 GtkTreeIter toplevel; //, child; 312 312 // GdkPixbuf * icon; 313 313 … … 319 319 G_TYPE_UINT, // color 320 320 G_TYPE_UINT, // mtype 321 G_TYPE_POINTER, // pointer 321 322 G_TYPE_BOOLEAN, // ed_name 322 323 G_TYPE_BOOLEAN // ed_value … … 373 374 info_panel_models * info_s; 374 375 375 info_s = g_malloc ( sizeof (info_panel_models) );376 info_s = g_malloc0 ( sizeof (info_panel_models) ); 376 377 377 378 info_s->sample = info_panel_create_sample_model (); … … 679 680 } 680 681 682 void info_panel_markers_info_update (sw_sample * sample) 683 { 684 GtkTreeModel * info_panel; 685 GtkTreeIter iter, child, child_data; 686 #define BUF_LEN 64 687 gchar buf[BUF_LEN], mtime [BUF_LEN]; 688 gint a,n,nn,nmark; 689 GList * gl; 690 sw_mark * mark; 691 692 if (sample->info_panel == NULL) 693 return; 694 695 info_panel = sample->info_panel->markers; 696 697 gtk_tree_model_get_iter_from_string(info_panel, &iter, "0"); 698 699 n = gtk_tree_model_iter_n_children(info_panel, &iter); 700 701 nmark = g_list_length(sample->sounddata->marks); 702 703 /* 704 * we have more markers then available data slots 705 * so we have to add some data slots 706 */ 707 if (nmark > n){ 708 709 for (a = 0; a < (nmark - n); a++){ 710 711 gtk_tree_store_append(GTK_TREE_STORE(info_panel), &child, &iter); 712 gtk_tree_store_set(GTK_TREE_STORE(info_panel), &child, 713 INFO_PANEL_MARKERS_COL_TYPE, INFO_PANEL_MARKERS_NAME, 714 -1); 715 716 gtk_tree_store_append(GTK_TREE_STORE(info_panel), &child_data, &child); 717 gtk_tree_store_set(GTK_TREE_STORE(info_panel), &child_data, 718 INFO_PANEL_MARKERS_COL_TYPE, INFO_PANEL_MARKERS_FRAME, 719 INFO_PANEL_MARKERS_COL_NAME, "Time", 720 -1); 721 722 gtk_tree_model_iter_next(info_panel, &child_data); 723 gtk_tree_store_append(GTK_TREE_STORE(info_panel), &child_data, &child); 724 gtk_tree_store_set(GTK_TREE_STORE(info_panel), &child_data, 725 INFO_PANEL_MARKERS_COL_TYPE, INFO_PANEL_MARKERS_COLOR, 726 INFO_PANEL_MARKERS_COL_NAME, "Color", 727 -1); 728 729 gtk_tree_model_iter_next(info_panel, &child_data); 730 gtk_tree_store_append(GTK_TREE_STORE(info_panel), &child_data, &child); 731 gtk_tree_store_set(GTK_TREE_STORE(info_panel), &child_data, 732 INFO_PANEL_MARKERS_COL_TYPE, INFO_PANEL_MARKERS_TYPE, 733 INFO_PANEL_MARKERS_COL_NAME, "Type", 734 -1); 735 } 736 737 } else 738 739 /* 740 * we have more data slots then markers 741 * we have to remove some of data slots 742 */ 743 if (nmark < n){ 744 745 gtk_tree_model_get_iter_from_string(info_panel, &child, "0:0"); 746 747 for (a = 0; a < (n - nmark); a++){ 748 gtk_tree_model_iter_children (info_panel, &child_data, &child); 749 750 gtk_tree_store_remove(GTK_TREE_STORE(info_panel), &child_data); 751 gtk_tree_store_remove(GTK_TREE_STORE(info_panel), &child_data); 752 gtk_tree_store_remove(GTK_TREE_STORE(info_panel), &child_data); 753 754 gtk_tree_store_remove(GTK_TREE_STORE(info_panel), &child); 755 } 756 } 757 758 if (nmark > 0){ 759 760 nn = 1; 761 762 gtk_tree_model_get_iter_from_string(info_panel, &child, "0:0"); 763 764 g_mutex_lock(sample->sounddata->marks_mutex); 765 766 for (gl = sample->sounddata->marks; gl; gl = gl->next) { 767 mark = (sw_mark *)gl->data; 768 769 g_snprintf (buf, BUF_LEN, "#%d", nn++); 770 771 snprint_time(mtime, BUF_LEN, frames_to_time (sample->sounddata->format, mark->frame)); 772 773 gtk_tree_store_set(GTK_TREE_STORE(info_panel), &child, 774 INFO_PANEL_MARKERS_COL_NAME, mark->name ? mark->name : buf, 775 // INFO_PANEL_MARKERS_COL_VALUE, mtime, 776 INFO_PANEL_MARKERS_COL_POINTER, gl, 777 INFO_PANEL_MARKERS_COL_EDITABLE_NAME, TRUE, 778 -1); 779 780 gtk_tree_model_iter_children (info_panel, &child_data, &child); 781 782 gtk_tree_store_set(GTK_TREE_STORE(info_panel), &child_data, 783 INFO_PANEL_MARKERS_COL_VALUE, mtime, 784 INFO_PANEL_MARKERS_COL_EDITABLE_VALUE, TRUE, 785 -1); 786 787 gtk_tree_model_iter_next(info_panel, &child_data); 788 gtk_tree_store_set(GTK_TREE_STORE(info_panel), &child_data, 789 INFO_PANEL_MARKERS_COL_VALUE, mtime, 790 INFO_PANEL_MARKERS_COL_EDITABLE_VALUE, TRUE, 791 -1); 792 793 gtk_tree_model_iter_next(info_panel, &child_data); 794 gtk_tree_store_set(GTK_TREE_STORE(info_panel), &child_data, 795 INFO_PANEL_MARKERS_COL_VALUE, mtime, 796 INFO_PANEL_MARKERS_COL_EDITABLE_VALUE, TRUE, 797 -1); 798 799 gtk_tree_model_iter_next(info_panel, &child); 800 } 801 802 g_mutex_unlock(sample->sounddata->marks_mutex); 803 804 g_snprintf (buf, BUF_LEN, "(%d)", nmark); 805 806 } else { 807 808 buf[0] = 0; 809 810 } 811 812 if (n) 813 gtk_tree_store_set(GTK_TREE_STORE(info_panel), &iter, 814 INFO_PANEL_MARKERS_COL_VALUE, buf, 815 -1); 816 817 #undef BUF_LEN 818 } 819 /* 681 820 void info_panel_update (sw_sample * sample) 682 821 { 683 info_panel_sample_info_update(sample); 684 info_panel_selections_info_update(sample); 685 info_panel_undos_info_update(sample); 686 } 687 822 info_panel_sample_info_update (sample); 823 info_panel_selections_info_update (sample); 824 info_panel_undos_info_update (sample); 825 info_panel_markers_info_update (sample); 826 } 827 */ 688 828 void info_panel_error_dialog (GtkWidget * window, gchar * message) 689 829 { … … 782 922 GtkWidget * entry; 783 923 GtkWidget * spin; 924 gint response; 784 925 785 926 dialog = gtk_dialog_new_with_buttons ( _("Add selection"), … … 791 932 GTK_RESPONSE_REJECT, 792 933 NULL); 934 /* 793 935 g_signal_connect_swapped (dialog, 794 936 "response", 795 937 G_CALLBACK (gtk_widget_destroy), 796 938 dialog); 797 939 */ 798 940 table = gtk_table_new (4, 2, TRUE); 799 941 … … 848 990 849 991 gtk_widget_show_all (dialog); 992 993 response = gtk_dialog_run (GTK_DIALOG(dialog)); 994 995 gtk_widget_destroy (dialog); 996 997 switch (response){ 998 case GTK_RESPONSE_ACCEPT: 999 g_print("OK\n"); 1000 return; 1001 break; 1002 default: 1003 g_print("cancel\n"); 1004 return; 1005 break; 1006 } 850 1007 } 851 1008 … … 1043 1200 1044 1201 } 1045 1202 #if 0 1046 1203 void info_panel_add_markers_cb (GtkWidget * menuitem, sw_view * view) 1047 1204 { … … 1119 1276 } 1120 1277 1121 void info_panel_add_markers_1_cb (GtkWidget * menuitem, sw_view * view) 1278 #else 1279 1280 void info_panel_add_markers_cb (GtkWidget * menuitem, sw_view * view) 1122 1281 { 1123 1282 sw_mark * mark; 1124 1283 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 } 1284 mark = mark_new (0, SWEEP_MARK_TYPE_SIMPLE, NULL); 1285 1286 view->sample->sounddata->marks = marks_add_marker (view->sample->sounddata->marks, mark); 1287 1288 sample_refresh_views (view->sample); 1289 } 1290 #endif 1130 1291 1131 1292 void info_panel_markers_popup_menu (GtkWidget *treeview, GdkEventButton *event, sw_view * view, gboolean del) … … 1138 1299 1139 1300 g_signal_connect(menuitem, "activate", 1140 (GCallback) info_panel_add_markers_ 1_cb, view);1301 (GCallback) info_panel_add_markers_cb, view); 1141 1302 1142 1303 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); … … 1456 1617 } 1457 1618 } 1619 1620 void info_panel_markers_edited_name_cb (GtkCellRendererText *cell, gchar *path_string, gchar *new_text, sw_view * view) 1621 { 1622 GtkTreeModel * model; 1623 GtkTreeIter iter; 1624 gint type; 1625 sw_mark * mark; 1626 GList * gl; 1627 // SelectionData * seldata; 1628 gchar * name; 1629 1630 if (view->sample->info_panel == NULL) 1631 return; 1632 1633 model = view->sample->info_panel->markers; 1634 1635 gtk_tree_model_get_iter_from_string(model, &iter, path_string); 1636 1637 gtk_tree_model_get(model, &iter, INFO_PANEL_MARKERS_COL_TYPE, &type, -1); 1638 1639 switch (type){ 1640 case INFO_PANEL_MARKERS_NAME: 1641 gtk_tree_model_get(model, &iter, INFO_PANEL_MARKERS_COL_NAME, &name, INFO_PANEL_MARKERS_COL_POINTER, &gl, -1); 1642 1643 mark = (sw_mark *)gl->data; 1644 1645 if (g_utf8_collate(name, new_text) && (mark->name == NULL || g_utf8_collate(mark->name, new_text))){ 1646 1647 if (!new_text[0]){ 1648 new_text = NULL; 1649 } 1650 1651 info_panel_row_update_str(model, path_string, INFO_PANEL_MARKERS_COL_NAME, new_text); 1652 1653 mark->name = g_strdup(new_text); 1654 /* 1655 seldata = g_malloc0(sizeof(SelectionData)); 1656 1657 seldata->sel_data.name = g_strdup(new_text); 1658 1659 seldata->sel_data.sel_start = sel->sel_start; 1660 seldata->sel_data.sel_end = sel->sel_end; 1661 1662 seldata->sel_modify = sel; 1663 1664 perform_selection_op (view->sample, _("Set sel name"), (SweepFilter)info_panel_selection_modify, NULL, seldata); 1665 */ 1666 } 1667 1668 break; 1669 } 1670 } 1671 1458 1672 1459 1673 /* … … 1985 2199 gtk_tree_view_column_add_attribute(col, renderer, "text", INFO_PANEL_MARKERS_COL_NAME); 1986 2200 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);2201 g_signal_connect(renderer, "edited", (GCallback) info_panel_markers_edited_name_cb, view); 1988 2202 1989 2203 renderer = gtk_cell_renderer_text_new(); sweep/branches/sweep-info-panel/src/info-panel.h
r457 r458 130 130 INFO_PANEL_MARKERS_COL_COLOR, 131 131 INFO_PANEL_MARKERS_COL_MTYPE, 132 INFO_PANEL_MARKERS_COL_POINTER, 132 133 INFO_PANEL_MARKERS_COL_EDITABLE_NAME, 133 134 INFO_PANEL_MARKERS_COL_EDITABLE_VALUE, … … 156 157 GtkWidget * info_panel_new (sw_view * view); 157 158 info_panel_models * info_panel_create_models(void); 158 void info_panel_update(sw_sample * sample);159 //void info_panel_update(sw_sample * sample); 159 160 void info_panel_sample_info_update(sw_sample * sample); 160 161 void info_panel_selections_info_update(sw_sample * sample); 161 162 void info_panel_undos_info_update(sw_sample * sample); 162 #ifdef SWEEP_INFO_PANEL_MARKERS163 163 void info_panel_markers_info_update(sw_sample * sample); 164 #endif165 164 #ifdef SWEEP_INFO_PANEL_PLUGINS 166 165 void info_panel_plugins_info_update(sw_sample * sample); sweep/branches/sweep-info-panel/src/sample-display.c
r457 r458 139 139 81, 101, 81, /* lowlight */ 140 140 230, 0, 0, /* rec */ 141 0, 0, 0, /* relief */ 141 142 }; 142 143 … … 162 163 81, 101, 81, /* lowlight */ 163 164 240, 0, 0, /* rec */ 165 0, 0, 0, /* relief */ 164 166 }; 165 167 #endif … … 191 193 }; 192 194 195 static const int mark_colors[] = { 196 0, 255, 255, 197 0, 255, 0, 198 0, 0, 255, 199 255, 0, 255, 200 0, 0, 255, 201 0, 0, 255, 202 0, 0, 255, 203 }; 204 193 205 /* Values for s->selecting */ 194 206 enum { … … 201 213 SELECTING_NOISE, 202 214 SELECTING_HAND, 215 SELECTING_MARKER 203 216 }; 204 217 … … 772 785 } 773 786 787 for (i = 0; i < MARKER_COLOR_MAX; i++) { 788 s->marks_gcs[i] = gdk_gc_new (widget->window); 789 gdk_gc_set_foreground(s->marks_gcs[i], &SAMPLE_DISPLAY_CLASS(GTK_WIDGET_GET_CLASS(widget))->mark_colors[i]); 790 } 791 792 s->marks_relief_gc = gdk_gc_new (widget->window); 793 gdk_gc_set_foreground(s->marks_relief_gc, &SAMPLE_DISPLAY_CLASS(GTK_WIDGET_GET_CLASS(widget))->colors[SAMPLE_DISPLAYCOL_MARKS_RELIEF]); 794 774 795 sample_display_init_display(s, attributes.width, attributes.height); 775 796 … … 1290 1311 GdkPoint poly[5]; 1291 1312 int x, x1, x2; 1292 1293 /* Draw real selection */ 1313 PangoLayout *layout; 1314 // PangoRectangle logical_rect, ink_rect; 1315 1316 layout = gtk_widget_create_pango_layout (GTK_WIDGET(s), NULL); 1317 1294 1318 for (gl = sample->sounddata->marks; gl; gl = gl->next) { 1295 1319 mark = (sw_mark *)gl->data; … … 1298 1322 x = OFFSET_TO_XPOS(mark->frame); 1299 1323 1300 if ((x > x_max) || (x < x_min)) break;1301 1302 x1 = CLAMP (x - 3, x_min, x_max);1303 x2 = CLAMP (x + 4, x_min, x_max);1304 1305 gdk_draw_line(win, s->rec_gc,1306 x, 8,1307 x, s->height);1308 1309 poly[0].x = x1;1310 poly[1].x = x2;1311 poly[2].x = x2;1312 poly[3].x = x;1313 poly[4].x = x1;1324 if ((x <= x_max) || (x >= x_min)){ 1325 1326 x1 = CLAMP (x - 3, x_min, x_max); 1327 x2 = CLAMP (x + 3, x_min, x_max); 1328 1329 gdk_draw_line(win, s->marks_gcs[mark->color], 1330 x, 8, 1331 x, s->height); 1332 1333 poly[0].x = x1; 1334 poly[1].x = x2 + 1; 1335 poly[2].x = x2 + 1; 1336 poly[3].x = x; 1337 poly[4].x = x1; 1314 1338 1315 poly[0].y = 0; 1316 poly[1].y = 0; 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); 1322 1323 } 1339 poly[0].y = 0; 1340 poly[1].y = 0; 1341 poly[2].y = 7; 1342 poly[3].y = 10; 1343 poly[4].y = 7; 1344 1345 gdk_draw_polygon (win, s->marks_gcs[mark->color], TRUE, poly, 5); 1346 1347 poly[1].x = x2; 1348 poly[2].x = x2; 1349 1350 gdk_draw_polygon (win, s->marks_relief_gc, FALSE, poly, 5); 1351 1352 if ( mark->name != NULL ){ 1353 pango_layout_set_text (layout, mark->name, -1); 1354 1355 gtk_paint_layout (GTK_WIDGET(s)->style, 1356 win, GTK_WIDGET_STATE (GTK_WIDGET(s)), 1357 FALSE, NULL, 1358 GTK_WIDGET(s), NULL, 1359 x2 + 2, -3, 1360 layout); 1361 } 1362 } 1363 } 1364 1365 g_object_unref (layout); 1366 1324 1367 } 1325 1368 … … 1974 2017 1975 2018 static void 2019 sample_display_handle_marker_motion (SampleDisplay * s, int x, int y) 2020 { 2021 sw_mark * mark; 2022 GList * gl; 2023 sw_framecount_t offset, off1, off2; 2024 gboolean mod = FALSE; 2025 2026 offset = XPOS_TO_OFFSET(x); 2027 off1 = XPOS_TO_OFFSET(x - 5); 2028 off2 = XPOS_TO_OFFSET(x + 5); 2029 2030 g_mutex_lock (s->view->sample->sounddata->marks_mutex); 2031 2032 if (s->view->sample->tmp_mark){ 2033 2034 s->view->sample->tmp_mark->frame = offset; 2035 mod = TRUE; 2036 2037 } else { 2038 for ( gl = s->view->sample->sounddata->marks; gl; gl = gl->next){ 2039 g_print ("Mark found: %p\n", gl->data); 2040 2041 mark = (sw_mark *)gl->data; 2042 2043 if ( (mark->frame >= off1) && (mark->frame <= off2) ){ 2044 g_print ("mamy ciÄ!\n"); 2045 2046 s->view->sample->tmp_mark = mark; 2047 mark->frame = offset; 2048 2049 mod = TRUE; 2050 2051 break; 2052 } 2053 } 2054 } 2055 2056 g_mutex_unlock (s->view->sample->sounddata->marks_mutex); 2057 2058 if (mod) 2059 sample_refresh_views (s->view->sample); 2060 2061 } 2062 2063 static void 1976 2064 sample_display_handle_noise_motion (SampleDisplay * s, int x, int y) 1977 2065 { … … 2222 2310 return TRUE; 2223 2311 break; 2312 2224 2313 case TOOL_SELECT: 2225 2314 /* If the cursor is near a sel, move that */ … … 2256 2345 #endif 2257 2346 break; 2347 2258 2348 case TOOL_HAND: 2259 2349 s->selecting = SELECTING_HAND; … … 2262 2352 sample_display_handle_hand_motion (s, x, y); 2263 2353 break; 2354 2355 case TOOL_MARKER: 2356 s->selecting = SELECTING_MARKER; 2357 // s->view->hand_offset = x; 2358 // SET_CURSOR(widget, HAND_CLOSE); 2359 sample_display_handle_marker_motion (s, x, y); 2360 break; 2361 2264 2362 case TOOL_ZOOM: 2265 2363 o = XPOS_TO_OFFSET(x); … … 2271 2369 } 2272 2370 break; 2371 2273 2372 case TOOL_PENCIL: 2274 2373 s->selecting = SELECTING_PENCIL; 2275 2374 sample_display_handle_pencil_motion (s, x, y); 2276 2375 break; 2376 2277 2377 case TOOL_NOISE: 2278 2378 s->selecting = SELECTING_NOISE; 2279 2379 sample_display_handle_noise_motion (s, x, y); 2280 2380 break; 2381 2281 2382 default: 2282 2383 break; … … 2401 2502 s->view->hand_offset = -1; 2402 2503 break; 2504 case TOOL_MARKER: 2505 s->view->sample->tmp_mark = NULL; 2506 break; 2403 2507 case TOOL_MOVE: 2404 2508 break; … … 2459 2563 case SELECTING_HAND: 2460 2564 sample_display_handle_hand_motion (s, x, y); 2565 break; 2566 case SELECTING_MARKER: 2567 sample_display_handle_marker_motion (s, x, y); 2461 2568 break; 2462 2569 case SELECTING_PENCIL: … … 2961 3068 gdk_colormap_alloc_color(gdk_colormap_get_system(), c, TRUE, TRUE); 2962 3069 } 3070 3071 for(n = 0, p = mark_colors, c = class->mark_colors; 3072 n < MARKER_COLOR_MAX; n++, c++) { 3073 c->red = *p++ * 65535 / 255; 3074 c->green = *p++ * 65535 / 255; 3075 c->blue = *p++ * 65535 / 255; 3076 c->pixel = (glong)((c->red & 0xff00)*256 + 3077 (c->green & 0xff00) + 3078 (c->blue & 0xff00)/256); 3079 gdk_colormap_alloc_color(gdk_colormap_get_system(), c, TRUE, TRUE); 3080 } 3081 2963 3082 } 2964 3083 sweep/branches/sweep-info-panel/src/sample-display.h
r241 r458 49 49 SAMPLE_DISPLAYCOL_LOWLIGHT, 50 50 SAMPLE_DISPLAYCOL_REC, 51 SAMPLE_DISPLAYCOL_MARKS_RELIEF, 51 52 SAMPLE_DISPLAYCOL_LAST 52 53 }; … … 62 63 GdkGC * bg_gcs[VIEW_COLOR_MAX]; 63 64 GdkGC * fg_gcs[VIEW_COLOR_MAX]; 65 66 GdkGC * marks_gcs[MARKER_COLOR_MAX]; 67 GdkGC * marks_relief_gc; 64 68 65 69 GdkPixmap * backing_pixmap; … … 109 113 GdkColor bg_colors[VIEW_COLOR_MAX]; 110 114 GdkColor fg_colors[VIEW_COLOR_MAX]; 115 GdkColor mark_colors[VIEW_COLOR_MAX]; 111 116 112 117 void (*selection_changed)(SampleDisplay *s, int start, int end); sweep/branches/sweep-info-panel/src/sweep_app.h
r452 r458 45 45 TOOL_PENCIL, 46 46 TOOL_NOISE, 47 TOOL_HAND 47 TOOL_HAND, 48 TOOL_MARKER 48 49 } sw_tool_t; 49 50 … … 246 247 247 248 sw_sel * tmp_sel; /* Temporary selection, used while selecting */ 249 sw_mark * tmp_mark; /* Temp marker, used while moving */ 248 250 249 251 /* Operations; lock on scheduling */ sweep/branches/sweep-info-panel/src/sweep_marker.c
r455 r458 43 43 sw_mark * mark; 44 44 45 mark = g_malloc ( sizeof( sw_mark ) );45 mark = g_malloc0 ( sizeof( sw_mark ) ); 46 46 mark->frame = frame; 47 47 mark->type = type; … … 50 50 if (name != NULL) 51 51 mark->name = g_strdup(name); 52 else 53 mark->name = NULL; 52 54 53 55 return mark; sweep/branches/sweep-info-panel/src/sweep_sample.c
r457 r458 1874 1874 info_panel_sample_info_update(sample); 1875 1875 info_panel_selections_info_update(sample); 1876 info_panel_markers_info_update(sample); 1876 1877 } 1877 1878 sweep/branches/sweep-info-panel/src/view.c
r456 r458 2105 2105 2106 2106 NOMODIFY(button); 2107 2108 button = create_pixmap_button (window, mark_xpm, _("Time marker tool"), 2109 style_light_grey, VIEW_TOOLBAR_TOGGLE_BUTTON, 2110 G_CALLBACK (view_set_tool_cb), NULL, NULL, view); 2111 g_object_set_data (G_OBJECT(button), "default", GINT_TO_POINTER(TOOL_MARKER)); 2112 gtk_box_pack_start (GTK_BOX (tool_hbox), button, FALSE, FALSE, 0); 2113 gtk_widget_show (button); 2114 view->tool_buttons = g_list_append (view->tool_buttons, button); 2115 2107 2116 2108 2117 button = create_pixmap_button (window, scrub_xpm, sweep/branches/sweep-info-panel/src/view_pixmaps.h
r444 r458 54 54 #include "../pixmaps/select.xpm" 55 55 #include "../pixmaps/hand.xpm" 56 #include "../pixmaps/mark.xpm" 56 57 #ifdef DEVEL_CODE 57 58 #include "../pixmaps/pencil.xpm"
