Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 7660 → Rev 7661

/programs/cmm/installer/install.c
3,9 → 3,17
#include "../lib/io.h"
#include "../lib/gui.h"
#include "../lib/copyf.h"
 
#include "../lib/obj/libini.h"
#include "../lib/obj/libio.h"
#include "../lib/obj/libimg.h"
 
#include "../lib/patterns/restart_process.h"
 
#ifndef AUTOBUILD
#include "lang.h--"
#endif
 
char logo[] = "
ÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛ
ÛÛÛÛ ÛÛ ÛÛÛ ÛÛÛ ÛÛÛ ÛÛ ÛÛÛ ÛÛ
16,14 → 24,28
ÛÛÛÛ ÛÛÛ ÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ
";
 
char intro[] = "®¯à®¡ã©â¥ ­®¢®¥ ¢¨§ã «ì­®¥ ®ä®à¬«¥­¨¥ Š®«¨¡à¨, ª®â®à®¥ à ­ìè¥ ¡ë«® ¤®áâ㯭® ⮫쪮 ¢ KolibriNext.";
#ifdef LANG_RUS
#define T_INTRO "®¯à®¡ã©â¥ ­®¢®¥ ¢¨§ã «ì­®¥ ®ä®à¬«¥­¨¥ Š®«¨¡à¨, ª®â®à®¥ à ­ìè¥ ¡ë«® ¤®áâ㯭® ⮫쪮 ¢ KolibriNext.";
#define T_INSTALL "“áâ ­®¢¨âì"
#define T_COMPLETE "“áâ ­®¢ª  § ¢¥à襭 "
#define T_EXIT "‚ë室"
#else
#define T_INTRO "Try a new visual design of KolibriOS, which previously was available only in KolibriNext.";
#define T_INSTALL "Install"
#define T_COMPLETE "Install complete"
#define T_EXIT "Exit"
#endif
 
#define B_INSTALL 10
 
bool install_complete = false;
 
void main()
{
word btn;
load_dll(libini, #lib_init,1);
load_dll(libio, #libio_init,1);
load_dll(libimg, #libimg_init,1);
loop() switch(WaitEventTimeout(300) & 0xFF)
{
case evButton:
35,6 → 57,10
case evKey:
GetKeys();
if (key_scancode == SCAN_CODE_ESC) ExitProcess();
if (key_scancode == SCAN_CODE_ENTER) {
if (install_complete) ExitProcess();
else EventInstall();
}
break;
case evReDraw:
54,21 → 80,31
system.color.get();
DefineAndDrawWindow(screen.width-WINW/2,screen.height-WINH/2,
WINW+9,WINH+skin_height,0x34,system.color.work,"KolibriN10",0);
 
DrawLogo();
if (install_complete) DrawInstallComplete(); else DrawIntro();
}
 
void DrawIntro()
{
DrawTextViewArea(30, 140, WINW-60, WINH-80,
#intro, -1, system.color.work_text);
 
T_INTRO, -1, system.color.work_text);
DrawCaptButton(WINW-110/2, WINH-70, 110, 28, B_INSTALL,
0x0092D8, 0xFFFfff, "“áâ ­®¢¨âì");
0x0092D8, 0xFFFfff, T_INSTALL);
}
 
void DrawInstallComplete()
{
DrawIcon32(WINW-32/2, 140, system.color.work, 49);
WriteTextCenter(0,185, WINW, system.color.work_text, T_COMPLETE);
DrawCaptButton(WINW-110/2, WINH-70, 110, 28, CLOSE_BTN,
0x0092D8, 0xFFFfff, T_EXIT);
}
 
void DrawLogo()
{
#define LX -46*6+WINW/2
#define LY 25
WriteTextLines(LX-1, LY, 0x80, 0x9F87B8, #logo, 9);
WriteTextLines(LX-2, LY, 0x80, 0xF497C0, #logo, 9);
WriteTextLines(LX+3, LY, 0x80, 0x7ED1E3, #logo, 9);
 
pause(1);
77,9 → 113,6
WriteTextLines(LX, LY, 0x80, 0xEC008C, #logo, 9);
}
 
 
 
 
void EventInstall()
{
//#include "..\lib\added_sysdir.c";
92,6 → 125,9
RestartProcessByName("/sys/@docky", SINGLE);
 
RunProgram("/sys/media/kiv", "\\S__/kolibrios/res/Wallpapers/Free yourself.jpg");
 
install_complete = true;
draw_window();
}
 
void Operation_Draw_Progress(dword filename) { debug("copying: "); debugln(filename); }
/programs/cmm/lib/gui.h
41,10 → 41,13
 
:void DrawRectangle(dword x,y,w,h,color1)
{
DrawRectangle3D(x,y,w,h,color1,color1);
/*
DrawBar(x,y,w,1,color1);
DrawBar(x,y+h,w,1,color1);
DrawBar(x,y,1,h,color1);
DrawBar(x+w,y,1,h+1,color1);
*/
}
 
:void DrawWideRectangle(dword x,y,w,h,boder,color1)
/programs/cmm/lib/kolibri.h
89,10 → 89,9
$int 0x40
}
 
:dword WaitEventTimeout(dword time)
inline fastcall dword WaitEventTimeout(EBX)
{
EAX = 23;
EBX = time;
$int 0x40
}
/programs/games/mine/trunk/draw.h--
18,6 → 18,9
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
*******************************************************************************/
?define HEADER_Y 4
?define BTNSIZE 19
char game_mode[] = "1/3";
 
void draw_window() // Ïðîöåäóðà îòðèñîâêè îêíà
{
25,9 → 28,9
 
// WINDOW
sys_window_redraw(1);
EBX = xpos << 16 + xsize;
EBX = xpos << 16 + xsize + 9;
ECX = ypos << 16 + ysize;
sys_draw_window(EBX, ECX, 0x14CCCCCC, colors.w_work | 0x80000000, "MineSweeper");
sys_draw_window(EBX, ECX, 0x34CCCCCC, colors.w_work | 0x80000000, "MineSweeper");
sys_window_redraw(2);
// Leency ROLLED UP FIX
36,17 → 39,21
 
// <NEW GAME> BUTTON (911)
EBX = xsize / 2 - 10;
EBX = EBX << 16 + 20;
sys_draw_button(EBX, 25<<16+20, 911, clLightGray);
EBX = EBX << 16 + BTNSIZE;
sys_draw_button(EBX, HEADER_Y<<16+BTNSIZE, 911+BT_HIDE, clLightGray);
draw_rectangle(xsize/2-10,HEADER_Y,BTNSIZE,BTNSIZE,clWhite,clDarkGray);
 
// <CHANGE MODE> BUTTON (1001)
sys_draw_button(10<<16+7, 23<<16+7, 1001, 0x118811);
sys_draw_button(5<<16+32, HEADER_Y<<16+BTNSIZE, 1001+BT_HIDE, clLightGray);
draw_rectangle(5,HEADER_Y,32,BTNSIZE,clWhite,clDarkGray);
game_mode[0] = mode + '0';
sys_write_text(9<<16+HEADER_Y+3, 0x90000000+clDarkGray, #game_mode, 3);
 
// <USER FIELD> BUTTON (1002)
//sys_draw_button(20<<16+7, ECX, EDX+1, 0xddbb44);
//sys_draw_button(BTNSIZE<<16+7, ECX, EDX+1, 0xddbb44);
 
draw_time(); // draw timer
draw_minesi(); // draw mines
draw_mines_left(); // draw mines
draw_squares(); // draw field
}
 
131,25 → 138,17
}
}
 
 
// Òàéìåð
void draw_time()
{
sys_draw_bar(XST<<16+25, 31<<16+14, 0xCCCCCC);
sys_write_number(0x00030000, time, XST<<16+32, 0x10ff0000);
sys_draw_bar(xsize-XST-58<<16+29, HEADER_Y<<16+20, clWhiteGray);
sys_write_number(0x00030000, time, xsize-XST-56<<16+HEADER_Y+3, 0x101166C3);
}
 
 
// Èíäèêàòîð êîëè÷åñòâà íåðàññòàâëåííûõ ìèí
void draw_minesi()
void draw_mines_left()
{
EBX = xsize - XST - 25;
$PUSH EBX
EBX = EBX << 16 + 25;
sys_draw_bar(EBX, 31<<16+14, 0xCCCCCC);
$POP EDX
EDX <<= 16; EDX += 32;
sys_write_number(0x00030000, cmines, EDX, 0x10ff0000);
sys_draw_bar(xsize-XST-29<<16+29, HEADER_Y<<16+20, clWhiteGray);
sys_write_number(0x00030000, cmines, xsize-XST-27<<16+HEADER_Y+3, 0x10ff0000);
}
 
 
162,3 → 161,11
FOR (x=0; x < ncx; x++)
draw_square(x, y);
}
 
void draw_rectangle(dword x,y,w,h,color1,color2)
{
sys_draw_bar(x<<16+w+1,y<<16+1,color1);
sys_draw_bar(x<<16+1,y+1<<16+h-1,color1);
sys_draw_bar(x+w<<16+1,y+1<<16+h,color2);
sys_draw_bar(x<<16+w,y+h<<16+1,color2);
}
/programs/games/mine/trunk/kos_sys.h--
14,10 → 14,16
#define RETURN_KEY 13
#define BACKSPACE_KEY 8
 
//Button options
#define BT_DEL 0x80000000
#define BT_HIDE 0x40000000
#define BT_NOFRAME 0x20000000
 
// Color constant
#define clWhite 0x00ffffff
#define clGray 0x00808080
#define clLightGray 0x00c0c0c0
#define clWhiteGray 0x00E2E2E2
#define clDarkGray 0x00707070
#define clBlack 0x00000000
#define clRed 0x00ff0000
/programs/games/mine/trunk/mine.c--
58,9 → 58,10
byte nmines;
} stdmodes[3] = {9,9,10, 16,16,40, 30,16,99}; // {x,y,m}
 
int XST, // offset of first pixel X - ñìåùåíèå ïîëÿ îò ãðàíèöû îêíà
YST,
ncx, // number of squares in X - ðàçìåð ïîëÿ
?define XST 5 // offset of first pixel X - ñìåùåíèå ïîëÿ îò ãðàíèöû îêíà
?define YST 28
 
int ncx, // number of squares in X - ðàçìåð ïîëÿ
ncy,
cmines, // mines discovered - êîëè÷åñòâî íåîòêðûòûõ ìèí
initmines, // number of initial mines - èçíà÷àëüíîå êîëè÷åñòâî ìèí
107,8 → 108,6
void init()
// Èíèöèàëèçàöèÿ
{
XST = 10; YST = 52; // FIELD POSITION IN WINDOW
 
ECX = mode;
IF (ECX != 0)
{
126,7 → 125,7
}
 
xsize = ncx * XPX + XST + XST;
ysize = ncy * YPX + YST + XST;
ysize = ncy * YPX + YST + XST + sys_get_skin_height() + 4;
} // init
 
 
258,7 → 257,7
 
set_mark(x, y, EBX);
 
draw_minesi();
draw_mines_left();
draw_square(x, y);
return;
}
287,7 → 286,7
cmines--;
draw_square(x, y);
}
draw_minesi();
draw_mines_left();
}
} // do_mouse
 
438,16 → 437,16
{
switch (sys_wait_event_timeout(100)) // wait for 1 second
{
case evReDraw:
CASE evReDraw:
draw_window();
continue;
 
case evKey:
CASE evKey:
IF (sys_get_key() == 27)
sys_exit_process();
continue;
 
case evButton:
CASE evButton:
EAX = sys_get_button_id();
IF (EAX == 911) // new game
{
454,15 → 453,16
new_game();
draw_squares();
draw_time();
draw_minesi();
draw_mines_left();
}
ELSE IF (EAX == 1001) // change mode
{
// mode++; mode%=3; mode++;
EAX = mode; EAX++; EAX = EAX%3; EAX++; mode = AL;
mode++;
if (mode==4) mode=1;
//EAX = mode; EAX++; EAX = EAX%3; EAX++; mode = AL;
 
new_game();
window_move_size(OLD,OLD,xsize,ysize);
window_move_size(OLD,OLD,xsize+9,ysize);
CONTINUE;
}
// ELSE IF (EAX == 1002)