/programs/cmm/TWB/links.h |
---|
84,7 → 84,7 |
return false; |
} |
if (mouse.pkm) && (mouse.up) { |
// EventShowLinkMenu(mouse.x, mouse.y); |
EventShowLinkMenu(mouse.x, mouse.y); |
return false; |
} |
if (active==i) return false; |
/programs/cmm/app_plus/app_plus.c |
---|
22,9 → 22,11 |
dword scr_pal[] = {0xFFFFFF,0xBBDDFF,0x4166B5,0xE0E4E6,0xAFBEDD,0xC4D4E8,0x52ACDD,0x000000, |
0xE9DAB2,0xC99811,0xFDF9D4,0xF8B93C,0xFDEEBE,0xFBEBA6,0xDFAF4F,0xF3D57C}; |
#define BTN_MANUAL_SEARCH 10 |
#define APP_PLUS_INI_PATH "/kolibrios/settings/app_plus.ini" |
#define APP_PLUS_INI_NOT_EXISTS "'APP+\n/kolibrios/settings/app_plus.ini is not exists.\nProgram terminated.' -tE" |
#define APP_PLUS_INI_NOT_EXISTS "'APP+\n/kolibrios/settings/app_plus.ini does not exists.\nProgram terminated.' -tE" |
#define WINDOW_TITLE_TEXT "Error" |
#define CONTENT_HEADER_TEXT "/KOLIBRIOS/ IS NOT MOUNTED" |
49,9 → 51,8 |
} |
} |
void RunAutosearch() |
void WaitAutosearch() |
{ |
if (!CheckProcessExists("SEARCHAP")) io.run("/sys/SEARCHAP",0); |
while (CheckProcessExists("SEARCHAP")) pause(2); |
} |
60,12 → 61,13 |
word id; |
CheckKosMounted(); |
RunAutosearch(); |
WaitAutosearch(); |
CheckKosMounted(); |
o_dialog.type = 2; |
load_dll(Proc_lib, #OpenDialog_init,0); |
OpenDialog_init stdcall (#o_dialog); |
active_button_id = BTN_MANUAL_SEARCH; |
loop() switch(WaitEvent()) |
{ |
72,14 → 74,12 |
case evButton: |
id=GetButtonID(); |
if (id==1) ExitProcess(); |
if (id==10) |
{ |
OpenDialog_start stdcall (#o_dialog); |
if (o_dialog.status) SetAdditionalSystemDirectory("kolibrios", #openfile_path+1); |
pause(3); |
CheckKosMounted(); |
} |
if (id==BTN_MANUAL_SEARCH) EventManualSearch(); |
break; |
case evKey: |
GetKeys(); |
if (key_scancode == SCAN_CODE_ENTER) EventManualSearch(); |
break; |
case evReDraw: |
draw_window(); |
102,8 → 102,16 |
PutPaletteImage(#scr,144,171,Form.cwidth-180,y.n,8,#scr_pal); |
DrawRectangle(Form.cwidth-180-1,y.n-1, 144+1,171+1, system.color.work_graph); |
DrawCaptButton(x,Form.cheight-66,300,30,10,system.color.work_button,system.color.work_button_text,MANUALLY_BUTTON_TEXT); |
DrawStandartCaptButton(x, Form.cheight-66, BTN_MANUAL_SEARCH, MANUALLY_BUTTON_TEXT); |
} |
void EventManualSearch() |
{ |
OpenDialog_start stdcall (#o_dialog); |
if (o_dialog.status) SetAdditionalSystemDirectory("kolibrios", #openfile_path+1); |
pause(3); |
CheckKosMounted(); |
} |
stop: |
/programs/cmm/app_plus/scr.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/programs/cmm/browser/WebView.c |
---|
15,6 → 15,7 |
#include "..\lib\collection.h" |
#include "..\lib\menu.h" |
#include "..\lib\random.h" |
#include "..\lib\clipboard.h" |
//*.obj libraries |
#include "..\lib\obj\box_lib.h" |
30,7 → 31,7 |
char homepage[] = FROM "html\\homepage.htm""\0"; |
#ifdef LANG_RUS |
char version[]="¥ªáâ®¢ë© ¡à 㧥à 1.71"; |
char version[]="¥ªáâ®¢ë© ¡à 㧥à 1.72"; |
?define IMAGES_CACHE_CLEARED "íè ª à⨮ª ®ç¨é¥" |
?define T_LAST_SLIDE "â® ¯®á«¥¤¨© á« ©¤" |
char loading[] = " £à㧪 áâà ¨æë...<br>"; |
40,10 → 41,11 |
"®á¬®âà¥âì ¨á室¨ª |
¥¤ ªâ¨à®¢ âì ¨á室¨ª |
áâ®à¨ï |
ç¨áâ¨âì ªíè ª à⨮ª |
¥¥¤¦¥à § £à㧮ª"; |
char link_menu[] = |
"®¯¨à®¢ âì áá뫪ã"; |
#else |
char version[]="Text-based Browser 1.71"; |
char version[]="Text-based Browser 1.72"; |
?define IMAGES_CACHE_CLEARED "Images cache cleared" |
?define T_LAST_SLIDE "This slide is the last" |
char loading[] = "Loading...<br>"; |
53,13 → 55,11 |
"View source |
Edit source |
History |
Free image cache |
Download Manager"; |
char link_menu[] = |
"Copy link"; |
#endif |
char link_menu[] = |
"Copy link |
Download link"; |
#define URL_SERVICE_HISTORY "WebView://history" |
#define URL_SERVICE_HOME "WebView://home" |
96,10 → 96,9 |
VIEW_SOURCE=1100, |
EDIT_SOURCE, |
VIEW_HISTORY, |
FREE_IMG_CACHE, |
//FREE_IMG_CACHE, |
DOWNLOAD_MANAGER, |
COPY_LINK=1200, |
DOWNLOAD_LINK |
COPY_LINK=1200 |
}; |
#include "..\TWB\TWB.c" |
130,7 → 129,6 |
loop() switch(WaitEvent()) |
{ |
case evMouse: |
if (!CheckActiveProcess(Form.ID)) break; |
edit_box_mouse stdcall (#address_box); |
mouse.get(); |
if (WB1.list.MouseOver(mouse.x, mouse.y)) |
361,11 → 359,11 |
} |
else RunProgram("/rd/1/tinypad", #URL); |
return; |
case FREE_IMG_CACHE: |
ImgCache.Free(); |
notify(IMAGES_CACHE_CLEARED); |
WB1.DrawPage(); |
return; |
// case FREE_IMG_CACHE: |
// ImgCache.Free(); |
// notify(IMAGES_CACHE_CLEARED); |
// WB1.DrawPage(); |
// return; |
case VIEW_HISTORY: |
strcpy(#URL, URL_SERVICE_HISTORY); |
OpenPage(); |
376,10 → 374,13 |
CreateThread(#Downloader,#downloader_stak+4092); |
} |
return; |
case COPY_LINK: |
Clipboard__CopyText(PageLinks.GetURL(PageLinks.active)); |
notify("'URL copied to clipboard'O"); |
return; |
} |
} |
void StopLoading() |
{ |
if (http_transfer) |
/programs/cmm/clipview/clipview.c |
---|
41,9 → 41,6 |
proc_info Form; |
Clipboard clipboard; |
//===================================================// |
// // |
// CODE // |
53,7 → 50,7 |
void main() |
{ |
int id; |
SetEventMask(0x27); |
SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER); |
load_dll(boxlib, #box_lib_init,0); |
loop() |
{ |
61,7 → 58,6 |
switch(EAX & 0xFF) |
{ |
case evMouse: |
if (!CheckActiveProcess(Form.ID)) break; |
SelectList_ProcessMouse(); |
break; |
98,7 → 94,7 |
break; |
default: |
if (clipboard.GetSlotCount() > select_list.count) ClipViewSelectListDraw(); |
if (Clipboard__GetSlotCount() > select_list.count) ClipViewSelectListDraw(); |
break; |
} |
} |
119,6 → 115,16 |
SelectList_DrawBorder(); |
} |
dword slot_data; |
struct clipboard_data |
{ |
dword size; |
dword type; |
dword encoding; |
dword content; |
dword content_offset; |
} cdata; |
void SelectList_DrawLine(dword i) |
{ |
int yyy, length, slot_data_type_number; |
126,13 → 132,20 |
dword size_kb; |
dword text_color = 0; |
clipboard.GetSlotData(select_list.first + i); |
slot_data = Clipboard__GetSlotData(select_list.first + i); |
cdata.size = ESDWORD[slot_data]; |
cdata.type = ESDWORD[slot_data+4]; |
if (cdata.type==SLOT_DATA_TYPE_TEXT) || (cdata.type==SLOT_DATA_TYPE_TEXT_BLOCK) |
cdata.content_offset = 12; |
else |
cdata.content_offset = 8; |
cdata.content = slot_data + cdata.content_offset; |
yyy = i*select_list.item_h+select_list.y; |
WriteText(select_list.x+12, yyy+select_list.text_y, select_list.font_type, text_color, itoa(select_list.first + i)); |
//WriteText(select_list.x+44, yyy+select_list.text_y, select_list.font_type, text_color, itoa(clipboard.slot_data.size)); |
size_kb = ConvertSizeToKb(clipboard.slot_data.size); |
size_kb = ConvertSizeToKb(cdata.size); |
WriteText(select_list.x+44, yyy+select_list.text_y, select_list.font_type, text_color, size_kb); |
slot_data_type_number = clipboard.slot_data.type; |
slot_data_type_number = cdata.type; |
WriteText(select_list.x+140, yyy+select_list.text_y, select_list.font_type, text_color, data_type[slot_data_type_number]); |
WriteText(select_list.x+select_list.w - 88, yyy+select_list.text_y, select_list.font_type, 0x006597, T_VIEW_OPTIONS); |
DefineButton(select_list.x+select_list.w - 95, yyy, 50, select_list.item_h, 100+i+BT_HIDE, NULL); |
139,8 → 152,8 |
DefineButton(select_list.x+select_list.w - 95 + 51, yyy, 40, select_list.item_h, 300+i+BT_HIDE, NULL); |
length = select_list.w-236 - 95 / select_list.font_w - 2; |
if (clipboard.slot_data.size-8 < length) length = clipboard.slot_data.size-8; |
memmov(#line_text, clipboard.slot_data.content, length); |
if (cdata.size - cdata.content_offset < length) length = cdata.size - cdata.content_offset; |
memmov(#line_text, cdata.content, length); |
replace_char(#line_text, 0, 31, length); // 31 is a dot |
WriteText(select_list.x+236, yyy+select_list.text_y, select_list.font_type, text_color, #line_text); |
} |
155,9 → 168,8 |
ESBYTE[in_str+length]=0; |
} |
int SaveSlotContents(int slot_id) { |
clipboard.GetSlotData(slot_id); |
EAX = WriteFile(clipboard.slot_data.size, clipboard.slot_data.content, DEFAULT_SAVE_PATH); |
int SaveSlotContents(dword size, off) { |
EAX = WriteFile(size, off, DEFAULT_SAVE_PATH); |
if (!EAX) |
{ |
return true; |
169,7 → 181,7 |
} |
void ClipViewSelectListDraw() { |
select_list.count = clipboard.GetSlotCount(); |
select_list.count = Clipboard__GetSlotCount(); |
SelectList_Draw(); |
} |
188,27 → 200,33 |
int i; |
for (i=0; i<select_list.visible; i++;) DeleteButton(select_list.first + i + 100); |
for (i=0; i<select_list.visible; i++;) DeleteButton(select_list.first + i + 300); |
clipboard.DelLastSlot(); |
Clipboard__DeleteLastSlot(); |
ClipViewSelectListDraw(); |
} |
void EventDeleteAllSlots() |
{ |
while (clipboard.GetSlotCount()) clipboard.DelLastSlot(); |
while (Clipboard__GetSlotCount()) Clipboard__DeleteLastSlot(); |
ClipViewSelectListDraw(); |
} |
void EventResetBufferLock() { |
clipboard.ResetBlockingBuffer(); |
Clipboard__ResetBlockingBuffer(); |
ClipViewSelectListDraw(); |
} |
void EventOpenAsText(int slot_id) { |
if (SaveSlotContents(slot_id)) RunProgram("/sys/tinypad", DEFAULT_SAVE_PATH); |
slot_data = Clipboard__GetSlotData(slot_id); |
cdata.size = ESDWORD[slot_data]-12; |
cdata.content = slot_data+12; |
if (SaveSlotContents(cdata.size, cdata.content)) RunProgram("/sys/tinypad", DEFAULT_SAVE_PATH); |
} |
void EventOpenAsHex(int slot_id) { |
if (SaveSlotContents(slot_id)) RunProgram("/sys/develop/heed", DEFAULT_SAVE_PATH); |
slot_data = Clipboard__GetSlotData(slot_id); |
cdata.size = ESDWORD[slot_data]; |
cdata.content = slot_data; |
if (SaveSlotContents(cdata.size, cdata.content)) RunProgram("/sys/develop/heed", DEFAULT_SAVE_PATH); |
} |
stop: |
/programs/cmm/lib/clipboard.h |
---|
6,25 → 6,23 |
#include "../lib/kolibri.h" |
#endif |
struct buffer_data |
{ |
dword size; |
dword type; |
dword encoding; |
dword content; |
}; |
#ifndef INCLUDE_FILESYSTEM_H |
#include "../lib/file_system.h" |
#endif |
struct Clipboard { |
buffer_data slot_data; |
dword GetSlotCount(); |
dword GetSlotData( ECX); |
dword SetSlotData( EDX, ESI); |
dword DelLastSlot(); |
dword ResetBlockingBuffer(); |
}; |
//===================================================// |
// // |
// Kolibri Clipboard System Functions // |
// // |
//===================================================// |
dword Clipboard::GetSlotCount() |
#define SLOT_DATA_TYPE_TEXT 0 |
#define SLOT_DATA_TYPE_TEXT_BLOCK 1 |
#define SLOT_DATA_TYPE_IMAGE 2 |
#define SLOT_DATA_TYPE_RAW 3 |
inline fastcall dword Clipboard__GetSlotCount() |
{ |
$mov eax, 54 |
$mov ebx, 0 |
31,26 → 29,14 |
$int 0x40 |
} |
#define SLOT_DATA_TYPE_TEXT 0 |
#define SLOT_DATA_TYPE_TEXT_WITH_BLOCK_SELECTION 1 |
#define SLOT_DATA_TYPE_IMAGE 2 |
#define SLOT_DATA_TYPE_RAW 3 |
dword Clipboard::GetSlotData( ECX) //ECX = slot number |
inline fastcall dword Clipboard__GetSlotData( ECX) //ECX = slot number |
{ |
dword result; |
$mov eax, 54 |
$mov ebx, 1 |
$int 0x40 |
result = EAX; |
slot_data.size = DSDWORD[result]; |
slot_data.type = DSDWORD[result+4]; |
slot_data.encoding = DSDWORD[result+8]; |
if (slot_data.type == SLOT_DATA_TYPE_TEXT) slot_data.content = result+12; |
else slot_data.content = result+8; |
return result; |
} |
dword Clipboard::SetSlotData( ECX, EDX) //ECX = data size, EDX - pointer to data |
inline fastcall dword Clipboard__SetSlotData( ECX, EDX) //ECX = data size, EDX - pointer to data |
{ |
$mov eax, 54 |
$mov ebx, 2 |
57,7 → 43,7 |
$int 0x40 |
} |
dword Clipboard::DelLastSlot() |
inline fastcall dword Clipboard__DeleteLastSlot() |
{ |
$mov eax, 54 |
$mov ebx, 3 |
64,7 → 50,7 |
$int 0x40 |
} |
dword Clipboard::ResetBlockingBuffer() |
inline fastcall dword Clipboard__ResetBlockingBuffer() |
{ |
$mov eax, 54 |
$mov ebx, 4 |
71,4 → 57,29 |
$int 0x40 |
} |
//===================================================// |
// // |
// Some useful patterns // |
// // |
//===================================================// |
:void Clipboard__CopyText(dword _text) |
{ |
int size_buf; |
dword buff_data; |
size_buf = strlen(_text) + 12; |
buff_data = malloc(size_buf); |
ESDWORD[buff_data] = size_buf; |
ESDWORD[buff_data+4] = SLOT_DATA_TYPE_TEXT; |
ESDWORD[buff_data+8] = 1; //encoding 0=UTF, 1=866, 2=1251 |
strcpy(buff_data+12, _text); |
Clipboard__SetSlotData(size_buf, buff_data); |
if (EAX!=0) notify("'Error while copying to clipboard!'E"); |
buff_data = free(buff_data); |
} |
#endif |
/programs/cmm/pipet/compile_en.bat |
---|
1,5 → 1,5 |
@del pipet.kex |
@del pipet |
@c-- pipet.c |
@rename *.com *.kex |
@rename *.com *. |
@del warning.txt |
@pause |
/programs/cmm/pipet/pipet.c |
---|
11,10 → 11,9 |
//===================================================// |
proc_info Form; |
Clipboard clipboard; |
dword pick_active = true; |
dword picked_color = 0; |
char picked_color_string[10]; |
char picked_color_string[11]="0x00111222\0"; |
#define FORM_W 167 |
#define FORM_H 60 |
#define COLOR_BLOCK_SIZE 42 |
55,7 → 54,7 |
case evButton: |
btn = GetButtonID(); |
if (btn == BUTTON_ID_CLOSE) ExitProcess(); |
if (btn == BUTTON_ID_COPY) EventCopyIntoSystemBuffer(); |
if (btn == BUTTON_ID_COPY) EventCopyHex(); |
if (btn == BUTTON_ID_PICK) pick_active = true; |
break; |
63,7 → 62,7 |
GetKeys(); |
if (key_scancode == SCAN_CODE_ESC) ExitProcess(); |
if (key_modifier&KEY_LCTRL) || (key_modifier&KEY_RCTRL) |
if (key_scancode==SCAN_CODE_KEY_C) EventCopyIntoSystemBuffer(); |
if (key_scancode==SCAN_CODE_KEY_C) EventCopyHex(); |
break; |
case evReDraw: |
113,21 → 112,7 |
WriteTextCenter(_x, _h-8/2 + _y, _w, _color, "Copy"); |
} |
struct _clipboard_pipet_data_text |
void EventCopyHex() |
{ |
dword size; |
dword type; |
dword encoding; //encoding 0=UTF, 1=866, 2=1251 |
char color_text[7]; |
}; |
void EventCopyIntoSystemBuffer() |
{ |
_clipboard_pipet_data_text clipboard_buf; |
clipboard_buf.size = 19; |
clipboard_buf.type = SLOT_DATA_TYPE_TEXT; |
clipboard_buf.encoding = 1; |
strcpy(#clipboard_buf.color_text, #picked_color_string+4); |
clipboard_buf.color_text[7] = NULL; |
clipboard.SetSlotData(clipboard_buf.size, #clipboard_buf); |
} |
Clipboard__CopyText(#picked_color_string+4); |
} |