UseWindows
Dokumentacja programistyczna OpenTTD
Linki zewnętrzne

OpenTTD GitHub
Wkład w OpenTTD - wytyczne
OpenTTD Doxygen

Informacje Ogólne

Styl kodowania
Kompilowanie OpenTTD
Debugowanie
Dodanie ustawienia
Dodanie funkcji squirrel
Zrozumienie obsługi SaveGame
Wyznaczenie wersji gry zapisanej
Wykonanie wydania OpenTTD

Języki i Ciągi znaków

Podręcznik stylu
Format plików lang
Użycie ciągów OpenTTD
Lista ciągów specjalnych

System Okna

Użycie systemu okna
Kody kolorów istniejących w OpenTTD
Dodawanie pola tekstowego
Zrozumienie widget focus system
Przewodnik stylu GUI

Tryb wieloosobowy

OpenTTD TCP protokół
OpenTTD UDP protokół
Debugowanie desynchronizacji
Rozwój Portu Administratora Serwera

Konsola (w grze)

Okno konsoli
Komendy konsoli
Zmienne konsoli
Używanie skryptu konsoli
Dodanie funkcji/komend do konsoli
Dodanie zmiennych do konsoli
Historia rozwoju Konsoli

Interfejsy API (ramy modowania)

Grafika i podobne (NewGRFy)
Środowisko AI (NoAI)
Framework GS (NoGO)

Inne odniesienia

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
/File/en/Klipper.png
Do poprawki
- Dołącz wyjaśnienie.
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
/File/en/Klipper.png
Do poprawki
- Dołącz wyjaśnienie.
WWT_SCROLLBAR
/File/en/Klipper.png
Do poprawki
- Dołącz wyjaśnienie.
WWT_FRAME
/File/en/Klipper.png
Do poprawki
- Dołącz wyjaśnienie.
WWT_CAPTION
/File/en/Klipper.png
Do poprawki
- Dołącz wyjaśnienie.
WWT_HSCROLLBAR
/File/en/Klipper.png
Do poprawki
- Dołącz wyjaśnienie.
WWT_STICKYBOX

Przycisk do 'przyklejenia' okna.

WWT_SCROLL2BAR
/File/en/Klipper.png
Do poprawki
- Dołącz wyjaśnienie.
WWT_RESIZEBOX

Przycisk zmiany rozmiaru okna.

WWT_CLOSEBOX

Przycisk zamknięcia okna.

WWT_PUSHBTN
/File/en/Klipper.png
Do poprawki
- Dołącz wyjaśnienie.
WWT_PUSHTXTBTN
/File/en/Klipper.png
Do poprawki
- Dołącz wyjaśnienie.
WWT_PUSHIMGBTN
/File/en/Klipper.png
Do poprawki
- Dołącz wyjaśnienie.

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()
        {
        }
        ....
}