Newsgroup: it.comp.os.linux.development
Titolo: GTK: come tracciare segnali su una immagine?

Sto' sviluppando una applicazione che necessita una interfaccia
piuttosto avanzata, in GTK. Il fatto e' che con questa libreria (come un
po' con tutte, del resto) sono piuttosto limitato dalla necessita' di
posizionare tutti gli elementi entro tabelle o comunque strutture rigide
e squadrate.
Sono riuscito a disegnare in una drawing_area cio' che volevo (una serie
di N cerchietti di diametro variabile intorno ad un cerchio centrale,
altrettanto variabile :-) ), ma vorrei renderne "attivi" gli elementi:
avevo pensato di sovrapporre alla drawing_area qualche widget invisibile
(GtkEventBox?) per catturare i segnali (i clic sopra le immagini), ma
non so se (e come) e' possibile mettere un widget sopra ad un altro.
In alternativa: esiste un modo per creare una mappa di regioni "attive",
un po' come le map sulle immagini in HTML?
Grazie per l'aiuto :-)
--
web 
http://madbob.homelinux.com
mail bob4mailC...@CANCELLAMIk.st
BrainTop Project maintainer
http://braintop.sourceforge.net
Inviato da 
www.mynewsgate.net

 non so se (e come) e' possibile mettere un widget sopra ad un altro.
credo che tu cerchi il button press event della drawing area.
 

 non so se (e come) e' possibile mettere un widget sopra ad un altro.
Adopera gtk_widget_add_events() per abilitare nella drawinarea gli eventi
che ti servono.
Cià
--
Don't you know why your Python application has crashed?
Take a look to 
http://www.pycrash.org
My Home Page 
http://cnoviello.altervista.org
Sei un programmatore Python? E allora leggi PyJournal.it (
www.pyj.it
)

 un po' come le map sulle immagini in HTML?
Non puoi semplicemente usare il "button-press-event" e recuperare le
coordinate (relative al widget) del click?
Ciao,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)                 [ 
http://www.emmanuelebassi.net
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

 
Il suggerimento della GtkFixed e' buono (grazie, ancora non conoscevo
questo widget. Sembra *molto* interessante, puo' tornare utile in seguito
:-) ), ma forse questo lo e' ancor di piu' perche' mi permetterebbe
davvero di avere regioni attive *circolari* attorno alle immagini.
Ho cercato nella Reference Guide di GTK ma non ho trovato nulla di
specifico: puo' bastare l'esempio riportato qui ->
http://mail.gnome.org/archives/gtk-list/1998-August/msg00170.html
 ?
Ulteriori suggerimenti?


 Ulteriori suggerimenti?
preso da un mio programma
gboolean
on_drawingarea1_button_press_event (GtkWidget * widget,
                                    GdkEventButton * event,
                                    gpointer user_data)
{
  int x, y;
  unsigned char rosso, verde, blue;
  GdkModifierType state;
  GtkWidget *spin1, *spin2, *spin3;
  extern GtkWidget *window1;
  spin1 = lookup_widget (window1, "spinbutton1");
  spin2 = lookup_widget (window1, "spinbutton2");
  spin3 = lookup_widget (window1, "spinbutton3");
  /* questo ti interessa */
  gdk_window_get_pointer (event->window, &x, &y, &state);
  if (dati == NULL)
    return TRUE;
  rosso = *(dati + (x + targaheader[6] * y) * 3);
  verde = *(dati + (x + targaheader[6] * y) * 3 + 1);
  blue = *(dati + (x + targaheader[6] * y) * 3 + 2);
#ifdef DEBUG
  printf ("rosso :%d, verde: %d, blu: %d\n", rosso, verde, blue);
#endif
  gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin1), rosso);
  gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin2), verde);
  gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin3), blue);
  return TRUE;
}