Создать ответ 
 
Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0
  • 1
  • 2
  • 3
  • 4
  • 5
DreamShell lua source code
Автор Сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7237
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1214 раз(а) в 762 сообщ.
Сообщение: #28
DreamShell lua source code
Ну вот и нашел я решение проблемы:)
Во ттак теперь это будет выглядеть:


Код:
-- DreamShell NG lua script
-- GUI test v1.0 (input and button)

local font


local btn_img = {

normal = nil,
highlight = nil,
pressed = nil,
disabled = nil

}





-- Сделаем функцию для удобного рисования кнопок.
function NormalButton(name, x, y, font, img,  text, func)

-- Создаем кнопку.
local button = SDL.GUI_ButtonCreate(name, x, y, 110, 60);

-- Создаем текст.
local label = SDL.GUI_LabelCreate("label", 0, 0, 110, 60, font, text);

-- Наносим текст на кнопку.
SDL.GUI_ButtonSetCaption(button, label);
SDL.GUI_ObjectDecRef(SDL.GUI_AnyToObject(label));


-- Присваиваем действие к кнопке(функцию которую она выполнит).
-- Эта функция есть только в поледнем обновлении.
local cb = SDL.GUI_LuaCallbackCreate(func);
SDL.GUI_ButtonSetClick(button, cb);


-- Устанавливаем картинки к кнопке для разных ее режимов.
SDL.GUI_ButtonSetNormalImage(button, img.normal);
SDL.GUI_ButtonSetHighlightImage(button, img.highlight);
SDL.GUI_ButtonSetPressedImage(button, img.pressed);
SDL.GUI_ButtonSetDisabledImage(button, img.disabled);

return button
end





local input

function GetInputText()
  return SDL.GUI_TextEntryGetText(input);
end



function callbackf(param)

if param == "Exit" then

SDL.GUI_SetRunning(0);
SDL.GUI_Quit();

end


end



function CreateContents(x, y, w, h)

-- Создаем панель(невидимую) на которой будем рисовать.
local box = SDL.GUI_PanelCreate("box", x, y, w, h);

-- Рисуем форму для ввода текста.
input = SDL.GUI_TextEntryCreate("button", 20, 305, 200, 30, font, 32);

-- Устанавливаем в форме текст.
SDL.GUI_TextEntrySetText(input, "Exit");

-- Добавляем нашу форму в панель.
SDL.GUI_ContainerAdd(box, input);

-- Рисуем кнопку с помощью нашей функции.
local button = NormalButton("TestButton", 260, 350, font, btn_img, "OK", "callbackf(GetInputText())");

SDL.GUI_ContainerAdd(box, button);


return box;
end




function Init_gui(w, h)

-- Берем экран GUI.
local screen = SDL.GUI_GetScreen();

-- Загружаем шрифт.
print("Loading font...")
font = SDL.GUI_FontLoadTrueType("/cd/fonts/comic.ttf", 18);

-- Загружаем фоновую картинку.
print("Loading background...")
local background = SDL.GUI_SurfaceLoad("/cd/image/back/water.jpg");

-- Загружаем картинки для нашей кнопки.
print("Loading button images...")
btn_img.normal = SDL.GUI_SurfaceLoad("/cd/image/gui/buttons/normal/normal.png");
btn_img.highlight = SDL.GUI_SurfaceLoad("/cd/image/gui/buttons/normal/highlight.png");
btn_img.pressed = SDL.GUI_SurfaceLoad("/cd/image/gui/buttons/normal/pressed.png");
btn_img.disabled = SDL.GUI_SurfaceLoad("/cd/image/gui/buttons/normal/disabled.png");

-- Проверяем, загрузили ли мы нужные ресурсы.
if font == nil then return 0 end
if background == nil then return 0 end
-- И так далее :)


print("Creating content...")

-- Устанавливаем фон.
SDL.GUI_ScreenSetBackground(screen, background);


-- Создаем наше творение.
local mainpage = CreateContents(0,0,w,h);
SDL.GUI_ScreenSetContents(screen, mainpage);
SDL.GUI_ObjectDecRef(SDL.GUI_AnyToObject(mainpage));

font = 0;
return 1;
end




function LoadUpdate(fn)

local f = KOS.fs_open(fn, KOS.O_RDONLY);
if f < 0 then return 0 end
KOS.fs_close(f);

DS.ds_exec_one(string.format("vmcp -tf %s /ram/ds_update.klz", fn));
DS.ds_exec_one("gz -d /ram/ds_update.klz /ram/ds_update.klf");
DS.ds_exec_one("module -open DSUpdate /ram/ds_update.klf");
DS.ds_exec_one("rm /ram/ds_update.klz");
DS.ds_exec_one("rm /ram/ds_update.klf");
return 1;
end




-- Если играет музыка, остановим ее, иначе лаганет :)
DS.ds_exec_one("ogg stop");


-- Загружаем модуль последних обновлений
-- (если вы зами его не загружали до этого)
if LoadUpdate("/vmu/a1/DSUPDATE.KLZ") == 0 then
print("Can't open latest DreamShell update module.")
print("This script cannot run without update.")
return
end




-- Запускаем
if Init_gui(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


Обновление можно скачать на страничке DreamShell.

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 12.08.2006 в 18:43, отредактировал пользователь SWAT.)
12.08.2006 18:37
Вебсайт Найти все сообщения Цитировать это сообщение
Создать ответ 


Сообщения в этой теме
DreamShell lua source code - SWAT - 02.09.2005, 00:12
DreamShell lua source code - SWAT - 05.09.2005, 00:42
DreamShell lua source code - SWAT - 06.09.2005, 02:29
DreamShell lua source code - SWAT - 06.09.2005, 23:59
DreamShell lua source code - zaero - 01.10.2005, 18:48
DreamShell lua source code - SWAT - 02.10.2005, 20:18
DreamShell lua source code - SWAT - 02.10.2005, 20:48
DreamShell lua source code - alex - 12.11.2005, 22:18
DreamShell lua source code - zaero - 12.11.2005, 22:38
DreamShell lua source code - SWAT - 12.11.2005, 22:46
DreamShell lua source code - zaero - 20.11.2005, 22:56
DreamShell lua source code - SWAT - 21.11.2005, 18:31
DreamShell lua source code - zaero - 21.11.2005, 18:37
DreamShell lua source code - SWAT - 21.11.2005, 18:43
DreamShell lua source code - zaero - 21.11.2005, 22:05
DreamShell lua source code - SWAT - 22.11.2005, 15:28
DreamShell lua source code - zaero - 22.11.2005, 20:14
DreamShell lua source code - SWAT - 22.11.2005, 22:11
DreamShell lua source code - zaero - 22.11.2005, 22:19
DreamShell lua source code - SWAT - 23.11.2005, 20:09
DreamShell lua source code - zaero - 24.11.2005, 19:11
DreamShell lua source code - zaero - 24.11.2005, 22:26
DreamShell lua source code - zaero - 05.12.2005, 18:54
DreamShell lua source code - SWAT - 05.06.2006, 14:13
DreamShell lua source code - zaero - 06.06.2006, 01:59
DreamShell lua source code - SWAT - 10.08.2006, 17:06
DreamShell lua source code - SWAT - 10.08.2006, 19:16
DreamShell lua source code - SWAT - 12.08.2006 18:37
DreamShell lua source code - zaero - 19.12.2006, 04:36
DreamShell lua source code - SWAT - 29.01.2007, 20:58

Похожие темы
Тема: Автор Ответов: Просмотров: Посл. сообщение
  Need help building Dreamshell Rio 10 3481 01.07.2024 09:11
Посл. сообщение: SWAT
  DreamShell dev environment setup on macOS VeraBecker 17 10915 19.09.2023 06:25
Посл. сообщение: SWAT
  Приложение для DreamShell SuperClaw 170 439594 01.05.2016 08:12
Посл. сообщение: SWAT
  DreamShell 4.0 - XML Doc SWAT 6 36673 06.04.2015 13:41
Посл. сообщение: SWAT
  DreamShell 4.0 - Module dev SWAT 8 33260 23.12.2013 13:20
Посл. сообщение: SWAT
  Dreamshell BETA3/BETA4 Direct Swap atreyu187 3 20794 09.09.2011 14:27
Посл. сообщение: SWAT
  DreamShell 4.0 - App dev SWAT 3 23339 22.06.2011 23:09
Посл. сообщение: Jirohn
  DreamShell 4.0 - Bug Report SWAT 54 176434 28.03.2011 07:24
Посл. сообщение: SWAT
  Разработка блокнота для DreamShell zaero 28 93853 31.01.2011 16:02
Посл. сообщение: SWAT
  DreamShell 4.0 - Beta Testing SWAT 76 243862 14.07.2010 20:58
Посл. сообщение: SWAT

Переход:


Пользователи просматривают эту тему: 7 Гость(ей)