forked from KolibriOS/kolibrios
8bf60cac6d
MENU.DAT: add a "Welcome" link, small resort WEBVIEW: fix links browsing at bugs.kolibri-n.org @RESHARE: fix crash on skin change CMM: use @reshare for some apps which leads to size decrease OSUPDATE: rework UI git-svn-id: svn://kolibrios.org@9439 a494cfbc-eb01-0410-851d-a64ba20cac60
134 lines
3.3 KiB
C
134 lines
3.3 KiB
C
#define MEMSIZE 1024*160
|
||
|
||
#include "../lib/io.h"
|
||
#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 "<22>®¯à®¡ã©â¥ ®¢®¥ ¢¨§ã «ì®¥ ®ä®à¬«¥¨¥ Š®«¨¡à¨, ª®â®à®¥ à ìè¥ ¡ë«® ¤®áâ㯮 ⮫쪮 ¢ 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);
|
||
loop() switch(@WaitEventTimeout(300))
|
||
{
|
||
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()
|
||
{
|
||
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);
|
||
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) { } |