forked from KolibriOS/kolibrios
cmm programs: a lot of small optimizations
git-svn-id: svn://kolibrios.org@3412 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
46c609efe5
commit
abd4ed875a
@ -200,6 +200,7 @@ void Translate()
|
|||||||
|
|
||||||
void OpenDictionary(dword fileid)
|
void OpenDictionary(dword fileid)
|
||||||
{
|
{
|
||||||
|
KillProcess(speaker_id);
|
||||||
if (!dir_buf) ShowDictList();
|
if (!dir_buf) ShowDictList();
|
||||||
if (!dir_buf) strcpy(#cur_dict, "none");
|
if (!dir_buf) strcpy(#cur_dict, "none");
|
||||||
else strcpy(#cur_dict, fileid*304+dir_buf+72);
|
else strcpy(#cur_dict, fileid*304+dir_buf+72);
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include "..\lib\lib.obj\box_lib.h"
|
#include "..\lib\lib.obj\box_lib.h"
|
||||||
#include "..\lib\file_system.h"
|
#include "..\lib\file_system.h"
|
||||||
#include "..\lib\figures.h"
|
#include "..\lib\figures.h"
|
||||||
|
#include "..\lib\encoding.h"
|
||||||
//images
|
//images
|
||||||
#include "imgs\toolbar.txt"
|
#include "imgs\toolbar.txt"
|
||||||
#include "imgs\left_p.txt"
|
#include "imgs\left_p.txt"
|
||||||
@ -25,7 +26,8 @@ int BUTTON_HEIGHT=18;
|
|||||||
#define ONLY_OPEN 2
|
#define ONLY_OPEN 2
|
||||||
|
|
||||||
//ïåðåìåííûå
|
//ïåðåìåííûå
|
||||||
#define title "Eolite File Manager v1.64"
|
#define TITLE "Eolite File Manager v1.64"
|
||||||
|
#define ABOUT_TITLE "Eolite v1.64"
|
||||||
dword col_work = 0xE4DFE1;
|
dword col_work = 0xE4DFE1;
|
||||||
dword col_border = 0x819FC5;
|
dword col_border = 0x819FC5;
|
||||||
dword col_padding = 0xC8C9C9;
|
dword col_padding = 0xC8C9C9;
|
||||||
@ -421,7 +423,7 @@ void main()
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case evReDraw:
|
case evReDraw:
|
||||||
DefineAndDrawWindow(40,20,550,500,0x73,col_work,title);
|
DefineAndDrawWindow(40,20,550,500,0x73,col_work,TITLE);
|
||||||
GetProcessInfo(#Form, SelfInfo);
|
GetProcessInfo(#Form, SelfInfo);
|
||||||
if (Form.status_window>2) break;
|
if (Form.status_window>2) break;
|
||||||
min_win_h = disc_num*16+195;
|
min_win_h = disc_num*16+195;
|
||||||
@ -557,7 +559,7 @@ void Line_ReDraw(dword color, filenum){
|
|||||||
{
|
{
|
||||||
strcpy(#temp, off);
|
strcpy(#temp, off);
|
||||||
Put_icon(#temp+_strrchr(#temp,'.'), BUTTON_HEIGHT/2-7+y, color);
|
Put_icon(#temp+_strrchr(#temp,'.'), BUTTON_HEIGHT/2-7+y, color);
|
||||||
WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),BUTTON_HEIGHT-6/2+y,0x80,0,ConvertSize(ESDWORD[off-8])); //size
|
WriteText(7-strlen(ConvertMemSize(ESDWORD[off-8]))*6+onLeft(75,0),BUTTON_HEIGHT-6/2+y,0x80,0,ConvertMemSize(ESDWORD[off-8])); //size
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (!strcmp("..",off))
|
if (!strcmp("..",off))
|
||||||
|
@ -25,7 +25,7 @@ void about_dialog()
|
|||||||
DefineAndDrawWindow(600,150,181,232+GetSkinHeight(),0x34,col_work,"About Eolite");
|
DefineAndDrawWindow(600,150,181,232+GetSkinHeight(),0x34,col_work,"About Eolite");
|
||||||
DrawBar(0,0,172,50,0x8494C4);
|
DrawBar(0,0,172,50,0x8494C4);
|
||||||
PutPaletteImage(#logo,85,85,43,7,8,#logo_pal);
|
PutPaletteImage(#logo,85,85,43,7,8,#logo_pal);
|
||||||
WriteTextB(46,100,0x90,0xBF40BF,"Eolite v1.64");
|
WriteTextB(46,100,0x90,0xBF40BF,ABOUT_TITLE);
|
||||||
WriteText(55,120,0x80,0,"Developers:");
|
WriteText(55,120,0x80,0,"Developers:");
|
||||||
WriteText(39,130,0x80,0,"Leency & Veliant");
|
WriteText(39,130,0x80,0,"Leency & Veliant");
|
||||||
WriteText(45,140,0x80,0,"KolibriOS Team");
|
WriteText(45,140,0x80,0,"KolibriOS Team");
|
||||||
|
@ -13,20 +13,6 @@ void ShowMessage(dword message)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
dword ConvertSize(dword bytes)
|
|
||||||
{
|
|
||||||
unsigned char size_prefix[8], size_nm[4];
|
|
||||||
if (bytes>=1073741824) strcpy(#size_nm, " Gb");
|
|
||||||
else if (bytes>=1048576) strcpy(#size_nm, " Mb");
|
|
||||||
else if (bytes>=1024) strcpy(#size_nm, " Kb");
|
|
||||||
else strcpy(#size_nm, " b ");
|
|
||||||
while (bytes>1023) bytes/=1024;
|
|
||||||
strcpy(#size_prefix, itoa(bytes));
|
|
||||||
strcat(#size_prefix, #size_nm);
|
|
||||||
return #size_prefix;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
dword col_palette[14] = {0xD2D3D3,0xD4D4D4,0xD6D5D6,0xD8D7D8,0xDAD8D9,0xDCDADB,
|
dword col_palette[14] = {0xD2D3D3,0xD4D4D4,0xD6D5D6,0xD8D7D8,0xDAD8D9,0xDCDADB,
|
||||||
0xDFDCDD,0xE1DDDE,0xE2DEE0,0xE4DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1};
|
0xDFDCDD,0xE1DDDE,0xE2DEE0,0xE4DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1};
|
||||||
|
|
||||||
|
@ -40,9 +40,9 @@ int DefineWindow(dword wtitle, wbutton)
|
|||||||
if (Form.status_window>2) return 0; //rolled_up
|
if (Form.status_window>2) return 0; //rolled_up
|
||||||
|
|
||||||
DrawBar(0, 0, Form.cwidth, BLACK_H, 0);
|
DrawBar(0, 0, Form.cwidth, BLACK_H, 0);
|
||||||
DrawBar(0, BLACK_H, Form.cwidth, Form.cheight-BLACK_H, 0xFFFfff);
|
|
||||||
_PutImage(BLACK_H-LOGOW/2, BLACK_H-LOGOH/2, LOGOW,LOGOH, #logo);
|
_PutImage(BLACK_H-LOGOW/2, BLACK_H-LOGOH/2, LOGOW,LOGOH, #logo);
|
||||||
WriteTextB(BLACK_H-LOGOW + LOGOW, BLACK_H-6/2, 0x90, 0xFFFfff, wtitle);
|
WriteTextB(BLACK_H-LOGOW + LOGOW, BLACK_H-6/2, 0x90, 0xFFFfff, wtitle);
|
||||||
|
DrawBar(0, BLACK_H, Form.cwidth, Form.cheight-BLACK_H, 0xFFFfff);
|
||||||
DrawCaptButton(Form.cwidth-107, Form.cheight-40, 90, 24, 10, sc.work_button, sc.work_button_text,wbutton);
|
DrawCaptButton(Form.cwidth-107, Form.cheight-40, 90, 24, 10, sc.work_button, sc.work_button_text,wbutton);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -155,7 +155,7 @@ inline fastcall void utf8rutodos( ESI)
|
|||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
dword Hex2Symb(char* htmlcolor)
|
:dword Hex2Symb(char* htmlcolor)
|
||||||
{
|
{
|
||||||
dword j=0, symbol=0;
|
dword j=0, symbol=0;
|
||||||
char ch=0x00;
|
char ch=0x00;
|
||||||
@ -170,4 +170,17 @@ dword Hex2Symb(char* htmlcolor)
|
|||||||
}
|
}
|
||||||
wintodos(#symbol);
|
wintodos(#symbol);
|
||||||
AL=symbol;
|
AL=symbol;
|
||||||
|
}
|
||||||
|
|
||||||
|
:dword ConvertMemSize(unsigned int bytes)
|
||||||
|
{
|
||||||
|
unsigned char size_prefix[8], size_nm[4];
|
||||||
|
if (bytes>=1073741824) strcpy(#size_nm, " Gb");
|
||||||
|
else if (bytes>=1048576) strcpy(#size_nm, " Mb");
|
||||||
|
else if (bytes>=1024) strcpy(#size_nm, " Kb");
|
||||||
|
else strcpy(#size_nm, " b ");
|
||||||
|
while (bytes>1023) bytes/=1024;
|
||||||
|
strcpy(#size_prefix, itoa(bytes));
|
||||||
|
strcat(#size_prefix, #size_nm);
|
||||||
|
return #size_prefix;
|
||||||
}
|
}
|
@ -203,9 +203,11 @@ f70 getinfo_file_70;
|
|||||||
if (! ReadFile(0, CopyFile_atr.sizelo, cBufer, copy_from))
|
if (! ReadFile(0, CopyFile_atr.sizelo, cBufer, copy_from))
|
||||||
{
|
{
|
||||||
rezult = WriteFile(CopyFile_atr.sizelo, cBufer, copy_in);
|
rezult = WriteFile(CopyFile_atr.sizelo, cBufer, copy_in);
|
||||||
|
debugi(rezult);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(cBufer);
|
free(cBufer);
|
||||||
|
debugi(rezult);
|
||||||
return rezult;
|
return rezult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,9 +127,9 @@ void OpenMailDat()
|
|||||||
ReadFile(0, 512, #read_data, "/sys/network/mail.dat");
|
ReadFile(0, 512, #read_data, "/sys/network/mail.dat");
|
||||||
if (!read_data)
|
if (!read_data)
|
||||||
{
|
{
|
||||||
//strcpy(#email_text, "eiroglif@yandex.ru"); //temporarily, for testing
|
strcpy(#email_text, "eiroglif@yandex.ru"); //temporarily, for testing
|
||||||
strcpy(#email_text, "example@mail.com");
|
//strcpy(#email_text, "example@mail.com");
|
||||||
//strcpy(#pass_text, "rostov");
|
strcpy(#pass_text, "rostov");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -3,12 +3,24 @@
|
|||||||
#define LIST_INFO_H 59
|
#define LIST_INFO_H 59
|
||||||
int status_bar_h = 15;
|
int status_bar_h = 15;
|
||||||
|
|
||||||
|
llist mail_list;
|
||||||
|
llist letter_view;
|
||||||
scroll_bar scroll1 = { 17,200,210, LIST_INFO_H-3,18,0,115,15,0,0xCCCccc,0xD2CED0,0x555555,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1};
|
scroll_bar scroll1 = { 17,200,210, LIST_INFO_H-3,18,0,115,15,0,0xCCCccc,0xD2CED0,0x555555,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1};
|
||||||
scroll_bar scroll2 = { 17,200,210, LIST_INFO_H,18,0,115,15,0,0xCCCccc,0xD2CED0,0x555555,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1};
|
scroll_bar scroll2 = { 17,200,210, LIST_INFO_H,18,0,115,15,0,0xCCCccc,0xD2CED0,0x555555,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1};
|
||||||
|
|
||||||
|
struct letter_attr
|
||||||
|
{
|
||||||
|
char adress[64];
|
||||||
|
char header[256];
|
||||||
|
byte m_type;
|
||||||
|
int size;
|
||||||
|
void CreateMailsArray();
|
||||||
|
void SetMailsSizes();
|
||||||
|
int GetLetterSize(int N);
|
||||||
|
};
|
||||||
|
letter_attr atr;
|
||||||
|
dword mails_db;
|
||||||
|
|
||||||
llist mail_list;
|
|
||||||
llist letter_view;
|
|
||||||
|
|
||||||
char from[256];
|
char from[256];
|
||||||
char to[256];
|
char to[256];
|
||||||
@ -252,8 +264,8 @@ void MailBoxLoop()
|
|||||||
debug("Got mail list");
|
debug("Got mail list");
|
||||||
DrawMailBox();
|
DrawMailBox();
|
||||||
|
|
||||||
CreateMailsArray();
|
atr.CreateMailsArray();
|
||||||
SetMailsSizes();
|
atr.SetMailsSizes();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -268,7 +280,7 @@ void MailBoxLoop()
|
|||||||
if (EAX == 0xffffffff) { notify("Error while trying to get letter from server"); aim=NULL; break;}
|
if (EAX == 0xffffffff) { notify("Error while trying to get letter from server"); aim=NULL; break;}
|
||||||
|
|
||||||
mailbuffer = free(mailbuffer);
|
mailbuffer = free(mailbuffer);
|
||||||
letter_size = GetLetterSize(mail_list.current+1) + 1024;
|
letter_size = atr.GetLetterSize(mail_list.current+1) + 1024;
|
||||||
mailbuffer = malloc(letter_size);
|
mailbuffer = malloc(letter_size);
|
||||||
mailpointer = mailbuffer;
|
mailpointer = mailbuffer;
|
||||||
aim = GET_ANSWER_RETR;
|
aim = GET_ANSWER_RETR;
|
||||||
@ -330,11 +342,11 @@ void DrawToolbar()
|
|||||||
mail_list.SetSizes(0, toolbar_w, Form.cwidth - scroll1.size_x - 1, mail_list.h, 60,18);
|
mail_list.SetSizes(0, toolbar_w, Form.cwidth - scroll1.size_x - 1, mail_list.h, 60,18);
|
||||||
|
|
||||||
DrawBar(0,0, Form.cwidth,toolbar_w-3, sc.work);
|
DrawBar(0,0, Form.cwidth,toolbar_w-3, sc.work);
|
||||||
DrawCaptButton(10 , BUT_Y, BUT_W, BUT_H, GET_MAIL, sc.work_button, sc.work_button_text,"Get mail");
|
DrawCaptButton(10 , BUT_Y, BUT_W, BUT_H, GET_MAIL, sc.work_button, sc.work_button_text,"Get mail");
|
||||||
DrawCaptButton(BUT_W+BUT_SPACE + 10, BUT_Y, BUT_W, BUT_H, SEND_MAIL, sc.work_button, sc.work_button_text,"Send Email");
|
DrawCaptButton(BUT_W+BUT_SPACE + 10, BUT_Y, BUT_W, BUT_H, SEND_MAIL, sc.work_button, sc.work_button_text,"Send Email");
|
||||||
DrawCaptButton(BUT_W+BUT_SPACE*2 + 10, BUT_Y, BUT_W, BUT_H, DELETE_LETTER, sc.work_button, sc.work_button_text,"Delete");
|
DrawCaptButton(BUT_W+BUT_SPACE*2 + 10, BUT_Y, BUT_W, BUT_H, DELETE_LETTER, sc.work_button, sc.work_button_text,"Delete");
|
||||||
DrawCaptButton(BUT_W+BUT_SPACE*3 + 10, BUT_Y, BUT_W, BUT_H, SAVE_LETTER, sc.work_button, sc.work_button_text,"Save");
|
DrawCaptButton(BUT_W+BUT_SPACE*3 + 10, BUT_Y, BUT_W, BUT_H, SAVE_LETTER, sc.work_button, sc.work_button_text,"Save");
|
||||||
DrawCaptButton(Form.cwidth-BUT_W - 10, BUT_Y, BUT_W, BUT_H, EXIT_MAIL, sc.work_button, sc.work_button_text,"< Exit");
|
DrawCaptButton(Form.cwidth-BUT_W - 10, BUT_Y, BUT_W, BUT_H, EXIT_MAIL, sc.work_button, sc.work_button_text,"< Exit");
|
||||||
|
|
||||||
DrawBar(0, mail_list.y-3, mail_list.w,1, sc.work_graph);
|
DrawBar(0, mail_list.y-3, mail_list.w,1, sc.work_graph);
|
||||||
DrawBar(0, mail_list.y-2, mail_list.w,1, 0xdfdfdf);
|
DrawBar(0, mail_list.y-2, mail_list.w,1, 0xdfdfdf);
|
||||||
@ -365,8 +377,7 @@ void DrawMailList()
|
|||||||
DefineButton(0, on_y, mail_list.w-1, mail_list.line_h, 30+i+BT_HIDE+BT_NOFRAME);
|
DefineButton(0, on_y, mail_list.w-1, mail_list.line_h, 30+i+BT_HIDE+BT_NOFRAME);
|
||||||
DrawBar(0, on_y + mail_list.line_h-1, mail_list.w, 1, 0xCCCccc);
|
DrawBar(0, on_y + mail_list.line_h-1, mail_list.w, 1, 0xCCCccc);
|
||||||
WriteText(10, on_y+5, 0x80, 0, itoa(i+mail_list.first+1));
|
WriteText(10, on_y+5, 0x80, 0, itoa(i+mail_list.first+1));
|
||||||
//WriteText(mail_list.w - 40, on_y+5, 0x80, 0, itoa(GetLetterSize(i+mail_list.first+1)));
|
WriteText(mail_list.w - 40, on_y+5, 0x80, 0, ConvertMemSize(atr.GetLetterSize(i+mail_list.first+1)));
|
||||||
WriteText(mail_list.w - 40, on_y+5, 0x80, 0, ConvertSize(GetLetterSize(i+mail_list.first+1)));
|
|
||||||
}
|
}
|
||||||
DrawBar(0, i*mail_list.line_h + mail_list.y, mail_list.w, -i*mail_list.line_h+mail_list.h, 0xFFFfff);
|
DrawBar(0, i*mail_list.line_h + mail_list.y, mail_list.w, -i*mail_list.line_h+mail_list.h, 0xFFFfff);
|
||||||
DrawScroller1();
|
DrawScroller1();
|
||||||
@ -382,20 +393,6 @@ void PutMailDirectionImage(int x,y, to_str, from_str)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
dword ConvertSize(unsigned int bytes)
|
|
||||||
{
|
|
||||||
unsigned char size_prefix[8], size_nm[4];
|
|
||||||
if (bytes>=1073741824) strcpy(#size_nm, " Gb");
|
|
||||||
else if (bytes>=1048576) strcpy(#size_nm, " Mb");
|
|
||||||
else if (bytes>=1024) strcpy(#size_nm, " Kb");
|
|
||||||
else strcpy(#size_nm, " b ");
|
|
||||||
while (bytes>1023) bytes/=1024;
|
|
||||||
strcpy(#size_prefix, itoa(bytes));
|
|
||||||
strcat(#size_prefix, #size_nm);
|
|
||||||
return #size_prefix;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void DrawLetterInfo()
|
void DrawLetterInfo()
|
||||||
{
|
{
|
||||||
int lt_y = mail_list.y+mail_list.h;
|
int lt_y = mail_list.y+mail_list.h;
|
||||||
@ -520,15 +517,6 @@ int GetMailCount(){
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void listputc(char agot_char){
|
void listputc(char agot_char){
|
||||||
*listpointer=agot_char;
|
*listpointer=agot_char;
|
||||||
listpointer++;
|
listpointer++;
|
||||||
@ -547,39 +535,24 @@ int GetLetterSize_(int number){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
struct line_element
|
|
||||||
{
|
|
||||||
byte m_type;
|
|
||||||
char adress[64];
|
|
||||||
char header[256];
|
|
||||||
int size;
|
|
||||||
};
|
|
||||||
dword mails_db;
|
|
||||||
|
|
||||||
void CreateMailsArray()
|
|
||||||
|
void letter_attr::CreateMailsArray()
|
||||||
{
|
{
|
||||||
mails_db = free(mails_db);
|
mails_db = free(mails_db);
|
||||||
mails_db = malloc( mail_list.count * sizeof(line_element) );
|
mails_db = malloc( mail_list.count * sizeof(atr) );
|
||||||
}
|
}
|
||||||
|
|
||||||
dword GetCurrentElement(int el_N)
|
void letter_attr::SetMailsSizes()
|
||||||
{
|
{
|
||||||
return sizeof(line_element)*el_N + #mails_db;
|
int i, off;
|
||||||
}
|
|
||||||
|
|
||||||
void SetMailsSizes()
|
|
||||||
{
|
|
||||||
int i, temp;
|
|
||||||
for (i=0; i < mail_list.count; i++)
|
for (i=0; i < mail_list.count; i++)
|
||||||
{
|
{
|
||||||
temp = GetLetterSize_(i);
|
ESDWORD[sizeof(atr)*i+#mails_db+#atr.size-#atr] = GetLetterSize_(i);
|
||||||
EBX = GetCurrentElement(i); //в регистр EBX суём адрес блока памяти со смещением к элементу N с котрым мы хотим работать
|
|
||||||
EBX.line_element.size = temp;//работаем с m_type N-ного элемента структуры отраженной на блок памяти
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetLetterSize(int el_N)
|
int letter_attr::GetLetterSize(int N)
|
||||||
{
|
{
|
||||||
EBX = GetCurrentElement(el_N);
|
return ESDWORD[sizeof(atr)*N+#mails_db+#atr.size-#atr];
|
||||||
return EBX.line_element.size;
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user