forked from KolibriOS/kolibrios
Mine: slightly update UI
KolibriN Installer: translation, add complete frame git-svn-id: svn://kolibrios.org@7661 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
e1a32382fd
commit
4b31a55f25
@ -3,9 +3,17 @@
|
|||||||
#include "../lib/io.h"
|
#include "../lib/io.h"
|
||||||
#include "../lib/gui.h"
|
#include "../lib/gui.h"
|
||||||
#include "../lib/copyf.h"
|
#include "../lib/copyf.h"
|
||||||
|
|
||||||
#include "../lib/obj/libini.h"
|
#include "../lib/obj/libini.h"
|
||||||
|
#include "../lib/obj/libio.h"
|
||||||
|
#include "../lib/obj/libimg.h"
|
||||||
|
|
||||||
#include "../lib/patterns/restart_process.h"
|
#include "../lib/patterns/restart_process.h"
|
||||||
|
|
||||||
|
#ifndef AUTOBUILD
|
||||||
|
#include "lang.h--"
|
||||||
|
#endif
|
||||||
|
|
||||||
char logo[] = "
|
char logo[] = "
|
||||||
ÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛ
|
ÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛ
|
||||||
ÛÛÛÛ ÛÛ ÛÛÛ ÛÛÛ ÛÛÛ ÛÛ ÛÛÛ ÛÛ
|
ÛÛÛÛ ÛÛ ÛÛÛ ÛÛÛ ÛÛÛ ÛÛ ÛÛÛ ÛÛ
|
||||||
@ -16,14 +24,28 @@ char logo[] = "
|
|||||||
ÛÛÛÛ ÛÛÛ ÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ
|
ÛÛÛÛ ÛÛÛ ÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ
|
||||||
";
|
";
|
||||||
|
|
||||||
char intro[] = "<EFBFBD>®¯à®¡ã©â¥ ®¢®¥ ¢¨§ã «ì®¥ ®ä®à¬«¥¨¥ Š®«¨¡à¨, ª®â®à®¥ à ìè¥ ¡ë«® ¤®áâ㯮 ⮫쪮 ¢ KolibriNext.";
|
#ifdef LANG_RUS
|
||||||
|
#define T_INTRO "<22>®¯à®¡ã©â¥ ®¢®¥ ¢¨§ã «ì®¥ ®ä®à¬«¥¨¥ Š®«¨¡à¨, ª®â®à®¥ à ìè¥ ¡ë«® ¤®áâ㯮 ⮫쪮 ¢ 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
|
#define B_INSTALL 10
|
||||||
|
|
||||||
|
bool install_complete = false;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
word btn;
|
word btn;
|
||||||
load_dll(libini, #lib_init,1);
|
load_dll(libini, #lib_init,1);
|
||||||
|
load_dll(libio, #libio_init,1);
|
||||||
|
load_dll(libimg, #libimg_init,1);
|
||||||
loop() switch(WaitEventTimeout(300) & 0xFF)
|
loop() switch(WaitEventTimeout(300) & 0xFF)
|
||||||
{
|
{
|
||||||
case evButton:
|
case evButton:
|
||||||
@ -35,6 +57,10 @@ void main()
|
|||||||
case evKey:
|
case evKey:
|
||||||
GetKeys();
|
GetKeys();
|
||||||
if (key_scancode == SCAN_CODE_ESC) ExitProcess();
|
if (key_scancode == SCAN_CODE_ESC) ExitProcess();
|
||||||
|
if (key_scancode == SCAN_CODE_ENTER) {
|
||||||
|
if (install_complete) ExitProcess();
|
||||||
|
else EventInstall();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case evReDraw:
|
case evReDraw:
|
||||||
@ -54,21 +80,31 @@ void draw_window()
|
|||||||
system.color.get();
|
system.color.get();
|
||||||
DefineAndDrawWindow(screen.width-WINW/2,screen.height-WINH/2,
|
DefineAndDrawWindow(screen.width-WINW/2,screen.height-WINH/2,
|
||||||
WINW+9,WINH+skin_height,0x34,system.color.work,"KolibriN10",0);
|
WINW+9,WINH+skin_height,0x34,system.color.work,"KolibriN10",0);
|
||||||
|
|
||||||
DrawLogo();
|
DrawLogo();
|
||||||
|
if (install_complete) DrawInstallComplete(); else DrawIntro();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DrawIntro()
|
||||||
|
{
|
||||||
DrawTextViewArea(30, 140, WINW-60, WINH-80,
|
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,
|
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()
|
void DrawLogo()
|
||||||
{
|
{
|
||||||
#define LX -46*6+WINW/2
|
#define LX -46*6+WINW/2
|
||||||
#define LY 25
|
#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);
|
WriteTextLines(LX+3, LY, 0x80, 0x7ED1E3, #logo, 9);
|
||||||
|
|
||||||
pause(1);
|
pause(1);
|
||||||
@ -77,9 +113,6 @@ void DrawLogo()
|
|||||||
WriteTextLines(LX, LY, 0x80, 0xEC008C, #logo, 9);
|
WriteTextLines(LX, LY, 0x80, 0xEC008C, #logo, 9);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void EventInstall()
|
void EventInstall()
|
||||||
{
|
{
|
||||||
//#include "..\lib\added_sysdir.c";
|
//#include "..\lib\added_sysdir.c";
|
||||||
@ -92,6 +125,9 @@ void EventInstall()
|
|||||||
RestartProcessByName("/sys/@docky", SINGLE);
|
RestartProcessByName("/sys/@docky", SINGLE);
|
||||||
|
|
||||||
RunProgram("/sys/media/kiv", "\\S__/kolibrios/res/Wallpapers/Free yourself.jpg");
|
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); }
|
void Operation_Draw_Progress(dword filename) { debug("copying: "); debugln(filename); }
|
@ -41,10 +41,13 @@
|
|||||||
|
|
||||||
:void DrawRectangle(dword x,y,w,h,color1)
|
:void DrawRectangle(dword x,y,w,h,color1)
|
||||||
{
|
{
|
||||||
|
DrawRectangle3D(x,y,w,h,color1,color1);
|
||||||
|
/*
|
||||||
DrawBar(x,y,w,1,color1);
|
DrawBar(x,y,w,1,color1);
|
||||||
DrawBar(x,y+h,w,1,color1);
|
DrawBar(x,y+h,w,1,color1);
|
||||||
DrawBar(x,y,1,h,color1);
|
DrawBar(x,y,1,h,color1);
|
||||||
DrawBar(x+w,y,1,h+1,color1);
|
DrawBar(x+w,y,1,h+1,color1);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
:void DrawWideRectangle(dword x,y,w,h,boder,color1)
|
:void DrawWideRectangle(dword x,y,w,h,boder,color1)
|
||||||
|
@ -89,10 +89,9 @@ inline fastcall dword CheckEvent()
|
|||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
:dword WaitEventTimeout(dword time)
|
inline fastcall dword WaitEventTimeout(EBX)
|
||||||
{
|
{
|
||||||
EAX = 23;
|
EAX = 23;
|
||||||
EBX = time;
|
|
||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,9 @@
|
|||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
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() // Ïðîöåäóðà îòðèñîâêè îêíà
|
void draw_window() // Ïðîöåäóðà îòðèñîâêè îêíà
|
||||||
{
|
{
|
||||||
@ -25,28 +28,32 @@ void draw_window() //
|
|||||||
|
|
||||||
// WINDOW
|
// WINDOW
|
||||||
sys_window_redraw(1);
|
sys_window_redraw(1);
|
||||||
EBX = xpos << 16 + xsize;
|
EBX = xpos << 16 + xsize + 9;
|
||||||
ECX = ypos << 16 + ysize;
|
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);
|
sys_window_redraw(2);
|
||||||
|
|
||||||
// Leency ROLLED UP FIX
|
// Leency ROLLED UP FIX
|
||||||
sys_process_info(#procinfo, -1);
|
sys_process_info(#procinfo, -1);
|
||||||
IF (procinfo.ysize<70) return;
|
IF (procinfo.ysize<70) return;
|
||||||
|
|
||||||
// <NEW GAME> BUTTON (911)
|
// <NEW GAME> BUTTON (911)
|
||||||
EBX = xsize / 2 - 10;
|
EBX = xsize / 2 - 10;
|
||||||
EBX = EBX << 16 + 20;
|
EBX = EBX << 16 + BTNSIZE;
|
||||||
sys_draw_button(EBX, 25<<16+20, 911, clLightGray);
|
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)
|
// <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)
|
// <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_time(); // draw timer
|
||||||
draw_minesi(); // draw mines
|
draw_mines_left(); // draw mines
|
||||||
draw_squares(); // draw field
|
draw_squares(); // draw field
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -131,25 +138,17 @@ void draw_square(int x, y)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Òàéìåð
|
|
||||||
void draw_time()
|
void draw_time()
|
||||||
{
|
{
|
||||||
sys_draw_bar(XST<<16+25, 31<<16+14, 0xCCCCCC);
|
sys_draw_bar(xsize-XST-58<<16+29, HEADER_Y<<16+20, clWhiteGray);
|
||||||
sys_write_number(0x00030000, time, XST<<16+32, 0x10ff0000);
|
sys_write_number(0x00030000, time, xsize-XST-56<<16+HEADER_Y+3, 0x101166C3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Èíäèêàòîð êîëè÷åñòâà íåðàññòàâëåííûõ ìèí
|
void draw_mines_left()
|
||||||
void draw_minesi()
|
|
||||||
{
|
{
|
||||||
EBX = xsize - XST - 25;
|
sys_draw_bar(xsize-XST-29<<16+29, HEADER_Y<<16+20, clWhiteGray);
|
||||||
$PUSH EBX
|
sys_write_number(0x00030000, cmines, xsize-XST-27<<16+HEADER_Y+3, 0x10ff0000);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -162,3 +161,11 @@ void draw_squares()
|
|||||||
FOR (x=0; x < ncx; x++)
|
FOR (x=0; x < ncx; x++)
|
||||||
draw_square(x, y);
|
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);
|
||||||
|
}
|
@ -14,10 +14,16 @@
|
|||||||
#define RETURN_KEY 13
|
#define RETURN_KEY 13
|
||||||
#define BACKSPACE_KEY 8
|
#define BACKSPACE_KEY 8
|
||||||
|
|
||||||
|
//Button options
|
||||||
|
#define BT_DEL 0x80000000
|
||||||
|
#define BT_HIDE 0x40000000
|
||||||
|
#define BT_NOFRAME 0x20000000
|
||||||
|
|
||||||
// Color constant
|
// Color constant
|
||||||
#define clWhite 0x00ffffff
|
#define clWhite 0x00ffffff
|
||||||
#define clGray 0x00808080
|
#define clGray 0x00808080
|
||||||
#define clLightGray 0x00c0c0c0
|
#define clLightGray 0x00c0c0c0
|
||||||
|
#define clWhiteGray 0x00E2E2E2
|
||||||
#define clDarkGray 0x00707070
|
#define clDarkGray 0x00707070
|
||||||
#define clBlack 0x00000000
|
#define clBlack 0x00000000
|
||||||
#define clRed 0x00ff0000
|
#define clRed 0x00ff0000
|
||||||
|
@ -58,9 +58,10 @@ struct
|
|||||||
byte nmines;
|
byte nmines;
|
||||||
} stdmodes[3] = {9,9,10, 16,16,40, 30,16,99}; // {x,y,m}
|
} stdmodes[3] = {9,9,10, 16,16,40, 30,16,99}; // {x,y,m}
|
||||||
|
|
||||||
int XST, // offset of first pixel X - ñìåùåíèå ïîëÿ îò ãðàíèöû îêíà
|
?define XST 5 // offset of first pixel X - ñìåùåíèå ïîëÿ îò ãðàíèöû îêíà
|
||||||
YST,
|
?define YST 28
|
||||||
ncx, // number of squares in X - ðàçìåð ïîëÿ
|
|
||||||
|
int ncx, // number of squares in X - ðàçìåð ïîëÿ
|
||||||
ncy,
|
ncy,
|
||||||
cmines, // mines discovered - êîëè÷åñòâî íåîòêðûòûõ ìèí
|
cmines, // mines discovered - êîëè÷åñòâî íåîòêðûòûõ ìèí
|
||||||
initmines, // number of initial mines - èçíà÷àëüíîå êîëè÷åñòâî ìèí
|
initmines, // number of initial mines - èçíà÷àëüíîå êîëè÷åñòâî ìèí
|
||||||
@ -107,8 +108,6 @@ inline void fastcall mouse_disable()
|
|||||||
void init()
|
void init()
|
||||||
// Èíèöèàëèçàöèÿ
|
// Èíèöèàëèçàöèÿ
|
||||||
{
|
{
|
||||||
XST = 10; YST = 52; // FIELD POSITION IN WINDOW
|
|
||||||
|
|
||||||
ECX = mode;
|
ECX = mode;
|
||||||
IF (ECX != 0)
|
IF (ECX != 0)
|
||||||
{
|
{
|
||||||
@ -126,7 +125,7 @@ void init()
|
|||||||
}
|
}
|
||||||
|
|
||||||
xsize = ncx * XPX + XST + XST;
|
xsize = ncx * XPX + XST + XST;
|
||||||
ysize = ncy * YPX + YST + XST;
|
ysize = ncy * YPX + YST + XST + sys_get_skin_height() + 4;
|
||||||
} // init
|
} // init
|
||||||
|
|
||||||
|
|
||||||
@ -258,7 +257,7 @@ inline void do_mouse(void)
|
|||||||
|
|
||||||
set_mark(x, y, EBX);
|
set_mark(x, y, EBX);
|
||||||
|
|
||||||
draw_minesi();
|
draw_mines_left();
|
||||||
draw_square(x, y);
|
draw_square(x, y);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -287,7 +286,7 @@ inline void do_mouse(void)
|
|||||||
cmines--;
|
cmines--;
|
||||||
draw_square(x, y);
|
draw_square(x, y);
|
||||||
}
|
}
|
||||||
draw_minesi();
|
draw_mines_left();
|
||||||
}
|
}
|
||||||
} // do_mouse
|
} // do_mouse
|
||||||
|
|
||||||
@ -438,31 +437,32 @@ void main()
|
|||||||
{
|
{
|
||||||
switch (sys_wait_event_timeout(100)) // wait for 1 second
|
switch (sys_wait_event_timeout(100)) // wait for 1 second
|
||||||
{
|
{
|
||||||
case evReDraw:
|
CASE evReDraw:
|
||||||
draw_window();
|
draw_window();
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case evKey:
|
CASE evKey:
|
||||||
IF (sys_get_key() == 27)
|
IF (sys_get_key() == 27)
|
||||||
sys_exit_process();
|
sys_exit_process();
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case evButton:
|
CASE evButton:
|
||||||
EAX = sys_get_button_id();
|
EAX = sys_get_button_id();
|
||||||
IF (EAX == 911) // new game
|
IF (EAX == 911) // new game
|
||||||
{
|
{
|
||||||
new_game();
|
new_game();
|
||||||
draw_squares();
|
draw_squares();
|
||||||
draw_time();
|
draw_time();
|
||||||
draw_minesi();
|
draw_mines_left();
|
||||||
}
|
}
|
||||||
ELSE IF (EAX == 1001) // change mode
|
ELSE IF (EAX == 1001) // change mode
|
||||||
{
|
{
|
||||||
// mode++; mode%=3; mode++;
|
mode++;
|
||||||
EAX = mode; EAX++; EAX = EAX%3; EAX++; mode = AL;
|
if (mode==4) mode=1;
|
||||||
|
//EAX = mode; EAX++; EAX = EAX%3; EAX++; mode = AL;
|
||||||
|
|
||||||
new_game();
|
new_game();
|
||||||
window_move_size(OLD,OLD,xsize,ysize);
|
window_move_size(OLD,OLD,xsize+9,ysize);
|
||||||
CONTINUE;
|
CONTINUE;
|
||||||
}
|
}
|
||||||
// ELSE IF (EAX == 1002)
|
// ELSE IF (EAX == 1002)
|
||||||
|
Loading…
Reference in New Issue
Block a user