gtk: v-ruler signal-connect
Günther Montag <[email protected]>
| Newsgroups | gmane.linux.suse.programming,gmane.linux.hams.hfterm.devel |
|---|---|
| Message-ID | <[email protected]> |
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
[email protected]
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
[email protected]
Um eine Liste aller verfÃŒgbaren Kommandos zu bekommen, schicken
Sie eine Mail an: [email protected]