SWAT
Администратор
Сообщений: 7245
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1222 раз(а) в 765 сообщ.
|
DreamShell lua source code
По просьбам трудящихся:)
Код:
-- Урок по управлению контентом GUI
function CreatePage1(int x, int y, int w, int h)
local box = SDL.GUI_PanelCreate("box", x, y, w, h);
-- Добавляем сюда что хотим, любые элементы GUI
return box;
end
function CreatePage2(int x, int y, int w, int h)
local box = SDL.GUI_PanelCreate("box", x, y, w, h);
-- Добавляем сюда что хотим, любые элементы GUI
return box;
end
function CreateMainPage(int x, int y, int w, int h)
local box = SDL.GUI_PanelCreate("box", x, y, w, h);
-- Добавляем сюда что хотим, любые элементы GUI
return box;
end
function CreateContents(x, y, w, h)
local box = SDL.GUI_PanelCreate("main", x, y, w, h);
local page;
local cards;
cards = SDL.GUI_CardStackCreate("cards", 0, 0, w, h-50);
SDL.GUI_ContainerAdd(box, cards);
-- Создаем несколько страничек, которые потом можем показывать по выбору.
page = SDL.CreateMainPage(0, 0, w, h-50);
SDL.GUI_ContainerAdd(cards, page);
page = SDL.CreatePage1(0, 0, w, h-50);
SDL.GUI_ContainerAdd(cards, page);
page = SDL.CreatePage2(0, 0, w, h-50);
SDL.GUI_ContainerAdd(cards, page);
-- Здесь нижняя часть экрана, теперь всегда одна и та же,
-- выделили мы под нее 50 пикселей, делаем с ними что хотим, например меню
-- code
-- Сообщаем какая страница откроется первой.
-- мы выбрали самую первую страницу(под нулевым значением), называется у нас MainPage
-- В дальнейшем эта функция вам пригодится для перехода по вашим страничкам,
-- например в вышенаписанном меню.
SDL.GUI_CardStackShowIndex(cards, 0);
return box;
end
function AppInit(w, h)
local screen = SDL.GUI_GetScreen();
local mainpage;
local background;
-- Тут загружаем картинку которую растянем на фон.
background = GUI_SurfaceLoad("background.jpg");
if background == nil then
print("ERROR: Can't load gui background.");
end
-- Тут и так думаю понятно по названию функций :)
SDL.GUI_ScreenSetBackground(screen, background);
mainpage = SDL.CreateContents(0,0,w,h);
SDL.GUI_ScreenSetContents(screen, mainpage);
return 1;
end
-- Запускаем
if AppInit(640, 480) then
-- Закрываем графику DreamShell
DS.ds_draw_shutdown();
-- Устанавливаем режим GUI
DS.conio_set_mode(3, 3);
-- Loop
print("Run GUI API...")
SDL.GUI_Run();
-- Возвращаем режим
DS.conio_set_mode(1, 1);
print("GUI API is shutting down.")
-- Возвращаем графику DreamShell
DS.ds_draw_init();
print("Welcome to back in DreamShell console :)")
end
Не проверял на работоспособность, т.к. в принципе нечего проверять:)
Так что если где то чуть ошибся, звиняйте:)
(Последний раз сообщение было отредактировано 29.01.2007 в 21:03, отредактировал пользователь SWAT.)
|
|