0,0 → 1,131 |
#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" |
|
#ifndef AUTOBUILD |
#include "lang.h--" |
#endif |
|
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; |
draw_window(); |
} |
|
void Operation_Draw_Progress(dword filename) { } |