- 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 każdym ekranie rysuje się okno WE_PAINT
'window event'.
Contents |
Otwieranie okna
Utworzenie nowej struktury okna otwiera nowe okno. Powinien być opatrzony komentarzem doxygen wyjaśniającym funkcję.
Przykład:
/** * Opens a new instance of a MyNew window. * @param void Any parameters required by window */ void ShowMyNewWindow(void) { DeleteWindowByClass(window class); new MyNewWindow(void); }
Opis okna
Skonfiguruj WindowDesc
z podaną nazwą this->CreateNestedTree()
i this->FinishInitNested()
.
Składnia:
/** Window description for my new window. */ static const WindowDesc _mywindow_desc( window positioning, default width, default height, window class, parent window class, window flags widget parts, lengthof(widget parts) );
Będziesz także potrzebował struktury opisującej Możesz znaleźć wiele przykładów w kodzie źródłowym, spójrz w plik *_gui.cpp .
Pozycjonowanie okna
Pozycjonowanie okna jest jedną z wartości WindowPosition enum zdefiniowane w src/window_gui.h.
Klasy okien
Klasa okna to unikalny numer reprezentujący (zestaw) okien, na przykład okno wyświetlające miasto ma klasę WC_TOWN_VIEW . Aby odróżnić miasto wyświetlane przez rzeczywiste okno, to drugie ma dodatkowy numer okna.
Lista dostępnych klas okien jest zdefiniowana przez WindowClass enum, w src/window_type.h.
Konfigurowanie widżetów
Składnia:
static const NWidgetPart _nested_mywindow_widgets[] = { NWidget(nwid), NWidget(wwt, colour, wid), SetDataTip(STR_NULL, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), EndContainer(), };
Przykład:
static const NWidgetPart _nested_mywindow_widgets[] = { NWidget(NWID_HORIZONTAL), NWidget(WWT_TEXT, COLOUR_MAUVE), SetDataTip(STR_NEWGRF_SETTINGS_SELECT_PRESET, STR_NULL), SetPadding(0, WD_FRAMETEXT_RIGHT, 0, 0), NWidget(WWT_DROPDOWN, COLOUR_YELLOW, WID_NS_PRESET_LIST), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_JUST_STRING, STR_NEWGRF_SETTINGS_PRESET_LIST_TOOLTIP), EndContainer(), };
Typy widżetów
-
WWT_EMPTY
-
WWT_PANEL
Prosty wciśnięty panel.
-
WWT_INSET
Wciśnięty panel, najczęściej używany jako pole tekstowe pola kombi.
-
WWT_IMGBTN
Przycisk obrazu.
-
WWT_IMGBTN_2
Przycisk obrazu. Obraz zmienia się po naciśnięciu przycisku.
-
WWT_TEXTBTN
Przycisk tekstowy.
-
WWT_TEXTBTN_2
Przycisk tekstowy. Tekst zmienia się po naciśnięciu przycisku.
-
WWT_LABEL
Wyśrodkowana etykieta.
-
WWT_MATRIX
-
WWT_SCROLLBAR
-
WWT_FRAME
-
WWT_CAPTION
-
WWT_HSCROLLBAR
-
WWT_STICKYBOX
Przycisk do 'przyklejenia' okna.
-
WWT_SCROLL2BAR
-
WWT_RESIZEBOX
Przycisk zmiany rozmiaru okna.
-
WWT_CLOSEBOX
Przycisk zamknięcia okna.
-
WWT_PUSHBTN
-
WWT_PUSHTXTBTN
-
WWT_PUSHIMGBTN
Kolory
Aby uzyskać listę dostępnych kolorów, zobacz Zabarwienia.
Utrzymanie okna
Zdefiniuj, co zrobić z oknem w strukturze, za pomocą konstruktora
Przykład:
struct MyNewWindow { MyNewWindow() { } .... }