forked from KolibriOS/kolibrios
c-- libs partly updated
git-svn-id: svn://kolibrios.org@3106 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
f12d8abc6a
commit
14d166eb1e
@ -170,13 +170,4 @@ dword Hex2Symb(char* htmlcolor)
|
|||||||
}
|
}
|
||||||
wintodos(#symbol);
|
wintodos(#symbol);
|
||||||
AL=symbol;
|
AL=symbol;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
int hex2char(dword c)
|
|
||||||
{
|
|
||||||
if (c <=9)
|
|
||||||
return (c+48);
|
|
||||||
|
|
||||||
return (c - 10 + 'a');
|
|
||||||
}*/
|
|
@ -17,7 +17,7 @@ void DrawRectangle3D(dword x,y,width,height,color1,color2)
|
|||||||
void DrawCaptButton(dword x,y,width,height,id,color_b, color_t,text,text_len)
|
void DrawCaptButton(dword x,y,width,height,id,color_b, color_t,text,text_len)
|
||||||
{
|
{
|
||||||
DefineButton(x,y,width,height,id,color_b);
|
DefineButton(x,y,width,height,id,color_b);
|
||||||
WriteText(-text_len*6+width/2+x+1,height/2-3+y,0x80,color_t,text,0);
|
WriteText(-text_len*6+width/2+x+1,height/2-3+y,0x80,color_t,text);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawCircle(int x, y, r)
|
void DrawCircle(int x, y, r)
|
||||||
@ -31,3 +31,27 @@ void DrawCircle(int x, y, r)
|
|||||||
py = -px / r + py;
|
py = -px / r + py;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
WriteText(x+w+10, h / 2 + y -3, 0x80, text_color, text);
|
||||||
|
DrawRectangle(x, y, w, h, graph_color);
|
||||||
|
if (is_checked == 1)
|
||||||
|
{
|
||||||
|
DrawRectangle(x+1, y+1, w-2, h-2, 0xffffff);
|
||||||
|
DrawBar(x+2, y+2, w-3, h-3, graph_color);
|
||||||
|
return; //не дадим стрелять себе в ногу
|
||||||
|
}
|
||||||
|
if (is_checked == 2) //not active
|
||||||
|
{
|
||||||
|
DrawRectangle(x+1, y+1, w-2, h-2, 0xffffff);
|
||||||
|
DrawBar(x+2, y+2, w-3, h-3, 0x888888);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DrawRectangle3D(x+1, y+1, w-2, h-2, 0xDDDddd, 0xffffff);
|
||||||
|
DrawBar(x+2, y+2, w-3, h-3, 0xffffff);
|
||||||
|
}
|
||||||
|
}
|
41
programs/cmm/lib/lib.obj/iconv.h
Normal file
41
programs/cmm/lib/lib.obj/iconv.h
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
//Network library
|
||||||
|
|
||||||
|
dword iconv_lib = #a_iconv_lib;
|
||||||
|
char a_iconv_lib[19]="/sys/lib/iconv.obj\0";
|
||||||
|
|
||||||
|
dword iconv_open = #aIconv_open;
|
||||||
|
dword iconv = #aIconv;
|
||||||
|
|
||||||
|
dword am5__ = 0x0;
|
||||||
|
dword bm5__ = 0x0;
|
||||||
|
|
||||||
|
char aIconv_open[11] = "iconv_open\0";
|
||||||
|
char aIconv[6] = "iconv\0";
|
||||||
|
|
||||||
|
|
||||||
|
dword ChangeCharset(dword from_chs, to_chs, conv_buf)
|
||||||
|
{
|
||||||
|
dword cd, in_len, out_len, new_buf;
|
||||||
|
debug (from_chs);
|
||||||
|
debug (to_chs);
|
||||||
|
|
||||||
|
iconv_open stdcall (from_chs, to_chs); //CP866, CP1251, CP1252, KOI8-RU, UTF-8, ISO8859-5
|
||||||
|
if (EAX==-1) { debug("iconv: wrong charset,\nuse only CP866, CP1251, CP1252, KOI8-RU, UTF-8, ISO8859-5"); return 0; }
|
||||||
|
cd = EAX;
|
||||||
|
|
||||||
|
in_len = out_len = strlen(conv_buf);
|
||||||
|
new_buf = mem_Alloc(in_len);
|
||||||
|
iconv stdcall (cd, #conv_buf, #in_len, #new_buf, #out_len);
|
||||||
|
cd = EAX;
|
||||||
|
if (cd!=0)
|
||||||
|
{
|
||||||
|
debug("iconv: semething is wrong with stdcall iconv()");
|
||||||
|
debug(itoa(cd));
|
||||||
|
debug("in_len");
|
||||||
|
debug(itoa(in_len));
|
||||||
|
debug("out_len");
|
||||||
|
debug(itoa(out_len));
|
||||||
|
new_buf = 0;
|
||||||
|
}
|
||||||
|
return new_buf;
|
||||||
|
}
|
21
programs/cmm/lib/lib.obj/netcode.h
Normal file
21
programs/cmm/lib/lib.obj/netcode.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
//Network library
|
||||||
|
|
||||||
|
dword netcode_lib = #a_netcode_lib;
|
||||||
|
char a_netcode_lib[21]="/sys/lib/netcode.obj\0";
|
||||||
|
|
||||||
|
dword base64_encode = #aBase64_encode;
|
||||||
|
dword base64_decode = #aBase64_decode;
|
||||||
|
dword qp_decode = #aQp_decode;
|
||||||
|
|
||||||
|
dword am4__ = 0x0;
|
||||||
|
dword bm4__ = 0x0;
|
||||||
|
|
||||||
|
char aBase64_encode[14] = "base64_encode\0";
|
||||||
|
char aBase64_decode[14] = "base64_decode\0";
|
||||||
|
char aQp_decode[10] = "qp_decode\0";
|
||||||
|
|
||||||
|
/*int base64_encode(char inp[], char outp[], int len);
|
||||||
|
Кодирование массива inp длиной len в массив outp (строку с '\0'). Функция возвращает длину outp.
|
||||||
|
|
||||||
|
int base64_decode(char inp[], char outp[], int len);
|
||||||
|
Декодирование массива inp длиной len в массив outp (строку с '\0'). Функция возвращает длину outp.*/
|
@ -34,33 +34,13 @@ itoa(addr&0xFF) — это 10
|
|||||||
|
|
||||||
dword GetIPfromAdress(dword addr)
|
dword GetIPfromAdress(dword addr)
|
||||||
{
|
{
|
||||||
dword lpointer;
|
dword lpointer, IPa;
|
||||||
getaddrinfo stdcall (addr, 0, 0, #lpointer);
|
getaddrinfo stdcall (addr, 0, 0, #lpointer);
|
||||||
if (EAX!=0) return 0; //если ошибка
|
if (EAX!=0) IPa = 0; else IPa = DSDWORD[DSDWORD[lpointer+24]+4];
|
||||||
return DSDWORD[DSDWORD[lpointer+24]+4];
|
freeaddrinfo stdcall (lpointer);
|
||||||
|
return IPa;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*dword GetIPfromAdressASM(dword addr)
|
|
||||||
{
|
|
||||||
dword lpointer;
|
|
||||||
|
|
||||||
ESP=#lpointer;
|
|
||||||
$push esp // lpointer
|
|
||||||
$push esp // fourth parameter
|
|
||||||
$push 0 // third parameter
|
|
||||||
$push 0 // second parameter
|
|
||||||
EAX = addr;
|
|
||||||
$push eax // first parameter
|
|
||||||
$call getaddrinfo
|
|
||||||
if (EAX!=0) return 0; //ошибка
|
|
||||||
$pop esi
|
|
||||||
$mov ebx, DSDWORD[lpointer+24]
|
|
||||||
$mov eax, DSDWORD[EBX+4]
|
|
||||||
|
|
||||||
return EAX;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
//Convert the string from standard IPv4 dotted notation to integer IP addr.
|
//Convert the string from standard IPv4 dotted notation to integer IP addr.
|
||||||
inet_addr stdcall ("192.168.0.1");
|
inet_addr stdcall ("192.168.0.1");
|
||||||
|
Loading…
Reference in New Issue
Block a user