4 /*****************************************************************************
6 *****************************************************************************/
18 /* Vector of unallocated colors */
19 static GdkColor CF_Colors
[] =
21 { 0, 0xffff, 0x0000, 0x0000 }, // RED
22 { 0, 0x0000, 0xffff, 0x0000 }, // GREEN
23 { 0, 0x0000, 0x0000, 0xffff }, // BLUE
24 { 0, 0xffff, 0xffff, 0xffff }, // WHITE
25 { 0, 0x0000, 0x0000, 0x0000 } // BLACK
29 typedef struct _Drawing_t
{
30 GtkWidget
*Drawing_Area_V
37 Drawing_t
*Drawing(void)
40 Drawing_t Drawing
= g_new(Drawing_t
, 1);
42 Drawing
->Drawing_Area_V
= gtk_drawing_area_new ();
44 g_object_set_data_full(
45 G_OBJECT(Drawing
->Drawing_Area_V
),
48 (GDestroyNotify
)Drawing_destroy
);
50 gtk_widget_modify_bg( Control_Flow_Data
->Drawing_Area_V
,
58 void Drawing_destroy(Drawing_t
*Drawing
)
61 g_object_unref( G_OBJECT(Drawing
->Drawing_Area_V
));
66 /* get_time_from_pixels
68 * Get the time interval from window time and pixels, and pixels requested. This
69 * function uses TimeMul, which should only be used if the float value is lower
70 * that 4, and here it's always lower than 1, so it's ok.
72 void convert_pixels_to_time(
75 LttTime
*window_time_begin
,
76 LttTime
*window_time_end
,
80 LttTime window_time_interval
;
82 TimeSub(window_time_interval
, *window_time_end
, window_time_begin
);
85 TimeMul(*time
, window_time_interval
,
86 (x
/(float)Drawing
->width
));
87 TimeAdd(*time
, window_time_begin
, *time
);
93 void convert_time_to_pixels(
94 LttTime window_time_begin
,
95 LttTime window_time_end
,
101 LttTime window_time_interval
;
103 TimeSub(window_time_interval
, window_time_end
, window_time_begin
);
105 TimeSub(time
, time
, wimdow_time_begin
);
107 *x
= (guint
)((time
/(float)window_time_interval
) * Drawing
->width
);
113 void Drawing_Resize(Drawing_t
*Drawing
, guint h
, guint
, w
)
117 Drawing
->height
= h
;
118 Drawing
->weight
= w
;
120 gtk_widget_set_size_request ( Control_Flow_Data
->Drawing_Area_V
,