Subversion Repositories Kolibri OS

Rev

Rev 8278 | 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/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.         //#include "..\lib\added_sysdir.c";
  118.         //SetAdditionalSystemDirectory("kolibrios", abspath("install/kolibrios")+1);
  119.         ini_set_int stdcall ("/sys/settings/taskbar.ini", "Flags", "Attachment", 0);
  120.         copyf("/kolibrios/KolibriNext/settings", "/sys/settings");
  121.  
  122.         RestartProcessByName("/sys/@icon", MULTIPLE);
  123.         RestartProcessByName("/sys/@taskbar", SINGLE);
  124.         RestartProcessByName("/sys/@docky", SINGLE);
  125.  
  126.         RunProgram("/sys/media/kiv", "\\S__/kolibrios/res/Wallpapers/Free yourself.jpg");
  127.  
  128.         install_complete = true;
  129.         draw_window();
  130. }
  131.  
  132. void Operation_Draw_Progress(dword filename) { }