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"},
|
{"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
|
||||||
})
|
})
|
||||||
tup.append_table(extra_files, {
|
tup.append_table(extra_files, {
|
||||||
{"kolibrios/develop/utils/codeview", PROGS .. "/cmm/codeview/codeview.com"},
|
|
||||||
{"kolibrios/drivers/drvinst.kex", PROGS .. "/cmm/drvinst/drvinst.com"},
|
{"kolibrios/drivers/drvinst.kex", PROGS .. "/cmm/drvinst/drvinst.com"},
|
||||||
{"kolibrios/games/pig/pigex", PROGS .. "/cmm/examples/pigex.com"},
|
{"kolibrios/games/pig/pigex", PROGS .. "/cmm/examples/pigex.com"},
|
||||||
{"kolibrios/games/the_bus/the_bus", PROGS .. "/cmm/the_bus/the_bus.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 (value = tag.get_value_of("alt=")) && (strlen(value)<sizeof(line)-3) && (value) sprintf(#line, "[%s]", value);
|
||||||
if (!img_path) { line=0; return; }
|
if (!img_path) { line=0; return; }
|
||||||
style.image = true;
|
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);
|
text_colors.add(0x9A6F29);
|
||||||
if (!line) {
|
if (!line) {
|
||||||
if (!strncmp(#img_path, "data:", 5)) img_path=0;
|
if (!strncmp(#img_path, "data:", 5)) img_path=0;
|
||||||
@ -607,6 +607,6 @@ void TWebBrowser::NewLine()
|
|||||||
void TWebBrowser::DrawPage()
|
void TWebBrowser::DrawPage()
|
||||||
{
|
{
|
||||||
PutPaletteImage(list.first * DrawBuf.bufw * 4 + buf_data+8, DrawBuf.bufw, list.h, DrawBuf.bufx, DrawBuf.bufy, 32, 0);
|
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();
|
DrawScroller();
|
||||||
}
|
}
|
@ -3,19 +3,27 @@ struct _img
|
|||||||
{
|
{
|
||||||
collection url;
|
collection url;
|
||||||
collection_int xywh;
|
collection_int xywh;
|
||||||
collection_int data;
|
|
||||||
int getid;
|
int getid;
|
||||||
dword add();
|
|
||||||
void clear();
|
void clear();
|
||||||
|
dword add_pos();
|
||||||
|
bool set_size();
|
||||||
|
|
||||||
dword current_url();
|
dword current_url();
|
||||||
bool next_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];
|
char full_path[URL_SIZE];
|
||||||
strncpy(#full_path, _path, URL_SIZE);
|
strncpy(#full_path, _path, URL_SIZE);
|
||||||
@ -24,17 +32,25 @@ dword _img::add(dword _path, _x, _y)
|
|||||||
url.add(#full_path);
|
url.add(#full_path);
|
||||||
xywh.add(_x);
|
xywh.add(_x);
|
||||||
xywh.add(_y);
|
xywh.add(_y);
|
||||||
xywh.add(0);
|
xywh.add(NULL);
|
||||||
xywh.add(0);
|
xywh.add(NULL);
|
||||||
return full_path;
|
return full_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _img::clear()
|
bool _img::set_size(dword _buf, _size)
|
||||||
{
|
{
|
||||||
url.drop();
|
char vvv[1000];
|
||||||
xywh.drop();
|
int w, h;
|
||||||
data.drop();
|
img_decode stdcall (_buf, _size, 0);
|
||||||
getid = 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()
|
dword _img::current_url()
|
||||||
@ -51,39 +67,27 @@ bool _img::next_url()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _img::set_data(dword _data, _data_len)
|
void _img::draw_all(int _x, _y, _start, _height)
|
||||||
{
|
{
|
||||||
data.set(getid, _data);
|
int i, img_y;
|
||||||
}
|
|
||||||
|
|
||||||
void _img::draw(int _x, _y, _start, _height)
|
|
||||||
{
|
|
||||||
int i, img_x, img_y;
|
|
||||||
|
|
||||||
for (i=0; i<url.count; i++)
|
for (i=0; i<url.count; i++)
|
||||||
{
|
{
|
||||||
img_x = xywh.get(i*4);
|
|
||||||
img_y = xywh.get(i*4 + 1);
|
img_y = xywh.get(i*4 + 1);
|
||||||
|
|
||||||
if (img_y > _start) && (img_y < _start + _height)
|
if (img_y > _start) && (img_y < _start + _height)
|
||||||
{
|
&& (cache.has(url.get(i))) draw(_x, _y, _start, i);
|
||||||
if (cache.has(url.get(i)))
|
|
||||||
DrawLibimgImage(img_x + _x, img_y-_start + _y, cache.current_buf, cache.current_size);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawLibimgImage(dword _x, _y, _data, _data_len)
|
bool _img::draw(int _x, _y, _start, i)
|
||||||
{
|
{
|
||||||
libimg_image im;
|
libimg_image im;
|
||||||
img_decode stdcall (_data, _data_len, 0);
|
img_decode stdcall (cache.current_buf, cache.current_size, 0);
|
||||||
$or eax, eax
|
if (EAX) {
|
||||||
$jz __ERROR__
|
im.image = EAX;
|
||||||
|
im.draw(xywh.get(i*4) + _x, xywh.get(i*4+1) - _start + _y, im.w, im.h, 0, 0);
|
||||||
im.image = EAX;
|
}
|
||||||
im.set_vars();
|
|
||||||
im.draw(_x, _y, im.w, im.h, 0, 0);
|
|
||||||
__ERROR__:
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -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 editbox_icons[] = FROM "res/editbox_icons.raw";
|
||||||
|
|
||||||
char version[]="WebView 2.7c";
|
char version[]="WebView 2.7e";
|
||||||
|
|
||||||
#include "texts.h"
|
#include "texts.h"
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
@ -236,7 +236,7 @@ void main()
|
|||||||
if (http.transfer <= 0) break;
|
if (http.transfer <= 0) break;
|
||||||
http.receive();
|
http.receive();
|
||||||
EventUpdateProgressBar();
|
EventUpdateProgressBar();
|
||||||
CheckContentType();
|
if (http_get_type==PAGE) CheckContentType();
|
||||||
if (http.receive_result != 0) break;
|
if (http.receive_result != 0) break;
|
||||||
if (http.status_code >= 300) && (http.status_code < 400)
|
if (http.status_code >= 300) && (http.status_code < 400)
|
||||||
{
|
{
|
||||||
@ -259,7 +259,7 @@ void main()
|
|||||||
}
|
}
|
||||||
else if (http_get_type==IMG) {
|
else if (http_get_type==IMG) {
|
||||||
cache.add(WB1.page_img.current_url(), http.content_pointer, http.content_received, 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();
|
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