#define MEMSIZE 1024*160 #include "../lib/io.h" #include "../lib/gui.h" #include "../lib/copyf.h" #include "../lib/obj/libini.h" #include "../lib/obj/libimg.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; load_dll(libini, #lib_init,1); load_dll(libimg, #libimg_init,1); loop() switch(WaitEventTimeout(300) & 0xFF) { 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; default: DrawLogo(); DrawLogo(); } } #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() { DrawIcon32(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); copyf("/kolibrios/KolibriNext/settings", "/sys/settings"); copyf("/kolibrios/KolibriNext", "/sys"); 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 ActivateWindow_Self() { proc_info Form; GetProcessInfo(#Form, SelfInfo); ActivateWindow(GetProcessSlot(Form.ID)); } void Operation_Draw_Progress(dword filename) { }