- en
- pl
OpenTTD GitHub
Wkład w OpenTTD - wytyczne
OpenTTD Doxygen
Styl kodowania
Kompilowanie OpenTTD
Debugowanie
Dodanie ustawienia
Dodanie funkcji squirrel
Zrozumienie obsługi SaveGame
Wyznaczenie wersji gry zapisanej
Wykonanie wydania OpenTTD
Podręcznik stylu
Format plików lang
Użycie ciągów OpenTTD
Lista ciągów specjalnych
Użycie systemu okna
Kody kolorów istniejących w OpenTTD
Dodawanie pola tekstowego
Zrozumienie widget focus system
Przewodnik stylu GUI
OpenTTD TCP protokół
OpenTTD UDP protokół
Debugowanie desynchronizacji
Rozwój Portu Administratora Serwera
Okno konsoli
Komendy konsoli
Zmienne konsoli
Używanie skryptu konsoli
Dodanie funkcji/komend do konsoli
Dodanie zmiennych do konsoli
Historia rozwoju Konsoli
Grafika i podobne (NewGRFy)
Środowisko AI (NoAI)
Framework GS (NoGO)
Tablica map (siatka pozioma)
Pojazdy
Wyszukiwanie trasy
Przyspieszenie pociągu
Na sposób interakcji użytkowników z polami edycyjnymi ma wpływ widget focus system. Ta strona opisuje, jakie modyfikacje są konieczne, aby dodać pole tekstowe do okna, które jeszcze go nie ma.
Lista kontrolna dodawania pola tekstowego do okna
- Dodawanie stałej do indeksu widżetów, np. OP_WIDGET_NUM_PIZZAS_EDIT (OP = okno zamówienia pizzy). Postępuj zgodnie z wzorcem nazewnictwa innych widżetów w tym samym oknie.
- Dodaj pole edycji do zagnieżdżonej tablicy widżetów:
NWidget(WWT_EDITBOX, COLOUR_WHITE, OP_WIDGET_NUM_PIZZAS_EDIT), SetDataTip(STR_ORDER_PIZZA_NUM_PIZZAS_OSKTITLE, STR_ORDER_PIZZA_NUM_PIZZAS_TOOLTIP),
(powinien znajdować się w jednej linii, ale został podzielony na dwie linie tutaj na wiki, aby uniknąć przewijania w poziomie)
- Dodaj zmienną składową QueryString do klasy okna i zainicjuj ją w konstruktorze z maksymalną pożądaną długością tekstu.
QueryString filter_editbox; ///<Filtr pola edycji;
- W swoim konstruktorze (po FinishInitNested lub InitNested) połącz pole edycyjne z QueryString:
/* Inicjacja edycji tekstu widget`u */ this->querystrings[WID_SIL_FILTER_TEXT] = &this->filter_editbox;
- W razie potrzeby przypisz specjalne zachowanie klawiszom ENTER/ESC , resp OK/CANCEL przyciski w oknie OSK. W przypadku pól edycji filtrów oczekuje się, że ESC wyczyści pole edycji:
this->filter_editbox.ok_button = WID_SIL_FILTER_ENTER_BTN; this->filter_editbox.cancel_button = QueryString::ACTION_CLEAR;
- Za pomocą QueryString możesz ustawić inne właściwości, takie jak ograniczenie akceptowanego zestawu znaków do cyfr itp.
- Jeśli chcesz domyślnie skoncentrować pole edycji, gdy okno się otworzy, wywołaj funkcję SetFocusedWidget:
this->SetFocusedWidget(OP_WIDGET_NUM_PIZZAS_EDIT);
- Jeśli chcesz edytować pole edycji wyzwalające niektóre funkcje, zastąp funkcję elementu okna:
virtual void OnEditboxChanged(int widget)