Page 21 of 59
Re: HTML Viewer in C--
Posted: Sat Feb 25, 2012 9:17 am
by SoUrcerer
Leency, а теперь я очень сильно прошу тебя рассказать, как работает парсер тегов и вывод всего этого на экран. Очень хочется добавить поддержку пары важных тегов и может быть свойств.
Re: HTML Viewer in C--
Posted: Mon Feb 27, 2012 5:11 pm
by Leency
HTMLv 0.75
- при закрытии HTMLv, downloader тоже завершается;
- невозможно запустить больше одного downloader'a;
- отображение процесса загрузки страницы из Интернета через кнопочку "остановить", надпись "Loading...", возможность прервать процесс;
- обновление страницы из Интернета приводит к её повторной загрузке.
БАГИ: кнопка назад не работает как надо, заголовок страницы иногда исчезает, и главное - чтобы страница отобразилась нужно скидывать фокус с окна и активировать его.
Ну а в целом версия очень хороша!
Re: HTML Viewer in C--
Posted: Mon Feb 27, 2012 5:21 pm
by Leency
SoUrcerer wrote:Leency, а теперь я очень сильно прошу тебя рассказать, как работает парсер тегов и вывод всего этого на экран. Очень хочется добавить поддержку пары важных тегов и может быть свойств.
В двух словах всё происходит на лету - читаем из памяти страницу, рисуем сразу... Я позже более развёрнуто отвечу.
Самая большая проблема для меня - невозможность создавать НОРМАЛЬНО на С-- массивы строк.
Re: HTML Viewer in C--
Posted: Mon Feb 27, 2012 5:40 pm
by SoUrcerer
А с чем собственно проблемы? CleverMouse однажды мне подсказывала, что можно загрузить весь файл в память, а потом раскидать в отдельном массиве указатели на фрагменты файла.
Re: HTML Viewer in C--
Posted: Wed Feb 29, 2012 2:50 am
by Leency
HTML Viewer 0.76
- исправлена работа кнопки "Назад";
- в историю посещённых страниц не может быть добавлено 2 одинаковых адреса подряд;
- исправлено исчезание заголовка страниц;
- исчезала кнопка вверх в прокрутке - исправлено;
- некоторые другие исправления.
Эту версию можно назвать STABLE, т.к. все известные мне баги исправлены. Дальше дело за архитектурными проблемами.
Здесь их две основных для меня:
1. Нет единой процедуры загрузки и отображения страниц, на каждый чих свой код, процедуры и ньюансы. Тонкая смесь костылей.
2. Несложная проблема, но я не знаю как это реализовать. Вот работает программа как обычно, на события всякие реагирует. И тут открывает ссылку из нэта, запускается давнлоадер и начинает качать страницу. Так вот в чём проблема: программе нужно каждые скажем полсекунды проверять висит ли даунлоадер в процессах или уже закрылся (соответственно выкачав страницу). А потом снова жить ХТМЛв как ни в чём не бывало.
Тут я так понимаю нужно менять маску событий чтобы программа начинала генерировать событие каждые полсекунды. Потом менять обратно. Так?
Re: HTML Viewer in C--
Posted: Wed Feb 29, 2012 2:57 am
by Mario
Можно задействовать ф.23 вместо ф.10 на нужный период. Пишешь еще один главный цикл и передаешь на него управление, а когда страница скачана, то передаешь управление обратно в основной главный цикл. Из событий во вторичном главном цикле обрабатывать только перерисовку окна и обработку кнопки закрытия.
Re: HTML Viewer in C--
Posted: Wed Feb 29, 2012 3:12 am
by Leency
Спасибо, попробую.
Re: HTML Viewer in C--
Posted: Wed Feb 29, 2012 11:48 am
by dunkaist
Можешь поправить downloader, чтобы он принимал в качестве параметра ещё и pid процесса, которому он будет отсылать IPC события о завершении своей работы и статус её завершения (скажем, 404, 403, 200 или просто success/fail). Так, на мой взгляд, будет меньше извращений.
Re: HTML Viewer in C--
Posted: Wed Feb 29, 2012 12:21 pm
by SoUrcerer
А еще (вот уж вдруг) можно добавить обработку тега input и кнопки submit для отправки get-запросов. Если бы downloader умел делать и post-запросы (с передачей параметров через ipc) - вообще было бы сказочно.
Re: HTML Viewer in C--
Posted: Wed Feb 29, 2012 3:34 pm
by Leency
1. Если открывать программу с параметром, в котором ссылка на интернет-сайт, программа отобразит его. Пример: Eolite -> About (нажать на разноцветные кружочки справа от строки адреса) -> ссылка на мой сайт.
2.
Re: HTML Viewer in C--
Posted: Wed Feb 29, 2012 3:48 pm
by SoUrcerer
bgcolor - это Ня!
Re: HTML Viewer in C--
Posted: Wed Feb 29, 2012 11:59 pm
by Mario
Все еще не исправлен баг - после загрузки страницы она не отрисовывается без насильственных действий с окном программы (переключения фокуса системы, изменения размеров окна или его перетаскивания). Вероятно поправить очень сложно, так как наследуемость бага 100%.
Почему то в Qemu (на реальном железе не проверял) не открывается
http://kolibrios.org (адрес правильный и этот форум при этом открывается) и
http://flatassembler.net
Также предложение на будущее - проверять если строка адреса не начинается с символа "/" или "http://", то подставлять "http://" программа должна самостоятельно.
Re: HTML Viewer in C--
Posted: Thu Mar 01, 2012 1:04 am
by Leency
Предложение принимается. А даунлоадер их хавает (колибриос.орг и флэтассемблер)?
Насчёт "насильственных действий с окном" - это не баг - это
фича архитектурная проблема. Которую я пока не знаю как решить и которая меня загоняет в угол... я опускаю руки... т.к. нужно читать документацию, проводить тесты... Когда-нибудь я её решу.
Хм... Может
lev поможет?

Re: HTML Viewer in C--
Posted: Thu Mar 01, 2012 2:35 am
by lev
Похоже там редиректы, результаты генерации и т.п.
http://kolibrios.org/ru/index.html - у меня открывается
http://flatassembler.net/index.php - не хочет
я в этом не специалист.
Багов с перерисовкой в Qemu пока не воспроизвёл, погоняю ещё.
Re: HTML Viewer in C--
Posted: Sun Mar 04, 2012 2:26 am
by Leency
- обработка перехода вверх "../";
- jpg, gif, png открываются через kiv. Подумываю вообще eolite.ini прикрутить и открывать файлы соответствующими прогами... А отображать только на txt, htm, html, mht и неизвестные расширения.
Новая версия на SVN. Обнаружил ещё две ошибки, надеюсь скоро исправить.