Eolite 4.03: progress dialog reworked

git-svn-id: svn://kolibrios.org@7491 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2018-10-20 11:00:31 +00:00
parent 252074d8fd
commit 62db6511ed
14 changed files with 340 additions and 96 deletions

View File

@ -123,6 +123,7 @@ void PasteThread()
if (copy_rezult = copyf(#copy_from,#copy_to))
{
Write_Error(copy_rezult);
if (copy_rezult==8) DialogExit(); //not enough space
}
else if (cut_active)
{

View File

@ -78,4 +78,12 @@ void DrawDot(dword x,y) {
PutPixel(x+3,y,col_pxl);
PutPixel(x,y+3,col_pxl);
PutPixel(x+3,y+3,col_pxl);
}
:void DrawCaptButtonSmallText(dword x,y,w,h,id,color_b, color_t,text)
{
dword tx = -strlen(text)*6+w/2+x;
dword ty = h/2-3+y;
DefineButton(x,y,w,h,id,color_b);
WriteText(tx,ty,0x80,color_t,text);
}

View File

@ -1,8 +1,14 @@
#define WIN_DIALOG_W 420
#define WIN_DIALOG_H 100
proc_info Dialog_Form;
progress_bar copy_bar = {0,16,60,50,23,0,0,1,0xFFFFFF,0x00FF00,0x555555};
#define WIN_DIALOG_W 380
#define WIN_DIALOG_H 85
#define PR_LEFT 14
#define PR_TOP 28
#define PR_W WIN_DIALOG_W-PR_LEFT-PR_LEFT
#define PR_H 14
proc_info Dialog_Form;
progress_bar copy_bar = {0,PR_LEFT,PR_TOP,PR_W,PR_H,0,0,1,0xFFFFFF,0x00FF00,0x555555};
//sensor copying = {PR_LEFT,PR_TOP,WIN_DIALOG_W-PR_LEFT-PR_LEFT,19};
int operation_flag;
enum {
@ -14,7 +20,20 @@ enum {
void DisplayOperationForm()
{
dword title, message;
dword title;
if (operation_flag==COPY_FLAG) {
title = T_COPY_WINDOW_TITLE;
copy_bar.progress_color = 0x00FF00;
}
else if (operation_flag==MOVE_FLAG) {
title = T_MOVE_WINDOW_TITLE;
copy_bar.progress_color = 0x00FF00;
}
else if (operation_flag==DELETE_FLAG) {
title = T_DELETE_WINDOW_TITLE;
copy_bar.progress_color = 0xF17A65;
}
copy_bar.frame_color = system.color.work_graph;
switch(CheckEvent())
{
case evButton:
@ -23,22 +42,13 @@ void DisplayOperationForm()
break;
case evReDraw:
if (operation_flag==COPY_FLAG) {
title = T_COPY_WINDOW_TITLE;
message = T_COPY_WINDOW_TEXT;
}
else if (operation_flag==MOVE_FLAG) {
title = T_MOVE_WINDOW_TITLE;
message = T_MOVE_WINDOW_TEXT;
}
else if (operation_flag==DELETE_FLAG) {
title = T_DELETE_WINDOW_TITLE;
message = T_DELETE_WINDOW_TEXT;
}
DefineAndDrawWindow(Form.left+Form.width-200,Form.top+90,WIN_DIALOG_W,skin_height+WIN_DIALOG_H,0x34,system.color.work,title,0);
DefineAndDrawWindow(Form.left+Form.width-200,Form.top+90,WIN_DIALOG_W+9,skin_height+WIN_DIALOG_H,0x34,system.color.work,title,0);
GetProcessInfo(#Dialog_Form, SelfInfo);
WriteText(45, 11, 0x90, system.color.work_text, message);
DrawStandartCaptButton(Dialog_Form.cwidth - 105, copy_bar.top-2 , T_CANCEL_PASTE, T_ABORT_WINDOW_BUTTON);
DrawCaptButtonSmallText(WIN_DIALOG_W-PR_LEFT-80, PR_TOP+PR_H+6, 80,22, 2,
system.color.work_button, system.color.work_button_text, T_ABORT_WINDOW_BUTTON);
DrawRectangle3D(PR_LEFT-1, PR_TOP-1, PR_W+1, PR_H+1, system.color.work_dark, system.color.work_light);
//copying.draw_wrapper();
}
}
@ -48,20 +58,22 @@ void DialogExit() {
ExitProcess();
}
void Operation_Draw_Progress(dword filename) {
if (Dialog_Form.cwidth==0)
{
copy_bar.value++;
return;
}
copy_bar.width = Dialog_Form.cwidth-32 - 100;
DisplayOperationForm();
DrawIconByExtension(filename, filename+strrchr(filename,'.'), 16, 19, system.color.work);
DrawBar(45, 32, Dialog_Form.cwidth-45, 15, system.color.work);
WriteText(45, 32, 0x90, system.color.work_text, filename);
DrawBar(PR_LEFT, PR_TOP-14, WIN_DIALOG_W-PR_LEFT, 10, system.color.work);
WriteText(PR_LEFT, PR_TOP-14, 0x80, system.color.work_text, filename);
progressbar_draw stdcall (#copy_bar);
progressbar_progress stdcall (#copy_bar);
//copy_bar.value++;
//pause(20);
//pause(1);
//copying.draw_progress(copy_bar.value*copying.w/copy_bar.max, copy_bar.value, copy_bar.max-copy_bar.value, "");
DrawBar(PR_LEFT, PR_TOP+PR_H+6, 100, 15, system.color.work);
WriteText(PR_LEFT, PR_TOP+PR_H+6, 0x80, system.color.work_text, sprintf(#param, "%i/%i", copy_bar.value, copy_bar.max));
}

View File

@ -206,9 +206,6 @@ void SaveIniSettings()
void Write_Error(int error_number)
{
char error_message[500];
dword ii;
if (files.cur_y>=0) Line_ReDraw(0xFF0000, files.cur_y);
pause(5);
sprintf(#error_message,"\"%s\n%s\" -%s","Eolite",get_error(error_number),"tE");
notify(#error_message);
}

View File

@ -1,5 +1,5 @@
#define TITLE "Eolite File Manager 4.02"
#define ABOUT_TITLE "EOLITE 4.02"
#define TITLE "Eolite File Manager 4.03"
#define ABOUT_TITLE "EOLITE 4.03"
#ifdef LANG_RUS
?define T_FILE "” ©«"
@ -18,11 +18,8 @@
?define NOT_CREATE_FILE "'<27>¥ 㤠«®áì ᮧ¤ âì ä ©«.' -E"
?define T_NOTIFY_APP_PARAM_WRONG "'<27> à ¬¥âà ¤«ï § ¯ã᪠ Eolite ­¥ ¢¥à¥­: ¯ ¯ª  ­¥ áãé¥áâ¢ã¥â!' -E"
?define T_COPY_WINDOW_TITLE "Š®¯¨àãî..."
?define T_COPY_WINDOW_TEXT "Š®¯¨àã¥âáï ä ©«:"
?define T_MOVE_WINDOW_TITLE "<EFBFBD>¥à¥¬¥é î..."
?define T_MOVE_WINDOW_TEXT "<EFBFBD>¥à¥¬¥é ¥âáï ä ©«:"
?define T_DELETE_WINDOW_TITLE "“¤ «ïî..."
?define T_DELETE_WINDOW_TEXT "“¤ «ï¥âáï ä ©«:"
?define T_ABORT_WINDOW_BUTTON "<EFBFBD>à¥à¢ âì"
?define INFO_AFTER_COPY "Š®¯¨à®¢ ­¨¥ § ¢¥à襭®"
?define T_CANCEL_PASTE "Š®¯¨à®¢ ­¨¥ ¯à¥ªà é¥­®. <20> ¯ª  ᪮¯¨à®¢ ­  ­¥ ¯®«­®áâìî."
@ -50,11 +47,8 @@
?define NOT_CREATE_FILE "'File can not be created.' -E"
?define T_NOTIFY_APP_PARAM_WRONG "'Eolite param is wrong: directory does not exist!' -E"
?define T_COPY_WINDOW_TITLE "Copying..."
?define T_COPY_WINDOW_TEXT "Copying file:"
?define T_MOVE_WINDOW_TITLE "Moving..."
?define T_MOVE_WINDOW_TEXT "Moving file:"
?define T_DELETE_WINDOW_TITLE "Deleting..."
?define T_DELETE_WINDOW_TEXT "Deleting file:"
?define T_ABORT_WINDOW_BUTTON "Abort"
?define INFO_AFTER_COPY "Copy finished"
?define T_CANCEL_PASTE "Copy process terminated. Folder copied incompletely."

View File

@ -104,7 +104,7 @@
}
#ifdef LANG_RUS
unsigned char *ERROR_TEXT[]={
:unsigned char *ERROR_TEXT[]={
"Š®¤ #0: ãᯥ譮",
"Žè¨¡ª  #1: ­¥ ®¯à¥¤¥«¥­  ¡ §  ¨/¨«¨ à §¤¥« ¦ñá⪮£® ¤¨áª ",
"Žè¨¡ª  #2: äã­ªæ¨ï ­¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï í⮩ ä ©«®¢®© á¨á⥬ë",
@ -123,7 +123,7 @@
"Žè¨¡ª  #31: ä ©« ­¥ ï¥âáï ¨á¯®«­ï¥¬ë¬",
"Žè¨¡ª  #32: ᫨誮¬ ¬­®£® ¯à®æ¥áᮢ", 0};
#else
unsigned char *ERROR_TEXT[]={
:unsigned char *ERROR_TEXT[]={
"Code #0 - No error, compleated successfully",
"Error #1 - Base or partition of a hard disk is not defined",
"Error #2 - Function isn't supported for this file system",

View File

@ -18,6 +18,7 @@
#endif
#include "../lib/gui/tabs.h"
#include "../lib/gui/sensor.h"
#include "../lib/gui/more_less_box.h"
#ifndef INCLUDE_CHECKBOX

View File

@ -0,0 +1,45 @@
#define MIN_PB_BLOCK_W 19
#define LOAD_CPU 0x2460C8
#define PROGRESS_ACTIVE 0x489FE4
#define PROGRESS_BG 0xFFFfff
#define PROGRESS_BG_TEXT 0x696969
:struct sensor {
int x,y,w,h;
void set_size();
void draw_wrapper();
void draw_progress();
};
:void sensor::set_size(dword _x, _y, _w, _h)
{
x=_x+2;
y=_y;
w=_w;
h=_h;
draw_wrapper();
}
:void sensor::draw_wrapper()
{
DrawRectangle(x-1, y-1, w+1, h+1, system.color.work_graph);
DrawRectangle3D(x-2, y-2, w+3, h+3, system.color.work_dark, system.color.work_light);
}
:void sensor::draw_progress(dword progress_w, active_value, bg_value, mesure)
{
if (progress_w < MIN_PB_BLOCK_W) progress_w = MIN_PB_BLOCK_W;
if (progress_w > w-MIN_PB_BLOCK_W) progress_w = w-MIN_PB_BLOCK_W;
DrawBar(x, y, w-progress_w, 1, MixColors(PROGRESS_ACTIVE, PROGRESS_BG, 200));
DrawBar(x, y+1, w-progress_w, h-2, PROGRESS_ACTIVE);
DrawBar(x, y+h-1, w-progress_w, 1, MixColors(PROGRESS_ACTIVE, system.color.work_graph, 200));
sprintf(#param, "%i%s", active_value, mesure);
WriteText(w-progress_w- calc(strlen(#param)*8) /2 + x, h/2-7+y, 0x90, PROGRESS_BG, #param);
DrawBar(x+w-progress_w, y, progress_w, h, PROGRESS_BG);
sprintf(#param, "%i%s", bg_value, mesure);
WriteText(-progress_w - calc(strlen(#param)*8)/2 + w+x, h/2-7+y, 0x90, PROGRESS_BG_TEXT, #param);
}

View File

@ -14,59 +14,6 @@
#include "../lib/obj/libimg.h"
#include "../lib/obj/libini.h"
//===================================================//
// //
// SENSOR //
// //
//===================================================//
#define MIN_PB_BLOCK_W 19
#define LOAD_CPU 0x2460C8
#define PROGRESS_ACTIVE 0x489FE4
#define PROGRESS_BG 0xFFFfff
#define PROGRESS_BG_TEXT 0x696969
struct sensor {
int x,y,w,h;
void set_size();
void draw_wrapper();
void draw_progress();
};
void sensor::set_size(dword _x, _y, _w, _h)
{
x=_x+2;
y=_y;
w=_w;
h=_h;
draw_wrapper();
}
void sensor::draw_wrapper()
{
DrawRectangle(x-1, y-1, w+1, h+1, system.color.work_graph);
DrawRectangle3D(x-2, y-2, w+3, h+3, system.color.work_dark, system.color.work_light);
}
void sensor::draw_progress(dword progress_w, active_value, bg_value, mesure)
{
if (progress_w < MIN_PB_BLOCK_W) progress_w = MIN_PB_BLOCK_W;
if (progress_w > w-MIN_PB_BLOCK_W) progress_w = w-MIN_PB_BLOCK_W;
DrawBar(x, y, w-progress_w, 1, MixColors(PROGRESS_ACTIVE, PROGRESS_BG, 200));
DrawBar(x, y+1, w-progress_w, h-2, PROGRESS_ACTIVE);
DrawBar(x, y+h-1, w-progress_w, 1, MixColors(PROGRESS_ACTIVE, system.color.work_graph, 200));
sprintf(#param, "%i%s", active_value, mesure);
WriteText(w-progress_w- calc(strlen(#param)*8) /2 + x, h/2-7+y, 0x90, PROGRESS_BG, #param);
DrawBar(x+w-progress_w, y, progress_w, h, PROGRESS_BG);
sprintf(#param, "%i%s", bg_value, mesure);
WriteText(-progress_w - calc(strlen(#param)*8)/2 + w+x, h/2-7+y, 0x90, PROGRESS_BG_TEXT, #param);
}
//===================================================//
// //
// DATA //

View File

@ -0,0 +1,15 @@
PokeMini - Pokémon-Mini Emulator
Copyright (C) 2014 JustBurn
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -0,0 +1,19 @@
========================
PokeMini 0.60 for KolibriOS
========================
Port for KolibriOS by gameblabla
PokeMini is a Pokémon mini emulator by JustBurn.
It has been ported to the PCs, Sega Dreamcast, PSP, NDS
with unofficial ports for the GCW0, TI Nspire and now the KolibriOS.
This requires at least a Pentium Pro to even work.
Why ? Because the toolchain was compiled for Pentium Pro+ support only... (SERGE!)
Sound is supported too, your soundcard needs to support Mono 44050hz 8bits.
I think that shouldn't be a problem as even a SB16 supports that...
To open a ROM, you need to use the "Open with..." thingy.
Choose a Pokémon Mini ROM for that and choose to open it with PokéMini.
Enjoy !

View File

@ -0,0 +1,204 @@
___ _ _
| _ \ | \_/ |
| _/ | _ |
| | | | | |
|_| OKE |_| |_| INI
-------------------
Version 0.60
Homebrew-emulator for Pokémon-Mini!
Latest version can be found in:
http://pokemini.sourceforge.net/
For hardware documentation, visit:
http://wiki.sublab.net/index.php/Pokemon_Mini
> Keys & Information:
To include real BIOS, place "bios.min" on the emulator's directory.
When no "bios.min" is present, emulator will use Pokémon-Mini FreeBIOS.
Pokémon-Mini PC Keys
----------------------------
D-PAD Left Arrow Left
D-PAD Right Arrow Right
D-PAD Up Arrow Up
D-PAD Down Arrow Down
Key A Keyboard X
Key B Keyboard Z
Key C Keyboard S or C
Power Button Keyboard E
Shock Detector Keyboard A
----------------------------
UI Menu Keyboard Esc
F9 will capture the screen and save as "snap_(sequence number).bmp"
F10 can toggle between Fullscreen and Windowed.
F11 will disable/enable speed throttle
TAB can be hold to temporary disable speed throttle
> Supported multicarts:
Type 0 - Disabled (Commercial, Prototype)
Read only
Type 1 - Normal 512KB Flash (AM29LV040B)
Read, Erase, Write, Banking and Manufacturer ID
Type 2 - Lupin's 512KB Flash (AM29LV040B)
Read, Erase, Write, Banking and Manufacturer ID
> Command-Line:
Usage:
PokeMini [Options] rom.min
Options:
-freebios Force FreeBIOS
-bios otherbios.min Load BIOS
-noeeprom Discard EEPROM data
-eeprom pokemini.eep Load/Save EEPROM file
-eepromshare Share EEPROM to all ROMs (default)
-noeepromshare Each ROM will use individual EEPROM
-nostate Discard State data (default)
-state pokemini.sta Load/Save state file
-nortc No RTC
-statertc RTC time difference in savestates
-hostrtc RTC match the Host clock (def)
-nosound Disable sound
-sound Same as -soundpiezo (def)
-sounddirect Use timer 3 directly for sound (default)
-soundemulate Use sound circuit emulation
-sounddirectpwm Same as direct, can play PWM samples
-nopiezo Disable piezo speaker filter
-piezo Enable piezo speaker filter (def)
-scanline 50% Scanline LCD filter
-dotmatrix LCD dot-matrix filter (def)
-nofilter No LCD filter
-2shades LCD Mode: No mixing
-3shades LCD Mode: Grey emulation
-analog LCD Mode: Pretend real LCD (default)
-fullbattery Emulate with a full battery (default)
-lowbattery Emulate with a weak battery
-palette n Select palette for colors (0 to 15)
-rumblelvl 3 Rumble level (0 to 3)
-nojoystick Disable joystick (def)
-joystick Enable joystick
-joyid 0 Set joystick ID
-custom1light 0xFFFFFF Palette Custom 1 Light
-custom1dark 0x000000 Palette Custom 1 Dark
-custom2light 0xFFFFFF Palette Custom 2 Light
-custom2dark 0x000000 Palette Custom 2 Dark
-synccycles 8 Number of cycles per hardware sync.
-multicart 0 Multicart type (0 to 2)
-lcdcontrast 64 LCD contrast boost in percent
-lcdbright 0 LCD brightness offset in percent
Only on SDL platform:
-dumpsound sound.wav Dump sound into a WAV file
-windowed Display in window (default)
-fullscreen Display in fullscreen
-zoom n Zoom display: 1 to 4 (def 4)
-bpp n Bits-Per-Pixel: 16 or 32 (def 16)
Only on Debugger platform:
-autorun 0 Autorun, 0=Off, 1=Full, 2=Dbg+Snd, 3=Dbg
-windowed Display in window (default)
-fullscreen Display in fullscreen
-zoom n Zoom display: 1 to 4 (def 4)
-bpp n Bits-Per-Pixel: 16 or 32 (def 16)
> System requirements:
No sound:
Pentium III 733 Mhz or better recommended.
With sound:
Pentium IV 1.7 Ghz or better recommended.
Note: Performance tests were based on 0.4.0 version
> History:
-: 0.60 Changes :-
Changed version format to only 2 fields to avoid confusion
Fixed RTC month being reported wrong from host
Adjusted graphics, now it display darker shades to match more closely the real system
Added 2 new options: LCD contrast and LCD bright
Changed the way analog LCD mode works, now it's less blurry and can do up to 5 shades without artifacts
SDL port has been upgraded to SDL 2, this brings Haptic support and other improvements
New Keyboard/Joystick option to allow checking inputs
Applying joystick settings now can (re)enable the device
Share EEPROM is now disabled by default
Emulator can be compiled for 64-bit CPU without issues now
Limited sync-cycles to 64 on 'accurancy' platforms
Win32 Only:
Corrected Direct3D issue in some GPUs
Sound write position is now handled correctly
NDS Only: Added 3-in-1 rumble support
PSP Only:
Analog stick now works
Added FPS display under Platform... (default is off)
Reached 100% emulation by skipping 1 frame, aparently hardware is limited to 60fps max
Dreamcast Only:
Improved sound latency (thanks BlueCrab).
Added FPS display under Platform... (default is off)
Debugger Only:
Minor fixes
Trace history is now 10000 instructions instead of 256
Added copy & paste buttons to timing counters
Older History can be found at:
http://sourceforge.net/p/pokemini/wiki/History/
> License GPLv3 (emulator and tools):
PokeMini - Pokémon-Mini Emulator
Copyright (C) 2015 JustBurn
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
> Greetings & Links:
Thank's to p0p, Dave|X, Onori
goldmomo, asterick, DarkFader, Agilo
MrBlinky, Wa, Lupin and everyone at
#pmdev on IRC EFNET!
Questions and Bugs reports are welcome!
PokeMini webpage:
https://sourceforge.net/projects/pokemini/
Pokemon-Mini Hardware:
http://wiki.sublab.net/index.php/Pokemon_Mini
Pokémon-mini.net:
http://www.pokemon-mini.net/
MEGA - Museum of Electronic Games & Art:
http://m-e-g-a.org/
Minimon (other Pokemon-Mini emulator):
http://www.sublab.net/projects/minimon/
DarkFader Pokemon-Mini webpage:
http://darkfader.net/pm/
Agilo's Weblog:
http://www.agilo.nl/

View File

@ -844,7 +844,7 @@ end if
is_rolled_up dd 0
lives dd 0
lives dd 5
mode dd 0
l_end dd 0 ; if 1 the level is over
; PAD x:

View File

@ -93,9 +93,6 @@ void DrawWindow()
kos_DefineAndDrawWindow(10, 40, WINDOW_WIDTH + 8, WINDOW_HEIGHT + kos_GetSkinHeight() + 12, 0x34, BG_COLOR, 0, 0, (Dword)header);
kos_WindowRedrawStatus(2);
kos_WriteTextToWindow(8, 10, 0, TEXT_COLOR, "Population: %", 16);
kos_WriteTextToWindow(8, 22, 0, TEXT_COLOR, "Score:", 6);
OnMouseMove();
// Draw buildings
@ -223,6 +220,10 @@ void OnMouseMove()
ms.lbclick = 0;
}
kos_DrawBar(8, 10, 6*11, 22, 0);
kos_WriteTextToWindow(8, 10, 0, TEXT_COLOR, "Population: %", 16);
kos_WriteTextToWindow(8, 22, 0, TEXT_COLOR, "Score:", 6);
kos_DisplayNumberToWindowBg(health, 3, 79, 10, TEXT_COLOR, BG_COLOR, nbDecimal, false);
kos_DisplayNumberToWindowBg(score, 4, 49, 22, TEXT_COLOR, BG_COLOR, nbDecimal, false);