forked from KolibriOS/kolibrios
EasyShot going GOLD, added to distro
git-svn-id: svn://kolibrios.org@7245 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
8e9b52450a
commit
bacea4f813
@ -569,6 +569,7 @@ end -- tup.getconfig('NO_JWASM') ~= 'full'
|
|||||||
if tup.getconfig('NO_CMM') ~= 'full' then
|
if tup.getconfig('NO_CMM') ~= 'full' then
|
||||||
tup.append_table(img_files, {
|
tup.append_table(img_files, {
|
||||||
{"APP_PLUS", PROGS .. "/cmm/app_plus/app_plus.com"},
|
{"APP_PLUS", PROGS .. "/cmm/app_plus/app_plus.com"},
|
||||||
|
{"EASYSHOT", PROGS .. "/cmm/easyshot/easyshot.com"},
|
||||||
{"TXTREAD", PROGS .. "/cmm/txtread/txtread.com"},
|
{"TXTREAD", PROGS .. "/cmm/txtread/txtread.com"},
|
||||||
{"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
|
{"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
|
||||||
{"GAME_CENTER", PROGS .. "/cmm/software_widget/software_widget.com"},
|
{"GAME_CENTER", PROGS .. "/cmm/software_widget/software_widget.com"},
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
#include "../lib/obj/libimg.h"
|
#include "../lib/obj/libimg.h"
|
||||||
#include "../lib/obj/box_lib.h"
|
#include "../lib/obj/box_lib.h"
|
||||||
|
#include "../lib/obj/proc_lib.h"
|
||||||
|
|
||||||
#ifndef AUTOBUILD
|
#ifndef AUTOBUILD
|
||||||
#include "lang.h--"
|
#include "lang.h--"
|
||||||
@ -13,12 +14,24 @@
|
|||||||
|
|
||||||
/* === TRANSLATIONS === */
|
/* === TRANSLATIONS === */
|
||||||
|
|
||||||
#define T_WTITLE "EasyShot v0.76"
|
#define T_WTITLE "EasyShot v1.0"
|
||||||
|
|
||||||
#ifdef LANG_RUS
|
#ifdef LANG_RUS
|
||||||
?define T_TAKE_SCREENSHOT " ‘¤¥« âì áªà¨è®â"
|
?define T_TAKE_SCREENSHOT " ‘¤¥« âì áªà¨è®â"
|
||||||
|
?define T_SETTINGS "<EFBFBD> áâனª¨"
|
||||||
|
?define T_EDITBOX_FRAME " <20>ãâì á®åà ¥¨ï áªà¨è®â "
|
||||||
|
?define T_DELAY "‡ ¤¥à¦ª ¢ ᥪ㤠å"
|
||||||
|
?define T_MINIMIZE "‘¢¥àâãâì ®ª® ¯à¨ ᨬª¥"
|
||||||
|
?define T_NO_DIR "'<27> ¯ª ¥ áãé¥áâ¢ã¥â!' -E"
|
||||||
|
?define T_SET_PATH "‡ ¤ âì"
|
||||||
#else
|
#else
|
||||||
?define T_TAKE_SCREENSHOT " Take a screenshot"
|
?define T_TAKE_SCREENSHOT " Take a screenshot"
|
||||||
|
?define T_SETTINGS "Settings"
|
||||||
|
?define T_EDITBOX_FRAME " Save path "
|
||||||
|
?define T_DELAY "Delay in seconds"
|
||||||
|
?define T_MINIMIZE "Minimize window"
|
||||||
|
?define T_NO_DIR "'Directory does not exists!' -E"
|
||||||
|
?define T_SET_PATH "Set"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* === DATA === */
|
/* === DATA === */
|
||||||
@ -35,15 +48,38 @@ enum {
|
|||||||
|
|
||||||
#define PD 18 //padding
|
#define PD 18 //padding
|
||||||
|
|
||||||
|
char save_path[4096];
|
||||||
|
char save_path_stable[4096];
|
||||||
|
char open_dir[4096];
|
||||||
|
|
||||||
char save_path[4096] = "/tmp0/1";
|
|
||||||
dword mouse_dd1;
|
dword mouse_dd1;
|
||||||
edit_box edit_box_path = {270,10,70,0xffffff,0x94AECE,0xFFFfff,0xffffff,
|
edit_box edit_save = {250,25,100,0xffffff,0x94AECE,0xFFFfff,0xffffff,
|
||||||
0x10000000,sizeof(save_path),#save_path,#mouse_dd1, 0b};
|
0x10000000,sizeof(save_path),#save_path,#mouse_dd1, 0b};
|
||||||
|
|
||||||
more_less_box delay = { 1, 0, 64, "Delay in seconds" };
|
more_less_box delay = { 1, 0, 64, T_DELAY };
|
||||||
checkbox minimise = { "Minimize window", true };
|
checkbox minimize = { T_MINIMIZE, true };
|
||||||
|
|
||||||
|
proc_info Settings;
|
||||||
|
|
||||||
|
opendialog open_folder_dialog =
|
||||||
|
{
|
||||||
|
2, //0-file, 2-save, 3-select folder
|
||||||
|
#Settings,
|
||||||
|
#communication_area_name,
|
||||||
|
0,
|
||||||
|
0, //dword opendir_path,
|
||||||
|
#open_dir, //dword dir_default_path,
|
||||||
|
#open_dialog_path,
|
||||||
|
#DrawSettingsWindow,
|
||||||
|
0,
|
||||||
|
#open_dir, //dword openfile_path,
|
||||||
|
0, //dword filename_area,
|
||||||
|
0, //dword filter_area,
|
||||||
|
420,
|
||||||
|
NULL,
|
||||||
|
320,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
/* === CODE === */
|
/* === CODE === */
|
||||||
|
|
||||||
@ -54,11 +90,20 @@ void main()
|
|||||||
load_dll(libio, #libio_init, 1);
|
load_dll(libio, #libio_init, 1);
|
||||||
load_dll(libimg, #libimg_init, 1);
|
load_dll(libimg, #libimg_init, 1);
|
||||||
load_dll(boxlib, #box_lib_init,0);
|
load_dll(boxlib, #box_lib_init,0);
|
||||||
|
load_dll(Proc_lib, #OpenDialog_init,0);
|
||||||
|
OpenDialog_init stdcall (#open_folder_dialog);
|
||||||
|
|
||||||
|
system.color.get();
|
||||||
Libimg_LoadImage(#skin, "/sys/icons16.png");
|
Libimg_LoadImage(#skin, "/sys/icons16.png");
|
||||||
|
Libimg_ReplaceColor(skin.image, skin.w, skin.h, 0xffFFFfff, system.color.work_button);
|
||||||
|
Libimg_ReplaceColor(skin.image, skin.w, skin.h, 0xffCACBD6, MixColors(system.color.work_button, 0, 200));
|
||||||
screenshot_length = screen.width * screen.height * 3;
|
screenshot_length = screen.width * screen.height * 3;
|
||||||
screenshot = malloc(screenshot_length);
|
screenshot = malloc(screenshot_length);
|
||||||
|
|
||||||
|
strcpy(#save_path_stable, "/tmp0/1");
|
||||||
|
strcpy(#save_path, #save_path_stable);
|
||||||
|
edit_save.size = strlen(#save_path);
|
||||||
|
|
||||||
loop() switch(WaitEvent())
|
loop() switch(WaitEvent())
|
||||||
{
|
{
|
||||||
case evButton:
|
case evButton:
|
||||||
@ -91,11 +136,11 @@ void DrawMainContent()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EventTakeScreenshot() {
|
void EventTakeScreenshot() {
|
||||||
if (minimise.checked) MinimizeWindow();
|
if (minimize.checked) MinimizeWindow();
|
||||||
pause(delay.value*100);
|
pause(delay.value*100);
|
||||||
CopyScreen(screenshot, 0, 0, screen.width, screen.height);
|
CopyScreen(screenshot, 0, 0, screen.width, screen.height);
|
||||||
ActivateWindow(GetProcessSlot(Form.ID));
|
ActivateWindow(GetProcessSlot(Form.ID));
|
||||||
if (!minimise.checked) DrawMainContent();
|
if (!minimize.checked) DrawMainContent();
|
||||||
EventSaveImageFile();
|
EventSaveImageFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,7 +150,7 @@ void EventSaveImageFile()
|
|||||||
char save_file_name[4096];
|
char save_file_name[4096];
|
||||||
do {
|
do {
|
||||||
i++;
|
i++;
|
||||||
sprintf(#save_file_name, "%s/screen_%i.png", #save_path, i);
|
sprintf(#save_file_name, "%s/screen_%i.png", #save_path_stable, i);
|
||||||
} while (file_exists(#save_file_name));
|
} while (file_exists(#save_file_name));
|
||||||
save_image(screenshot, screen.width, screen.height, #save_file_name);
|
save_image(screenshot, screen.width, screen.height, #save_file_name);
|
||||||
}
|
}
|
||||||
@ -113,43 +158,70 @@ void EventSaveImageFile()
|
|||||||
|
|
||||||
void SettingsWindow()
|
void SettingsWindow()
|
||||||
{
|
{
|
||||||
int id;
|
#define BTN_OD 10
|
||||||
|
#define BTN_SET 11
|
||||||
|
int id, butw;
|
||||||
SetEventMask(EVM_REDRAW+EVM_KEY+EVM_BUTTON+EVM_MOUSE+EVM_MOUSE_FILTER);
|
SetEventMask(EVM_REDRAW+EVM_KEY+EVM_BUTTON+EVM_MOUSE+EVM_MOUSE_FILTER);
|
||||||
loop() switch(WaitEvent())
|
loop() switch(WaitEvent())
|
||||||
{
|
{
|
||||||
case evMouse:
|
case evMouse:
|
||||||
//edit_box_mouse stdcall (#address_box);
|
edit_box_mouse stdcall (#edit_save);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case evKey:
|
case evKey:
|
||||||
GetKeys();
|
GetKeys();
|
||||||
if (SCAN_CODE_ESC == key_scancode) ExitProcess();
|
if (SCAN_CODE_ESC == key_scancode) ExitProcess();
|
||||||
|
EAX= key_ascii << 8;
|
||||||
|
edit_box_key stdcall (#edit_save);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case evButton:
|
case evButton:
|
||||||
id = GetButtonID();
|
id = GetButtonID();
|
||||||
if (CLOSE_BTN == id) ExitProcess();
|
if (CLOSE_BTN == id) ExitProcess();
|
||||||
|
if (BTN_OD == id) {
|
||||||
|
OpenDialog_start stdcall (#open_folder_dialog);
|
||||||
|
if (open_folder_dialog.status) {
|
||||||
|
strcpy(#save_path, open_folder_dialog.opendir_path);
|
||||||
|
edit_save.size = edit_save.pos = edit_save.shift
|
||||||
|
= edit_save.shift_old = strlen(#save_path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (BTN_SET == id) {
|
||||||
|
if (save_path[0]) && (dir_exists(#save_path)) {
|
||||||
|
strcpy(#save_path_stable, #save_path);
|
||||||
|
strrtrim(#save_path_stable);
|
||||||
|
if (save_path_stable[strlen(#save_path_stable)-1]=='/')
|
||||||
|
save_path_stable[strlen(#save_path_stable)-1]=NULL; //no "/" at the end
|
||||||
|
}
|
||||||
|
else notify(T_NO_DIR);
|
||||||
|
|
||||||
|
}
|
||||||
delay.click(id);
|
delay.click(id);
|
||||||
minimise.click(id);
|
minimize.click(id);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case evReDraw:
|
case evReDraw:
|
||||||
DefineAndDrawWindow(Form.left+100, Form.top-40, 330, 170, 0x34, system.color.work, "Settings",0);
|
DrawSettingsWindow();
|
||||||
_DRAW_CONTENT:
|
|
||||||
minimise.draw(15, 10);
|
|
||||||
delay.draw(15, 40);
|
|
||||||
//DrawEditBox(#edit_box_path);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DrawSettingsWindow()
|
||||||
|
{
|
||||||
|
DefineAndDrawWindow(Form.left+100, Form.top-40, 400, 230, 0x34, system.color.work, T_SETTINGS, 0);
|
||||||
|
GetProcessInfo(#Settings, SelfInfo);
|
||||||
|
minimize.draw(15, 15);
|
||||||
|
delay.draw(15, 45);
|
||||||
|
DrawFrame(15, 85, 360, 95, T_EDITBOX_FRAME);
|
||||||
|
DrawEditBoxPos(32, 110, #edit_save);
|
||||||
|
DrawStandartCaptButton(edit_save.left + edit_save.width + 15, edit_save.top-3, BTN_OD, "...");
|
||||||
|
DrawStandartCaptButton(edit_save.left, edit_save.top+32, BTN_SET, T_SET_PATH);
|
||||||
|
}
|
||||||
|
|
||||||
int DrawIconButton(dword x, y, id, text, icon)
|
int DrawIconButton(dword x, y, id, text, icon)
|
||||||
{
|
{
|
||||||
int btwidth;
|
int btwidth;
|
||||||
system.color.work_button = 0xFFFfff;
|
|
||||||
system.color.work_button_text = 0;
|
|
||||||
btwidth = DrawStandartCaptButton(x, y, id, text);
|
btwidth = DrawStandartCaptButton(x, y, id, text);
|
||||||
img_draw stdcall(skin.image, x+12, y+5, 16, 16, 0, icon*16);
|
img_draw stdcall(skin.image, x+12, y+5, 16, 16, 0, icon*16);
|
||||||
system.color.get();
|
|
||||||
return btwidth;
|
return btwidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ void main()
|
|||||||
|
|
||||||
if (param)
|
if (param)
|
||||||
{
|
{
|
||||||
if (strlen(#param)>1) && (param[strlen(#param)-1]=='/') param[strlen(#param)-1]=NULL; //no "/" in the end
|
if (strlen(#param)>1) && (param[strlen(#param)-1]=='/') param[strlen(#param)-1]=NULL; //no "/" at the end
|
||||||
|
|
||||||
if (dir_exists(#param)==true)
|
if (dir_exists(#param)==true)
|
||||||
{
|
{
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
?define USE_TWO_PANELS "Two panels"
|
?define USE_TWO_PANELS "Two panels"
|
||||||
?define FONT_SIZE_LABEL "Font size"
|
?define FONT_SIZE_LABEL "Font size"
|
||||||
?define LIST_LINE_HEIGHT "List line height"
|
?define LIST_LINE_HEIGHT "List line height"
|
||||||
?define SAVE_PATH_AS_DEFAULT "‘urrent path"
|
?define SAVE_PATH_AS_DEFAULT "Current path"
|
||||||
?define SAVE_START_PATH_AS_DEFAULT "Typed path"
|
?define SAVE_START_PATH_AS_DEFAULT "Typed path"
|
||||||
?define EDIT_FILE_ASSOCIATIONS "Edit file associations"
|
?define EDIT_FILE_ASSOCIATIONS "Edit file associations"
|
||||||
?define START_PATH " Start path: "
|
?define START_PATH " Start path: "
|
||||||
@ -74,8 +74,7 @@ void settings_dialog()
|
|||||||
else if (id==6)
|
else if (id==6)
|
||||||
{
|
{
|
||||||
strcpy(#path_start,#path);
|
strcpy(#path_start,#path);
|
||||||
path_start_ed.size = strlen(#path_start);
|
path_start_ed.size = path_start_ed.pos = strlen(#path_start);
|
||||||
path_start_ed.pos = strlen(#path_start);
|
|
||||||
ini.SetString("DefaultPath", #path, strlen(#path));
|
ini.SetString("DefaultPath", #path, strlen(#path));
|
||||||
edit_box_draw stdcall (#path_start_ed);
|
edit_box_draw stdcall (#path_start_ed);
|
||||||
break;
|
break;
|
||||||
@ -141,9 +140,7 @@ void DrawSettingsCheckBoxes()
|
|||||||
|
|
||||||
DrawFrame(x, y.inc(37), 340, 95, START_PATH);
|
DrawFrame(x, y.inc(37), 340, 95, START_PATH);
|
||||||
// START_PATH {
|
// START_PATH {
|
||||||
path_start_ed.top = y.inc(21);
|
DrawEditBoxPos(frx, y.inc(21), #path_start_ed);
|
||||||
path_start_ed.left = frx;
|
|
||||||
DrawEditBox(#path_start_ed);
|
|
||||||
but_x = DrawStandartCaptButton(frx, y.inc(34), 6, SAVE_PATH_AS_DEFAULT);
|
but_x = DrawStandartCaptButton(frx, y.inc(34), 6, SAVE_PATH_AS_DEFAULT);
|
||||||
DrawStandartCaptButton(frx+but_x, y.inc(0), 7, SAVE_START_PATH_AS_DEFAULT);
|
DrawStandartCaptButton(frx+but_x, y.inc(0), 7, SAVE_START_PATH_AS_DEFAULT);
|
||||||
// } START_PATH
|
// } START_PATH
|
||||||
|
@ -116,19 +116,27 @@
|
|||||||
|
|
||||||
:void DrawEditBox(dword edit_box_pointer)
|
:void DrawEditBox(dword edit_box_pointer)
|
||||||
{
|
{
|
||||||
dword x,y,w,h,bg;
|
dword x,y,w,h,bg,t;
|
||||||
ESI = edit_box_pointer;
|
ESI = edit_box_pointer;
|
||||||
x = ESI.edit_box.left;
|
x = ESI.edit_box.left;
|
||||||
y = ESI.edit_box.top;
|
y = ESI.edit_box.top;
|
||||||
w = ESI.edit_box.width+1;
|
w = ESI.edit_box.width+1;
|
||||||
|
h = 22;
|
||||||
if (ESI.edit_box.flags & 100000000000b) bg = 0xCACACA; else bg = 0xFFFfff;
|
if (ESI.edit_box.flags & 100000000000b) bg = 0xCACACA; else bg = 0xFFFfff;
|
||||||
edit_box_draw stdcall (edit_box_pointer);
|
edit_box_draw stdcall (edit_box_pointer);
|
||||||
h = 22;
|
|
||||||
DrawRectangle3D(x-1, y-1, w+1, h+1, 0xE7E7E7, bg);
|
DrawRectangle3D(x-1, y-1, w+1, h+1, 0xE7E7E7, bg);
|
||||||
DrawRectangle(x-2, y-2, w+3, h+3, system.color.work_graph);
|
DrawRectangle(x-2, y-2, w+3, h+3, system.color.work_graph);
|
||||||
DrawRectangle3D(x-3, y-3, w+5, h+5, system.color.work_dark, system.color.work_light);
|
DrawRectangle3D(x-3, y-3, w+5, h+5, system.color.work_dark, system.color.work_light);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:void DrawEditBoxPos(dword x,y, edit_box_pointer)
|
||||||
|
{
|
||||||
|
ESI = edit_box_pointer;
|
||||||
|
ESI.edit_box.left = x;
|
||||||
|
ESI.edit_box.top = y;
|
||||||
|
DrawEditBox(dword edit_box_pointer);
|
||||||
|
}
|
||||||
|
|
||||||
:void DrawProgressBar(dword st_x, st_y, st_w, st_h, col_fon, col_border, col_fill, col_text, progress_percent)
|
:void DrawProgressBar(dword st_x, st_y, st_w, st_h, col_fon, col_border, col_fill, col_text, progress_percent)
|
||||||
{
|
{
|
||||||
int progress_w;
|
int progress_w;
|
||||||
|
@ -221,7 +221,7 @@ struct _Image
|
|||||||
notify(#save_success_message);
|
notify(#save_success_message);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
notify("'Error saving file! Probably not enought space or file system is not writable!' -E");
|
notify("'Error saving image file!\nProbably not enought space or file system is not writable!\nPlease, check saving path.' -E");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ char aOpenDialog_start[] = "OpenDialog_start";
|
|||||||
|
|
||||||
struct opendialog
|
struct opendialog
|
||||||
{
|
{
|
||||||
dword type;
|
dword type; //0-file, 2-save, 3-select folder
|
||||||
dword procinfo;
|
dword procinfo;
|
||||||
dword com_area_name;
|
dword com_area_name;
|
||||||
dword com_area;
|
dword com_area;
|
||||||
@ -30,15 +30,17 @@ struct opendialog
|
|||||||
dword start_path;
|
dword start_path;
|
||||||
dword draw_window;
|
dword draw_window;
|
||||||
dword status;
|
dword status;
|
||||||
dword openfile_pach;
|
dword openfile_path;
|
||||||
dword filename_area;
|
dword filename_area;
|
||||||
dword filter_area;
|
dword filter_area;
|
||||||
|
|
||||||
word x_size;
|
word w;
|
||||||
word x_start;
|
word x;
|
||||||
|
word h;
|
||||||
word y_size;
|
word y;
|
||||||
word y_start;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
char communication_area_name[] = "FFFFFFFF_open_dialog";
|
||||||
|
char open_dialog_path[] = "/rd/1/File managers/opendial";
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -4,15 +4,11 @@ struct od_filter
|
|||||||
char ext[16];
|
char ext[16];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
proc_info pr_inf;
|
proc_info pr_inf;
|
||||||
char communication_area_name[] = "FFFFFFFF_open_dialog";
|
|
||||||
char opendir_path[3072];
|
char opendir_path[3072];
|
||||||
char open_dialog_path[] = "/rd/1/File managers/opendial";
|
|
||||||
char openfile_path[4096];
|
char openfile_path[4096];
|
||||||
char filename_area[1024];
|
char filename_area[1024];
|
||||||
|
|
||||||
|
|
||||||
opendialog o_dialog = {
|
opendialog o_dialog = {
|
||||||
0,
|
0,
|
||||||
#pr_inf,
|
#pr_inf,
|
||||||
|
@ -181,14 +181,10 @@ void DrawLoginScreen()
|
|||||||
DrawBar(0,0, Form.cwidth, Form.cheight, system.color.work);
|
DrawBar(0,0, Form.cwidth, Form.cheight, system.color.work);
|
||||||
|
|
||||||
WriteText(panel_x,panel_y-3,0x80,system.color.work_text,"Your Email:");
|
WriteText(panel_x,panel_y-3,0x80,system.color.work_text,"Your Email:");
|
||||||
login_box.left = panel_x+3;
|
DrawEditBoxPos(panel_x+3, panel_y+12, #login_box);
|
||||||
login_box.top = panel_y+12;
|
|
||||||
DrawEditBox(#login_box);
|
|
||||||
|
|
||||||
WriteText(panel_x,panel_y+45,0x80,system.color.work_text,"Password:");
|
WriteText(panel_x,panel_y+45,0x80,system.color.work_text,"Password:");
|
||||||
pass_box.left = panel_x+3;
|
DrawEditBoxPos(panel_x+3, panel_y+60, #pass_box);
|
||||||
pass_box.top = panel_y+60;
|
|
||||||
DrawEditBox(#pass_box);
|
|
||||||
|
|
||||||
if (!aim)
|
if (!aim)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user