mit g_signal_connect variable übergeben



  • hi,

    Ich hab da ein grösseres Anliegen. Ich weiss einfach nicht wie ich mit g_signal_connect nen einfachen int wert übergeben kann, also beispielsweise:

    int g = 5;
    
    g_signal_connect (G_OBJECT(knopf),"released",
                      G_CALLBACK(test_func),g);
    

    das funktioniert net, ich hab auch schon dies versucht:

    void test_func(GtkWidget *widget, 
          gpointer g)
    {
    ...
    }
    
    int g = 5;
    g_signal_connect( GTK_OBJECT( knopf ), "released",
                        G_CALLBACK(test_func ),&g );
    

    dann hab ich zwar die adresse, ich bekomm den wert aber net raus..

    wäre super wenn ihr mir da helfen könntet

    mfg
    Sui_the_Doc



  • und den gpointer auch nach int ( oder gint ) zurückgecastet ?
    da gibts auch makros für inner glib: GPOINTER_TO_INT().

    ps. endlich mal einer, der auch mit GObjects rummacht 😉

    ach ja sehe grade dass du die addresse des int übergibst.
    eigentlich will man nen gpointer haben.

    am besten beim reinschieben nach gpointer casten mit (GINT_TO_GPOINTER()),
    und wenn wir schon beim casten sind: die callback funktion am besten
    auch mit G_CALLBACK (func) casten.

    so haben mir das ein paar gimp/gtk entwickler beigebracht 😉


Anmelden zum Antworten