Subversion Repositories Kolibri OS

Rev

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