diff --git a/programs/cmm/browser/TWB/TWB.c b/programs/cmm/browser/TWB/TWB.c index 06aa7fd2a..5d1159c8d 100644 --- a/programs/cmm/browser/TWB/TWB.c +++ b/programs/cmm/browser/TWB/TWB.c @@ -101,9 +101,12 @@ void TWebBrowser::SetPageDefaults() img_url.drop(); text_colors.drop(); text_colors.add(0); - bg_colors.drop(); - bg_colors.add(DEFAULT_BG_COL); - canvas.Fill(0, DEFAULT_BG_COL); + if (!secondrun) { + bg_colors.drop(); + bg_colors.add(DEFAULT_BG_COL); + } else { + canvas.Fill(0, bg_colors.get(0)); + } header = NULL; draw_y = BODY_MARGIN; draw_x = left_gap = BODY_MARGIN; diff --git a/programs/cmm/browser/TWB/links.h b/programs/cmm/browser/TWB/links.h index ab653eb29..21b4d2b75 100644 --- a/programs/cmm/browser/TWB/links.h +++ b/programs/cmm/browser/TWB/links.h @@ -45,9 +45,10 @@ void PAGE_LINKS::clear() w.drop(); h.drop(); underline_h.drop(); + id.drop(); + element_links.drop(); unic_links.drop(); - id.drop(); active = -1; active_url = 0; diff --git a/programs/cmm/browser/TWB/set_style.h b/programs/cmm/browser/TWB/set_style.h index 2d46f2268..8d140fadd 100644 --- a/programs/cmm/browser/TWB/set_style.h +++ b/programs/cmm/browser/TWB/set_style.h @@ -60,7 +60,8 @@ void TWebBrowser::SetStyle() void TWebBrowser::tag_p() { - IF (tag.prior[0] == 'h') || (streq(#tag.prior,"td")) || (streq(#tag.prior,"p")) return; + IF (tag.prior[0] == 'h') || (streq(#tag.prior,"td")) return; + if (!tag.opened) && (streq(#tag.prior,"p")) return; NewLine(); } @@ -244,11 +245,19 @@ void TWebBrowser::tag_h1234_caption() } else { style.h = tag.opened; if (tag.opened) { - if (!style.pre) NewLine(); - draw_y += 10; - list.SetFont(BASIC_CHAR_W*2, 14*2, 10011001b); - list.item_h = BASIC_LINE_H * 2 - 2; - if (tag.is("h1")) style.b = true; + if (!style.pre) { + NewLine(); + NewLine(); + } + if (tag.is("h1")) { + list.SetFont(BASIC_CHAR_W*2, 14+12, 10011001b); + style.b = true; + } else if (tag.is("h2")) { + list.SetFont(BASIC_CHAR_W*2, 14+12, 10011001b); + } else { + list.SetFont(6*2, 9+7, 10001001b); + } + style.cur_line_h = list.item_h = list.font_h + 2; } else { if (tag.is("h1")) style.b = false; NewLine(); diff --git a/programs/cmm/browser/WebView.c b/programs/cmm/browser/WebView.c index 78afe3daf..6ecfb9986 100644 --- a/programs/cmm/browser/WebView.c +++ b/programs/cmm/browser/WebView.c @@ -337,6 +337,7 @@ void ProcessKeyEvent() { case SCAN_CODE_UP: EventScrollUpAndDown(SCAN_CODE_UP); return; case SCAN_CODE_DOWN: EventScrollUpAndDown(SCAN_CODE_DOWN); return; + case SCAN_CODE_F2: EventEditSource(); return; case SCAN_CODE_F6: {omnibox_edit.flags=ed_focus; DrawOmnibox();} return; case SCAN_CODE_F5: EventRefreshPage(); return; case SCAN_CODE_ENTER: if (omnibox_edit.flags & ed_focus) EventSubmitOmnibox(); return; @@ -571,7 +572,6 @@ void OpenPage(dword _open_URL) history.add(#new_url); WB1.custom_encoding = -1; if (streq(#new_url, URL_SERVICE_HOMEPAGE)) LoadInternalPage(#buildin_page_home, sizeof(buildin_page_home)); - else if (streq(#new_url, URL_SERVICE_HELP)) LoadInternalPage(#buildin_page_help, sizeof(buildin_page_help)); else if (streq(#new_url, URL_SERVICE_TEST)) LoadInternalPage(#buildin_page_test, sizeof(buildin_page_test)); else if (streq(#new_url, URL_SERVICE_HISTORY)) ShowHistory(); else LoadInternalPage(#buildin_page_error, sizeof(buildin_page_error)); @@ -740,7 +740,12 @@ void LoadInternalPage(dword _bufdata, _in_bufsize){ WB1.DrawPage(); } http.hfree(); - if (WB1.img_url.count) { GetImg(true); DrawOmnibox(); } + if (WB1.img_url.count) { + GetImg(true); + DrawOmnibox(); + } else { + PageLoaded(); + } } } @@ -762,7 +767,7 @@ void DrawProgress() void EventShowPageMenu() { open_lmenu(mouse.x, mouse.y, MENU_TOP_LEFT, NULL, #rmb_menu); - menu_id = VIEW_SOURCE; + menu_id = BACK_BUTTON; } void EventShowLinkMenu() @@ -976,8 +981,13 @@ dword GetImg(bool _new) DrawStatusBar(T_RENDERING); WB1.Reparse(); WB1.DrawPage(); - debugln(sprintf(#param, T_DONE_IN_SEC, GetStartTime()-render_start_time/100)); - DrawStatusBar(NULL); + PageLoaded(); +} + +void PageLoaded() +{ + DrawStatusBar(sprintf(#param, T_DONE_IN_SEC, GetStartTime()-render_start_time/100, + GetStartTime()-render_start_time*10)); } stop: diff --git a/programs/cmm/browser/cache.h b/programs/cmm/browser/cache.h index cd7e77426..6c7c68cc4 100644 --- a/programs/cmm/browser/cache.h +++ b/programs/cmm/browser/cache.h @@ -16,7 +16,7 @@ struct _cache void add(); bool has(); void clear(); -} cache=0; +} cache; void _cache::add(dword _url, _data, _size, _type, _charset) { @@ -37,6 +37,7 @@ void _cache::add(dword _url, _data, _size, _type, _charset) bool _cache::has(dword _link) { int pos; + if (!url.count) return false; pos = url.get_pos_by_name(_link); if (pos != -1) { current_buf = data.get(pos); diff --git a/programs/cmm/browser/const.h b/programs/cmm/browser/const.h index bef4cb026..7b5ce7496 100644 --- a/programs/cmm/browser/const.h +++ b/programs/cmm/browser/const.h @@ -9,8 +9,11 @@ char buildin_page_home[] = FROM "res/homepage_ru.htm"; char buildin_page_help[] = FROM "res/help_ru.htm"; char accept_language[]= "Accept-Language: ru\n"; char rmb_menu[] = -"Посмотреть исходник|Ctrl+U -Редактировать исходник"; +"Back|Ctrl+< +Forward|Ctrl+> +- +Посмотреть исходник|Ctrl+U +Редактировать исходник|F2"; char main_menu[] = "Открыть файл...|Ctrl+O Новое окно|Ctrl+N @@ -34,7 +37,7 @@ char update_is_current[] = "'WebView\n char update_can_not_copy[] = "'WebView\nНе могу переместить новую версию из папки Downloads на Ramdisk. Возможно, не достаточно места.' -tE"; char clear_cache_ok[] = "'WebView\nКэш очищен.' -tI"; #define T_RENDERING "Рендеринг страницы..." -#define T_DONE_IN_SEC "Готово: %i сек" +#define T_DONE_IN_SEC "Готово: %i сек (%i милисек)" #else //===================================================// // // @@ -46,8 +49,11 @@ char buildin_page_home[] = FROM "res/homepage_en.htm"; char buildin_page_help[] = FROM "res/help_en.htm"; char accept_language[]= "Accept-Language: en\n"; char rmb_menu[] = -"View source|Ctrl+U -Edit source"; +"Back|Ctrl+< +Forward|Ctrl+> +- +View source|Ctrl+U +Edit source|F2"; char main_menu[] = "Open local file...|Ctrl+O New window|Ctrl+N @@ -70,7 +76,7 @@ char update_is_current[] = "'WebView\nThe browser is up to date.' -tI"; char update_can_not_copy[] = "'WebView\nError copying a new version from Downloads folder!\nProbably too litle space on Ramdisk.' -tE"; char clear_cache_ok[] = "'WebView\nThe cache has been cleared.' -tI"; #define T_RENDERING "Rendering..." -#define T_DONE_IN_SEC "Done in %i sec" +#define T_DONE_IN_SEC "Done in %i sec (%i milisec)" #endif //===================================================// @@ -83,7 +89,6 @@ char buildin_page_test[] = FROM "res/test.htm"; #define URL_SERVICE_HISTORY "WebView:history" #define URL_SERVICE_HOMEPAGE "WebView:home" -#define URL_SERVICE_HELP "WebView:help" #define URL_SERVICE_TEST "WebView:test" char webview_shared[] = "WEBVIEW"; @@ -91,12 +96,12 @@ char webview_shared[] = "WEBVIEW"; enum { NEW_TAB=600, ENCODINGS=700, - BACK_BUTTON=800, - FORWARD_BUTTON, REFRESH_BUTTON, GOTOURL_BUTTON, CHANGE_ENCODING, - SANDWICH_BUTTON, VIEW_SOURCE, EDIT_SOURCE, OPEN_FILE, - NEW_WINDOW, VIEW_HISTORY, DOWNLOAD_MANAGER, CLEAR_CACHE, - UPDATE_BROWSER, IN_NEW_TAB, IN_NEW_WINDOW, COPY_LINK_URL, - DOWNLOAD_LINK_CT, TAB_ID, + BACK_BUTTON=800, FORWARD_BUTTON, VIEW_SOURCE, EDIT_SOURCE, + REFRESH_BUTTON, GOTOURL_BUTTON, CHANGE_ENCODING, + SANDWICH_BUTTON, + OPEN_FILE, NEW_WINDOW, VIEW_HISTORY, DOWNLOAD_MANAGER, + CLEAR_CACHE, UPDATE_BROWSER, IN_NEW_TAB, IN_NEW_WINDOW, + COPY_LINK_URL, DOWNLOAD_LINK_CT, TAB_ID, TAB_CLOSE_ID = 900 }; @@ -107,4 +112,4 @@ char editbox_icons[] = FROM "res/editbox_icons.raw"; #define DEFAULT_URL URL_SERVICE_HOMEPAGE -char version[]="WebView 3.7"; \ No newline at end of file +char version[]="WebView 3.8"; \ No newline at end of file diff --git a/programs/cmm/browser/res/homepage_en.htm b/programs/cmm/browser/res/homepage_en.htm index 9a9c44541..77f5f175c 100644 --- a/programs/cmm/browser/res/homepage_en.htm +++ b/programs/cmm/browser/res/homepage_en.htm @@ -2,15 +2,16 @@ Homepage -
Bookmarks:
+
Welcome to WebView a Text-Based Browser. 
+
+Bookmarks:
 1. KolibriOS homepage
-2. KolibriN homepage
-3. Night-builds
-4. Kolibri Stuff
+2. Night-builds
+3. KolibriOS FTP
 
 By the way, 
 • 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 Hotkeys.
+• Pressing F6 moves a text cursor to the omnibox.
 • Click on a label in the bottom right corner to change the encoding of a page.
 
diff --git a/programs/cmm/browser/res/homepage_ru.htm b/programs/cmm/browser/res/homepage_ru.htm
index 0c89c3f4b..6db213579 100644
--- a/programs/cmm/browser/res/homepage_ru.htm
+++ b/programs/cmm/browser/res/homepage_ru.htm
@@ -4,14 +4,13 @@
 Домашняя страница
 
 
Закладки:
-1. Домашняя страница KolibriOS
-2. KolibriN10
-3. Ночные сборки
-4. Kolibri Store
+1. Официальный сайт KolibriOS
+2. Ночные сборки
+3. KolibriOS FTP
 
 Кстати, 
 • Из главного меню можно проверить наличие обновлений
 • Для поиска в Google наберите тест в адресной строке и нажмите Ctrl+Enter
-• Есть также другие Горячие клавиши.
+• Клавиша F6 перемещает текстовый курсор в омнибокс.
 • Можно изменить кодировку страницы, для этого нажмите на надпись в правом нижнем углу окна.
 
diff --git a/programs/cmm/browser/tabs.h b/programs/cmm/browser/tabs.h
index bfb988983..f3a7de36b 100644
--- a/programs/cmm/browser/tabs.h
+++ b/programs/cmm/browser/tabs.h
@@ -7,8 +7,8 @@
 
 #define TABS_MAX 5
 
-TWebBrowser tabdata[TABS_MAX+1]=0;
-_history tabstory[TABS_MAX+1]=0;
+TWebBrowser tabdata[TABS_MAX+1];
+_history tabstory[TABS_MAX+1];
 
 struct TAB
 {
diff --git a/programs/cmm/browser/TWB/acid_0.1.htm b/programs/cmm/browser/tests/acid_0.1.htm
similarity index 100%
rename from programs/cmm/browser/TWB/acid_0.1.htm
rename to programs/cmm/browser/tests/acid_0.1.htm