forked from KolibriOS/kolibrios
127 lines
3.8 KiB
C
127 lines
3.8 KiB
C
#define MEMSIZE 1024*60
|
|
|
|
#include "../lib/gui.h"
|
|
#include "../lib/copyf.h"
|
|
|
|
#include "../lib/obj/libini.h"
|
|
|
|
#include "../lib/patterns/restart_process.h"
|
|
|
|
char logo[] = "
|
|
████ ████ ██████████ ████ ████ ███████████
|
|
████ ██ ███ ███ ███ ██ ███ ██
|
|
█████ ██ ███ █████ ██ ███ ██
|
|
██ ███ ██ ███████ ███ ███
|
|
██ █████ ███ █████ ███
|
|
██ ████ ███ ███ ███ ███
|
|
████ ███ ██████████ ████ ████ █████
|
|
";
|
|
|
|
#ifdef LANG_RUS
|
|
#define T_INTRO "Попробуйте новое визуальное оформление Колибри, которое раньше было доступно только в KolibriNext.";
|
|
#define T_INSTALL "Установить"
|
|
#define T_COMPLETE "Установка завершена"
|
|
#define T_EXIT "Выход"
|
|
#else
|
|
#define T_INTRO "Try a new visual design of KolibriOS, which previously was available only in KolibriNext.";
|
|
#define T_INSTALL "Install"
|
|
#define T_COMPLETE "Install complete"
|
|
#define T_EXIT "Exit"
|
|
#endif
|
|
|
|
#define B_INSTALL 10
|
|
#define B_EXIT 11
|
|
|
|
bool install_complete = false;
|
|
|
|
void main()
|
|
{
|
|
word btn;
|
|
saved_state = FILE_REPLACE;
|
|
load_dll(libini, #lib_init,1);
|
|
loop() switch(WaitEvent())
|
|
{
|
|
case evButton:
|
|
btn = GetButtonID();
|
|
if (btn == 1) || (B_EXIT == btn) ExitProcess();
|
|
if (B_INSTALL == btn) EventInstall();
|
|
break;
|
|
|
|
case evKey:
|
|
GetKeys();
|
|
if (key_scancode == SCAN_CODE_ESC) ExitProcess();
|
|
if (key_scancode == SCAN_CODE_ENTER) {
|
|
if (install_complete) ExitProcess();
|
|
else EventInstall();
|
|
}
|
|
break;
|
|
|
|
case evReDraw:
|
|
draw_window();
|
|
break;
|
|
}
|
|
}
|
|
|
|
#define WINW 400
|
|
#define WINH 300
|
|
void draw_window()
|
|
{
|
|
sc.get();
|
|
DefineAndDrawWindow(screen.width-WINW/2,screen.height-WINH/2,
|
|
WINW+9,WINH+skin_height,0x34,sc.work,"KolibriN10",0);
|
|
DrawLogo();
|
|
if (install_complete) DrawInstallComplete(); else DrawIntro();
|
|
}
|
|
|
|
void DrawIntro()
|
|
{
|
|
DrawTextViewArea(30, 140, WINW-60, WINH-80,
|
|
T_INTRO, -1, sc.work_text);
|
|
DrawCaptButton(WINW-110/2, WINH-70, 110, 28, B_INSTALL,
|
|
0x0092D8, 0xFFFfff, T_INSTALL);
|
|
}
|
|
|
|
void DrawInstallComplete()
|
|
{
|
|
draw_icon_32(WINW-32/2, 140, sc.work, 49);
|
|
WriteTextCenter(0,185, WINW, sc.work_text, T_COMPLETE);
|
|
DrawCaptButton(WINW-110/2, WINH-70, 110, 28, B_EXIT,
|
|
0x0092D8, 0xFFFfff, T_EXIT);
|
|
}
|
|
|
|
void DrawLogo()
|
|
{
|
|
#define LX -46*6+WINW/2
|
|
#define LY 25
|
|
WriteTextLines(LX-2, LY, 0x80, 0xF497C0, #logo, 9);
|
|
WriteTextLines(LX+3, LY, 0x80, 0x7ED1E3, #logo, 9);
|
|
|
|
pause(1);
|
|
|
|
WriteTextLines(LX+1, LY, 0x80, 0xEC008C, #logo, 9);
|
|
WriteTextLines(LX, LY, 0x80, 0xEC008C, #logo, 9);
|
|
}
|
|
|
|
void EventInstall()
|
|
{
|
|
ini_set_int stdcall ("/sys/settings/taskbar.ini", "Flags", "Attachment", 0);
|
|
writing_error_channel = WRITE_ERROR_NOTIFY;
|
|
copy_state = FILE_REPLACE;
|
|
//if (copyf("/kolibrios/KolibriNext/settings", "/sys/settings")) return;
|
|
CopyFile("/kolibrios/KolibriNext/settings/app_plus.ini", "/sys/settings/app_plus.ini");
|
|
CopyFile("/kolibrios/KolibriNext/settings/docky.ini", "/sys/settings/docky.ini");
|
|
CopyFile("/kolibrios/KolibriNext/settings/icon.ini", "/sys/settings/icon.ini");
|
|
|
|
RestartProcessByName("/sys/@icon", MULTIPLE);
|
|
RestartProcessByName("/sys/@taskbar", SINGLE);
|
|
RestartProcessByName("/sys/@docky", SINGLE);
|
|
|
|
RunProgram("/sys/media/kiv", "\\S__/kolibrios/res/Wallpapers/Free yourself.jpg");
|
|
|
|
install_complete = true;
|
|
|
|
pause(150);
|
|
ActivateWindow_Self();
|
|
}
|
|
|
|
void Operation_Draw_Progress(dword filename) { } |