forked from KolibriOS/kolibrios
@icon: fixed by GerdtR
notes: final version mouse: better hold wheel with other buttongs clicked git-svn-id: svn://kolibrios.org@7437 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
66a0391246
commit
839dde62cc
@ -17,7 +17,7 @@
|
|||||||
#include "..\lib\random.h"
|
#include "..\lib\random.h"
|
||||||
#include "..\lib\clipboard.h"
|
#include "..\lib\clipboard.h"
|
||||||
|
|
||||||
//*.obj libraries
|
// *.obj libraries
|
||||||
#include "..\lib\obj\box_lib.h"
|
#include "..\lib\obj\box_lib.h"
|
||||||
#include "..\lib\obj\libio.h"
|
#include "..\lib\obj\libio.h"
|
||||||
#include "..\lib\obj\libimg.h"
|
#include "..\lib\obj\libimg.h"
|
||||||
@ -126,6 +126,7 @@ void main()
|
|||||||
load_dll(libHTTP, #http_lib_init,1);
|
load_dll(libHTTP, #http_lib_init,1);
|
||||||
load_dll(iconv_lib, #iconv_open,0);
|
load_dll(iconv_lib, #iconv_open,0);
|
||||||
Libimg_LoadImage(#skin, "/sys/toolbar.png");
|
Libimg_LoadImage(#skin, "/sys/toolbar.png");
|
||||||
|
skin.h = 26;
|
||||||
wv_progress_bar.progress_color = 0x72B7EB;
|
wv_progress_bar.progress_color = 0x72B7EB;
|
||||||
CreateDir("/tmp0/1/downloads");
|
CreateDir("/tmp0/1/downloads");
|
||||||
if (param) strcpy(#URL, #param); else strcpy(#URL, URL_SERVICE_HOME);
|
if (param) strcpy(#URL, #param); else strcpy(#URL, URL_SERVICE_HOME);
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
enum { TAG, OPTION_VALUE, TEXT, COMMENT };
|
enum { TAG, OPTION_VALUE, TEXT, COMMENT, INLINE_COMMENT, CODE };
|
||||||
|
|
||||||
//you are butifull, you are butifull
|
//you are butifull, you are butifull
|
||||||
dword ShowSource()
|
dword ShowSource()
|
||||||
{
|
{
|
||||||
dword new_buf, new_buf_start, i;
|
dword new_buf, new_buf_start, i;
|
||||||
byte ww, mode;
|
int mode;
|
||||||
|
|
||||||
if (souce_mode) return;
|
if (souce_mode) return;
|
||||||
souce_mode = true;
|
souce_mode = true;
|
||||||
@ -15,8 +15,7 @@ dword ShowSource()
|
|||||||
new_buf += strlen(new_buf);
|
new_buf += strlen(new_buf);
|
||||||
for (i=bufpointer; i<bufpointer+bufsize; i++)
|
for (i=bufpointer; i<bufpointer+bufsize; i++)
|
||||||
{
|
{
|
||||||
ww = ESBYTE[i];
|
switch (ESBYTE[i])
|
||||||
switch (ww)
|
|
||||||
{
|
{
|
||||||
case '<':
|
case '<':
|
||||||
if (mode == COMMENT)
|
if (mode == COMMENT)
|
||||||
@ -86,7 +85,7 @@ dword ShowSource()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
ESBYTE[new_buf] = ww;
|
ESBYTE[new_buf] = ESBYTE[i];
|
||||||
new_buf++;
|
new_buf++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -94,4 +93,125 @@ dword ShowSource()
|
|||||||
bufsize = new_buf - new_buf_start;
|
bufsize = new_buf - new_buf_start;
|
||||||
free(bufpointer);
|
free(bufpointer);
|
||||||
bufpointer = new_buf_start;
|
bufpointer = new_buf_start;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
char* C_HL_keywords[] = {
|
||||||
|
"switch", "if", "while", "for", "break", "continue", "return", "else",
|
||||||
|
"union", "typedef", "static", "class", "case", "#include",
|
||||||
|
"volatile", "register", "sizeof", "typedef", "union", "goto", "const", "auto",
|
||||||
|
"#define", "#endif", "#error", "#ifdef", "#ifndef", "#undef", "#if", "#else",
|
||||||
|
"inline",
|
||||||
|
|
||||||
|
"int ", "dword ", "long ", "double ", "float ", "char ", "unsigned ", "signed ",
|
||||||
|
"void ", "bool ", "enum ", "byte ", "word ", "struct ", "NULL", "loop", "stdcall ",
|
||||||
|
":void ", ":int ", ":bool ", ":dword ", NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
dword ShowCodeSource()
|
||||||
|
{
|
||||||
|
dword new_buf, new_buf_start, i;
|
||||||
|
int mode = CODE;
|
||||||
|
|
||||||
|
char spstr[64];
|
||||||
|
dword keylen;
|
||||||
|
dword keyn;
|
||||||
|
dword keycolor;
|
||||||
|
|
||||||
|
new_buf = malloc(bufsize*10);
|
||||||
|
new_buf_start = new_buf;
|
||||||
|
sprintf(new_buf,"<html><head><title>C/C++/C-- source: %s</title><body><pre>",#URL);
|
||||||
|
new_buf += strlen(new_buf);
|
||||||
|
for (i=bufpointer; i<bufpointer+bufsize; i++)
|
||||||
|
{
|
||||||
|
if ('<' == ESBYTE[i]) {
|
||||||
|
strcpy(new_buf, "<");
|
||||||
|
new_buf+=4;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ('>' == ESBYTE[i]) {
|
||||||
|
strcpy(new_buf, ">");
|
||||||
|
new_buf+=4;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (ESBYTE[i] >= '0') && (ESBYTE[i] <= '9') && (CODE == mode) {
|
||||||
|
strcpy(new_buf, "<font color=#CF00FF>?</font>");
|
||||||
|
ESBYTE[new_buf+20] = ESBYTE[i];
|
||||||
|
new_buf+=28;
|
||||||
|
if (ESBYTE[i+1] == 'x') {
|
||||||
|
strcpy(new_buf, "<font color=#CF00FF>x</font>");
|
||||||
|
new_buf+=28;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CODE == mode) && ('\"' == ESBYTE[i]) {
|
||||||
|
mode = TEXT;
|
||||||
|
strcpy(new_buf, "<font color=#080>\"");
|
||||||
|
new_buf+=18;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (TEXT == mode) && ('\"' == ESBYTE[i]) {
|
||||||
|
mode = CODE;
|
||||||
|
strcpy(new_buf, "\"</font>");
|
||||||
|
new_buf+=8;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! strncmp(i, "//", 2) ) && (mode == CODE) {
|
||||||
|
mode = INLINE_COMMENT;
|
||||||
|
strcpy(new_buf, "<font color=#777>//");
|
||||||
|
new_buf+=19;
|
||||||
|
i++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (INLINE_COMMENT == mode) {
|
||||||
|
if (13 == ESBYTE[i]) {
|
||||||
|
mode = CODE;
|
||||||
|
strcpy(new_buf, "\13</font>");
|
||||||
|
new_buf+=8;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! strncmp(i, "/*", 2) ) {
|
||||||
|
mode = COMMENT;
|
||||||
|
strcpy(new_buf, "<font color=#665>/*");
|
||||||
|
new_buf+=19;
|
||||||
|
i++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (! strncmp(i, "*/", 2) ) {
|
||||||
|
mode = CODE;
|
||||||
|
strcpy(new_buf, "*/</font>");
|
||||||
|
new_buf+=9;
|
||||||
|
i++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CODE == mode) for (keyn=0; C_HL_keywords[keyn]!=NULL; keyn++)
|
||||||
|
{
|
||||||
|
keylen = strlen(C_HL_keywords[keyn]);
|
||||||
|
if (! strncmp(i, C_HL_keywords[keyn], keylen) ) {
|
||||||
|
|
||||||
|
if (keyn<31) keycolor="#f00"; else keycolor="#00f";
|
||||||
|
sprintf(#spstr, "<font color=%s>%s</font>", keycolor, C_HL_keywords[keyn]);
|
||||||
|
strcpy(new_buf, #spstr);
|
||||||
|
|
||||||
|
new_buf += keylen + 24;
|
||||||
|
i += keylen-1;
|
||||||
|
goto _CONTINUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ESBYTE[new_buf] = ESBYTE[i];
|
||||||
|
new_buf++;
|
||||||
|
_CONTINUE:
|
||||||
|
}
|
||||||
|
ESBYTE[new_buf] = 0;
|
||||||
|
bufsize = new_buf - new_buf_start;
|
||||||
|
free(bufpointer);
|
||||||
|
bufpointer = new_buf_start;
|
||||||
|
}
|
||||||
|
*/
|
@ -1,4 +1,4 @@
|
|||||||
// Mouse Configuration Utility ver 1.6
|
// Mouse Configuration Utility ver 1.61
|
||||||
|
|
||||||
#ifndef AUTOBUILD
|
#ifndef AUTOBUILD
|
||||||
#include "lang.h--"
|
#include "lang.h--"
|
||||||
@ -60,8 +60,8 @@ void main() {
|
|||||||
{
|
{
|
||||||
case evMouse:
|
case evMouse:
|
||||||
mouse.get();
|
mouse.get();
|
||||||
IF (mouse_frame.hovered()) DrawMouseImage(mouse.lkm,mouse.pkm,mouse.mkm, mouse.vert);
|
IF (mouse_frame.hovered()) DrawMouseImage(mouse.lkm,mouse.pkm,mouse.mkm,mouse.vert);
|
||||||
IF (mouse.up) DrawMouseImage(0,0,0,0);
|
IF (mouse.click) DrawMouseImage(0,0,0,0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
CASE evButton:
|
CASE evButton:
|
||||||
@ -109,8 +109,8 @@ void main() {
|
|||||||
#define white 0xffffff
|
#define white 0xffffff
|
||||||
#define dgrey 0x2d353d
|
#define dgrey 0x2d353d
|
||||||
|
|
||||||
:struct IMG_PAL{ dword back, shad1, mbody, left, right, middle, white; }
|
:struct IMG_PAL{ dword back, shad1, contour, left, right, middle, mwhite; }
|
||||||
pal = { 0xF0F2F3,0xABB0B2, dgrey, white, white, dgrey, white };
|
pal = { 0xF0F2F3,0xABB0B2, dgrey, white, white, dgrey, white };
|
||||||
|
|
||||||
void DrawMouseImage(dword l,r,m,v) {
|
void DrawMouseImage(dword l,r,m,v) {
|
||||||
#define IMG_W 59
|
#define IMG_W 59
|
||||||
@ -124,9 +124,9 @@ void DrawMouseImage(dword l,r,m,v) {
|
|||||||
PutPaletteImage(#panels_img_data,IMG_W,IMG_H,18+30,18+15,8,#pal);
|
PutPaletteImage(#panels_img_data,IMG_W,IMG_H,18+30,18+15,8,#pal);
|
||||||
pal.left = pal.right = white;
|
pal.left = pal.right = white;
|
||||||
pal.middle = dgrey;
|
pal.middle = dgrey;
|
||||||
if (v) {
|
IF (v) {
|
||||||
pause(10);
|
pause(10);
|
||||||
DrawMouseImage(0,0,0,0);
|
DrawMouseImage(l,r,m,0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,12 +53,13 @@ int NOTES::OpenTxt(dword file_path)
|
|||||||
int i=0, linepos=0;
|
int i=0, linepos=0;
|
||||||
int item_n=-1;
|
int item_n=-1;
|
||||||
|
|
||||||
|
count = LINES_COUNT;
|
||||||
|
|
||||||
strcpy(#txt_path, file_path);
|
strcpy(#txt_path, file_path);
|
||||||
ReadFile(0, 4096, #txt_data, #txt_path);
|
ReadFile(0, 4096, #txt_data, #txt_path);
|
||||||
if (!txt_data) || (strncmp(#txt_data, "notes", 5)!=0)
|
if (!txt_data) || (strncmp(#txt_data, "notes", 5)!=0)
|
||||||
{
|
{
|
||||||
txt_file_exists = false;
|
txt_file_exists = false;
|
||||||
notify("'Notes\nData file does not exists or is not valid' -tE");
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -84,7 +85,6 @@ int NOTES::OpenTxt(dword file_path)
|
|||||||
//lines[item_n].Delete();
|
//lines[item_n].Delete();
|
||||||
item_n++;
|
item_n++;
|
||||||
}
|
}
|
||||||
count = LINES_COUNT;
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 255 B After Width: | Height: | Size: 195 B |
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 661 B |
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -1,15 +1,10 @@
|
|||||||
// Notes v0.9 Beta
|
// Notes v1.0
|
||||||
|
|
||||||
#define MEMSIZE 0xDAE80
|
#define MEMSIZE 0xDAE80
|
||||||
#include "..\lib\kolibri.h"
|
#include "..\lib\kolibri.h"
|
||||||
#include "..\lib\mem.h"
|
|
||||||
#include "..\lib\strings.h"
|
|
||||||
#include "..\lib\fs.h"
|
|
||||||
#include "..\lib\dll.h"
|
|
||||||
|
|
||||||
#include "..\lib\obj\box_lib.h"
|
#include "..\lib\obj\box_lib.h"
|
||||||
#include "..\lib\gui.h"
|
#include "..\lib\gui.h"
|
||||||
#include "..\lib\encoding.h"
|
|
||||||
#include "..\lib\list_box.h"
|
#include "..\lib\list_box.h"
|
||||||
|
|
||||||
//===================================================//
|
//===================================================//
|
||||||
@ -68,7 +63,6 @@ void main()
|
|||||||
load_dll(boxlib, #box_lib_init,0);
|
load_dll(boxlib, #box_lib_init,0);
|
||||||
|
|
||||||
if (param) notes.OpenTxt(#param); else notes.OpenTxt(abspath("notes.txt"));
|
if (param) notes.OpenTxt(#param); else notes.OpenTxt(abspath("notes.txt"));
|
||||||
//notes.cur_y = 0;
|
|
||||||
|
|
||||||
SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
|
SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
|
||||||
|
|
||||||
@ -173,7 +167,7 @@ void draw_window()
|
|||||||
WriteText(9,TITLE_H/2-6,0x90,0xA9613A,WINDOW_CAPTION);
|
WriteText(9,TITLE_H/2-6,0x90,0xA9613A,WINDOW_CAPTION);
|
||||||
WriteTextB(7,TITLE_H/2-7,0x90,0xFFFfff,WINDOW_CAPTION);
|
WriteTextB(7,TITLE_H/2-7,0x90,0xFFFfff,WINDOW_CAPTION);
|
||||||
_PutImage(1, TITLE_H, 292,EDGE_H, #edge);
|
_PutImage(1, TITLE_H, 292,EDGE_H, #edge);
|
||||||
PutPixel(notes.x+RED_LINE_X, notes.y-1, COL_RED_LINE);
|
PutPixel(notes.x, notes.y-1, COL_RED_LINE);
|
||||||
ECX-=1; $int 0x40;
|
ECX-=1; $int 0x40;
|
||||||
DrawCloseButton(WIN_W-23,4,16,16);
|
DrawCloseButton(WIN_W-23,4,16,16);
|
||||||
DrawRectangle(0,TITLE_H,WIN_W,WIN_H-HEADER_HEIGHT+EDGE_H,0xBBBBBB);
|
DrawRectangle(0,TITLE_H,WIN_W,WIN_H-HEADER_HEIGHT+EDGE_H,0xBBBBBB);
|
||||||
@ -188,6 +182,7 @@ void DrawEditBoxN()
|
|||||||
notebox.offset = notebox.shift = notebox.shift_old = 0;
|
notebox.offset = notebox.shift = notebox.shift_old = 0;
|
||||||
notebox.cl_curs_x = notebox.cl_curs_y = 0;
|
notebox.cl_curs_x = notebox.cl_curs_y = 0;
|
||||||
notebox.size = strlen(notebox.text);
|
notebox.size = strlen(notebox.text);
|
||||||
|
notebox.flags = ed_always_focus+ed_focus;
|
||||||
if (notebox.pos > notebox.size) notebox.pos = notebox.size;
|
if (notebox.pos > notebox.size) notebox.pos = notebox.size;
|
||||||
notebox.top = notes.cur_y*notes.item_h+4+notes.y;
|
notebox.top = notes.cur_y*notes.item_h+4+notes.y;
|
||||||
edit_box_draw stdcall(#notebox);
|
edit_box_draw stdcall(#notebox);
|
||||||
|
@ -92,7 +92,7 @@ DlgProp:
|
|||||||
|
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
mov edi,DAreaIcon
|
mov edi,DAreaIcon
|
||||||
|
|
||||||
mov [DAreaIcon],'0'
|
mov [DAreaIcon],'0'
|
||||||
mov dword[edtIcon.size],1
|
mov dword[edtIcon.size],1
|
||||||
mov dword[edtIcon.pos],1
|
mov dword[edtIcon.pos],1
|
||||||
@ -196,7 +196,7 @@ DReDraw:
|
|||||||
|
|
||||||
;edit_boxes_set_sys_color edtIcon,endEdits,sc
|
;edit_boxes_set_sys_color edtIcon,endEdits,sc
|
||||||
edit_boxes_set_sys_color edtName,endEdits,sc
|
edit_boxes_set_sys_color edtName,endEdits,sc
|
||||||
|
|
||||||
m2m [edtIcon.color],[sc.work]
|
m2m [edtIcon.color],[sc.work]
|
||||||
m2m [edtIcon.blur_border_color],[sc.work]
|
m2m [edtIcon.blur_border_color],[sc.work]
|
||||||
|
|
||||||
@ -348,27 +348,10 @@ DMouse:
|
|||||||
cmp eax,[icon_count]
|
cmp eax,[icon_count]
|
||||||
jae DMessages
|
jae DMessages
|
||||||
|
|
||||||
mov bl,10
|
; stdcall byteToHex,al,DAreaIcon ;2
|
||||||
div bl
|
stdcall intToStr,eax,DAreaIcon
|
||||||
|
mov dword[edtIcon.size],edx
|
||||||
|
|
||||||
add ah,30h
|
|
||||||
test al,al
|
|
||||||
jz @f
|
|
||||||
|
|
||||||
add al,30h
|
|
||||||
mov byte[DAreaIcon],al
|
|
||||||
mov byte[DAreaIcon+1],ah
|
|
||||||
mov byte[DAreaIcon+2],0
|
|
||||||
mov dword[edtIcon.size],2
|
|
||||||
jmp .RedrawNum
|
|
||||||
|
|
||||||
@@:
|
|
||||||
mov byte[DAreaIcon],ah
|
|
||||||
mov byte[DAreaIcon+1],0
|
|
||||||
mov dword[edtIcon.size],1
|
|
||||||
jmp .RedrawNum
|
|
||||||
.RedrawNum:
|
|
||||||
|
|
||||||
; stdcall [edit_box_draw],edtIcon
|
; stdcall [edit_box_draw],edtIcon
|
||||||
|
|
||||||
call DrawSelIcon
|
call DrawSelIcon
|
||||||
@ -465,14 +448,14 @@ proc DRedrawWin
|
|||||||
|
|
||||||
stdcall [scrollbar_h_draw],sbIcons
|
stdcall [scrollbar_h_draw],sbIcons
|
||||||
mcall 38,<ICONSX+1,END_ICONS_AREAW-2>,<END_ICONS_AREAH+3,END_ICONS_AREAH+3>,[sc.work_graph]
|
mcall 38,<ICONSX+1,END_ICONS_AREAW-2>,<END_ICONS_AREAH+3,END_ICONS_AREAH+3>,[sc.work_graph]
|
||||||
mcall ,<ICONSX+1,END_ICONS_AREAW-2>,<END_ICONS_AREAH+3+15,END_ICONS_AREAH+3+15>,[sc.work_graph]
|
mcall ,<ICONSX+1,END_ICONS_AREAW-2>,<END_ICONS_AREAH+3+15,END_ICONS_AREAH+3+15>,[sc.work_graph]
|
||||||
|
|
||||||
mcall ,<ICONSX,ICONSX>,<END_ICONS_AREAH+3+1,END_ICONS_AREAH+3+15-1>,[sc.work_graph]
|
mcall ,<ICONSX,ICONSX>,<END_ICONS_AREAH+3+1,END_ICONS_AREAH+3+15-1>,[sc.work_graph]
|
||||||
mcall ,<END_ICONS_AREAW-1,END_ICONS_AREAW-1>,<END_ICONS_AREAH+3+1,END_ICONS_AREAH+3+15-1>, [sc.work_graph]
|
mcall ,<END_ICONS_AREAW-1,END_ICONS_AREAW-1>,<END_ICONS_AREAH+3+1,END_ICONS_AREAH+3+15-1>,[sc.work_graph]
|
||||||
|
|
||||||
;BUTTONS
|
;BUTTONS
|
||||||
mcall 8,<265,75>,<30+END_ICONS_AREAH,24>,idbCreate,[sc.work_button]
|
mcall 8,<265,75>,<30+END_ICONS_AREAH,24>,idbCreate,[sc.work_button]
|
||||||
mcall ,<360,77>, ,idbCancel
|
mcall ,<360,77>, ,idbCancel
|
||||||
mcall ,<END_ICONS_AREAW-30,30>,<30,20> ,idbChange
|
mcall ,<END_ICONS_AREAW-30,30>,<30,20> ,idbChange
|
||||||
|
|
||||||
;CAPTIONS
|
;CAPTIONS
|
||||||
@ -647,11 +630,9 @@ local IcoX:DWORD,\
|
|||||||
endp
|
endp
|
||||||
|
|
||||||
proc DrawSelIcon
|
proc DrawSelIcon
|
||||||
|
|
||||||
|
|
||||||
mov edx,[sc.work]
|
mov edx,[sc.work]
|
||||||
mcall 13,<ICONSX+18,3*8>,<59,12>
|
mcall 13,<ICONSX+18,3*8>,<59,12>
|
||||||
|
|
||||||
mov ecx,[sc.work_text]
|
mov ecx,[sc.work_text]
|
||||||
or ecx,90000000h
|
or ecx,90000000h
|
||||||
mcall 4,<ICONSX+18,59>,,DAreaIcon
|
mcall 4,<ICONSX+18,59>,,DAreaIcon
|
||||||
@ -662,25 +643,8 @@ proc DrawSelIcon
|
|||||||
ret
|
ret
|
||||||
@@:
|
@@:
|
||||||
|
|
||||||
mov al,[edi]
|
;stdcall hexToInt, edi
|
||||||
cmp al,'9'
|
stdcall strToInt, edi
|
||||||
ja .PathToIcon
|
|
||||||
cmp al,'/'
|
|
||||||
jne .GetIconInd
|
|
||||||
.PathToIcon:
|
|
||||||
mov al,30h ;§ £«ãèª !!!!!!!!!!!!!
|
|
||||||
mov byte[edi+1],0
|
|
||||||
.GetIconInd:
|
|
||||||
;int3
|
|
||||||
sub al,30h
|
|
||||||
cmp byte[edi+1],0
|
|
||||||
je @f
|
|
||||||
shl eax,1
|
|
||||||
lea eax,[eax*4+eax]
|
|
||||||
xor edx,edx
|
|
||||||
mov dl,[edi+1]
|
|
||||||
sub dl,30h
|
|
||||||
add eax,edx
|
|
||||||
@@: ;eax=num icon
|
@@: ;eax=num icon
|
||||||
cmp eax,[icon_count]
|
cmp eax,[icon_count]
|
||||||
jb @f
|
jb @f
|
||||||
@ -724,4 +688,155 @@ proc DrawSelIcon
|
|||||||
mcall 7,DlgBufImg,<IMG_SIZE,IMG_SIZE>,<30,15>
|
mcall 7,DlgBufImg,<IMG_SIZE,IMG_SIZE>,<30,15>
|
||||||
|
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
;NOT USED
|
||||||
|
proc hexToInt strz:DWORD
|
||||||
|
push ebx
|
||||||
|
mov ebx,[strz]
|
||||||
|
mov al,[ebx]
|
||||||
|
xor edx,edx
|
||||||
|
.loop:
|
||||||
|
xor ecx,ecx
|
||||||
|
inc ebx
|
||||||
|
shl edx,4
|
||||||
|
cmp al,'0'
|
||||||
|
jb .err
|
||||||
|
cmp al,'9'
|
||||||
|
jbe .conv
|
||||||
|
mov ecx,10
|
||||||
|
sub al,11h
|
||||||
|
cmp al,'0'
|
||||||
|
jb .err
|
||||||
|
cmp al,'6'
|
||||||
|
ja .err
|
||||||
|
.conv:
|
||||||
|
sub al,30h
|
||||||
|
add dl,al
|
||||||
|
mov al,[ebx]
|
||||||
|
add dl,cl
|
||||||
|
test al,al
|
||||||
|
jnz .loop
|
||||||
|
mov eax,edx
|
||||||
|
pop ebx
|
||||||
|
ret
|
||||||
|
.err:
|
||||||
|
xor eax,eax
|
||||||
|
pop ebx
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
;NOT USED
|
||||||
|
proc byteToHex byti:BYTE,target:DWORD
|
||||||
|
push ebx
|
||||||
|
mov ebx,[target]
|
||||||
|
mov dl,[byti]
|
||||||
|
rol dl,4
|
||||||
|
mov ecx,2
|
||||||
|
.loop:
|
||||||
|
mov al,dl
|
||||||
|
and al,0xF
|
||||||
|
cmp al,10
|
||||||
|
jae @f
|
||||||
|
add al,0x30
|
||||||
|
jmp .n
|
||||||
|
@@:
|
||||||
|
add al,0x41-10
|
||||||
|
.n:
|
||||||
|
mov [ebx],al
|
||||||
|
inc ebx
|
||||||
|
rol dl,4
|
||||||
|
loop .loop
|
||||||
|
|
||||||
|
mov byte[ebx],0
|
||||||
|
@@: pop ebx
|
||||||
|
ret
|
||||||
|
jmp @b
|
||||||
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
proc strToInt strz:DWORD
|
||||||
|
push ebx edi esi
|
||||||
|
stdcall strLen, [strz]
|
||||||
|
xor edx,edx
|
||||||
|
xor ebx,ebx
|
||||||
|
xor edi,edi
|
||||||
|
std
|
||||||
|
inc ebx
|
||||||
|
mov esi,[strz]
|
||||||
|
lea esi,[esi+eax-2]
|
||||||
|
.loop:
|
||||||
|
xor eax,eax
|
||||||
|
lodsb
|
||||||
|
cmp al,'0'
|
||||||
|
jb .err
|
||||||
|
cmp al,'9'
|
||||||
|
ja .err
|
||||||
|
|
||||||
|
sub al,0x30
|
||||||
|
mul ebx
|
||||||
|
lea ebx,[ebx*4+ebx] ;ebx = ebx*10
|
||||||
|
shl ebx,1
|
||||||
|
add edi,eax
|
||||||
|
cmp esi,[strz]
|
||||||
|
jae .loop
|
||||||
|
cld
|
||||||
|
mov eax,edi
|
||||||
|
pop esi edi ebx
|
||||||
|
ret
|
||||||
|
.err:
|
||||||
|
cld
|
||||||
|
or eax,-1
|
||||||
|
pop esi edi ebx
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
;ret: target - string, edx - length string
|
||||||
|
proc intToStr inti:DWORD, target:DWORD
|
||||||
|
locals
|
||||||
|
resl rb 16
|
||||||
|
endl
|
||||||
|
lea edi,[resl]
|
||||||
|
mov eax,[inti]
|
||||||
|
xor ecx,ecx
|
||||||
|
mov ebx,10
|
||||||
|
jmp .stlp
|
||||||
|
.loop:
|
||||||
|
xor edx,edx
|
||||||
|
div ebx
|
||||||
|
mov [edi],dl
|
||||||
|
inc edi
|
||||||
|
inc ecx
|
||||||
|
.stlp: cmp eax,10
|
||||||
|
jae .loop
|
||||||
|
mov [edi],al
|
||||||
|
inc ecx
|
||||||
|
mov edx,ecx
|
||||||
|
mov ebx,[target]
|
||||||
|
.conv:
|
||||||
|
mov al,[edi]
|
||||||
|
add al,0x30
|
||||||
|
mov [ebx],al
|
||||||
|
inc ebx
|
||||||
|
dec edi
|
||||||
|
loop .conv
|
||||||
|
mov byte[ebx],0
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
;for 'ab',0 strLen = 3
|
||||||
|
proc strLen stringZ:DWORD
|
||||||
|
push edi
|
||||||
|
xor al,al
|
||||||
|
mov edi,[stringZ]
|
||||||
|
or ecx,-1
|
||||||
|
repne scasb
|
||||||
|
sub edi,[stringZ]
|
||||||
|
mov eax,edi
|
||||||
|
pop edi
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,9 +39,18 @@ include '../../macros.inc'
|
|||||||
include '../../proc32.inc'
|
include '../../proc32.inc'
|
||||||
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
|
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
|
||||||
include '../../dll.inc'
|
include '../../dll.inc'
|
||||||
;include '../../debug.inc'
|
include '../../debug.inc'
|
||||||
|
|
||||||
|
|
||||||
|
; include '../include/lang.inc'
|
||||||
|
; include '../include/macros.inc'
|
||||||
|
; include '../include/proc32.inc'
|
||||||
|
; include '../include/box_lib.mac'
|
||||||
|
; include '../include/dll.inc'
|
||||||
|
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
START: ; start of execution
|
START: ; start of execution
|
||||||
|
|
||||||
mcall 68,11
|
mcall 68,11
|
||||||
stdcall dll.Load,IMPORTS
|
stdcall dll.Load,IMPORTS
|
||||||
test eax,eax
|
test eax,eax
|
||||||
@ -119,7 +128,7 @@ START: ; start of execution
|
|||||||
rep stosd
|
rep stosd
|
||||||
mov [nLoadIcon],0
|
mov [nLoadIcon],0
|
||||||
stdcall [ini_enum_sections],IconIni,LoadIconsData
|
stdcall [ini_enum_sections],IconIni,LoadIconsData
|
||||||
;int3
|
|
||||||
mov eax,dword[PIcoDB]
|
mov eax,dword[PIcoDB]
|
||||||
sub eax,[BegData]
|
sub eax,[BegData]
|
||||||
mov dword[SizeData],eax
|
mov dword[SizeData],eax
|
||||||
@ -274,7 +283,7 @@ LButtonPress:
|
|||||||
mov dword[fiRunProg+8],edi
|
mov dword[fiRunProg+8],edi
|
||||||
mov dword[fiRunProg+21],ebx
|
mov dword[fiRunProg+21],ebx
|
||||||
mcall 70,fiRunProg
|
mcall 70,fiRunProg
|
||||||
|
|
||||||
test eax,80000000h
|
test eax,80000000h
|
||||||
jz @f
|
jz @f
|
||||||
|
|
||||||
@ -533,28 +542,9 @@ local IconData:DWORD
|
|||||||
repne scasb
|
repne scasb
|
||||||
repne scasb
|
repne scasb
|
||||||
repne scasb
|
repne scasb
|
||||||
mov al,[edi]
|
|
||||||
;cmp al,'9'
|
|
||||||
;ja PathToIcon
|
|
||||||
cmp al,'/'
|
|
||||||
jne GetIconInd
|
|
||||||
|
|
||||||
PathToIcon:
|
;stdcall hexToInt,edi
|
||||||
mov al,30h ;§ £«ãèª !!!!!!!!!!!!!
|
stdcall strToInt,edi
|
||||||
mov byte[edi+1],0
|
|
||||||
|
|
||||||
jmp CopyToMem
|
|
||||||
GetIconInd:
|
|
||||||
|
|
||||||
sub al,30h
|
|
||||||
cmp byte[edi+1],0
|
|
||||||
je @f
|
|
||||||
shl eax,1
|
|
||||||
lea eax,[eax*4+eax]
|
|
||||||
xor edx,edx
|
|
||||||
mov dl,[edi+1]
|
|
||||||
sub dl,30h
|
|
||||||
add eax,edx
|
|
||||||
@@: ;eax=num icon
|
@@: ;eax=num icon
|
||||||
cmp eax,[icon_count]
|
cmp eax,[icon_count]
|
||||||
jb @f
|
jb @f
|
||||||
@ -913,7 +903,7 @@ endp
|
|||||||
;ä®à¬ â IPC-á®®¡é¥¨ï
|
;ä®à¬ â IPC-á®®¡é¥¨ï
|
||||||
;dd X
|
;dd X
|
||||||
;dd Y
|
;dd Y
|
||||||
;asciiz Icon
|
;asciiz Icon - in decimal
|
||||||
;asciiz Name
|
;asciiz Name
|
||||||
;asciiz Path
|
;asciiz Path
|
||||||
;asciiz Params
|
;asciiz Params
|
||||||
@ -926,7 +916,6 @@ endl
|
|||||||
|
|
||||||
mov eax,IPCbuffer+8
|
mov eax,IPCbuffer+8
|
||||||
mov dword[IPCbuffer],1
|
mov dword[IPCbuffer],1
|
||||||
;mov edx,dword[IPCbuffer+4]
|
|
||||||
lea edx,[eax+8]
|
lea edx,[eax+8]
|
||||||
|
|
||||||
m2m dword[ix],dword[edx]
|
m2m dword[ix],dword[edx]
|
||||||
@ -1285,10 +1274,10 @@ DlgBufImg rb IMG_SIZE*IMG_SIZE*3
|
|||||||
|
|
||||||
align 4
|
align 4
|
||||||
bufStdIco rb 40
|
bufStdIco rb 40
|
||||||
IconsOffs rd 100 ;â ¡«¨æ á 㪠§ ⥫ﬨ ª®ªà¥âë¥ ¨ª®ª¨(¤«ï ã᪮२ï)
|
IconsOffs rd 100h ;â ¡«¨æ á 㪠§ ⥫ﬨ ª®ªà¥âë¥ ¨ª®ª¨(¤«ï ã᪮२ï)
|
||||||
PIcoDB rd 1
|
PIcoDB rd 1 ;㪠§ â¥«ì ¡ãää¥à á ¨ä®© ®¡® ¢á¥å ¨ª®ª å
|
||||||
nLoadIcon rd 1 ;®¬¥à ç¨â ¥¬®© ¨§ ini ¨ª®ª¨
|
nLoadIcon rd 1 ;®¬¥à ç¨â ¥¬®© ¨§ ini ¨ª®ª¨
|
||||||
IconsID rd 100 ;ID ¨ª®®ª - 2 ¡ ©âa + ¡ ©â 0 + ¢ëà ¢¨¢ î騩 ¡ ©â - áâப á 2¬ï è¥á ¤æ¥â¨à¨ç묨 æ¨äà ¬¨
|
IconsID rd 100h ;ID ¨ª®®ª - 2 ¡ ©âa + ¡ ©â 0 + ¢ëà ¢¨¢ î騩 ¡ ©â - áâப á 2¬ï è¥á ¤æ¥â¨à¨ç묨 æ¨äà ¬¨
|
||||||
|
|
||||||
nameSection rb 4
|
nameSection rb 4
|
||||||
|
|
||||||
@ -1335,4 +1324,8 @@ stack_bredraw:
|
|||||||
rb 512
|
rb 512
|
||||||
stack_main:
|
stack_main:
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ENDMEM:
|
ENDMEM:
|
Loading…
Reference in New Issue
Block a user