#include "..\lib\kolibri.h" #include "..\lib\figures.h" #include "..\lib\strings.h" #include "..\lib\random.h" #include "..\lib\mem.h" #include "..\lib\file_system.h" #ifndef ru char *BUTTONS_CAPTIONS[]={ "Перезагрузка [Enter]"w, 13, "Выключение [End]"w, 181, "Ядро [Home]"w, 180, "Отмена [Esc]"w, 27, 0}; #else char *BUTTONS_CAPTIONS[]={ " Reboot [Enter]",13, " Power off [End]",181, " Kernel [Home]",180, " Close [Esc]",27, 0}; #endif system_colors sc; unsigned char moon[6*6] = FROM "moon.raw"; int WIN_SIZE_X, WIN_SIZE_Y; int PANEL_X, PANEL_Y; #define NIGHT_PALEL_HEIGHT 45 #define STARS_COUNT 30 #define PANEL_SIZE_X 260 #define PANEL_SIZE_Y 165 dword stars_col[4]={0xD2CF19, 0x716900, 0x002041}; //0x005BFF - голубой, редко void main() { int key; pause(10); WIN_SIZE_X=GetScreenWidth()+1; WIN_SIZE_Y=GetScreenHeight()+1; PANEL_X=WIN_SIZE_X-PANEL_SIZE_X/2; PANEL_Y=WIN_SIZE_Y-PANEL_SIZE_Y/2; loop() { WaitEventTimeout(130); switch(EAX & 0xFF) { case evButton: key=GetButtonID(); if (key==1) ExitProcess(); GOTO _BUTTON_MARK; case evKey: key = GetKey(); _BUTTON_MARK: if (key== 13) ExitSystem(REBOOT); //ENTER if (key==180) ExitSystem(KERNEL); //HOME if (key==181) ExitSystem(TURN_OFF); //END if (key== 27) ExitProcess(); //ESC if (key== 19) //CTRL+S { RunProgram("rdsave",0); ExitProcess(); } break; case evReDraw: draw_window(); break; default: draw_stars(); } } } void draw_window() { int x, y; sc.get(); DefineAndDrawWindow(0,0,WIN_SIZE_X, WIN_SIZE_Y, 0x01, 0, 0, 0x01fffFFF); draw_main_area(PANEL_X, PANEL_Y, PANEL_SIZE_X, PANEL_SIZE_Y); //draw grid for (y=0; yPANEL_Y) && (y