Autor Wątek: Dodawanie kontaktu  (Przeczytany 3937 razy)

0 Użytkowników i 1 Gość przegląda ten wątek.

Offline kwiateusz

Dodawanie kontaktu
« dnia: Luty 01, 2009, 18:52:24 pm »
Dodałem kontakt, ale nie ma ikonki opbrazującej stan... Co trzeba uzupełnić zeby tego dokonać?

utknąłem z

func = fC;

    wtwContactListItem def;
    wtwContactDef kont;
    initStruct(def);
    initStruct(kont);

    kont.id = L"me@tlen.pl";
    kont.netID = L"Tlen";
    //kont.netSID = 1;

    def.contactInfo = kont;
    def.itemText = L"Kontakt";
    def.itemDescription = L"Kontakt testowy";
    def.itemGroup = L"Test";
    def.itemType = 0x00000003;
    def.itemState = 0x00000001;

    wtwIconSet ico;
    initStruct(ico);
    ico.iconSetID = L"available";

    wP = (void*)func->Call(WTW_CTL_ADD_CONTACT, (WTW_PARAM)&def, NULL);
    func->Call(WTW_CTL_ADD_CONTACT_ICON, (WTW_PARAM)wP, (WTW_PARAM)&ico);

tak wiem programista ze mnie zaden ale sie staram :)

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Re: Dodawanie kontaktu
« Odpowiedź #1 dnia: Luty 01, 2009, 18:57:00 pm »
Może podać właściwy ID zestawu ikonek? I właściwy handle; ;P

		item.itemText			= n;
item.contactInfo.id = j;
item.contactInfo.netID = THIS_PROTO;
item.contactInfo.netSID = pSID;
item.itemGroup = g;
item.itemType = WTW_CTL_TYPE_ELEMENT;
item.flags = WTW_CTL_FLAG_REPLACE_DUPLICATE;

pF->Call(WTW_CTL_ADD_CONTACT, reinterpret_cast<TPARAM>(&item), NULL);

wtwIconSet wgd;
initStruct(wgd);

wgd.iconSetID = L"TLEN/Icon";
wgd.flags = WTW_ICS_FLAG_PRELOADED;
wgd.iType = WTW_ICSET_TYPE_PRE_TEXT;

pF->Call(WTW_CTL_ADD_CONTACT_ICON, reinterpret_cast<TPARAM>(item.itemHandle), reinterpret_cast<TPARAM>(&wgd));

Offline kwiateusz

Re: Dodawanie kontaktu
« Odpowiedź #2 dnia: Luty 01, 2009, 19:19:37 pm »
a setID no, dzięki :)

to teraz ide sie pobawić zmiana stanu :D

Offline kwiateusz

Re: Dodawanie kontaktu
« Odpowiedź #3 dnia: Luty 01, 2009, 20:00:00 pm »
hm jakbym nie kombinował to kontakt jest ciągle offline mimo ze itemState dobrze wypełniam

edit:
łee ale biedne to phpBB myślałem że połączy wiadomości...

Offline Smartek

  • Młodzież
  • **
Re: Dodawanie kontaktu
« Odpowiedź #4 dnia: Luty 01, 2009, 20:07:32 pm »
phpBB jest samo w sobie bardzo ubogie. Ratują je różnego rodzaju mody, których Kaw instalować nie chce... A prosiliśmy np. o "Szybką odpowiedź" :-(.
Może... po prostu... się mylę?

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Re: Dodawanie kontaktu
« Odpowiedź #5 dnia: Luty 01, 2009, 20:15:34 pm »
Cytat: "kwiateusz"
hm jakbym nie kombinował to kontakt jest ciągle offline mimo ze itemState dobrze wypełniam

#define WTW_CTL_SET_CONTACT_STATE	L"WTW/CTL/SetContactState" // zamiast wolac caly czas Mod do ikonki 
// mozemy uzyc tego do uaktualnienia stanu
// ale wczesniej trzeba wywolac reg_mappng
// aby  WTW wiedzial ktory index ikonki
// jest ktory, wparam - presencedef* z ct info,
// lparam mzoe byc null, to wtw sam poszuka kontaktu,
// w innym wypadku podajemy tam handle do kontaktu

albo

#define WTW_CTL_FLAG_UPDATE_STATE		0x00000004

Offline kwiateusz

Re: Dodawanie kontaktu
« Odpowiedź #6 dnia: Luty 01, 2009, 20:26:27 pm »
przy uzyciu flagi znika ikonka co jest dziwne :) a do zmiany używam staromodnie WTW_CTL_MOD_CONTACT

edit:
ikonka wrocila, co nie zmienia faktu ze dalej nie reaguje na
def.itemState = WTW_CTL_STATE_BLOCKED;
    def.itemDescription = L"Zmiana opisu";
    func->Call(WTW_CTL_MOD_CONTACT, reinterpret_cast<TPARAM>(def.itemHandle), reinterpret_cast<TPARAM>(&def));

Offline suawek

  • Senior Developer
  • Młodzież
  • *
Odp: Dodawanie kontaktu
« Odpowiedź #7 dnia: Październik 05, 2010, 19:36:14 pm »
Pozwolę sobie odkopać temat.
#define WTW_CTL_SET_CONTACT_STATE	L"WTW/CTL/SetContactState" // zamiast wolac caly czas Mod do ikonki 
                                                                                         // mozemy uzyc tego do uaktualnienia stanu
     // ale wczesniej trzeba wywolac reg_mappng
    // aby  WTW wiedzial ktory index ikonki
   // jest ktory, wparam - presencedef* z ct info,
                 // lparam mzoe byc null, to wtw sam poszuka kontaktu,
                              // w innym wypadku podajemy tam handle do kontaktu

Co to jest reg_mappng?

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Odp: Dodawanie kontaktu
« Odpowiedź #8 dnia: Październik 05, 2010, 19:44:27 pm »
Dobre pytanie, nie wiem. Znaczy wiem co to, ale do tego chyba nie ma dostepu z poziomu API... a samo sie tworzy jak ladujesz caly zestaw do ikonki ;P

Offline suawek

  • Senior Developer
  • Młodzież
  • *
Odp: Dodawanie kontaktu
« Odpowiedź #9 dnia: Październik 05, 2010, 19:50:09 pm »
Czyli co taki programista powinien zrobić, żeby WTW_CTL_SET_CONTACT_STATE zmieniał stan kontaktu? :P

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Odp: Dodawanie kontaktu
« Odpowiedź #10 dnia: Październik 05, 2010, 20:07:24 pm »
A bo ja wiem? Nigdy tego nie uzywalem ;D
Bo wiesz, puszczenie (poprawnie) informacji przez hooki protokołów spowoduje uaktualnienie stanu kontaktu ;p

Offline suawek

  • Senior Developer
  • Młodzież
  • *
Odp: Dodawanie kontaktu
« Odpowiedź #11 dnia: Październik 06, 2010, 12:37:26 pm »
Pięknie, dodałem kontakt, ikonka zmienia stan. ^^
Teraz pytanie, jak do tego kontaktu(i tylko tego :P) dodać pozycję "Edytuj" w menu tak, aby wyświetliło okienko "Properties" z moim oknem edycji?
Przeglądałem nagłówki, ale nic sensownego nie wyciągnąłem z komentarzy. :(

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Odp: Dodawanie kontaktu
« Odpowiedź #12 dnia: Październik 06, 2010, 12:42:37 pm »
na początek w hooku menu dodaj sobie ta pozycje do wyswietlenia ;p

Offline suawek

  • Senior Developer
  • Młodzież
  • *
Odp: Dodawanie kontaktu
« Odpowiedź #13 dnia: Październik 06, 2010, 13:19:30 pm »
Czyli jak to dodać?
Najpierw podpinam się pod WTW_EVENT_MENU_COMPLETED, potem w hooku sprawdzam wtwMenuCallbackEvent, czy mce.pInfo.menuID = WTW_MENU_ID_CONTACT i próbuję dodać pozycję:
    ZeroMemory(@mid, sizeof(mid));
    mid.structSize := sizeof(mid);
    mid.menuID := mce.pInfo.menuID;
    mid.itemID := WTW_MIID_CT_EDIT;
    mid.menuCaption := 'Edytuj...';
    mid.hModule := hInstance;
//    mid.callBack := @MenuCallback;
//    mid.flags := WTW_MENU_FLAG_POPUP;

    pf.fnCall(WTW_MENU_FUNCTION_ADD_DYNAMIC, WTW_PARAM(@mid), lParam);

Coś widocznie źle robię, bo nic się nie pojawia. :/

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Odp: Dodawanie kontaktu
« Odpowiedź #14 dnia: Październik 06, 2010, 13:48:40 pm »
WTW_PTR CClientClass::eventOnMenuRebuild(WTW_PARAM wP, WTW_PARAM lP, void* oD)
{
ASSERT(oD);
CClientClass *pClass = (CClientClass*)oD;

wtwMenuCallbackEvent *pEV = (wtwMenuCallbackEvent*)wP;

if (!pEV->pInfo->iContacts)
return 0;

if ( wcscmp(pEV->pInfo->pContacts[0].netClass, THIS_PROTO) )
return 0;

if ( pEV->pInfo->pContacts[0].netId != pClass->m_protoSID )
return 0;

if ( pEV->pInfo->iContacts == 1 )
{
(pEV->slInt.add)(pEV->itemsToShow, WTW_MIID_CT_ARCHIVE);

xmppRoster *ro = pClass->rosterFind(pEV->pInfo->pContacts[0].id);

if (ro)
{
for (std::vector<xmppRes>::iterator it = ro->rsr.begin();
it != ro->rsr.end(); it++)
{
int bBreak = 0;

if (it->fileTransfer)
{
(pEV->slInt.add)(pEV->itemsToShow, WTW_MIID_CT_SEND_FILE);
bBreak = 1;
}

if (it->xHtmlIM && it->bitsOfBinary)
{
(pEV->slInt.add)(pEV->itemsToShow, WTW_MIID_CT_SEND_PICT);
bBreak = 1;
}

if (bBreak)
break;
}
}
}

(pEV->slInt.add)(pEV->itemsToShow, WTW_MIID_CT_MESSAGE);

if (!isConAuthed(pClass->m_conStatus))
return 0;

if (wcscmp(pEV->pInfo->locationID, WTW_MENU_LOCATION_CHATWND))
(pEV->slInt.add)(pEV->itemsToShow, WTW_MIID_CT_CHAT);

(pEV->slInt.add)(pEV->itemsToShow, WTW_MIID_CT_PUBDIR);

return 0;
}

Offline sWirus

Odp: Dodawanie kontaktu
« Odpowiedź #15 dnia: Październik 07, 2010, 20:59:50 pm »
Pięknie, dodałem kontakt, ikonka zmienia stan. ^^

Samoczynnie? osobiście szukałem możliwości zmiany statusu kontaktu na liście z niedostępny na niewidoczny, ale nic mi się wykombinować nie udało. ;/
Oblałem test Turinga... damn ;/

Offline adrian_007

  • Master Developer
  • Starszyzna
  • *
    • WTW PLUGINS
Odp: Dodawanie kontaktu
« Odpowiedź #16 dnia: Październik 07, 2010, 21:34:38 pm »
musisz puscic presence przez hook'i to samo sie zaktualizuje :P