Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Okno ustawień wtyczki
Konnekt | Forum > Developerzy > Tworzenie wtyczek
skolima
edit Poprzednie było trochę niezrozumiałe...

Chcę mieć w okienku Ustawienia checkbox'a, i skojarzone z nim pole combo. Wyglądać ma to tak :


W czym problem? Otóż status diabled/enabled pola combo ma być zsynchronizowany z odznaczeniem/zaznaczeniem checkbox'a.

Są z tym dwa problemy. Pierwszy : jeśli status pola combo zmieniam przy każdym kliknięciu na checkboxa, to po wyjściu z Ustawień przez Anuluj, może się rozjechać synchronizacja (patrz kPilot2). Drugi : czasem combo box, mimo, że jest nieaktywny, wygląda jak aktywny (nie jest grayed-out).
Aule
Menu, czy oknie konfiguracji? A nie można wczytywać za każdym razem ustawień, jeżeli chodzi Ci o okno konfiguracji? Nie wiem, czy dobrze Ciebie zrozumiałem.
skolima
Rano wytłumaczę.. szczególnie, że problem (prawie) opanowałem.
hao
A nie lepiej ustawiać odpowiedni status w momencie tworzenia danej kontrolki? (ACTN_CREATE)...

Przy okazji, przestań mówić na okno ustawień "menu", a na combo "drop-down" bo można się nieźle pogubić smile.gif
skolima
dobra. zlokalizowałem drugi problem, i opanowałem. tylko teraz chciałbym zrobić to jakoś bardziej elegancko. combobox wygląda niepoprawnie, jeśli już wyłączonemu drugi raz ustawię status disabled.

działa natomiast coś takiego :
CODE

//ustawiam status zgodny z wpisem konfiguracji
UIActionSetStatus ( KONNF_OPCJEID_GRUPA, KONNF_OPCJE_IGNOREIF, (GETINT(KONNF_OPCJE_IGNOREBYDEFAULT)) ? 0 : -1, ACTS_DISABLED );

//ustawiam status odwrotny
UIActionSetStatus ( KONNF_OPCJEID_GRUPA, KONNF_OPCJE_IGNOREIF, (UIActionGetStatus( sUIAction( KONNF_OPCJEID_GRUPA, KONNF_OPCJE_IGNOREIF ) ) & ACTS_DISABLED ) ? 0 : -1, ACTS_DISABLED );

//ustawiam status odwrotny, czyli z powrotem właściwy
UIActionSetStatus ( KONNF_OPCJEID_GRUPA, KONNF_OPCJE_IGNOREIF, (UIActionGetStatus( sUIAction( KONNF_OPCJEID_GRUPA, KONNF_OPCJE_IGNOREIF ) ) & ACTS_DISABLED ) ? 0 : -1, ACTS_DISABLED );


po czymś takim kontrolki wyglądają jak powinny
skolima
Rzowiązanie problemu z wyjściem przez anuluj :

Jedna kontrolka dodana jest jako

QUOTE
//checkbox
UIActionCfgAdd (KONNF_OPCJEID_GRUPA, KONNF_OPCJE_IGNOREBYDEFAULT, ACTT_CHECK|ACTR_SHOW,
  "Domyślnie ignoruj nieznane konferencje :"
  , KONNF_OPCJE_IGNOREBYDEFAULT);

Dziękiu czemu (ACTR_SHOW) dostaję informację o tym, że okno ustawień zostanie zaraz wyświetlone i musze uaktualnić jego status.

Akcja obsługiwana jest w funkcji
QUOTE
ActionProc(sUIActionNotify_base * anBase)


poprzez
QUOTE
switch (anBase->act.id) {
  case KONNF_OPCJE_IGNOREBYDEFAULT :
  {
    if(anBase->code == ACTN_SHOW)//UI 'Ustawienia' będzie zaraz pokazywane
    {//obsługa}
  }
}


gdzie w obsłudze wywoływany jest podany post wcześniej kod.
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.