Subversion Repositories Kolibri OS

Rev

Rev 7661 | Go to most recent revision | Blame | 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) { debug("copying: "); debugln(filename); }