65
73
extern GtkPlotCanvasPos possible_selection (GtkAllocation area,
69
77
gtk_plot_canvas_plot_get_type (void)
71
static GtkType plot_canvas_plot_type = 0;
79
static GType plot_canvas_plot_type = 0;
73
81
if (!plot_canvas_plot_type)
75
GtkTypeInfo plot_canvas_plot_info =
78
sizeof (GtkPlotCanvasPlot),
79
sizeof (GtkPlotCanvasPlotClass),
80
(GtkClassInitFunc) gtk_plot_canvas_plot_class_init,
81
(GtkObjectInitFunc) gtk_plot_canvas_plot_init,
83
/* reserved 2 */ NULL,
84
(GtkClassInitFunc) NULL,
87
plot_canvas_plot_type = gtk_type_unique (gtk_plot_canvas_child_get_type(), &plot_canvas_plot_info);
83
plot_canvas_plot_type = g_type_register_static_simple (
84
gtk_plot_canvas_child_get_type(),
86
sizeof (GtkPlotCanvasPlotClass),
87
(GClassInitFunc) gtk_plot_canvas_plot_class_init,
88
sizeof (GtkPlotCanvasPlot),
89
(GInstanceInitFunc) gtk_plot_canvas_plot_init,
89
92
return plot_canvas_plot_type;
96
* gtk_plot_canvas_plot_new:
92
103
GtkPlotCanvasChild*
93
104
gtk_plot_canvas_plot_new (GtkPlot *plot)
95
106
GtkPlotCanvasPlot *child;
97
child = gtk_type_new (gtk_plot_canvas_plot_get_type ());
108
child = g_object_new (gtk_plot_canvas_plot_get_type (), NULL);
98
109
child->plot = plot;
100
111
return GTK_PLOT_CANVAS_CHILD (child);
118
129
GtkObjectClass *object_class = (GtkObjectClass *)klass;
120
parent_class = gtk_type_class (gtk_plot_canvas_child_get_type ());
131
parent_class = g_type_class_ref (gtk_plot_canvas_child_get_type ());
122
133
klass->draw = gtk_plot_canvas_plot_draw;
123
134
klass->move = gtk_plot_canvas_plot_move;
149
160
gint height = child->allocation.height;
150
161
gdouble m = canvas->magnification;
163
GtkAllocation allocation;
153
165
if(width == 0 && height == 0) return;
155
167
gtk_plot_set_drawable(plot, canvas->pixmap);
156
GTK_WIDGET(plot)->allocation.x = 0;
157
GTK_WIDGET(plot)->allocation.y = 0;
158
GTK_WIDGET(plot)->allocation.width = canvas->pixmap_width;
159
GTK_WIDGET(plot)->allocation.height = canvas->pixmap_height;
170
allocation.width = canvas->pixmap_width;
171
allocation.height = canvas->pixmap_height;
172
gtk_widget_set_allocation(GTK_WIDGET(plot), &allocation);
160
173
gtk_plot_set_magnification(plot, m);
161
174
reset_plot_allocation(canvas, plot_child);
374
387
gtk_plot_canvas_plot_size_allocate (GtkPlotCanvas *canvas,
375
388
GtkPlotCanvasChild *child)
390
GtkAllocation allocation;
377
391
GtkPlot *plot = GTK_PLOT_CANVAS_PLOT(child)->plot;
378
392
if(!plot) return;
380
394
switch(GTK_PLOT_CANVAS_PLOT(child)->pos){
381
395
case GTK_PLOT_CANVAS_PLOT_IN_PLOT:
382
396
case GTK_PLOT_CANVAS_PLOT_OUT:
383
GTK_WIDGET(plot)->allocation.x = 0;
384
GTK_WIDGET(plot)->allocation.y = 0;
385
GTK_WIDGET(plot)->allocation.width = canvas->pixmap_width;
386
GTK_WIDGET(plot)->allocation.height = canvas->pixmap_height;
399
allocation.width = canvas->pixmap_width;
400
allocation.height = canvas->pixmap_height;
401
gtk_widget_set_allocation(GTK_WIDGET(plot), &allocation);
388
403
if(!GTK_WIDGET(plot)->parent)
389
404
gtk_widget_set_parent(GTK_WIDGET(plot), GTK_WIDGET(canvas));