Hallo Freunde im Frequenz-Spektrum meines Amateurfunk-Programms ist rechts ein vruler, ein Lineal mit Maßeinteilung, mit einem Zeigerchen, das sich auch wunderschön bewegt wenn ich mit der Maus dfarüberfahre. ... snip vruler1 = gtk_vruler_new (); gtk_widget_set_name (vruler1, "vruler1"); gtk_widget_ref (vruler1); gtk_object_set_data_full (GTK_OBJECT (wspec), "vruler1", vruler1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vruler1); gtk_table_attach (GTK_TABLE (table9), vruler1, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_ruler_set_range (GTK_RULER (vruler1), 0, 10, 4.24479, 10); ... snap Ich würde gerne durch Klick darauf den Stand des Zeigers als Wert für meine squelch-Funktion gewinnen (schwache Signale nicht ausgeben). Wie geht das? Geht es überhaupt? Im Spectrum selbst ist eine gut gehende Funktion für eine ähnliche Aufgabe, sie wird durch gtk_signal_connect aufgerufen: Sie holt den x-Wert des events heraus. ... snip gboolean on_spec_button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { unsigned int freq; static int shift = 0; static unsigned int freq1 = 0, freq2 = 0; static int clickcount = 0; int usershift = 0; shift = get_freq_shift(); freq = ((SRATE/2) * event->x + SPECTRUM_WIDTH/2) /SPECTRUM_WIDTH; if (shift) { switch (event->button) { case 1: set_fsk_freq(freq, freq+shift); break; case 2: set_fsk_freq(freq-shift/2, freq+shift/2); break; case 3: set_fsk_freq(freq-shift, freq); break; } return FALSE; } ..... snap aber es gelang mir nicht, ähnlichen Code für den Ruler und seinen y-Wert zum Laufen zu bringen. -- Günther Montag Safari.Doktor@addcom.de