Subversion Repositories Kolibri OS

Rev

Rev 8823 | Rev 9341 | Go to most recent revision | 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. char logo[] = "
  13. ÛÛÛÛ   ÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛ   ÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛ
  14. ÛÛÛÛ   ÛÛ   ÛÛÛ         ÛÛÛ ÛÛÛ   ÛÛ  ÛÛÛ  ÛÛ
  15. ÛÛÛÛÛ  ÛÛ   ÛÛÛ          ÛÛÛÛÛ    ÛÛ  ÛÛÛ  ÛÛ
  16. ÛÛ ÛÛÛ ÛÛ   ÛÛÛÛÛÛÛ       ÛÛÛ         ÛÛÛ    
  17. ÛÛ  ÛÛÛÛÛ   ÛÛÛ          ÛÛÛÛÛ        ÛÛÛ    
  18. ÛÛ   ÛÛÛÛ   ÛÛÛ         ÛÛÛ ÛÛÛ       ÛÛÛ    
  19. ÛÛÛÛ   ÛÛÛ  ÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛ   ÛÛÛÛ    ÛÛÛÛÛ  
  20. ";
  21.  
  22. #ifdef LANG_RUS
  23. #define T_INTRO "®¯à®¡ã©â¥ ­®¢®¥ ¢¨§ã «ì­®¥ ®ä®à¬«¥­¨¥ Š®«¨¡à¨, ª®â®à®¥ à ­ìè¥ ¡ë«® ¤®áâ㯭® ⮫쪮 ¢ KolibriNext.";
  24. #define T_INSTALL "“áâ ­®¢¨âì"
  25. #define T_COMPLETE "“áâ ­®¢ª  § ¢¥à襭 "
  26. #define T_EXIT "‚ë室"
  27. #else
  28. #define T_INTRO "Try a new visual design of KolibriOS, which previously was available only in KolibriNext.";
  29. #define T_INSTALL "Install"
  30. #define T_COMPLETE "Install complete"
  31. #define T_EXIT "Exit"
  32. #endif
  33.  
  34. #define B_INSTALL 10
  35. #define B_EXIT 11
  36.  
  37. bool install_complete = false;
  38.  
  39. void main()
  40. {
  41.         word btn;
  42.         load_dll(libini, #lib_init,1);
  43.         load_dll(libimg, #libimg_init,1);
  44.         loop() switch(WaitEventTimeout(300) & 0xFF)
  45.         {
  46.                 case evButton:
  47.                         btn = GetButtonID();              
  48.                         if (btn == 1) || (B_EXIT == btn) ExitProcess();
  49.                         if (B_INSTALL == btn) EventInstall();
  50.                         break;
  51.          
  52.                 case evKey:
  53.                         GetKeys();
  54.                         if (key_scancode == SCAN_CODE_ESC) ExitProcess();
  55.                         if (key_scancode == SCAN_CODE_ENTER) {
  56.                                 if (install_complete) ExitProcess();
  57.                                 else EventInstall();
  58.                         }
  59.                         break;
  60.                  
  61.                 case evReDraw:
  62.                         draw_window();
  63.                         break;
  64.  
  65.                 default:
  66.                         DrawLogo();
  67.                         DrawLogo();
  68.         }
  69. }
  70.  
  71. #define WINW 400
  72. #define WINH 300
  73. void draw_window()
  74. {
  75.         sc.get();
  76.         DefineAndDrawWindow(screen.width-WINW/2,screen.height-WINH/2,
  77.                 WINW+9,WINH+skin_height,0x34,sc.work,"KolibriN10",0);
  78.         DrawLogo();
  79.         if (install_complete) DrawInstallComplete(); else DrawIntro();
  80. }
  81.  
  82. void DrawIntro()
  83. {
  84.         DrawTextViewArea(30, 140, WINW-60, WINH-80,
  85.                 T_INTRO, -1, sc.work_text);
  86.         DrawCaptButton(WINW-110/2, WINH-70, 110, 28, B_INSTALL,
  87.                 0x0092D8, 0xFFFfff, T_INSTALL);
  88. }
  89.  
  90. void DrawInstallComplete()
  91. {
  92.         DrawIcon32(WINW-32/2, 140, sc.work, 49);
  93.         WriteTextCenter(0,185, WINW, sc.work_text, T_COMPLETE);
  94.         DrawCaptButton(WINW-110/2, WINH-70, 110, 28, B_EXIT,
  95.                 0x0092D8, 0xFFFfff, T_EXIT);
  96. }
  97.  
  98. void DrawLogo()
  99. {
  100.         #define LX -46*6+WINW/2
  101.         #define LY 25
  102.         WriteTextLines(LX-2, LY, 0x80, 0xF497C0, #logo, 9);
  103.         WriteTextLines(LX+3, LY, 0x80, 0x7ED1E3, #logo, 9);
  104.  
  105.         pause(1);
  106.  
  107.         WriteTextLines(LX+1, LY, 0x80, 0xEC008C, #logo, 9);
  108.         WriteTextLines(LX,   LY, 0x80, 0xEC008C, #logo, 9);
  109. }
  110.  
  111. void EventInstall()
  112. {
  113.         ini_set_int stdcall ("/sys/settings/taskbar.ini", "Flags", "Attachment", 0);
  114.         copyf("/kolibrios/KolibriNext/settings", "/sys/settings");
  115.         copyf("/kolibrios/KolibriNext", "/sys");
  116.  
  117.         RestartProcessByName("/sys/@icon", MULTIPLE);
  118.         RestartProcessByName("/sys/@taskbar", SINGLE);
  119.         RestartProcessByName("/sys/@docky", SINGLE);
  120.  
  121.         RunProgram("/sys/media/kiv", "\\S__/kolibrios/res/Wallpapers/Free yourself.jpg");
  122.  
  123.         install_complete = true;
  124.         draw_window();
  125. }
  126.  
  127. void Operation_Draw_Progress(dword filename) { }