Subversion Repositories Kolibri OS

Rev

Rev 7806 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #define MEMSIZE 1024*160
  2.  
  3. #include "../lib/io.h"
  4. #include "../lib/gui.h"
  5. #include "../lib/copyf.h"
  6.  
  7. #include "../lib/obj/libini.h"
  8. #include "../lib/obj/libio.h"
  9. #include "../lib/obj/libimg.h"
  10.  
  11. #include "../lib/patterns/restart_process.h"
  12.  
  13. #ifndef AUTOBUILD
  14. #include "lang.h--"
  15. #endif
  16.  
  17. char logo[] = "
  18. ████   ████ ██████████ ████   ████ ███████████
  19. ████   ██   ███         ███ ███   ██  ███  ██
  20. █████  ██   ███          █████    ██  ███  ██
  21. ██ ███ ██   ███████       ███         ███    
  22. ██  █████   ███          █████        ███    
  23. ██   ████   ███         ███ ███       ███    
  24. ████   ███  ██████████ ████   ████    █████  
  25. ";
  26.  
  27. #ifdef LANG_RUS
  28. #define T_INTRO "Попробуйте новое визуальное оформление Колибри, которое раньше было доступно только в KolibriNext.";
  29. #define T_INSTALL "Установить"
  30. #define T_COMPLETE "Установка завершена"
  31. #define T_EXIT "Выход"
  32. #else
  33. #define T_INTRO "Try a new visual design of KolibriOS, which previously was available only in KolibriNext.";
  34. #define T_INSTALL "Install"
  35. #define T_COMPLETE "Install complete"
  36. #define T_EXIT "Exit"
  37. #endif
  38.  
  39. #define B_INSTALL 10
  40.  
  41. bool install_complete = false;
  42.  
  43. void main()
  44. {
  45.         word btn;
  46.         load_dll(libini, #lib_init,1);
  47.         load_dll(libio, #libio_init,1);
  48.         load_dll(libimg, #libimg_init,1);
  49.         loop() switch(WaitEventTimeout(300) & 0xFF)
  50.         {
  51.                 case evButton:
  52.                         btn = GetButtonID();              
  53.                         if (btn == 1) ExitProcess();
  54.                         if (btn == B_INSTALL) EventInstall();
  55.                         break;
  56.          
  57.                 case evKey:
  58.                         GetKeys();
  59.                         if (key_scancode == SCAN_CODE_ESC) ExitProcess();
  60.                         if (key_scancode == SCAN_CODE_ENTER) {
  61.                                 if (install_complete) ExitProcess();
  62.                                 else EventInstall();
  63.                         }
  64.                         break;
  65.                  
  66.                 case evReDraw:
  67.                         draw_window();
  68.                         break;
  69.  
  70.                 default:
  71.                         DrawLogo();
  72.                         DrawLogo();
  73.         }
  74. }
  75.  
  76. #define WINW 400
  77. #define WINH 300
  78. void draw_window()
  79. {
  80.         sc.get();
  81.         DefineAndDrawWindow(screen.width-WINW/2,screen.height-WINH/2,
  82.                 WINW+9,WINH+skin_height,0x34,sc.work,"KolibriN10",0);
  83.         DrawLogo();
  84.         if (install_complete) DrawInstallComplete(); else DrawIntro();
  85. }
  86.  
  87. void DrawIntro()
  88. {
  89.         DrawTextViewArea(30, 140, WINW-60, WINH-80,
  90.                 T_INTRO, -1, sc.work_text);
  91.         DrawCaptButton(WINW-110/2, WINH-70, 110, 28, B_INSTALL,
  92.                 0x0092D8, 0xFFFfff, T_INSTALL);
  93. }
  94.  
  95. void DrawInstallComplete()
  96. {
  97.         DrawIcon32(WINW-32/2, 140, sc.work, 49);
  98.         WriteTextCenter(0,185, WINW, sc.work_text, T_COMPLETE);
  99.         DrawCaptButton(WINW-110/2, WINH-70, 110, 28, CLOSE_BTN,
  100.                 0x0092D8, 0xFFFfff, T_EXIT);
  101. }
  102.  
  103. void DrawLogo()
  104. {
  105.         #define LX -46*6+WINW/2
  106.         #define LY 25
  107.         WriteTextLines(LX-2, LY, 0x80, 0xF497C0, #logo, 9);
  108.         WriteTextLines(LX+3, LY, 0x80, 0x7ED1E3, #logo, 9);
  109.  
  110.         pause(1);
  111.  
  112.         WriteTextLines(LX+1, LY, 0x80, 0xEC008C, #logo, 9);
  113.         WriteTextLines(LX,   LY, 0x80, 0xEC008C, #logo, 9);
  114. }
  115.  
  116. void EventInstall()
  117. {
  118.         //#include "..\lib\added_sysdir.c";
  119.         //SetAdditionalSystemDirectory("kolibrios", abspath("install/kolibrios")+1);
  120.         ini_set_int stdcall ("/sys/settings/taskbar.ini", "Flags", "Attachment", 0);
  121.         copyf("/kolibrios/KolibriNext/settings", "/sys/settings");
  122.  
  123.         RestartProcessByName("/sys/@icon", MULTIPLE);
  124.         RestartProcessByName("/sys/@taskbar", SINGLE);
  125.         RestartProcessByName("/sys/@docky", SINGLE);
  126.  
  127.         RunProgram("/sys/media/kiv", "\\S__/kolibrios/res/Wallpapers/Free yourself.jpg");
  128.  
  129.         install_complete = true;
  130.         draw_window();
  131. }
  132.  
  133. void Operation_Draw_Progress(dword filename) { }