forked from KolibriOS/kolibrios
Eolite 2.56: fixed bug when different dialog windows used the same stack, use custom check boxes
git-svn-id: svn://kolibrios.org@5463 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
37ea0584a6
commit
97789e09b9
@ -83,8 +83,8 @@
|
|||||||
|
|
||||||
enum {ONLY_SHOW, WITH_REDRAW, ONLY_OPEN}; //OpenDir
|
enum {ONLY_SHOW, WITH_REDRAW, ONLY_OPEN}; //OpenDir
|
||||||
|
|
||||||
#define TITLE "Eolite File Manager v2.55"
|
#define TITLE "Eolite File Manager v2.56"
|
||||||
#define ABOUT_TITLE "Eolite v2.55"
|
#define ABOUT_TITLE "Eolite v2.56"
|
||||||
dword col_padding, col_selec, col_lpanel;
|
dword col_padding, col_selec, col_lpanel;
|
||||||
|
|
||||||
int toolbar_buttons_x[7]={9,46,85,134,167,203};
|
int toolbar_buttons_x[7]={9,46,85,134,167,203};
|
||||||
@ -1006,13 +1006,13 @@ void FnProcess(char N)
|
|||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
SwitchToAnotherThread();
|
SwitchToAnotherThread();
|
||||||
CreateThread(#properties_dialog,#about_stak+4092);
|
CreateThread(#properties_dialog, #properties_stak+4092);
|
||||||
break;
|
break;
|
||||||
case 10: //F10
|
case 10: //F10
|
||||||
if (!active_settings)
|
if (!active_settings)
|
||||||
{
|
{
|
||||||
SwitchToAnotherThread();
|
SwitchToAnotherThread();
|
||||||
settings_window=CreateThread(#settings_dialog,#about_stak+4092);
|
settings_window=CreateThread(#settings_dialog, #settings_stak+4092);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1033,3 +1033,5 @@ char menu_stak[4096];
|
|||||||
char copy_stak[4096];
|
char copy_stak[4096];
|
||||||
char open_with_stak[4096];
|
char open_with_stak[4096];
|
||||||
char about_stak[4096];
|
char about_stak[4096];
|
||||||
|
char properties_stak[4096];
|
||||||
|
char settings_stak[4096];
|
@ -51,17 +51,18 @@
|
|||||||
dword mouse_ddd2;
|
dword mouse_ddd2;
|
||||||
char path_to_file[4096]="\0";
|
char path_to_file[4096]="\0";
|
||||||
char file_name2[4096]="\0";
|
char file_name2[4096]="\0";
|
||||||
edit_box file_name_ed = {150,50,25,0xffffff,0x94AECE,0x000000,0xffffff,2,4098,#file_name2,#mouse_ddd2, 1000000000000000b,2,2};
|
edit_box file_name_ed = {195,50,25,0xffffff,0x94AECE,0x000000,0xffffff,2,4098,#file_name2,#mouse_ddd2, 1000000000000000b,2,2};
|
||||||
edit_box path_to_file_ed = {150,100,46,0xffffff,0x94AECE,0x000000,0xffffff,2,4098,#path_to_file,#mouse_ddd2, 1000000000000000b,2,2};
|
edit_box path_to_file_ed = {145,100,46,0xffffff,0x94AECE,0x000000,0xffffff,2,4098,#path_to_file,#mouse_ddd2, 1000000000000000b,2,2};
|
||||||
|
frame flags_frame = { 0, 280, 10, 83, 106, 0x000111, 0xFFFfff, 1, FLAGS, 0, 0, 6, 0x000111, 0xCCCccc };
|
||||||
|
|
||||||
frame flags_frame = { 0, 180, 10, 80, 106, 0x000111, 0xFFFfff, 1, FLAGS, 0, 0, 6, 0x000111, 0xCCCccc };
|
byte HIDDEN_chb,
|
||||||
checkbox2 HIDDEN_chb = {22*65536+15, 120*65536+15, 5, 0xffffff, 0x9098B0, 0x80000000, PR_T_HIDDEN, CH_FLAG_MIDDLE, 0};
|
SYSTEM_chb,
|
||||||
checkbox2 SYSTEM_chb = {22*65536+15, 140*65536+15, 5, 0xffffff, 0x9098B0, 0x80000000, PR_T_SYSTEM, CH_FLAG_MIDDLE, 0};
|
ONLY_READ_chb;
|
||||||
checkbox2 ONLY_READ_chb = {22*65536+15, 160*65536+15, 5, 0xffffff, 0x9098B0, 0x80000000, PR_T_ONLY_READ, CH_FLAG_MIDDLE, 0};
|
|
||||||
|
|
||||||
int file_count, dir_count, size_dir;
|
int file_count, dir_count, size_dir;
|
||||||
char folder_info[200];
|
char folder_info[200];
|
||||||
BDVK file_info2;
|
BDVK file_info_general;
|
||||||
|
BDVK file_info_dirsize;
|
||||||
|
|
||||||
void GetSizeDir(dword way)
|
void GetSizeDir(dword way)
|
||||||
{
|
{
|
||||||
@ -83,8 +84,8 @@ void GetSizeDir(dword way)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GetFileInfo(#cur_file, #file_info2);
|
GetFileInfo(#cur_file, #file_info_dirsize);
|
||||||
size_dir = size_dir + file_info2.sizelo;
|
size_dir = size_dir + file_info_dirsize.sizelo;
|
||||||
file_count++;
|
file_count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -96,14 +97,13 @@ void properties_dialog()
|
|||||||
byte id;
|
byte id;
|
||||||
unsigned int key;
|
unsigned int key;
|
||||||
dword file_name_off;
|
dword file_name_off;
|
||||||
BDVK file_info;
|
|
||||||
proc_info settings_form;
|
proc_info settings_form;
|
||||||
|
|
||||||
strcpy(#folder_info, "\0");
|
strcpy(#folder_info, "\0");
|
||||||
file_count = 0;
|
file_count = 0;
|
||||||
dir_count = 0;
|
dir_count = 0;
|
||||||
size_dir = 0;
|
size_dir = 0;
|
||||||
GetFileInfo(#file_path, #file_info);
|
GetFileInfo(#file_path, #file_info_general);
|
||||||
strcpy(#file_name2, #file_name);
|
strcpy(#file_name2, #file_name);
|
||||||
file_name_ed.size = strlen(#file_name2);
|
file_name_ed.size = strlen(#file_name2);
|
||||||
strcpy(#path_to_file, #path);
|
strcpy(#path_to_file, #path);
|
||||||
@ -133,11 +133,11 @@ void properties_dialog()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case evReDraw:
|
case evReDraw:
|
||||||
DefineAndDrawWindow(Form.left + 150,150,300,238+GetSkinHeight(),0x34,sc.work,WINDOW_TITLE_PROPERTIES);
|
DefineAndDrawWindow(Form.left + 150,150,270,240+GetSkinHeight(),0x34,sc.work,WINDOW_TITLE_PROPERTIES);
|
||||||
GetProcessInfo(#settings_form, SelfInfo);
|
GetProcessInfo(#settings_form, SelfInfo);
|
||||||
DrawFlatButton(208, settings_form.cheight - 34, 70, 22, 10, 0xE4DFE1, BTN_CLOSE);
|
DrawFlatButton(settings_form.cwidth - 70 - 13, settings_form.cheight - 34, 70, 22, 10, 0xE4DFE1, BTN_CLOSE);
|
||||||
DrawBar(10, 10, 32, 32, 0xFFFfff);
|
DrawBar(10, 10, 32, 32, 0xFFFfff);
|
||||||
if (! TestBit(file_info.attr, 4) )
|
if (! TestBit(file_info_general.attr, 4) )
|
||||||
Put_icon(#file_name2+strrchr(#file_name2,'.'), 18, 20, 0xFFFfff, 0);
|
Put_icon(#file_name2+strrchr(#file_name2,'.'), 18, 20, 0xFFFfff, 0);
|
||||||
else
|
else
|
||||||
Put_icon("<DIR>", 18, 20, 0xFFFfff, 0);
|
Put_icon("<DIR>", 18, 20, 0xFFFfff, 0);
|
||||||
@ -157,7 +157,7 @@ void properties_dialog()
|
|||||||
WriteText(10, 65, 0x80, 0x000000, PR_T_SIZE);
|
WriteText(10, 65, 0x80, 0x000000, PR_T_SIZE);
|
||||||
if (!itdir)
|
if (!itdir)
|
||||||
{
|
{
|
||||||
WriteText(100, 65, 0x80, 0x000000, ConvertSize(file_info.sizelo));
|
WriteText(100, 65, 0x80, 0x000000, ConvertSize(file_info_general.sizelo));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -170,16 +170,22 @@ void properties_dialog()
|
|||||||
WriteText(100, 65, 0x80, 0x000000, ConvertSize(size_dir));
|
WriteText(100, 65, 0x80, 0x000000, ConvertSize(size_dir));
|
||||||
}
|
}
|
||||||
|
|
||||||
flags_frame.size_x = - flags_frame.start_x * 2 + settings_form.cwidth - 60;
|
flags_frame.size_x = - flags_frame.start_x * 2 + settings_form.cwidth - 2;
|
||||||
flags_frame.font_color = sc.work_text;
|
flags_frame.font_color = sc.work_text;
|
||||||
flags_frame.font_backgr_color = sc.work;
|
flags_frame.font_backgr_color = sc.work;
|
||||||
|
flags_frame.ext_col = sc.work_graph;
|
||||||
frame_draw stdcall (#flags_frame);
|
frame_draw stdcall (#flags_frame);
|
||||||
|
|
||||||
if (TestBit(file_info.attr, 0)) ONLY_READ_chb.flags = 110b;
|
DrawPropertiesCheckBoxes();
|
||||||
if (TestBit(file_info.attr, 1)) HIDDEN_chb.flags = 110b;
|
|
||||||
if (TestBit(file_info.attr, 2)) SYSTEM_chb.flags = 110b;
|
|
||||||
check_box_draw stdcall (#HIDDEN_chb);
|
|
||||||
check_box_draw stdcall (#SYSTEM_chb);
|
|
||||||
check_box_draw stdcall (#ONLY_READ_chb);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DrawPropertiesCheckBoxes()
|
||||||
|
{
|
||||||
|
ONLY_READ_chb = TestBit(file_info_general.attr, 0);
|
||||||
|
HIDDEN_chb = TestBit(file_info_general.attr, 1);
|
||||||
|
SYSTEM_chb = TestBit(file_info_general.attr, 2);
|
||||||
|
CheckBox2(22, 120, 20, PR_T_ONLY_READ, ONLY_READ_chb);
|
||||||
|
CheckBox2(22, 142, 21, PR_T_HIDDEN, HIDDEN_chb);
|
||||||
|
CheckBox2(22, 164, 22, PR_T_SYSTEM, SYSTEM_chb);
|
||||||
|
}
|
@ -24,10 +24,7 @@
|
|||||||
|
|
||||||
int mouse_ddd;
|
int mouse_ddd;
|
||||||
char lineh_s[30]="18\0";
|
char lineh_s[30]="18\0";
|
||||||
edit_box LineHeight_ed = {52,10,90,0xffffff,0x94AECE,0xffc90E,0xffffff,2,4,#lineh_s,#mouse_ddd, 1000000000000000b,2,2};
|
edit_box LineHeight_ed = {52,10,97,0xffffff,0x94AECE,0xffc90E,0xffffff,2,4,#lineh_s,#mouse_ddd, 1000000000000000b,2,2};
|
||||||
checkbox2 ShowDeviceName_chb = {10*65536+15, 10*65536+15, 5, 0xffffff, 0x9098B0, 0x80000000, SET_1, CH_FLAG_MIDDLE, 0};
|
|
||||||
checkbox2 RealFileNamesCase_chb = {10*65536+15, 30*65536+15, 5, 0xffffff, 0x9098B0, 0x80000000, SET_2, CH_FLAG_MIDDLE, 0};
|
|
||||||
checkbox2 InfoAfterCopy_chb = {10*65536+15, 50*65536+15, 5, 0xffffff, 0x9098B0, 0x80000000, SET_4, CH_FLAG_MIDDLE, 0};
|
|
||||||
|
|
||||||
void settings_dialog()
|
void settings_dialog()
|
||||||
{
|
{
|
||||||
@ -38,10 +35,6 @@ void settings_dialog()
|
|||||||
if (active_settings) ExitProcess();
|
if (active_settings) ExitProcess();
|
||||||
active_settings=1;
|
active_settings=1;
|
||||||
|
|
||||||
ShowDeviceName_chb.size_of_str = strlen(SET_1) * 6;
|
|
||||||
RealFileNamesCase_chb.size_of_str = strlen(SET_2) * 6;
|
|
||||||
InfoAfterCopy_chb.size_of_str = strlen(SET_4) * 6;
|
|
||||||
|
|
||||||
SetEventMask(0x27);
|
SetEventMask(0x27);
|
||||||
loop() switch(WaitEvent())
|
loop() switch(WaitEvent())
|
||||||
{
|
{
|
||||||
@ -62,7 +55,12 @@ void settings_dialog()
|
|||||||
if (id==5)
|
if (id==5)
|
||||||
{
|
{
|
||||||
RunProgram("tinypad", "/sys/settings/assoc.ini");
|
RunProgram("tinypad", "/sys/settings/assoc.ini");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
if (id==20) show_dev_name ^= 1;
|
||||||
|
if (id==21) real_files_names_case ^= 1;
|
||||||
|
if (id==22) info_after_copy ^= 1;
|
||||||
|
DrawSettingsCheckBoxes();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case evKey:
|
case evKey:
|
||||||
@ -78,35 +76,35 @@ void settings_dialog()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case evMouse:
|
case evMouse:
|
||||||
check_box_mouse stdcall (#ShowDeviceName_chb);
|
|
||||||
check_box_mouse stdcall (#RealFileNamesCase_chb);
|
|
||||||
check_box_mouse stdcall (#InfoAfterCopy_chb);
|
|
||||||
edit_box_mouse stdcall (#LineHeight_ed);
|
edit_box_mouse stdcall (#LineHeight_ed);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case evReDraw:
|
case evReDraw:
|
||||||
DefineAndDrawWindow(Form.left + 100, 150, 300, 200+GetSkinHeight(),0x34,sc.work,TITLE_SETT);
|
DefineAndDrawWindow(Form.left + 100, 150, 300, 210+GetSkinHeight(),0x34,sc.work,TITLE_SETT);
|
||||||
GetProcessInfo(#settings_form, SelfInfo);
|
GetProcessInfo(#settings_form, SelfInfo);
|
||||||
|
|
||||||
ShowDeviceName_chb.flags |= 1 << show_dev_name;
|
DrawSettingsCheckBoxes();
|
||||||
RealFileNamesCase_chb.flags |= 1 << real_files_names_case;
|
|
||||||
InfoAfterCopy_chb.flags |= 1 << info_after_copy;
|
|
||||||
|
|
||||||
|
WriteText(10, 84, 0x80, 0x000000, SET_3);
|
||||||
key = itoa(files.line_h);
|
key = itoa(files.line_h);
|
||||||
strcpy(#lineh_s, key);
|
strcpy(#lineh_s, key);
|
||||||
|
|
||||||
check_box_draw stdcall (#ShowDeviceName_chb);
|
|
||||||
check_box_draw stdcall (#RealFileNamesCase_chb);
|
|
||||||
check_box_draw stdcall (#InfoAfterCopy_chb);
|
|
||||||
edit_box_draw stdcall (#LineHeight_ed);
|
edit_box_draw stdcall (#LineHeight_ed);
|
||||||
DrawRectangle(LineHeight_ed.left-1, LineHeight_ed.top-1, LineHeight_ed.width+2, 16, sc.work_graph);
|
DrawRectangle(LineHeight_ed.left-1, LineHeight_ed.top-1, LineHeight_ed.width+2, 16, sc.work_graph);
|
||||||
WriteText(10, 77, 0x80, 0x000000, SET_3);
|
|
||||||
DrawFlatButton(9, 120, strlen(EDIT_FILE_ASSOCIATIONS)+4*6, 22, 5, 0xE4DFE1, EDIT_FILE_ASSOCIATIONS);
|
DrawFlatButton(9, 127, strlen(EDIT_FILE_ASSOCIATIONS)+4*6, 22, 5, 0xE4DFE1, EDIT_FILE_ASSOCIATIONS);
|
||||||
|
|
||||||
DrawFlatButton(128, settings_form.cheight - 34, 70, 22, 10, 0xE4DFE1, APPLY_T);
|
DrawFlatButton(128, settings_form.cheight - 34, 70, 22, 10, 0xE4DFE1, APPLY_T);
|
||||||
DrawFlatButton(208, settings_form.cheight - 34, 70, 22, 11, 0xE4DFE1, CANCEL_T);
|
DrawFlatButton(208, settings_form.cheight - 34, 70, 22, 11, 0xE4DFE1, CANCEL_T);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DrawSettingsCheckBoxes()
|
||||||
|
{
|
||||||
|
CheckBox2(10, 11, 20, SET_1, show_dev_name);
|
||||||
|
CheckBox2(10, 33, 21, SET_2, real_files_names_case);
|
||||||
|
CheckBox2(10, 55, 22, SET_3, info_after_copy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void LoadIniSettings()
|
void LoadIniSettings()
|
||||||
{
|
{
|
||||||
@ -125,9 +123,6 @@ void LoadIniSettings()
|
|||||||
|
|
||||||
void SaveIniSettings()
|
void SaveIniSettings()
|
||||||
{
|
{
|
||||||
show_dev_name = TestBit(ShowDeviceName_chb.flags, 1);
|
|
||||||
real_files_names_case = TestBit(RealFileNamesCase_chb.flags, 1);
|
|
||||||
info_after_copy = TestBit(InfoAfterCopy_chb.flags, 1);
|
|
||||||
ini_set_int stdcall (eolite_ini_path, "Config", "ShowDeviceName", show_dev_name);
|
ini_set_int stdcall (eolite_ini_path, "Config", "ShowDeviceName", show_dev_name);
|
||||||
ini_set_int stdcall (eolite_ini_path, "Config", "RealFileNamesCase", real_files_names_case);
|
ini_set_int stdcall (eolite_ini_path, "Config", "RealFileNamesCase", real_files_names_case);
|
||||||
ini_set_int stdcall (eolite_ini_path, "Config", "InfoAfterCopy", info_after_copy);
|
ini_set_int stdcall (eolite_ini_path, "Config", "InfoAfterCopy", info_after_copy);
|
||||||
@ -160,3 +155,8 @@ void SetAppColors()
|
|||||||
//col_selec = 0x94AECE;
|
//col_selec = 0x94AECE;
|
||||||
col_lpanel = 0x00699C;
|
col_lpanel = 0x00699C;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CheckBox2(dword x, y, id, text, byte value) {
|
||||||
|
CheckBox(x, y, 14, 14, id, text, sc.work_graph, sc.work_text, value);
|
||||||
|
}
|
@ -44,7 +44,7 @@
|
|||||||
:void CheckBox(dword x,y,w,h, bt_id, text, graph_color, text_color, is_checked)
|
:void CheckBox(dword x,y,w,h, bt_id, text, graph_color, text_color, is_checked)
|
||||||
{
|
{
|
||||||
DefineButton(x-1, y-1, strlen(text)*6 + w + 17, h+2, bt_id+BT_HIDE+BT_NOFRAME, graph_color);
|
DefineButton(x-1, y-1, strlen(text)*6 + w + 17, h+2, bt_id+BT_HIDE+BT_NOFRAME, graph_color);
|
||||||
WriteText(x+w+10, h / 2 + y -3, 0x80, text_color, text);
|
WriteText(x+w+8, h / 2 + y -3, 0x80, text_color, text);
|
||||||
DrawRectangle(x, y, w, h, graph_color);
|
DrawRectangle(x, y, w, h, graph_color);
|
||||||
if (is_checked == 1)
|
if (is_checked == 1)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user