Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Toolbar z sieciami...
Konnekt | Forum > Inne > Archiwum > Wtyczki > @dev
winthux
W jaki sposób można się dobrać do toolbara z sieciami (tam gdzie jest gg). Przetrząsnąłem helpa... i nie znalazłe... może nie dokładnie szukałem...

Chodzi mi po prostu o to, aby zamiast swojego buttona nie dodawać tam gdzie jest konfiguracja, winamp, menu główne tylko do tego gdzie jest gg...
hao
IMIG_STATUS ... Jeżeli jednak nie robisz wtyczki obsługującej sieć NIE dodawaj tam przycisków!
Jeżeli nie chcesz dodawać się do głównego toolbara, możesz zawsze zarejestrować swój dodając grupę do IMIG_MAINBAR
winthux
próbuje coś niecoś z ircem pobawić się smile.gif
hao
A, to co innego smile.gif
winthux
jak będę miał wolny czas to będę mógł liczyć na Twoją pomoc ? smile.gif
hao
A, to jeszcze zależy od mojego wolnego czasu smile.gif Zawsze możesz się odezwać...
winthux
teraz mam tak zawalone, że strasznie mało czasu mam dla siebie... a jak już mam chwilkę to albo gg nie działa albo Cię nie ma... więc zostaje na razie mail lub forum smile.gif
winthux
co decyduje o treści ACTT_EDIT... mam pododawane w konfiguracji kilka edit boxów i przy każdym wyświetleniu pojawia mi się w nich napis IRC... zmieniałem napisy IRC na różne inne ale za chiny nie mogę dojść co to powoduje...

druga sprawa natomiast... w jaki sposób mogę zachować opcję z konfigu ? np. jak ktos poda serwer, nick itp... osobny plik ? rejestr ? czy może inaczej ?
Maciej_Kowalewski
zacytuje z przykladu:
CODE
#define CFGSETCOL(i,t,d) {sSETCOL sc;sc.id=(i);sc.type=(t);sc.def=(int)(d);ICMessage(IMC_CFG_SETCOL,(int)&sc);}
int ISetCols() {
 /* Rejestrujemy kolumnę w konfiguracji.
    Niech będzie to wartość tekstowa - czyli DT_CT_STR
    Korzystamy ze zdefiniowanego wyżej makra, który przyjmuje parametry
    (identyfikator , typ , wartość domyślna)
    */
   CFGSETCOL(CFG_EXAMPLE_VALUE , DT_CT_STR , "Wartość domyślna!");
 return 1;
}
hao
A potem CFG_EXAMPLE_VALUE podajemy jako p1 przy tworzeniu akcji w ustawieniach...

Dokładnie to czego szukasz jest w przykładach!!!
winthux
ano rzeczywicie... sorry za kłopot...

ale dalej nurtuje mnie pytanie... w jaki sposób zachować daną konfigurację... tworzyć dodatkowy plik z configuracyjny czy da się to jakoś inaczej rozwiązać ? Z resztą konnekt jakoś zapisuję daną konfigurację... to jak dodać to co wpisałem w stworzonych przeze mnie kontrolkach ??
Maciej_Kowalewski
a wlasnie tak jak ja i Hao napisalismy - najpierw rejestrujesz kolumne konfiguracji, pozniej przy kontrolkach podajesz jako p1 id tej kolumny, i reszte robi za Ciebie Konnekt
winthux
jest gdzieś w helpie opisane jak zapisać dany wpis w konfiguracji i jak go później załadować, bo mam coś takiego:
CODE
#define CFGSETCOL(i,t,d) {sSETCOL sc;sc.id=(i);sc.type=(t);sc.def=(int)(d);ICMessage(IMC_CFG_SETCOL,(int)&sc);}
int ISetCols() {
   CFGSETCOL(CFG_IRC_VALUE , DT_CT_STR , 0);
 return 1;
}

rejestruje se kolumne w konfiguracji o identyfikatorze CFG_IRC_VALUE, następnię tworzę grupy w konfiguracji:
CODE

UIGroupAdd(IMIG_CFG  , IMIG_CFG_IRC , 0 , "IRC" , IDI_MAIN_IRC);  

 UIActionAdd(IMIG_CFG_IRC , 0 , ACTT_GROUP , "Ustawienia serwera:");
   UIActionCfgAdd(IMIG_CFG_IRC , 0 , ACTT_INFO , 0 , IDI_POINT ,0,0,100,1);
UIActionAdd(IMIG_CFG_IRC , 0 , ACTT_COMMENT|ACTS_INLINE , "Serwer:");

   UIActionCfgAdd(IMIG_CFG_IRC  , IMIB_CFG , ACTT_EDIT|ACTR_CHECK , "" CFGTIP "Wpisz adres serwera irc (np. poznan.irc.pl).", CFG_IRC_VALUE ,0,0 ,100 ,0   );
UIActionAdd(IMIG_CFG_IRC , 0 , ACTT_COMMENT|ACTS_INLINE , "Port:");

UIActionAdd(IMIG_CFG_IRC , 0 , ACTT_EDIT|ACTR_CHECK , "" CFGTIP "Wpisz port, na którym działa serwer (np. 6667)." , CFG_IRC_VALUE ,0,0,100,0);

UIActionAdd(IMIG_CFG_IRC , 0 , ACTT_COMMENT|ACTS_INLINE , "Hasło (jeśli jest wymagane):");

UIActionAdd(IMIG_CFG_IRC , 0 , ACTT_EDIT|ACTR_CHECK , "" CFGTIP "Wpisz hasło dostępu do serwera, jeśli serwer wymaga autoryzacji." , CFG_IRC_VALUE ,0,0,100,0);

 /* Otwartą grupę koniecznie trzeba zamknąć! */
 UIActionAdd(IMIG_CFG_IRC , 0 , ACTT_GROUPEND);

 UIActionAdd(IMIG_CFG_IRC , 0 , ACTT_GROUP , "Ustawienia użytkownia:");
   UIActionCfgAdd(IMIG_CFG_IRC , 0  , ACTT_INFO , 0 , IDI_POINT ,0,0 ,100 ,1 );
UIActionAdd(IMIG_CFG_IRC , 0 , ACTT_COMMENT|ACTS_INLINE , "Nick:");

   UIActionCfgAdd(IMIG_CFG_IRC , 0 , ACTT_EDIT|ACTR_CHECK, "" CFGTIP "Wpisz swój nick." , CFG_IRC_VALUE ,0,0 ,100 ,0 );  UIActionAdd(IMIG_CFG_IRC , 0 , ACTT_COMMENT|ACTS_INLINE , "ID użytkownika:");

UIActionAdd(IMIG_CFG_IRC , 0 , ACTT_EDIT|ACTR_CHECK , "" CFGTIP "Wpisz ID użytkownika (np. konnekt)." , CFG_IRC_VALUE ,0,0,100,0);

UIActionAdd(IMIG_CFG_IRC , 0 , ACTT_COMMENT|ACTS_INLINE , "Pełna nazwa:");

UIActionAdd(IMIG_CFG_IRC , 0 , ACTT_EDIT|ACTR_CHECK , "" CFGTIP "Wpisz pełną nazwę (np. Jan Kowalski)." , CFG_IRC_VALUE ,0,0,100,0);

UIActionAdd(IMIG_CFG_IRC , 0 , ACTT_GROUPEND);


to mi dodaje do okna konfiguracji IRC z 2 grupami, 6 editboxami i 6 staticami. Teraz jak wpiszę coś w konfiguracji dam zastosuj i ok to po ponownym otwarciu nie mam żadnej wartości tam. Coś przeoczyłem czy po prostu źle robie ?
hao
Rejestrujesz osobną kolumnę dla każdej wartości jaką chcesz przechowywać w tablicy. To taka uproszczona wersja tablic w bazach danych, tyle że identyfikator, ze względu na szybkość, jest liczbą...

W tej chwili masz kilka edit-boxów i każdy z nich po kolei zapisuje wartość wpisanego tekstu do jednej kolumny... W efekcie w tej kolumnie pojawia się wartość z ostatniego edit-box'a...

Przy okazji uwaga... Używasz wszędzie ACTR_CHECK. Powoduje to wysłanie do twojej wtyczki wiadomości o każdej zmianie w kontrolce. O ile nie potrzebujesz 'poprawiać' użytkownika nie używaj tego. Zwłaszcza jeśli nie podajesz identyfikatora kontrolki (a robisz to tylko w pierwszym editBoxie).. UI nie ma jeszcze kontroli błędów i wysyła notyfikacje w 'ciemno'
winthux
A da się jakoś editboxa zrobić z flagą password ?

tak poza tym mam jeszcze problemik z ikoną ale to już będę musiał popróbować metodą prób i błędów, bo coś nie chce mi ładować z zasobów... wpisuje IDI_MAIN_IRC i wywala mi błąd, że nie znalzł...
hao
Tak... Zamiast ACTT_EDIT używasz ACTT_PASSWORD ...

Identyfikator ikonki może być tylko i wyłącznie identyfikatorem numerycznym...
winthux
QUOTE
Identyfikator ikonki może być tylko i wyłącznie identyfikatorem numerycznym...

czyli tworze sobie ikonkę o id 12345 i #define IDI_MAIN_IRC 12345 ?

ale po co tyle kombinacji ?
hao
Po to, że w konnekcie każda wtyczka może zarejestrować swoją ikonkę. Aby uniknąć nakładania numerów, a tym bardziej zapamiętywania gdzieś przydzielonego identyfikatora, trzeba stworzyć identyfikator, który będzie unikatowy...

Jeżeli np. twój NET_ wynosi 123 to możesz w zasobach stworzyć ikonkę o
#define IDI_IKONKA 123001
i zarejestrować ją przez
ICMessage(IMI_ICONRES , IDI_IKONKA , IDI_IKONKA);
Tak masz mniej kombinowania... Pytanie tylko, czy zasoby przyjmują liczby większe od 65535...

Jak już pisałem, obsługa ikonek jeszcze kuleje i nie jest dokończona. Być może w następnej wersji API już to zmienię (w sumie zmian będzie całkiem sporo)
winthux
a na kiedy jest planowana data wydania poprawionego api w konnekcie ?

BTW konnekt nie ma żadnych funkcji do tworzenia socketa ? trzeba samemu robić..:|
hao
Hmm. trudno powiedzieć kiedy... Raczej nie prędko bo zaczął się rok akademicki i nie mam tak dużo czasu jak w wakacje...
winthux
jeszcze mam pytanie do kwestii ikonek w trialu... jak będą różne sieci to jak będzie to rozwiązane... tak jak w tlenie będzie przybywać kolejne pozycje w trialu czy w jednej pozycji będą się pojawiać po kolei ikonki ??
hao
Nie wiem jak kiedyś, ale w tej chwili pokazywany jest status "najważniejszej" sieci, czyli tej wtyczki, którą użytkownik ustawi jako pierwszą na liście wtyczek... Będąc jeszcze dokładniejszym, pokazywany jest status wtyczki, której akcja an toolbarze IMIG_STATUS znajduje się jako pierwsze...

A jak będzie później? Hmmm, to się jeszcze okaże smile.gif Najpierw niech będą jakieś sieciowe wtyczki...
winthux
jak narazie to mi to idzie topornie... no i do tego kompletny brak czasu... nie mogę przysiąść na dłużej żeby pomyśleć, bo ciągle mam coś do robienia...

jeszcze sobie tak myślałem... wiadomości z irca mam przekazywać jako message ??... aha... mam jeszcze jeden problem w jaki sposób rozwiązać okno statusu servera... tak jak jest to np. zrobione w mircu.. pewnie będę musiał swoje okno robić... :|
hao
No, konnekt dostarcza okienka tylko do podstawowych zadań...

W sumie przy IRC'u nie powinieneś używać kolejki wiadomości Konnekta... Kolejka, jak sama nazwa wskazuje służy do kolejkowania wiadomości, a na IRCu tekst przesyła się na żywo...

Generalnie, zasada jest taka, że wtyczka ma tylko odpowiedzieć na IM_PLUG_*, a potem może robić co chce... Całe API konnekta to w zasadzie tylko zestaw ułatwień, które developer może sobie wykorzystać. Niektóre przydadzą się bardziej, a niektóre mniej...
winthux
to stworze własne okno smile.gif... raczej okna...albo... w helpie jest opisane jak wsyłać wiadomości do okna rozmowy ??
hao
Najlepiej nic do niego nie wysyłać... Generalnie, jeśli robisz irc'a, to musisz zrobic wlasne okna do rozmowy, wyboru serwera, pokoju itp... Nie wpadnij tylko na pomysl, zeby w zaleznosci od osob na kanale zmieniac zawartość konnektowej listy kontaktów smile.gif
winthux
[quote]Nie wpadnij tylko na pomysl, zeby w zaleznosci od osob na kanale zmieniac zawartość konnektowej listy kontaktów[/quote]

a czemu by nie ?? :PPP

wszystko będzie w jednym tongue.gifP

heh.. dużo roboty mnie czeka jak mam sam zrobić te okna ;([/quote]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2012 Invision Power Services, Inc.