gtk nesnesinin ismini almak

gtk nesnesinin ismini almak

Mesajgönderen muratungor » 27 May 2006, 20:14

merhaba
programımdaki togglebutonların hepsini(yaklaşık 60 tane var)
toglebuton1_click fonksiyonuna yönlendiriyorum
Fakat burda bi sorun başlıyor :) acaba 60 taneden hangisi tıkladı ?
bunu string olarak döndürmenin bir yolu varmı acaba ?

Kod: Tümünü seç
void on_togglebutton1_clicked               (GtkButton       *button,
                                        gpointer         user_data)
{

      gchar *test=gtk_widget_get_name(lookup_widget(button,button));
      fprintf(stderr,"%s",test);
}


yukarıdaki kod GtkToggleButton çıktısı veriyor. ama ben "togglebutton53" gibi bir string elde etmek istiyorum

Teşekkürler
Kullanıcı avatarı
muratungor
Üye
Üye
 
Mesajlar: 92
Kayıt: 11 Tem 2005, 00:00
Konum: istanbul

Mesajgönderen RcPaYaN » 27 May 2006, 21:34

her butonun tıklanma satırında en son parametresi fonksiyone gönderilen değerdir. senin

Kod: Tümünü seç
void on_togglebutton1_clicked (GtkButton *button, gpointer user_data)

fonksiyonunda da user_data dönen değerdir. her buton için istediğini yazarsan ve

Kod: Tümünü seç
fprintf(stderr,"%s %s",test,user_data);


satırını eklersen dosyana önce togglebutonu bir boşluk bırakarakta senin yazdığın değer dosyaya yazılır. eğer sorun olursa tekrar yardımcı olmaya çalışırız.

kolay gelsin...
Kullanıcı avatarı
RcPaYaN
Forum Gurusu
Forum Gurusu
 
Mesajlar: 914
Kayıt: 03 Şub 2005, 01:00
Konum: İstanbul

Mesajgönderen muratungor » 28 May 2006, 00:04

teşekkür ederim dediğiniz gibi user_data ile işimi hallettim
ama bu arada glade ile otomatik oluşturulmuş olan interface.c dosyasındaki bütün
Kod: Tümünü seç
g_signal_connect ((gpointer) togglebutton11, "clicked",
                    G_CALLBACK (on_togglebutton1_clicked),
                    NULL);

satırlarındaki NULL yazan yere sıradan istediğim değerleri yazdım.
Bu dosyanın başında " DO NOT EDIT THIS FILE - it is generated by Glade." yazıyor umarım ileride sorun yaşamam.
Kullanıcı avatarı
muratungor
Üye
Üye
 
Mesajlar: 92
Kayıt: 11 Tem 2005, 00:00
Konum: istanbul

Mesajgönderen muratungor » 28 May 2006, 00:19

yukarıda anlattığım şekilde yaptığımda ufak bir sorun çıktı :(
glade ile formumun başka yerinde herhangi bir değişiklik yapıp kodu tekrar yazdırdığımda değiştirdiğim bütün NULL'lar eski halini alıyor. :(
bende kodun o kısmını bir dosyaya yazdım her seferinde yeniden kopyalıyorum.
Daha kolay bir yolu varmı acaba ?
Kullanıcı avatarı
muratungor
Üye
Üye
 
Mesajlar: 92
Kayıt: 11 Tem 2005, 00:00
Konum: istanbul

Mesajgönderen RcPaYaN » 28 May 2006, 00:43

açıkcası glade kullanmayı becerememiştim daha önceden bu yüzden direk kodlama yapıyorum :) .
bu konuda bir şey söyleyemicem. nasıl bir sistem kullandığını bilmeden yorum yapmak zor oluyo :) .

kolay gelsin...
Kullanıcı avatarı
RcPaYaN
Forum Gurusu
Forum Gurusu
 
Mesajlar: 914
Kayıt: 03 Şub 2005, 01:00
Konum: İstanbul

Mesajgönderen kieroglu » 28 May 2006, 05:52

Bence tasarima son seklini ver, sonra NULL'lari degistir. Dogrudan kodlama da pratik olabilir; denemeye deger.
Kullanıcı avatarı
kieroglu
Forum Gurusu
Forum Gurusu
 
Mesajlar: 2301
Kayıt: 13 Mar 2002, 01:00
Konum: Seattle, WA


Dön Glade / Anjuta, GTK

Kimler çevrimiçi

Bu forumu gezen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 1 misafir

cron