forked from KolibriOS/kolibrios
remove codeview
git-svn-id: svn://kolibrios.org@8320 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
646af6780b
commit
dc2423748e
@ -646,7 +646,6 @@ tup.append_table(img_files, {
|
||||
{"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
|
||||
})
|
||||
tup.append_table(extra_files, {
|
||||
{"kolibrios/develop/utils/codeview", PROGS .. "/cmm/codeview/codeview.com"},
|
||||
{"kolibrios/drivers/drvinst.kex", PROGS .. "/cmm/drvinst/drvinst.com"},
|
||||
{"kolibrios/games/pig/pigex", PROGS .. "/cmm/examples/pigex.com"},
|
||||
{"kolibrios/games/the_bus/the_bus", PROGS .. "/cmm/the_bus/the_bus.com"},
|
||||
|
@ -446,7 +446,7 @@ void TWebBrowser::SetStyle() {
|
||||
if (value = tag.get_value_of("alt=")) && (strlen(value)<sizeof(line)-3) && (value) sprintf(#line, "[%s]", value);
|
||||
if (!img_path) { line=0; return; }
|
||||
style.image = true;
|
||||
page_img.add(#img_path, stolbec+1*list.font_w+3, draw_y);
|
||||
page_img.add_pos(#img_path, stolbec+1*list.font_w+3, draw_y);
|
||||
text_colors.add(0x9A6F29);
|
||||
if (!line) {
|
||||
if (!strncmp(#img_path, "data:", 5)) img_path=0;
|
||||
@ -607,6 +607,6 @@ void TWebBrowser::NewLine()
|
||||
void TWebBrowser::DrawPage()
|
||||
{
|
||||
PutPaletteImage(list.first * DrawBuf.bufw * 4 + buf_data+8, DrawBuf.bufw, list.h, DrawBuf.bufx, DrawBuf.bufy, 32, 0);
|
||||
page_img.draw(list.x, list.y, list.first, list.h);
|
||||
page_img.draw_all(list.x, list.y, list.first, list.h);
|
||||
DrawScroller();
|
||||
}
|
@ -3,19 +3,27 @@ struct _img
|
||||
{
|
||||
collection url;
|
||||
collection_int xywh;
|
||||
collection_int data;
|
||||
int getid;
|
||||
dword add();
|
||||
|
||||
void clear();
|
||||
dword add_pos();
|
||||
bool set_size();
|
||||
|
||||
dword current_url();
|
||||
bool next_url();
|
||||
void set_data();
|
||||
void draw();
|
||||
|
||||
void draw_all();
|
||||
bool draw();
|
||||
};
|
||||
|
||||
#ifndef NO_IMG
|
||||
void _img::clear()
|
||||
{
|
||||
url.drop();
|
||||
xywh.drop();
|
||||
getid = 0;
|
||||
}
|
||||
|
||||
dword _img::add(dword _path, _x, _y)
|
||||
dword _img::add_pos(dword _path, _x, _y)
|
||||
{
|
||||
char full_path[URL_SIZE];
|
||||
strncpy(#full_path, _path, URL_SIZE);
|
||||
@ -24,17 +32,25 @@ dword _img::add(dword _path, _x, _y)
|
||||
url.add(#full_path);
|
||||
xywh.add(_x);
|
||||
xywh.add(_y);
|
||||
xywh.add(0);
|
||||
xywh.add(0);
|
||||
xywh.add(NULL);
|
||||
xywh.add(NULL);
|
||||
return full_path;
|
||||
}
|
||||
|
||||
void _img::clear()
|
||||
bool _img::set_size(dword _buf, _size)
|
||||
{
|
||||
url.drop();
|
||||
xywh.drop();
|
||||
data.drop();
|
||||
getid = 0;
|
||||
char vvv[1000];
|
||||
int w, h;
|
||||
img_decode stdcall (_buf, _size, 0);
|
||||
if (EAX) {
|
||||
EDI = EAX;
|
||||
w = ESDWORD[EDI+4];
|
||||
h = ESDWORD[EDI+8];
|
||||
xywh.set(getid*4+2, ESDWORD[EDI+4]);
|
||||
xywh.set(getid*4+3, ESDWORD[EDI+8]);
|
||||
sprintf(#vvv, "%s w:%i h:%i", current_url(), w, h);
|
||||
debugln(#vvv);
|
||||
}
|
||||
}
|
||||
|
||||
dword _img::current_url()
|
||||
@ -51,39 +67,27 @@ bool _img::next_url()
|
||||
return 0;
|
||||
}
|
||||
|
||||
void _img::set_data(dword _data, _data_len)
|
||||
void _img::draw_all(int _x, _y, _start, _height)
|
||||
{
|
||||
data.set(getid, _data);
|
||||
}
|
||||
|
||||
void _img::draw(int _x, _y, _start, _height)
|
||||
{
|
||||
int i, img_x, img_y;
|
||||
int i, img_y;
|
||||
|
||||
for (i=0; i<url.count; i++)
|
||||
{
|
||||
img_x = xywh.get(i*4);
|
||||
img_y = xywh.get(i*4 + 1);
|
||||
|
||||
if (img_y > _start) && (img_y < _start + _height)
|
||||
{
|
||||
if (cache.has(url.get(i)))
|
||||
DrawLibimgImage(img_x + _x, img_y-_start + _y, cache.current_buf, cache.current_size);
|
||||
}
|
||||
&& (cache.has(url.get(i))) draw(_x, _y, _start, i);
|
||||
}
|
||||
}
|
||||
|
||||
void DrawLibimgImage(dword _x, _y, _data, _data_len)
|
||||
bool _img::draw(int _x, _y, _start, i)
|
||||
{
|
||||
libimg_image im;
|
||||
img_decode stdcall (_data, _data_len, 0);
|
||||
$or eax, eax
|
||||
$jz __ERROR__
|
||||
|
||||
img_decode stdcall (cache.current_buf, cache.current_size, 0);
|
||||
if (EAX) {
|
||||
im.image = EAX;
|
||||
im.set_vars();
|
||||
im.draw(_x, _y, im.w, im.h, 0, 0);
|
||||
__ERROR__:
|
||||
im.draw(xywh.get(i*4) + _x, xywh.get(i*4+1) - _start + _y, im.w, im.h, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ -136,12 +140,3 @@ ImageCache ImgCache;
|
||||
|
||||
*/
|
||||
|
||||
#else
|
||||
dword _img::add(dword _path, _x, _y) {};
|
||||
void _img::clear() {};
|
||||
dword _img::current_url() {};
|
||||
bool _img::next_url() {};
|
||||
void _img::set_data(dword _data, _data_len) {};
|
||||
void _img::draw(int _x, _y, _start, _height) {};
|
||||
|
||||
#endif
|
@ -31,7 +31,7 @@
|
||||
|
||||
char editbox_icons[] = FROM "res/editbox_icons.raw";
|
||||
|
||||
char version[]="WebView 2.7c";
|
||||
char version[]="WebView 2.7e";
|
||||
|
||||
#include "texts.h"
|
||||
#include "cache.h"
|
||||
@ -236,7 +236,7 @@ void main()
|
||||
if (http.transfer <= 0) break;
|
||||
http.receive();
|
||||
EventUpdateProgressBar();
|
||||
CheckContentType();
|
||||
if (http_get_type==PAGE) CheckContentType();
|
||||
if (http.receive_result != 0) break;
|
||||
if (http.status_code >= 300) && (http.status_code < 400)
|
||||
{
|
||||
@ -259,7 +259,7 @@ void main()
|
||||
}
|
||||
else if (http_get_type==IMG) {
|
||||
cache.add(WB1.page_img.current_url(), http.content_pointer, http.content_received, IMG);
|
||||
WB1.page_img.set_data(cache.data.get_last(), http.content_received);
|
||||
WB1.page_img.set_size(http.content_pointer, http.content_received);
|
||||
GetImg();
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +0,0 @@
|
||||
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("codeview.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK_CMD"), "codeview.com")
|
@ -1,249 +0,0 @@
|
||||
|
||||
#define MEMSIZE 4096 * 200
|
||||
#define NO_IMG true
|
||||
|
||||
//libraries
|
||||
#include "..\lib\gui.h"
|
||||
#include "..\lib\draw_buf.h"
|
||||
#include "..\lib\list_box.h"
|
||||
#include "..\lib\cursor.h"
|
||||
#include "..\lib\collection.h"
|
||||
#include "..\lib\random.h"
|
||||
#include "..\lib\clipboard.h"
|
||||
|
||||
// *.obj libraries
|
||||
#include "..\lib\obj\box_lib.h"
|
||||
#include "..\lib\obj\libio.h"
|
||||
#include "..\lib\obj\libimg.h"
|
||||
#include "..\lib\obj\iconv.h"
|
||||
#include "..\lib\obj\proc_lib.h"
|
||||
|
||||
//useful patterns
|
||||
#include "..\lib\patterns\simple_open_dialog.h"
|
||||
#include "..\lib\patterns\toolbar_button.h"
|
||||
|
||||
char homepage[] = FROM "html\\homepage.htm""\0";
|
||||
char page_not_found[] = FROM "html\\page_not_found_en.htm""\0";
|
||||
|
||||
char version[]="C-- Code View";
|
||||
char accept_language[]= "Accept-Language: en\n";
|
||||
|
||||
#define URL_SERVICE_HOME "CodeView:home"
|
||||
|
||||
|
||||
|
||||
proc_info Form;
|
||||
|
||||
|
||||
dword TOOLBAR_H = 40;
|
||||
dword STATUSBAR_H = 0;
|
||||
|
||||
|
||||
bool debug_mode = false;
|
||||
|
||||
bool open_in_a_new_window = false;
|
||||
|
||||
enum {
|
||||
REFRESH_BUTTON,
|
||||
EDIT_SOURCE,
|
||||
OPEN_PAGE,
|
||||
};
|
||||
|
||||
#define URL_SIZE 4000;
|
||||
#include "..\TWB\TWB.c"
|
||||
TWebBrowser WB1;
|
||||
#include "highlight_c.h"
|
||||
|
||||
char default_dir[] = "/rd/1";
|
||||
od_filter filter2 = { 16, "C\0H\0C--\0H--\0CPP\0\0" };
|
||||
|
||||
char current_path[URL_SIZE+1];
|
||||
char edit_path[URL_SIZE+1];
|
||||
int mouse_twb;
|
||||
edit_box address_box = {250,60,30,0xffffff,0x94AECE,0xffffff,0xffffff,0x10000000,URL_SIZE-2,#edit_path,#mouse_twb,2,19,19};
|
||||
|
||||
#define SKIN_Y 24
|
||||
|
||||
void LoadLibraries()
|
||||
{
|
||||
load_dll(boxlib, #box_lib_init,0);
|
||||
load_dll(libio, #libio_init,1);
|
||||
load_dll(libimg, #libimg_init,1);
|
||||
load_dll(iconv_lib, #iconv_open,0);
|
||||
load_dll(Proc_lib, #OpenDialog_init,0);
|
||||
OpenDialog_init stdcall (#o_dialog);
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
int i, id;
|
||||
LoadLibraries();
|
||||
if (param) strcpy(#current_path, #param); else strcpy(#current_path, URL_SERVICE_HOME);
|
||||
WB1.list.SetFont(8, 14, 10011000b);
|
||||
WB1.list.no_selection = true;
|
||||
SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
|
||||
loop() switch(WaitEvent())
|
||||
{
|
||||
case evMouse:
|
||||
edit_box_mouse stdcall (#address_box);
|
||||
mouse.get();
|
||||
if (WB1.list.MouseScroll(mouse.vert)) WB1.DrawPage();
|
||||
scrollbar_v_mouse (#scroll_wv);
|
||||
if (WB1.list.first != scroll_wv.position)
|
||||
{
|
||||
WB1.list.first = scroll_wv.position;
|
||||
WB1.DrawPage();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case evButton:
|
||||
id = GetButtonID();
|
||||
if (1==id) ExitProcess();
|
||||
if (OPEN_PAGE==id) EventOpenDialog();
|
||||
break;
|
||||
|
||||
case evKey:
|
||||
GetKeys();
|
||||
|
||||
if (SCAN_CODE_F5 == key_scancode) {
|
||||
OpenPage(#current_path);
|
||||
}
|
||||
if (SCAN_CODE_F3 == key_scancode) {
|
||||
RunProgram("/rd/1/tinypad", #current_path);
|
||||
}
|
||||
|
||||
if (key_modifier&KEY_LCTRL) || (key_modifier&KEY_RCTRL) {
|
||||
if (key_scancode == SCAN_CODE_KEY_O) {EventOpenDialog();break;}
|
||||
}
|
||||
|
||||
if (address_box.flags & 0b10)
|
||||
{
|
||||
if (key_ascii == ASCII_KEY_ENTER) {
|
||||
OpenPage(#edit_path);
|
||||
}
|
||||
else {
|
||||
EAX = key_editbox;
|
||||
edit_box_key stdcall(#address_box);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
#define KEY_SCROLL_N 11
|
||||
if (SCAN_CODE_UP == key_scancode) for (i=0;i<KEY_SCROLL_N;i++) WB1.list.KeyUp();
|
||||
if (SCAN_CODE_DOWN == key_scancode) for (i=0;i<KEY_SCROLL_N;i++) WB1.list.KeyDown();
|
||||
if (WB1.list.ProcessKey(key_scancode)) WB1.DrawPage();
|
||||
}
|
||||
break;
|
||||
|
||||
case evReDraw:
|
||||
DefineAndDrawWindow(GetScreenWidth()-800/2-random(80),GetScreenHeight()-600/2-random(80),800,600,0x73,sc.work,0,0);
|
||||
GetProcessInfo(#Form, SelfInfo);
|
||||
sc.get();
|
||||
if (Form.status_window>2) break;
|
||||
if (Form.height<120) { MoveSize(OLD,OLD,OLD,120); break; }
|
||||
if (Form.width<280) { MoveSize(OLD,OLD,280,OLD); break; }
|
||||
SetElementSizes();
|
||||
draw_window();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void SetElementSizes()
|
||||
{
|
||||
address_box.top = TOOLBAR_H/2-10;
|
||||
address_box.left = address_box.top+43;
|
||||
address_box.width = Form.cwidth - address_box.left - address_box.left -14;
|
||||
WB1.list.SetSizes(0, TOOLBAR_H, Form.width - 10 - scroll_wv.size_x,
|
||||
Form.cheight - TOOLBAR_H - STATUSBAR_H, BASIC_LINE_H);
|
||||
WB1.list.wheel_size = 7 * BASIC_LINE_H;
|
||||
WB1.list.column_max = WB1.list.w - scroll_wv.size_x / WB1.list.font_w;
|
||||
WB1.list.visible = WB1.list.h;
|
||||
if (WB1.list.w!=DrawBuf.bufw) {
|
||||
DrawBuf.Init(WB1.list.x, WB1.list.y, WB1.list.w, 32700);
|
||||
OpenPage(#current_path);
|
||||
}
|
||||
}
|
||||
|
||||
void draw_window()
|
||||
{
|
||||
DrawBar(0,0, Form.cwidth,TOOLBAR_H-2, sc.work);
|
||||
DrawBar(0,TOOLBAR_H-2, Form.cwidth,1, 0xD7D0D3);
|
||||
DrawBar(0,TOOLBAR_H-1, Form.cwidth,1, sc.work_graph);
|
||||
DrawRectangle(address_box.left-3, address_box.top-3, address_box.width+4, 25,sc.work_graph);
|
||||
DrawBar(0,Form.cheight - STATUSBAR_H, Form.cwidth,STATUSBAR_H, sc.work);
|
||||
DrawBar(0,Form.cheight - STATUSBAR_H, Form.cwidth,1, sc.work_graph);
|
||||
DrawEditBoxWebView();
|
||||
if (!WB1.header) {
|
||||
OpenPage(#current_path);
|
||||
} else {
|
||||
WB1.DrawPage();
|
||||
DrawEditBoxWebView();
|
||||
}
|
||||
DrawRectangle(scroll_wv.start_x, scroll_wv.start_y, scroll_wv.size_x, scroll_wv.size_y-1, scroll_wv.bckg_col);
|
||||
DrawTopPanelButton(OPEN_PAGE, 10, address_box.top-3, 0, false);
|
||||
}
|
||||
|
||||
|
||||
void OpenPage(dword _path)
|
||||
{
|
||||
dword buf, size;
|
||||
strcpy(#current_path, _path);
|
||||
if (streq(_path, URL_SERVICE_HOME)) {
|
||||
LoadInternalPage(#homepage, sizeof(homepage));
|
||||
return;
|
||||
}
|
||||
file_size stdcall (_path);
|
||||
if (EBX)
|
||||
{
|
||||
size = EBX;
|
||||
buf = malloc(size);
|
||||
ReadFile(0, size, buf, _path);
|
||||
ShowCodeSource();
|
||||
free(buf);
|
||||
return;
|
||||
}
|
||||
LoadInternalPage(NULL,NULL);
|
||||
}
|
||||
|
||||
DrawEditBoxWebView()
|
||||
{
|
||||
int skin_x_offset;
|
||||
DrawBar(address_box.left-2, address_box.top-2, address_box.width+3, 2, address_box.color);
|
||||
DrawBar(address_box.left-2, address_box.top, 2, 22, address_box.color);
|
||||
address_box.size = address_box.pos = address_box.shift = address_box.shift_old = strlen(#edit_path);
|
||||
address_box.offset = 0;
|
||||
edit_box_draw stdcall(#address_box);
|
||||
skin_x_offset = 51;
|
||||
}
|
||||
|
||||
void LoadInternalPage(dword _bufpos, _bufsize)
|
||||
{
|
||||
if (!_bufpos) || (!_bufsize) {
|
||||
LoadInternalPage(#page_not_found, sizeof(page_not_found));
|
||||
return;
|
||||
}
|
||||
strcpy(#edit_path, #current_path);
|
||||
DrawEditBoxWebView();
|
||||
|
||||
WB1.list.first = 0;
|
||||
WB1.ParseHtml(_bufpos, _bufsize);
|
||||
WB1.DrawPage();
|
||||
}
|
||||
|
||||
void EventOpenDialog()
|
||||
{
|
||||
OpenDialog_start stdcall (#o_dialog);
|
||||
if (o_dialog.status) {
|
||||
OpenPage(#openfile_path);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DrawStatusBar() {return;};
|
||||
void EventClickLink() {return;};
|
||||
void EventShowLinkMenu() {return;};
|
||||
|
||||
char anchor[256];
|
||||
|
||||
stop:
|
@ -1,5 +0,0 @@
|
||||
@c-- CodeView.c
|
||||
@del CodeView
|
||||
@rename CodeView.com CodeView
|
||||
@del warning.txt
|
||||
@pause
|
@ -1,13 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Homepage</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<br>
|
||||
CodeView is a sipmle C--/C/C++ code viewer based on TWB component.<br>
|
||||
<br>
|
||||
Press Ctrl+O to open a file.
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,10 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset=cp-866 />
|
||||
<title>File not found</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1> File not found</h1>
|
||||
Please, check file address, there may have been made a typo.
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user