/programs/cmm/browser/buidin_pages/page_not_found_ru.htm |
---|
File deleted |
\ No newline at end of file |
/programs/cmm/browser/buidin_pages/help_ru.htm |
---|
File deleted |
\ No newline at end of file |
/programs/cmm/browser/buidin_pages/homepage_en.htm |
---|
File deleted |
\ No newline at end of file |
/programs/cmm/browser/buidin_pages/page_not_found_en.htm |
---|
File deleted |
\ No newline at end of file |
/programs/cmm/browser/buidin_pages/help_en.htm |
---|
File deleted |
\ No newline at end of file |
/programs/cmm/browser/buidin_pages/homepage_ru.htm |
---|
File deleted |
\ No newline at end of file |
/programs/cmm/browser/buidin_pages |
---|
Property changes: |
Deleted: tsvn:logminsize |
-5 |
\ No newline at end of property |
/programs/cmm/browser/texts.h |
---|
1,9 → 1,9 |
char version[]="WebView 2.61"; |
#ifdef LANG_RUS |
char buidin_page_error[] = FROM "buidin_pages\\page_not_found_ru.htm""\0"; |
char buidin_page_home[] = FROM "buidin_pages\\homepage_ru.htm""\0"; |
char buidin_page_help[] = FROM "buidin_pages\\help_ru.htm""\0"; |
char page_not_found[] = FROM "html\\page_not_found_ru.htm""\0"; |
char homepage[] = FROM "html\\homepage_ru.htm""\0"; |
char help[] = FROM "html\\help_ru.htm""\0"; |
char accept_language[]= "Accept-Language: ru\n"; |
char rmb_menu[] = |
"®á¬®âà¥âì ¨á室¨ª|Ctrl+U |
31,9 → 31,9 |
char update_can_not_copy[] = "'WebView\n¥ ¬®£ã ¯¥à¥¬¥áâ¨âì ®¢ãî ¢¥àá¨î ¨§ ¯ ¯ª¨ Downloads Ramdisk. ®§¬®¦®, ¥ ¤®áâ â®ç® ¬¥áâ .' -tE"; |
char clear_cache_ok[] = "'WebView\níè ®ç¨é¥.' -tI"; |
#else |
char buidin_page_error[] = FROM "buidin_pages\\page_not_found_en.htm""\0"; |
char buidin_page_home[] = FROM "buidin_pages\\homepage_en.htm""\0"; |
char buidin_page_help[] = FROM "buidin_pages\\help_en.htm""\0"; |
char page_not_found[] = FROM "html\\page_not_found_en.htm""\0"; |
char homepage[] = FROM "html\\homepage_en.htm""\0"; |
char help[] = FROM "html\\help_en.htm""\0"; |
char accept_language[]= "Accept-Language: en\n"; |
char rmb_menu[] = |
"View source|Ctrl+U |
/programs/cmm/browser/WebView.c |
---|
592,16 → 592,6 |
history.add(#new_url); |
/* |
There could be several possible types of addresses: |
- cached page (only http/https) |
- internal page |
- web page |
- local file |
So we need to detect what incoming address is |
and then halndle it in the propper way. |
*/ |
if (pages_cache.has(#new_url)) { |
//CACHED PAGE |
LoadInternalPage(pages_cache.current_page_buf, pages_cache.current_page_size); |
608,10 → 598,10 |
} else if (!strncmp(#new_url,"WebView:",8)) { |
//INTERNAL PAGE |
if (streq(#new_url, URL_SERVICE_HOMEPAGE)) LoadInternalPage(#buidin_page_home, sizeof(buidin_page_home)); |
else if (streq(#new_url, URL_SERVICE_HELP)) LoadInternalPage(#buidin_page_help, sizeof(buidin_page_help)); |
else if (streq(#new_url, URL_SERVICE_HISTORY)) ShowHistory(); |
else LoadInternalPage(#buidin_page_error, sizeof(buidin_page_error)); |
if (!strcmp(#new_url, URL_SERVICE_HOMEPAGE)) LoadInternalPage(#homepage, sizeof(homepage)); |
else if (!strcmp(#new_url, URL_SERVICE_HELP)) LoadInternalPage(#help, sizeof(help)); |
else if (!strcmp(#new_url, URL_SERVICE_HISTORY)) ShowHistory(); |
else LoadInternalPage(#page_not_found, sizeof(page_not_found)); |
} else if (!strncmp(#new_url,"http:",5)) || (!strncmp(#new_url,"https:",6)) { |
//WEB PAGE |
631,7 → 621,7 |
if (!http.transfer) { |
StopLoading(); |
LoadInternalPage(#buidin_page_error, sizeof(buidin_page_error)); |
LoadInternalPage(#page_not_found, sizeof(page_not_found)); |
} |
} else { |
//LOCAL PAGE |
643,7 → 633,7 |
strcpy(#new_url, "/tmp0/1/temp/word/document.xml"); |
} |
if (!GetLocalFileData(#new_url)) { |
LoadInternalPage(#buidin_page_error, sizeof(buidin_page_error)); |
LoadInternalPage(#page_not_found, sizeof(page_not_found)); |
} |
} |
} |
760,7 → 750,7 |
void LoadInternalPage(dword _bufdata, _in_bufsize){ |
if (!_bufdata) || (!_in_bufsize) { |
LoadInternalPage(#buidin_page_error, sizeof(buidin_page_error)); |
LoadInternalPage(#page_not_found, sizeof(page_not_found)); |
} else { |
WB1.list.first = 0; //scroll page to the top |
DrawOmnibox(); |
/programs/cmm/browser/html/help_en.htm |
---|
0,0 → 1,28 |
<html> |
<head> |
<meta charset="uft"> |
<title>WebView Help</title> |
</head> |
<body> |
<h1>WebView Text-Based Browser</h1> |
It is free and open-source. If you have any suggestions or want to help improving it please visit its topic at <a href="http://board.kolibrios.org/viewtopic.php?f=40&t=1075">board.kolibrios.org</a><pre> |
<b>Shortcut keys</b> |
<font bg="#C7CEE4">[CTRL + N or CTRL + T]</font> New window |
<font bg="#C7CEE4">[CTRL + R or F5]</font> Refresh the current page |
<font bg="#C7CEE4">[CTRL + O]</font> Start OpenDialog to open local file |
<font bg="#C7CEE4">[CTRL + U]</font> View a web page's source code |
<font bg="#C7CEE4">[CTRL + H]</font> Open browser history |
<font bg="#C7CEE4">[CTRL + J]</font> Display the file downloader |
<font bg="#C7CEE4">[CTRL + W]</font> Exit browser |
<font bg="#C7CEE4">[CTRL + ENTER]</font> Submit a web search |
<font bg="#C7CEE4">[CTRL + LEFT]</font> Back a page. |
<font bg="#C7CEE4">[CTRL + RIGHT]</font> Forward a page. |
<font bg="#C7CEE4">[F6]</font> Moves a text cursor to the omnibox |
</pre> |
</body> |
</html> |
/programs/cmm/browser/html/homepage_en.htm |
---|
0,0 → 1,21 |
<html> |
<head> |
<meta charset="uft"> |
<title>Homepage</title> |
</head> |
<body><pre>Bookmarks: |
1. <a href="http://kolibrios.org" id="valera">KolibriOS homepage</a> |
2. <a href="http://kolibri-n.org" id="hodor">KolibriN homepage</a> |
3. <a href="http://store.kolibri-n.org">Kolibri Stuff</a> |
<font bg=#F8F15B>By the way,</font> |
<font color="#555555">• You can check for browser updates from the main menu. |
• To run a web search, type a text in the adress box and press Ctrl+Enter. |
• You can also use other <a href="WebView:help"><font color="#555555">Hotkeys</font></a>. |
• Click on a label in the bottom right corner to change the encoding of a page. |
</font> |
</pre> |
</body> |
</html> |
/programs/cmm/browser/html/homepage_ru.htm |
---|
0,0 → 1,20 |
<html> |
<head> |
<meta charset="cp-866"> |
<title>®¬ èïï áâà ¨æ </title> |
</head> |
<body><pre> ª« ¤ª¨: |
1. <a href="http://kolibrios.org" id="valera">®¬ èïï áâà ¨æ KolibriOS</a> |
2. <a href="http://kolibri-n.org" id="hodor">KolibriN10</a> |
3. <a href="http://store.kolibri-n.org">Kolibri Store</a> |
<font bg=#F8F15B>áâ â¨,</font> |
<font color="#555555">• § £« ¢®£® ¬¥î ¬®¦® ¯à®¢¥à¨âì «¨ç¨¥ ®¡®¢«¥¨© |
• «ï ¯®¨áª ¢ Google ¡¥à¨â¥ â¥áâ ¢ ¤à¥á®© áâப¥ ¨ ¦¬¨â¥ Ctrl+Enter |
• áâì â ª¦¥ ¤à㣨¥ <a href="WebView:help"><font color="#555555">®àï稥 ª« ¢¨è¨</font></a>. |
• ®¦® ¨§¬¥¨âì ª®¤¨à®¢ªã áâà ¨æë, ¤«ï í⮣® ¦¬¨â¥ ¤¯¨áì ¢ ¯à ¢®¬ ¨¦¥¬ 㣫㠮ª . |
</font> |
</pre> |
</body> |
</html> |
/programs/cmm/browser/html/help_ru.htm |
---|
0,0 → 1,24 |
<html> |
<head> |
<meta charset="cp-866"> |
<title>¯à ¢ª WebView</title> |
</head> |
<body><pre><h1>¯à ¢ª WebView</h1> |
<b>« ¢¨è¨ ¡ëáâண® ¢ë§®¢ </b> |
<font bg="#C7CEE4">[CTRL + N ¨«¨ CTRL + T]</font> ®¢®¥ ®ª® |
<font bg="#C7CEE4">[CTRL + R ¨«¨ F5]</font> ¥à¥§ £à㧨âì áâà ¨æã |
<font bg="#C7CEE4">[CTRL + O]</font> 맢 âì ¤¨ «®£ ¢ë¡®à ä ©« |
<font bg="#C7CEE4">[CTRL + U]</font> ¬®âà¥âì ¨áå®¤ë© ª®¤ áâà ¨æë |
<font bg="#C7CEE4">[CTRL + H]</font> ¬®âà¥âì ¨áâ®à¨î ¯®á¥é¥ëå áâà ¨æ |
<font bg="#C7CEE4">[CTRL + J]</font> âªàëâì § £àã§ç¨ª ä ©«®¢ |
<font bg="#C7CEE4">[CTRL + W]</font> ªàëâì ¡à 㧥à |
<font bg="#C7CEE4">[CTRL + ENTER]</font> ®¨áª ¢ ¨â¥à¥â¥ á ¯®¬®éìî Google |
<font bg="#C7CEE4">[CTRL + ]</font> «®£¨ç® ª®¯ª¥ " § ¤" ¢ ¡à 㧥ॠ|
<font bg="#C7CEE4">[CTRL + ]</font> «®£¨ç® ª®¯ª¥ "¯¥à¥¤" |
<font bg="#C7CEE4">[F6]</font> ¥à¥¬¥é ¥â ⥪áâ®¢ë© ªãàá®à ¢ ®¬¨¡®ªá |
</pre> |
</body> |
</html> |
/programs/cmm/browser/html/page_not_found_ru.htm |
---|
0,0 → 1,27 |
<html> |
<head> |
<meta charset="cp-866"> |
<title>âà ¨æ ¥ ©¤¥ </title> |
</head> |
<body> |
<h1> ¥¡-áâà ¨æ ¥¤®áâ㯠</h1> |
<h2> â® ¬®¦® ᤥ« âì:</h2> |
<ul> |
<li> |
¡¥¤¨â¥áì, çâ® ¥áâì ¯®¤ª«î票¥ ª á¥â¨ â¥à¥â.<br> |
âªà®©â¥ <a href="/sys/network/netcfg">Netcfg</a> ¤«ï ¤¨ £®á⨪¨ á¥â¨.<br> |
</li> |
<li> |
஢¥àì⥠¤à¥áá áâà ¨æë, ¢®§¬®¦®, ¡ë« ᤥ« ®¯¥ç ⪠.<br> |
</li> |
<li> |
¥à¢¥à ¢à¥¬¥® ¥¤®áâ㯥. <br> |
¡®¢¨â¥ áâà ¨æã.<br> |
</li> |
<li> |
¥ªáâ®¢ë© ¡à ã§¥à ¥ ¯à ¢¨«ì® ®¡à ¡®â « ®â¢¥â á¥à¢¥à .<br> |
®®¡é¨â¥ ®¡ ®è¨¡ª¥.<br> |
</li> |
</ul> |
</body> |
</html> |
/programs/cmm/browser/html/page_not_found_en.htm |
---|
0,0 → 1,27 |
<html> |
<head> |
<meta http-equiv="content-type" content="text/html; charset=cp-866" /> |
<title>Page not found</title> |
</head> |
<body> |
<h1> Webpage Not Available</h1> |
<h2> What could be done:</h2> |
<ul> |
<li> |
Make sure that evetything fine with Internet connection.<br> |
Open <a href="/sys/network/netcfg">Netcfg</a> network diagnostic tool.<br> |
</li> |
<li> |
Check page address, there may have been made a typo.<br> |
</li> |
<li> |
Server is temporarily unavailable.<br> |
Refresh the page.<br> |
</li> |
<li> |
Browser doesn't handled properly server's response.<br> |
Please, report an error.<br> |
</li> |
</ul> |
</body> |
</html> |
/programs/cmm/browser/html |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/cmm/aelia/aelia.c |
---|
0,0 → 1,560 |
#define MEMSIZE 1024*400 |
#include "../lib/gui.h" |
#include "../lib/kfont.h" |
#include "../lib/io.h" |
#include "../lib/cursor.h" |
#include "../lib/list_box.h" |
#include "../lib/obj/box_lib.h" |
#include "../lib/obj/libini.h" |
#include "../lib/obj/iconv.h" |
#include "../lib/obj/libimg.h" |
#include "../lib/obj/proc_lib.h" |
#include "../lib/obj/http.h" |
#include "../lib/patterns/simple_open_dialog.h" |
#include "../lib/patterns/history.h" |
#include "../lib/patterns/http_downloader.h" |
#include "../browser/download_manager.h" |
llist list; |
#include "link.h" |
#include "canvas.h" |
#include "favicon.h" |
_history history; |
char default_dir[] = "/rd/1"; |
od_filter filter2 = { 16, "TXT\0HTM\0HTML\0\0" }; |
char accept_language[]= "Accept-Language: ru\n"; |
#define TOOLBAR_H 36 |
#define TOOLBAR_ICON_WIDTH 26 |
#define TOOLBAR_ICON_HEIGHT 24 |
#define STATUSBAR_H 15 |
#define DEFAULT_EDITOR "/sys/tinypad" |
#define DEFAULT_PREVIEW_PATH "/tmp0/1/aelia_preview.txt" |
//ATTENTION: each page must have '\0' character at the end of the file |
char buidin_page_home[] = FROM "buidin_pages\\home.htm"; |
char buidin_page_about[] = FROM "buidin_pages\\about.htm"; |
char buidin_page_not_found[] = FROM "buidin_pages\\not_found.htm"; |
#define UML 4096*2 |
scroll_bar scroll = { 15,200,398,44,0,2,115,15,0,0xeeeeee,0xBBBbbb,0xeeeeee,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1}; |
proc_info Form; |
char title[4196]; |
enum { |
OPEN_FILE, |
MAGNIFY_MINUS, |
MAGNIFY_PLUS, |
CHANGE_ENCODING, |
RUN_EDIT, |
GO_BACK, |
GO_FORWARD, |
SANDWICH |
}; |
char address[UML]; |
edit_box address_box = {250,56,34,0xffffff,0x94AECE,0xffffff,0xffffff,0,UML,#address,NULL,2,19,19}; |
bool debug_mode=false; |
#include "ini.h" |
#include "gui.h" |
#include "prepare_page.h" |
//#include "special.h" |
int menu_id=0; |
#define SANDWICH_MENU "Refresh page\nEdit page\nHistory\nDownloader\nAbout" |
void InitDlls() |
{ |
load_dll(boxlib, #box_lib_init, 0); |
load_dll(libHTTP, #http_lib_init, 1); |
load_dll(libio, #libio_init, 1); |
load_dll(libimg, #libimg_init, 1); |
//load_dll(libini, #lib_init, 1); |
load_dll(iconv_lib, #iconv_open, 0); |
load_dll(Proc_lib, #OpenDialog_init,0); |
} |
void main() |
{ |
InitDlls(); |
OpenDialog_init stdcall (#o_dialog); |
LoadIniSettings(); |
kfont.init(DEFAULT_FONT); |
Libimg_LoadImage(#skin, abspath("atoolbar.png")); |
list.no_selection = true; |
SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER + EVM_STACK); |
loop() |
{ |
switch(WaitEvent()) |
{ |
case evMouse: |
HandleMouseEvent(); |
break; |
case evKey: |
HandleKeyEvent(); |
break; |
case evButton: |
HandleButtonEvent(); |
break; |
case evNetwork: |
HandleNetworkEvent(); |
break; |
case evReDraw: |
draw_window(); |
if (CheckActiveProcess(Form.ID)) EventMenuClick(); |
} |
} |
} |
void HandleButtonEvent() |
{ |
byte btn = GetButtonID(); |
if (btn==1) { |
SaveIniSettings(); |
ExitProcess(); |
} |
switch(btn-10) |
{ |
case GO_BACK: |
EventGoBack(); |
break; |
case GO_FORWARD: |
EventGoForward(); |
break; |
case OPEN_FILE: |
EventOpenDialog(); |
break; |
case MAGNIFY_PLUS: |
EventMagnifyPlus(); |
break; |
case MAGNIFY_MINUS: |
EventMagnifyMinus(); |
break; |
case CHANGE_ENCODING: |
EventChangeEncoding(); |
break; |
case RUN_EDIT: |
EventRunEdit(); |
break; |
case SANDWICH: |
EventShowSandwichMenu(); |
break; |
} |
} |
void HandleKeyEvent() |
{ |
GetKeys(); |
if (key_modifier & KEY_LCTRL) || (key_modifier & KEY_RCTRL) { |
switch (key_scancode) |
{ |
case SCAN_CODE_UP: |
EventMagnifyPlus(); |
return; |
case SCAN_CODE_DOWN: |
EventMagnifyMinus(); |
return; |
case SCAN_CODE_KEY_O: |
EventOpenDialog(); |
return; |
case SCAN_CODE_KEY_E: |
EventRunEdit(); |
return; |
case SCAN_CODE_KEY_H: |
EventShowHistory(); |
return; |
case SCAN_CODE_TAB: |
EventChangeEncoding(); |
return; |
} |
} |
switch (key_scancode) |
{ |
case SCAN_CODE_F1: |
EventShowInfo(); |
return; |
case SCAN_CODE_F12: |
EventChangeDebugMode(); |
return; |
case SCAN_CODE_ENTER: |
EventOpenAddress(#address); |
return; |
case SCAN_CODE_BS: |
if (! address_box.flags & ed_focus) { |
EventGoBack(); |
return; |
} |
} |
if (list.ProcessKey(key_scancode)) && (! address_box.flags & ed_focus) { |
DrawPage(); |
return; |
} |
if (key_ascii != ASCII_KEY_ENTER) |
&& (key_ascii != ASCII_KEY_PGDN) |
&& (key_ascii != ASCII_KEY_PGUP) { |
EAX = key_editbox; |
edit_box_key stdcall(#address_box); |
} |
} |
void HandleMouseEvent() |
{ |
edit_box_mouse stdcall (#address_box); |
mouse.get(); |
list.wheel_size = 7; |
if (link.hover(mouse.x, mouse.y)) { |
if (-1 == link.active) { |
DrawStatusBar( " " ); //just clean status bar |
} |
else { |
DrawStatusBar( link.get_active_url() ); |
} |
} |
if (mouse.key&MOUSE_LEFT) && (mouse.up) { |
if (-1 != link.active) EventOpenAddress( link.get_active_url() ); |
} |
if (list.MouseScroll(mouse.vert)) { |
DrawPage(); |
return; |
} |
scrollbar_v_mouse (#scroll); |
if (list.first != scroll.position) { |
list.first = scroll.position; |
DrawPage(); |
} |
} |
void HandleNetworkEvent() |
{ |
char favicon_address[UML]; |
if (downloader.state == STATE_IN_PROGRESS) { |
downloader.MonitorProgress(); |
if (downloader.httpd.content_length>0) |
DrawProgress(STEP_2_COUNT_PAGE_HEIGHT-STEP_1_DOWNLOAD_PAGE* |
downloader.httpd.content_received/downloader.httpd.content_length); |
else |
DrawProgress(STEP_2_COUNT_PAGE_HEIGHT-STEP_1_DOWNLOAD_PAGE/2); |
} |
if (downloader.state == STATE_COMPLETED) |
{ |
if (!strncmp(downloader.url,"http://gate.aspero.pro/",22)) { |
strcpy(#address,downloader.url + 29); |
} |
else { |
strcpy(#address,downloader.url); |
} |
downloader.Stop(); |
DrawAddressBox(); |
io.buffer_data = downloader.bufpointer; |
/* |
get_absolute_url(#favicon_address, #address, "/favicon.ico"); |
favicon.get(#favicon_address); |
*/ |
PostOpenPageActions(); |
} |
} |
/* ----------------------------------------------------- */ |
void EventOpenDialog() |
{ |
OpenDialog_start stdcall (#o_dialog); |
if (o_dialog.status) EventOpenAddress(#openfile_path); |
} |
void EventOpenAddress(dword _new_address) |
{ |
char temp[UML]; |
char getUrl[UML]; |
if (!ESBYTE[_new_address]) return; |
debugln("===================================="); |
debug("address: "); |
debugln(_new_address); |
strlcpy(#address, _new_address, UML); |
strlwr(#address); |
DrawAddressBox(); |
/* |
There could be several possible types of addresses: |
- build in page |
- local file |
- url |
So we need to detect what incoming address is |
and then halndle it in the propper way. |
*/ |
io.buffer_data = 0; |
favicon.get(NULL); |
// - build in page |
if (!strncmp(#address,"aelia:",6)) { |
debugln("this is buildin page"); |
if (!strcmp(#address,"aelia:home")) io.buffer_data = #buidin_page_home; |
if (!strcmp(#address,"aelia:about")) io.buffer_data = #buidin_page_about; |
if (!strcmp(#address,"aelia:history")) io.buffer_data = MakePageWithHistory(); |
PostOpenPageActions(); |
} |
// - local file |
else if (check_is_the_adress_local(#address)==true) { |
debugln("this is local address"); |
io.read(#address); |
PostOpenPageActions(); |
} |
// - url |
else { |
debugln("this is url"); |
if (!strncmp(#address,"https://",8)) { |
sprintf(#getUrl, "http://gate.aspero.pro/?site=%s", #address); |
} |
else if (!strncmp(#address,"http://",7)) { |
strlcpy(#getUrl, #address, UML); |
} |
else { |
strcpy(#temp, "http://"); |
strlcpy(#temp, #address, UML); |
strlcpy(#address, #temp, UML); |
DrawAddressBox(); |
strlcpy(#getUrl, #address, UML); |
} |
downloader.Start(#getUrl); |
} |
} |
void PostOpenPageActions() |
{ |
if (!io.buffer_data) { |
debugln("page not found"); |
io.buffer_data = #buidin_page_not_found; |
} |
history.add(#address); |
favicon.draw(address_box.left-18, address_box.top-1); |
/* |
Great! So we have the page in our buffer. |
We don't know is it a plain text or html. |
So we need to parse it and draw. |
*/ |
list.KeyHome(); |
PreparePage(); |
} |
void EventMagnifyPlus() |
{ |
kfont.size.pt++; |
if(!kfont.changeSIZE()) |
kfont.size.pt--; |
else |
PreparePage(); |
} |
void EventMagnifyMinus() |
{ |
kfont.size.pt--; |
if(!kfont.changeSIZE()) |
kfont.size.pt++; |
else |
PreparePage(); |
} |
void EventRunEdit() |
{ |
if (check_is_the_adress_local(history.current())==true) { |
io.run(DEFAULT_EDITOR, history.current()); |
} |
else { |
//io.write(strlen(io.buffer_data), io.buffer_data, DEFAULT_PREVIEW_PATH); // <--- doesn't work, smth odd, need to check |
CreateFile(strlen(io.buffer_data), io.buffer_data, DEFAULT_PREVIEW_PATH); |
io.run(DEFAULT_EDITOR, DEFAULT_PREVIEW_PATH); |
} |
} |
void EventChangeEncoding() |
{ |
menu_id = 10; |
open_lmenu(Form.left+Form.cwidth-36,Form.top+TOOLBAR_H+skin_height-6, MENU_ALIGN_TOP_RIGHT, |
encoding+1, "UTF-8\nKOI8-RU\nCP1251\nCP1252\nISO8859-5\nCP866"); |
} |
void EventShowSandwichMenu() |
{ |
menu_id = 20; |
open_lmenu(Form.left+Form.cwidth+3,Form.top+TOOLBAR_H+skin_height-6, |
MENU_ALIGN_TOP_RIGHT, 0, SANDWICH_MENU); |
} |
void EventMenuClick() |
{ |
dword click_id = get_menu_click(); |
if (menu_id == 10) && (click_id) { |
encoding = click_id-1; |
EventPageRefresh(); |
menu_id = 0; |
} |
if (menu_id == 20) {switch(click_id) { |
case 1: EventPageRefresh(); break; |
case 2: EventRunEdit(); break; |
case 3: EventShowHistory(); break; |
case 4: EventShowDownloader(); break; |
case 5: EventShowInfo(); break; |
} menu_id = 0;} |
} |
void EventShowInfo() { |
EventOpenAddress("aelia:about"); |
} |
void EventShowHistory() |
{ |
EventOpenAddress("aelia:history"); |
} |
void EventGoBack() |
{ |
if (history.back()) EventOpenAddress(history.current()); |
} |
void EventGoForward() |
{ |
if (history.forward()) EventOpenAddress(history.current()); |
} |
void EventPageRefresh() |
{ |
EventOpenAddress(history.current()); |
} |
void EventShowDownloader() |
{ |
if (!downloader_opened) { |
downloader_edit = NULL; |
CreateThread(#Downloader,#downloader_stak+4092); |
} |
} |
void EventChangeDebugMode() |
{ |
debug_mode ^= 1; |
if (debug_mode) notify("'Debug mode ON'-I"); |
else notify("'Debug mode OFF'-I"); |
return; |
} |
/* ------------------------------------------- */ |
void draw_window() |
{ |
DefineAndDrawWindow(Form.left,Form.top,Form.width,Form.height,0x73,0,#title,0); |
GetProcessInfo(#Form, SelfInfo); |
if (Form.status_window>2) return; |
if (Form.width < 200) { MoveSize(OLD,OLD,200,OLD); return; } |
if (Form.height < 200) { MoveSize(OLD,OLD,OLD,200); return; } |
sc.get(); |
list.SetSizes(0, TOOLBAR_H, Form.cwidth-scroll.size_x-1, |
Form.cheight-TOOLBAR_H-STATUSBAR_H, kfont.size.pt+4); |
DrawBar(0, 0, Form.cwidth, TOOLBAR_H - 2, 0xe1e1e1); |
DrawBar(0, TOOLBAR_H - 2, Form.cwidth, 1, 0xcecece); |
DrawBar(0, TOOLBAR_H - 1, Form.cwidth, 1, 0x7F7F7F); |
DrawToolbarButton(GO_BACK, 8); |
DrawToolbarButton(GO_FORWARD, 33); |
DrawToolbarButton(OPEN_FILE, 68); |
DrawToolbarButton(MAGNIFY_PLUS, Form.cwidth - 125); |
DrawToolbarButton(MAGNIFY_MINUS, Form.cwidth - 100); |
DrawToolbarButton(CHANGE_ENCODING, Form.cwidth - 64); |
DrawToolbarButton(SANDWICH, Form.cwidth - 31); |
DrawAddressBox(); |
if ((Form.cwidth-scroll.size_x-1 == list.w) && |
(Form.cheight-TOOLBAR_H == list.h) && |
(list.count) |
) |
{ |
DrawPage(); |
} |
else |
{ |
if (!kfont.raw) { //this code need to be run |
if (param) EventOpenAddress(#param); //only once at browser sturtup |
else EventOpenAddress("aelia:home"); |
} |
else PreparePage(); |
} |
DrawRectangle(scroll.start_x, scroll.start_y, scroll.size_x, scroll.size_y-1, scroll.bckg_col); |
DrawStatusBar(NULL); |
} |
void DrawPage() |
{ |
list.CheckDoesValuesOkey(); |
if (list.count) { |
kfont.ShowBufferPart(list.x, list.y, list.w, list.h, list.first*list.item_h*list.w); |
} |
DrawScroller(); |
} |
void DrawAddressBox() |
{ |
address_box.left = 97+19; |
address_box.top = 11; |
address_box.width = Form.cwidth - address_box.left - 138; |
DrawRectangle(address_box.left-4-19, address_box.top-5, address_box.width+6+19, 23, 0x8C8C8C); |
DrawWideRectangle(address_box.left-3-19, address_box.top-3, address_box.width+5+19, 21, 4, address_box.color); |
address_box.size = address_box.pos = address_box.shift = address_box.shift_old = strlen(#address); |
address_box.offset = 0; |
edit_box_draw stdcall(#address_box); |
favicon.draw(address_box.left-18, address_box.top-1); |
DrawBar(address_box.left-2, address_box.top+1, 2, 13, 0xFFFfff); |
} |
PathShow_data status_text = {0, 17,250, 6, 250, 0, 0, 0x0, 0xFFFfff, 0, NULL, 0}; |
void DrawStatusBar(dword _status_text) |
{ |
DrawBar(0,Form.cheight - STATUSBAR_H, Form.cwidth,STATUSBAR_H, sc.work); |
DrawBar(0,Form.cheight - STATUSBAR_H, Form.cwidth,1, 0x8C8C8C); |
if (_status_text) { |
status_text.start_x = 7; |
status_text.start_y = Form.cheight - STATUSBAR_H + 3; |
status_text.area_size_x = Form.cwidth - status_text.start_x -3; |
status_text.font_color = sc.work_text; |
status_text.text_pointer = _status_text; |
PathShow_prepare stdcall(#status_text); |
PathShow_draw stdcall(#status_text); |
} |
} |
/programs/cmm/aelia/atoolbar.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/cmm/aelia/canvas.h |
---|
0,0 → 1,36 |
struct _canvas |
{ |
dword write_text(); |
void draw_hor_line(); |
}; |
dword _canvas::write_text(int _x, _y; dword _text_col, _text_off) |
{ |
char error_message[128]; |
dword new_x; |
if (_x > list.w) { |
sprintf(#error_message, "ERROR: canvas.x overflow: H %d X %d", kfont.size.height, _x); |
debugln(#error_message); |
} |
if (_y+kfont.size.pt > kfont.size.height) { |
sprintf(#error_message, "ERROR: canvas.y overflow: H %d Y %d", kfont.size.height, _y); |
debugln(#error_message); |
return; |
} |
new_x = kfont.WriteIntoBuffer(_x, _y, list.w, kfont.size.height, 0xFFFFFF, _text_col, kfont.size.pt, _text_off); |
if (_y/list.item_h-list.first==list.visible) DrawPage(); |
return new_x; |
} |
void _canvas::draw_hor_line(dword _x, _y, _w, _color) |
{ |
int i; |
for (i = _y*list.w+_x*KFONT_BPP+kfont.raw ; i<_y*list.w+_x+_w*KFONT_BPP+kfont.raw ; i+=KFONT_BPP) |
{ |
ESDWORD[i] = _color; |
} |
} |
/programs/cmm/aelia/prepare_page.h |
---|
0,0 → 1,325 |
/*======================================================== |
= = |
= STYLE = |
= = |
========================================================*/ |
#define HTML_PADDING_X 8; |
#define HTML_PADDING_Y 5; |
struct _style { |
bool bold, underlined, italic, strike; |
bool h1, h2, h3, h4, h5, h6; |
bool a; |
bool pre; |
bool ignore; |
bool body; |
dword color; |
void clear(); |
}; |
void _style::clear() |
{ |
bold=underlined=italic=strike=0; |
h1=h2=h3=h4=h5=h6=0; |
a=0; |
pre=0; |
ignore=0; |
color=0; |
body=0; |
} |
/*======================================================== |
= = |
= TAG = |
= = |
========================================================*/ |
struct _tag { |
dword start; |
dword end; |
dword name; |
bool opens; |
dword attribute; |
dword value; |
void parse(); |
int nameis(); |
}; |
void _tag::parse() |
{ |
dword START = start; |
calc(1); //WTF |
if (ESBYTE[START]=='/') { |
START++; |
opens = false; |
} else opens = true; |
name = START; |
while ( (START < end) && (!__isWhite(ESBYTE[START])) ) { |
START++; |
} |
if (START!=end) ESBYTE[START] = '\0'; |
START++; |
strlwr(name); |
start = START; |
} |
int _tag::nameis(dword _in_tag_name) |
{ |
if (name) && (streq(_in_tag_name, name)) return true; |
return false; |
} |
/*======================================================== |
= = |
= DRAW = |
= = |
========================================================*/ |
struct _draw |
{ |
dword x; |
dword y; |
void init(); |
void line_break(); |
}; |
void _draw::init() |
{ |
x = HTML_PADDING_X; |
y = HTML_PADDING_Y; |
} |
void _draw::line_break() |
{ |
y+= list.item_h; |
x = HTML_PADDING_X; |
} |
/*======================================================== |
= = |
= BUF = |
= = |
========================================================*/ |
struct _buf |
{ |
dword pointer; |
dword len; |
dword start; |
dword end; |
void init(); |
}; |
void _buf::init(dword _buf_pointer, _buf_len) |
{ |
pointer = _buf_pointer; |
len = _buf_len; |
start = malloc(len); |
end = start + len; |
strlcpy(start, pointer, len); |
} |
/*======================================================== |
= = |
= TEXT = |
= = |
========================================================*/ |
struct _text { |
int size_pt_change; |
dword start; |
dword end; |
dword width; |
}; |
/*======================================================== |
= = |
= DOM = |
= = |
========================================================*/ |
struct _dom |
{ |
_tag tag; |
_style style; |
_draw draw; |
_buf buf; |
_text text; |
_canvas canvas; |
void init(); |
void apply_text(); |
void set_style(); |
void parse(); |
}; |
void _dom::init() |
{ |
style.clear(); |
draw.init(); |
buf.init(io.buffer_data, strlen(io.buffer_data)); |
} |
void _dom::set_style() |
{ |
if (tag.nameis("body")) style.body = tag.opens; |
if (tag.nameis("b")) style.bold = tag.opens; |
if (tag.nameis("i")) style.italic = tag.opens; |
if (tag.nameis("s")) style.strike = tag.opens; |
if (tag.nameis("pre")) style.pre = tag.opens; |
if (tag.nameis("style")) style.ignore = tag.opens; |
if (tag.nameis("a")) { |
style.a = tag.opens; |
if (tag.opens) style.color=0x0000FF; else style.color=0; |
} |
if (tag.nameis("br")) |
|| (tag.nameis("p")) |
|| (tag.nameis("div")) |
|| (tag.nameis("tr")) { |
draw.line_break(); |
return; |
} |
if (tag.nameis("li")) && (tag.opens) { |
draw.line_break(); |
return; |
} |
if (tag.nameis("td")) && (tag.opens) { |
draw.line_break(); |
return; |
} |
/* |
if (tag.nameis("title")) { |
strcpy(#title, text.start); |
strcat(#title, " - Aelia"); |
DrawTitle(#title); |
} |
if (tag.nameis("h1")) || (tag.nameis("/h1")) || |
(tag.nameis("h2")) || (tag.nameis("/h2")) || |
(tag.nameis("h3")) || (tag.nameis("/h3")) { |
if (tag.nameis("h1")) { |
text.size_pt_change = 8; |
} else if (tag.nameis("/h1")) { |
text.size_pt_change = -8; |
} else if (tag.nameis("h2")) { |
text.size_pt_change = 6; |
} else if (tag.nameis("/h2")) { |
text.size_pt_change = -6; |
} else if (tag.nameis("h3")) { |
text.size_pt_change = 4; |
} else if (tag.nameis("/h3")) { |
text.size_pt_change = -4; |
} |
kfont.size.pt += text.size_pt_change; |
get_label_symbols_size(); |
if (text.size_pt_change > 0) { |
draw.y+= list.item_h;//что если будет очень длинная строка в теге? |
} else {//коммент выше и коммент ниже связаны |
draw.y+= list.item_h - text.size_pt_change;//не очень понятна логика этого места |
text.size_pt_change = 0; |
} |
draw.x = HTML_PADDING_X; |
return; |
} |
*/ |
} |
void _dom::apply_text(dword _intext) |
{ |
int label_w; |
int textlen = strlen(_intext); |
dword curline = malloc(textlen); |
if (!textlen) || (!style.body) return; |
do { |
strlcpy(curline, _intext, textlen); |
label_w = kfont.get_label_width(curline); |
textlen--; |
} while (label_w > list.w - draw.x - 10) && (textlen); |
kfont.bold = style.bold; |
if (kfont.size.height) { |
canvas.write_text(draw.x, draw.y, style.color, curline); |
if (style.a) { |
canvas.draw_hor_line(draw.x, draw.y + list.item_h-2, |
kfont.get_label_width(curline), style.color); |
link.add(draw.x, draw.y, kfont.get_label_width(curline), |
list.item_h, curline, "http://kolibrios.org"); |
} |
} |
draw.x += label_w; |
strcpy(curline, _intext + textlen); |
if (textlen) && (textlen < strlen(_intext)-1) { |
draw.x = 0; |
draw.y += list.item_h; |
apply_text(_intext + textlen); |
} |
} |
void _dom::parse() |
{ |
dword i; |
init(); |
text.start = buf.start; |
tag.start = buf.start; |
for ( i=buf.start; i<buf.end; i++ ) |
{ |
if (ESBYTE[i]=='<') { |
tag.start = i+1; |
text.end = i-1; |
ESBYTE[i] = '\0'; |
apply_text(text.start); |
} |
if (ESBYTE[i]=='>') { |
tag.end = i-1; |
text.start = i+1; |
ESBYTE[i] = '\0'; |
tag.parse(); |
set_style(); |
} |
} |
free(buf.start); |
if (!kfont.size.height) { |
list.count = draw.y/list.item_h+3; |
if (list.count < list.visible) list.count = list.visible; |
kfont.size.height = list.count+5*list.item_h; |
kfont.raw_size = 0; |
parse(); |
} |
} |
/*======================================================== |
= = |
= PREPARE = |
= = |
========================================================*/ |
void PreparePage() |
{ |
_dom dom; |
strcpy(#title, history.current()+strrchr(history.current(),'/')); |
ChangeCharset(encoding, "CP866", io.buffer_data); |
link.clear(); |
kfont.size.height = 0; |
dom.parse(); |
kfont.ApplySmooth(); |
DrawPage(); |
} |
/programs/cmm/aelia/gui.h |
---|
0,0 → 1,61 |
void DrawToolbarButton(dword image_id, x) |
{ |
DefineButton(x+1, 7, TOOLBAR_ICON_WIDTH-2, TOOLBAR_ICON_HEIGHT-2, 10+image_id + BT_HIDE, 0); |
DrawLibImage(skin.image, x, 6, TOOLBAR_ICON_WIDTH, TOOLBAR_ICON_HEIGHT, 0, image_id*TOOLBAR_ICON_HEIGHT); |
} |
void DrawScroller() |
{ |
scroll.max_area = list.count; |
scroll.cur_area = list.visible; |
scroll.position = list.first; |
scroll.all_redraw = 0; |
scroll.start_x = list.x + list.w; |
scroll.start_y = list.y; |
scroll.size_y = list.h; |
scroll.start_x = list.x + list.w; |
scrollbar_v_draw(#scroll); |
} |
dword MakePageWithHistory() |
{ |
int i; |
static dword history_page; |
if (history_page) free(history_page); |
history_page = malloc(history.items.data_size+256); |
strcat(history_page, "<html><head><title>History</title></head><body>\n<h1>History</h1>\n"); |
strcat(history_page, "<h2>Visited pages</h2><br>\n"); |
for (i=0; i<history.items.count; i++) |
{ |
strcat(history_page, "<a href='"); |
strcat(history_page, history.items.get(i)); |
strcat(history_page, "'>"); |
strcat(history_page, history.items.get(i)); |
strcat(history_page, "</a><br>\n"); |
} |
return history_page; |
} |
enum { |
STEP_1_DOWNLOAD_PAGE = 0, |
STEP_2_COUNT_PAGE_HEIGHT = 35, |
STEP_3_DRAW_PAGE_INTO_BUFFER = 60, |
STEP_4_SMOOTH_FONT = 88, |
STEP_5_STOP = 100, |
}; |
void DrawProgress(dword percent) |
{ |
dword progress_width; |
if (percent<100) { |
progress_width = address_box.width+5*percent/100; |
DrawBar(address_box.left-3, address_box.top+16, progress_width, 2, 0x72B7EA); |
} |
else { |
progress_width = address_box.width+5; |
DrawBar(address_box.left-3, address_box.top+16, progress_width, 2, 0xFFFfff); |
} |
} |
/programs/cmm/aelia/link.h |
---|
0,0 → 1,84 |
dword CursorFile = FROM "pointer.cur"; |
struct _link |
{ |
CustomCursor CursorPointer; |
int count; |
int x[4096], y[4096], w[4096], h[4096]; |
collection text; |
collection url; |
void clear(); |
void add(); |
dword get_active_url(); |
void draw_underline(); |
int hover(); |
int active; |
} link; |
void _link::clear() |
{ |
text.drop(); |
url.drop(); |
count = 0; |
} |
void _link::add(int _xx, _yy, _ww, _hh, dword _textt, _urll ) |
{ |
if (count==4095) return; |
x[count] = _xx; |
y[count] = _yy; |
w[count] = _ww; |
h[count] = _hh; |
text.add(_textt); |
url.add(_urll); |
count++; |
} |
dword _link::get_active_url() |
{ |
return url.get(active); |
} |
void _link::draw_underline(dword i, color) |
{ |
DrawBar(x[i]+list.x, -list.first*list.item_h+y[i]+list.y+h[i]-2, w[i], 1, color); |
} |
int _link::hover(dword mouse_x, mouse_y) |
{ |
int i; |
int new_active = -1; |
int link_start_y = list.first*list.item_h; |
mouse_x -= list.x; |
mouse_y -= list.y; |
for (i=0; i<count; i++) { |
if(y[i] > link_start_y) && (y[i] < link_start_y+list.h) { |
// debugln( sprintf(#param, "mx:%i my:%i x[i]:%i y[i]:%i", mx, my, x[i], y[i]) ); |
if (mouse_x > x[i]) |
&& (mouse_x < x[i]+w[i]) |
&& (mouse_y > y[i]-link_start_y) |
&& (mouse_y < h[i]-link_start_y+link.y[i]) { |
new_active = i; |
break; |
} |
} |
} |
if (new_active != active) |
{ |
if (-1 == new_active) { |
draw_underline(active, 0x0000FF); |
CursorPointer.Restore(); |
} |
else { |
draw_underline(active, 0x0000FF); |
draw_underline(new_active, 0xFFFfff); |
CursorPointer.Load(#CursorFile); |
CursorPointer.Set(); |
} |
active = new_active; |
return true; |
} |
return false; |
} |
/programs/cmm/aelia/special.h |
---|
0,0 → 1,140 |
// unicode conversion for special characters |
char *unicode_tags[]={ |
"nbsp", " ", |
"#38", " ", |
"#160", " ", |
"ntilde", "n", // spanish n special ñ |
"#224", "à", // spanish a with grove accent 'à' |
"#241", "n", // spanish symbol |
"copy", "(c)", |
"#169", "(c)", |
"trade", "[TM]", |
"reg", "(r)", |
"#174", "(r)", |
"bdquo", ",,", |
"amp", "&", |
"#38", "&", |
"lt", "<", |
"#60", "<", |
"gt", ">", |
"#62", ">", |
"minus", "-", |
"ndash", "-", |
"mdash", "-", //-- |
"#8722", "-", |
"#8211", "-", |
"#151", "-", |
"#149", "-", |
"rsquo", "'", |
"#39", "'", |
"#96", "'", |
"#8217", "'", |
"quot", "\"", |
"#34", "\"", |
"ldquo", "\"", |
"rdquo", "\"", |
"#8222", "\"", |
"#8221", "\"", |
"laquo", "<<", |
"#171", "<<", |
"raquo", ">>", |
"#187", ">>", |
"uarr", "\24", |
"darr", "\25", |
"rarr", "\26", |
"larr", "\27", |
"#1028", "\242", |
"#1030", "I", |
"#1031", "\244", |
"#8470", "N", |
"bull", "-", //âîîáùå çäåñü òî÷êà |
"percnt","%", |
0}; |
// function to be called to fix the special symbols |
void fixSpecial(dword text) { |
byte ch; |
int i , j, z; |
dword aux; |
dword text2 = text; |
loop () { |
ch = ESBYTE[text]; |
if (!ch) return; |
if (ch=='&') { |
i = 0; |
j = 0; |
text++; |
while ( i < 7) { |
ch = ESBYTE[text]; |
if (ch == ';') { |
z = get_symbol(#str); |
if (z == -1) { // not found |
ch = ' '; |
} |
else { // tag found |
aux = unicode_tags[z]; |
strtrim(aux); |
ch = ESBYTE[aux]; |
// copy the special symbol found |
while (ch) { |
ESBYTE[text2] = ch; |
aux++; |
text2++; |
ch = ESBYTE[aux]; |
} |
ch = ESBYTE[text2]; |
} |
// clean the old symbol |
while (ch != ';') { |
ESBYTE[text2] = ' ';// should be (char) 0; |
text2++; |
ch = ESBYTE[text2]; |
} |
ESBYTE[text2] = ' '; // should be '' or char 0 |
break; |
} |
str[i] = ch; |
if (!ch) return; |
text++; |
i++; |
} |
for (i=0; i < 7; i++) str[i] = 0; // clean str |
} |
text++; |
text2++; |
} |
} |
// function to look for the conversion of special characters |
// if not found--> return -1 |
int get_symbol(char *str2) { |
int i,j; |
//debugln(#str2); |
for (i=0; unicode_tags[i]!=0; i+=2) { |
if (strcmp(str2, unicode_tags[i]) == 0) { |
return (i+1); |
} |
} |
return -1; |
} |
/programs/cmm/aelia/favicon.h |
---|
0,0 → 1,83 |
struct _favicon |
{ |
DOWNLOADER favget; |
void get(); |
void draw(); |
} favicon; |
void _favicon::get(dword url) |
{ |
if (url==NULL) || (!favget.Start(url)) { |
favget.Stop(); |
favget.bufpointer = NULL; |
} |
else { |
while (favget.state!=STATE_COMPLETED) favget.MonitorProgress(); |
} |
} |
void _favicon::draw(int x,y) |
{ |
dword favicon_data_decoded; |
if (favget.bufpointer) { |
img_decode stdcall (favget.bufpointer, favget.httpd.content_length, 0); |
if (EAX==0) return; |
favicon_data_decoded = EAX; |
img_draw stdcall(favicon_data_decoded, x,y, 16, 16, 0, 0); |
} |
else { |
_PutImage(x,y,16,16,#blank_icon); |
} |
} |
unsigned char blank_icon[768] = { |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x90, 0x7B, 0x75, 0x7D, 0x65, 0x5D, 0x7D, |
0x65, 0x5D, 0x7D, 0x65, 0x5D, 0x7D, 0x65, 0x5D, 0x7D, 0x65, 0x5D, 0x7D, 0x65, 0x5D, 0x90, 0x7B, |
0x75, 0xD7, 0xD1, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x65, 0x5D, 0xF0, 0xEB, |
0xEB, 0x7D, 0x65, 0x5D, 0xD7, 0xD1, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, |
0xFF, 0xF0, 0xEB, 0xEB, 0x7D, 0x65, 0x5D, 0xD7, 0xD1, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0x7D, 0x65, 0x5D, 0x7D, 0x65, |
0x5D, 0x7D, 0x65, 0x5D, 0x7D, 0x65, 0x5D, 0x90, 0x7B, 0x75, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF0, 0xEB, 0xEB, 0xF0, 0xEB, |
0xEB, 0xF0, 0xEB, 0xEB, 0xF0, 0xEB, 0xEB, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF0, 0xEB, 0xEB, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF0, 0xEB, 0xEB, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF0, 0xEB, 0xEB, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF0, 0xEB, 0xEB, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF0, 0xEB, 0xEB, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, |
0xF7, 0xF7, 0xF7, 0xF7, 0xF0, 0xEB, 0xEB, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x65, 0x5D, 0xD9, 0xD9, 0xD9, 0xD9, |
0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, |
0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0x7D, 0x65, 0x5D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x90, 0x7B, 0x75, 0x7D, 0x65, 0x5D, 0x7D, |
0x65, 0x5D, 0x7D, 0x65, 0x5D, 0x7D, 0x65, 0x5D, 0x7D, 0x65, 0x5D, 0x7D, 0x65, 0x5D, 0x7D, 0x65, |
0x5D, 0x7D, 0x65, 0x5D, 0x7D, 0x65, 0x5D, 0x90, 0x7B, 0x75, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF |
}; |
/programs/cmm/aelia/ini.h |
---|
0,0 → 1,34 |
char ini_path[4096]; |
char config_section[] = "Config"; |
int encoding; |
void LoadIniSettings() |
{ |
kfont.size.pt = 14; |
encoding = CH_CP866; |
Form.left = 150; |
Form.top = 50; |
Form.width = 640; |
Form.height = 560; |
/* |
strcpy(#ini_path, "/sys/settings/treader.ini"); |
ini_get_int stdcall (#ini_path, #config_section, "FontSize", 14); kfont.size.pt = EAX; |
ini_get_int stdcall (#ini_path, #config_section, "Encoding", CH_CP866); encoding = EAX; |
ini_get_int stdcall (#ini_path, #config_section, "WinX", 150); Form.left = EAX; |
ini_get_int stdcall (#ini_path, #config_section, "WinY", 50); Form.top = EAX; |
ini_get_int stdcall (#ini_path, #config_section, "WinW", 640); Form.width = EAX; |
ini_get_int stdcall (#ini_path, #config_section, "WinH", 560); Form.height = EAX; |
*/ |
} |
void SaveIniSettings() |
{ |
/* |
ini_set_int stdcall (#ini_path, #config_section, "FontSize", kfont.size.pt); |
ini_set_int stdcall (#ini_path, #config_section, "Encoding", encoding); |
ini_set_int stdcall (#ini_path, #config_section, "WinX", Form.left); |
ini_set_int stdcall (#ini_path, #config_section, "WinY", Form.top); |
ini_set_int stdcall (#ini_path, #config_section, "WinW", Form.width); |
ini_set_int stdcall (#ini_path, #config_section, "WinH", Form.height); |
*/ |
} |
/programs/cmm/aelia/buidin_pages/about.htm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/cmm/aelia/buidin_pages/home.htm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/cmm/aelia/buidin_pages/not_found.htm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/cmm/aelia/_compile.bat |
---|
0,0 → 1,5 |
@C-- "aelia.c" |
@del "aelia" |
@rename "aelia.com" "aelia" |
@del warning.txt |
@pause |
/programs/cmm/aelia/pointer.cur |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/cmm/aelia/Tupfile.lua |
---|
0,0 → 1,6 |
if tup.getconfig("NO_CMM") ~= "" then return end |
if tup.getconfig("LANG") == "ru" |
then C_LANG = "LANG_RUS" |
else C_LANG = "LANG_ENG" -- this includes default case without config |
end |
tup.rule("aelia.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK_CMD"), "aelia.com") |