Bei mir haberts gerade an dem Verständnis:
GTK2-Applikation mit Spin-Button, die dazugehörigen ENTRY-Felder und die
Spin-Buttons will ich zur Laufzeit verändern.
Da ganze aus der Unterfunktion für das Zeichnen der Kurve, diese wir
aufgerufen wenn:
Zeitgesteuert die Werte vom Meßgerät geholen werden
Die Werte aus einem File eingelesen werden
Ausgabe als PDF/PNG
Aufbau ist wie folgt
Main -> Callback oder Timerfunction -> Einlesefunktion File/Bus oder
eine der drei Zeichenfunktion.
Codeausschnitt:
typedef struct {
GtkWidget *window;
GtkWidget *gw_set_maxtime;
GtkWidget *gw_set_mintime;
GtkWidget *gw_set_average_window;
GtkWidget *gw_set_max;
GtkWidget *gw_set_min;
GtkWidget *gw_max;
GtkWidget *gw_min;
GtkWidget *gw_maxtime;
GtkWidget *gw_menuitem_start;
GtkAdjustment *adj_set_max;
GtkWidget *filesel;
} r2101_data;
main:
r2101_data wg_data;
...
adj_set_maxtime = (GtkAdjustment *) gtk_adjustment_new
(1,0,1000000,1,10,0);
gw_set_maxtime = gtk_spin_button_new(adj_set_maxtime,0,0);
gtk_signal_connect(GTK_OBJECT(gw_set_maxtime),
"value-changed",GTK_SIGNAL_FUNC(screen_refresh),(gpointer*) &wg_data)
...
wg_data.gw_set_maxtime = gw_set_maxtime;
Callback
void screen_refresh(GtkWidget *widget, r2101_data *data) {
gint width, height; // Window width & height
cairo_t *cr;
cr = gdk_cairo_create(widget->window);
gdk_drawable_get_size(widget->window, &width, &height);
plot(cr, width,height,?????);
cairo_destroy(cr);
}
void plot(cairo_t *cr, gint width, gint height, r2101_data *data) {
gdouble MAX_X = record_counter; // max X scale
MAX_X = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->set_maxtime));
}
Der Compilier meldet aber:
racal2101-plot.c:574:56: error: ‘r2101_data {aka struct <anonymous>}’
has no member named ‘set_maxtime’
Wie muss ich die Funktion plot korrekt deklarieren und dann aufrufen?
Über eine Ebene geht das.
Gruß Andreas