[C][Tizen] Potrzebuje wyjaśnienie funkcji
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

[C][Tizen] Potrzebuje wyjaśnienie funkcji

AutorWiadomość
Temat założony przez niniejszego użytkownika
[C][Tizen] Potrzebuje wyjaśnienie funkcji
» 2017-01-21 11:28:18
Tu mam coś takiego:

C/C++
id->item = elm_genlist_item_append( genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, bg_cb, ad );

Powyżej jest element listy jak na nie go kliknę to uruchamia się ta funkcja poniżej (bg_cb)

C/C++
void
bg_cb( void * data, Evas_Object * obj, void * event_info )
{
    dlog_print( DLOG_INFO, LOG_TAG, "info!!" );
}
Pytania..

1.co jest w tym konkretnym przypadku przekazywane do funkcji bg_cb, w "void *data, Evas_Object *obj, void *event_info"

2.dlaczego ona działa jeśli nie ma w nich wpisanych parametrów bg_cb(?)

3.czy mogę odczytać "*data" i wyswietlic w dlog_print(DLOG_INFO, LOG_TAG, "info!!");" ?

4. znacie jakiś Tutoriale w tym temacie ?
P-156733
» 2017-01-21 11:33:40
P-156734
Temat założony przez niniejszego użytkownika
» 2017-01-21 12:18:10
Trochę inaczej sformułuje pytanie..

Mamy sobie taki przykładzik:
C/C++
id = calloc( sizeof( item_data ), 1 );
id->index = index++;
id->item = elm_genlist_item_append( genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, bg_cb, ad );

bg_cb to funkcja która jest wywoływana po naciśnięciu na element listy.
Musi wyglądać tak:
C/C++
void
bg_cb( void * data, Evas_Object * obj, void * event_info )
{
}

i teraz chcę pobrać z  tej u góry ten id aby wiedzieć który element listy się wywołał, nie chcę  do każdego elementu listy przypisywać nowej funkcji.

Kolejne pytanie to co to jest  te "ad" (struktura obiektów),jakieś dane zwrotne do tego ad ? jak tak to z czego do czego.(z funkcji bg_cb czy ?) z NULL w tym miejscu też działa!


C/C++
static void
create_list_view( appdata_s * ad ) <<<<<<<<<<<<<<<<<<<<<<<
{
    Evas_Object * genlist;
    Evas_Object * circle_genlist;
    Evas_Object * btn;
    Evas_Object * nf = ad->nf;
    Elm_Object_Item * nf_it;
    Elm_Genlist_Item_Class * itc = elm_genlist_item_class_new();
    Elm_Genlist_Item_Class * ttc = elm_genlist_item_class_new();
    Elm_Genlist_Item_Class * ptc = elm_genlist_item_class_new();
    item_data * id;
    int index = 0;
    .....

Jak sprawdzić który element listy wywołał mi tą funkcję ?
To poniżej niestety nie wyświetla mi nic sensownego:/
C/C++
typedef struct _item_data /**/
{
    int index;
    Elm_Object_Item * item;
} item_data;

void
bg_cb( void * data, Evas_Object * obj, void * event_info )
{
    item_data * itd =( item_data * ) data;
    char text[] = "00000000";
    sprintf( text, "%d", itd->index );
    dlog_print( DLOG_VERBOSE, LOG_TAG, "!!!---!!!!" );
    dlog_print( DLOG_VERBOSE, LOG_TAG, text );
}
P-156736
» 2017-01-21 14:37:14
void* to adres na cokolwiek.
P-156741
Temat założony przez niniejszego użytkownika
» 2017-01-21 14:47:38
Dlaczego tego w c++ nie zrobili tylko w c, było by prostsze nie mówiąc już o tym,  aby zrobić to w stylu bibliotek qt to by była bajka.
P-156742
» 2017-01-21 18:40:32
W callbacku dostajesz to, co sam przekażesz do elm_genlist_item_append() jako ostatni argument. Masz to opisane pod linkami, które dostałeś.

Dlaczego tego w c++ nie zrobili tylko w c, było by prostsze nie mówiąc już o tym,  aby zrobić to w stylu bibliotek qt to by była bajka.
O nie, ktoś nie zrobił biblioteki jak Qt! I na dodatek w C, zamiast C++, ugh.. Jak ci się nie podoba, to nie używaj i zostaw dla siebie takie idiotyczne uwagi.
P-156746
» 2017-01-21 21:11:30
Zrób wrapper jak Ci źle z API C.
P-156752
» 2017-01-21 21:16:55
No :-)
C/C++
class MegaWrapper {
public:
    // Tizen API
};
Plusy będą.. jak zaimplementuje to się nauczy API :-)
P-156755
« 1 » 2
 Strona 1 z 2Następna strona