class "nazwa_klasy" (CUIScriptWnd)
function nazwa_klasy:__init() super() -- Konstruuję klasę
self:InitControls()
self:InitCallBacks()
end
function nazwa_klasy:__finalize() -- Destruuję klasę
end
function nazwa_klasy:InitControls()
self:Init(0, 0, 1024, 768) -- Inicjacja okna
local xml = CScriptXmlInit() -- Aby skrypt analizował plik xml
xml:ParseFile("nazwa_pliku.xml") -- Tu podajemy nazwę pliku, musi on być umieszczony w config/ui
local ctrl = nil -- Inicjacja zmiennej ctrl
self.background = xml:InitStatic("background", self) -- Tekstura tła
ctrl = xml:Init3tButton("background:btn_exit", self.background)
self:Register(ctrl, "btn_exit") -- Dodajemy przycisk exit zamykający nasze okno
end
function nazwa_klasy:InitCallBacks()
self:AddCallback("btn_exit", ui_events.BUTTON_CLICKED, self.OnExitClick, self)
-- Aby przycisk zadziałał dodajemy mu callback
end
function nazwa_klasy:OnExitClick() -- Funkcja wywoływana przez callback
self:GetHolder():start_stop_menu(self, true) -- Zamyka okno
end
-- Teraz wyjaśnię jak sprawić, aby kod wykonywał się po naciśnięciu wybranego przycisku na klawiaturze
function nazwa_klasy:OnKeyboard(dik, keyboard_action)
CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
local bind = dik_to_bind(dik)
if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
if dik == DIK_keys.DIK_ESCAPE then -- Tutaj określamy przycisk
self:OnExitClick() -- Kod wykonywany po naciśnięciu
end
end
end
-- Aby załączyć taką klasę dodaj w jakiejś funkcji:
level.start_stop_menu(nazwa_klasy(get_hud()), true)