Re[5]: График
От: Кодёнок  
Дата: 04.06.09 14:35
Оценка: :))
Здравствуйте, Gek, Вы писали:

Gek>>>Опишите подробней пожалуйста. Где можно найти пример или почитать?

Кё>>Сделать поиск по документации *дьявольский смех*
Gek>Дайте пожалуйста линк на документацию.

*еще более дьявольский смех*
График
От: Gek Россия  
Дата: 03.06.09 13:49
Оценка:
Доброго времени суток

Подскажите пожалуйста каким образом лучше реализовать график скорости (например как у какого-нибудь download'ера) средствами Htmlayout. Решение в лоб сделать таблицу с однопиксельными ячейками и менять ячейкам background.
Может быть есть более изящнее решения.
Re: График
От: yarus23  
Дата: 03.06.09 15:56
Оценка:
Здравствуйте, Gek, Вы писали:

Gek>Доброго времени суток


Gek>Подскажите пожалуйста каким образом лучше реализовать график скорости (например как у какого-нибудь download'ера) средствами Htmlayout. Решение в лоб сделать таблицу с однопиксельными ячейками и менять ячейкам background.

Gek>Может быть есть более изящнее решения.

Воистину из Москвы в Тулу через Китай.
Используй рисующий behavior на graphin канвасе и будет тебе щастье.
Re[2]: График
От: Gek Россия  
Дата: 03.06.09 17:02
Оценка:
Здравствуйте, yarus23, Вы писали:

Y>Здравствуйте, Gek, Вы писали:


Gek>>Доброго времени суток


Gek>>Подскажите пожалуйста каким образом лучше реализовать график скорости (например как у какого-нибудь download'ера) средствами Htmlayout. Решение в лоб сделать таблицу с однопиксельными ячейками и менять ячейкам background.

Gek>>Может быть есть более изящнее решения.

Y>Воистину из Москвы в Тулу через Китай.

Y>Используй рисующий behavior на graphin канвасе и будет тебе щастье.

Опишите подробней пожалуйста. Где можно найти пример или почитать?
Re[3]: График
От: Кодёнок  
Дата: 04.06.09 06:54
Оценка:
Здравствуйте, Gek, Вы писали:

Gek>Опишите подробней пожалуйста. Где можно найти пример или почитать?


Сделать поиск по документации *дьявольский смех*
Re[3]: График
От: c-smile Канада http://terrainformatica.com
Дата: 04.06.09 07:26
Оценка:
Здравствуйте, Gek, Вы писали:

Gek>Здравствуйте, yarus23, Вы писали:



Y>>Воистину из Москвы в Тулу через Китай.

Y>>Используй рисующий behavior на graphin канвасе и будет тебе щастье.

Gek>Опишите подробней пожалуйста. Где можно найти пример или почитать?


htmlayoutsdk\html_samples\forms\progress.htm
htmlayoutsdk\html_samples\csss!\progress.htm
htmlayoutsdk/html_samples/behaviors/chart.htm & htmlayoutsdk\include\behaviors\chart\behavior_chart.cpp
Re[4]: График
От: Gek Россия  
Дата: 04.06.09 14:07
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, Gek, Вы писали:


Gek>>Опишите подробней пожалуйста. Где можно найти пример или почитать?


Кё>Сделать поиск по документации *дьявольский смех*


Дайте пожалуйста линк на документацию.
Re[4]: График
От: Gek Россия  
Дата: 04.06.09 14:09
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, Gek, Вы писали:


Gek>>Здравствуйте, yarus23, Вы писали:



Y>>>Воистину из Москвы в Тулу через Китай.

Y>>>Используй рисующий behavior на graphin канвасе и будет тебе щастье.

Gek>>Опишите подробней пожалуйста. Где можно найти пример или почитать?


CS>htmlayoutsdk\html_samples\forms\progress.htm

CS>htmlayoutsdk\html_samples\csss!\progress.htm
CS>htmlayoutsdk/html_samples/behaviors/chart.htm & htmlayoutsdk\include\behaviors\chart\behavior_chart.cpp

Я отрисовал свой график. Каким образом я могу в рантайме передавать массив данных для отрисовки. Граффик должен обновлятся каждую секунду? В примере массив данных забит в html.
Re[6]: График
От: Gek Россия  
Дата: 04.06.09 14:48
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, Gek, Вы писали:


Gek>>>>Опишите подробней пожалуйста. Где можно найти пример или почитать?

Кё>>>Сделать поиск по документации *дьявольский смех*
Gek>>Дайте пожалуйста линк на документацию.

Кё>*еще более дьявольский смех*


Мне просто уже инетересно чего вам так весело?
Re[7]: График
От: ShaggyOwl Россия http://www.rsdn.org
Дата: 04.06.09 15:53
Оценка:
Здравствуйте, Gek, Вы писали:

Gek>Мне просто уже инетересно чего вам так весело?


Это помесь отчаяния с приглушенными рыданиями. Кто-то путает эти звуки с дъявольским смехом

Документации не так уж много:
1. Оф. сайт
2. Оф. wiki
3. Форумы на оф. сайте и рсдн
4. Комментарии в исходниках
Хорошо там, где мы есть! :)
Re[8]: График
От: Gek Россия  
Дата: 04.06.09 16:33
Оценка:
Здравствуйте, ShaggyOwl, Вы писали:

SO>Здравствуйте, Gek, Вы писали:


Gek>>Мне просто уже инетересно чего вам так весело?


SO>Это помесь отчаяния с приглушенными рыданиями. Кто-то путает эти звуки с дъявольским смехом


SO>Документации не так уж много:

SO>1. Оф. сайт
SO>2. Оф. wiki
SO>3. Форумы на оф. сайте и рсдн
SO>4. Комментарии в исходниках

Я поэтому и уточнил так как разбираюсь по примерам и форум в подмогу.

Вопрос остается открытым. Я использовал behavior_chart.cpp — отрисовал график. Данные для графика в примере забиты в html. Есть способ передать массив данных контролу с behavior: chart или же подменить их в html и отрефрешить контрол без перегрузки всего html?

И еще один вопрос.
Я поместил html в ресурсы, а картинки так и лежат снаружи. Как их можно поместить в exe и как на них после этого ссылаться из html?
Re[9]: График
От: yarus23  
Дата: 05.06.09 12:04
Оценка:
Gek>Вопрос остается открытым. Я использовал behavior_chart.cpp — отрисовал график. Данные для графика в примере забиты в html. Есть способ передать массив данных контролу с behavior: chart или же подменить их в html и отрефрешить контрол без перегрузки всего html?

Это просто. Посылкой сообщения.


    virtual BOOL on_script_call(HELEMENT he, LPCSTR name, UINT argc, json::value* argv, json::value& retval) 
    { 
       if( aux::streq(name, "data_array") )
       {
          data_ = *argv; 
          request_redraw(he);          
...


и в argv даете массив значений. argc будет равен 1.
И делаете так — element.xcall("data_array", real_data);

правда если массив данных большой то будет неэффективно — тройное копирование массива. Тогда лучше чтобы behavior уже владело перманентно указателем на массив данных.

Gek>И еще один вопрос.

Gek>Я поместил html в ресурсы, а картинки так и лежат снаружи. Как их можно поместить в exe и как на них после этого ссылаться из html?

Поместить в ресурсы и использовать res:filename.jpg
См. код sdk\include\wtl_htmlayout.h и sdk\include\wtl_htmlayouthost.h
Re[10]: График
От: Gek Россия  
Дата: 05.06.09 13:37
Оценка:
Здравствуйте, yarus23, Вы писали:

Gek>>И еще один вопрос.

Gek>>Я поместил html в ресурсы, а картинки так и лежат снаружи. Как их можно поместить в exe и как на них после этого ссылаться из html?

Y>Поместить в ресурсы и использовать res:filename.jpg

Y>См. код sdk\include\wtl_htmlayout.h и sdk\include\wtl_htmlayouthost.h

У меня еть png файлы и один анимированный gif. png я добавил в ресурсы на gif выдает ошибку что не тот формат.
png не отображаются
<img src="res:progress_dark.png">
или
background-image: url(res:progress_dark.png);

Я использую Add Resource->Import. В чем может быть проблема?
Re[10]: График
От: Gek Россия  
Дата: 05.06.09 13:48
Оценка:
res:activity.gif например работает.
Re[11]: График
От: Gek Россия  
Дата: 05.06.09 14:01
Оценка:
IDR_PNG1 PNG "res\\progress_dark.png"
IDR_PNG2 PNG "res\\progress_light.png"

Я проверил в exe файле они есть.
Re[12]: График
От: yarus23  
Дата: 05.06.09 17:29
Оценка:
См. код sdk\include\wtl_htmlayout.h и sdk\include\wtl_htmlayouthost.h и ваши волосы будут мягкими и шелковистыми. Все сразу поймете.
Re[13]: График
От: Gek Россия  
Дата: 16.06.09 11:51
Оценка:
Здравствуйте, yarus23, Вы писали:

Y>См. код sdk\include\wtl_htmlayout.h и sdk\include\wtl_htmlayouthost.h и ваши волосы будут мягкими и шелковистыми. Все сразу поймете.


Проблемы с волосами. Я понял что в этих двух модулях надо внести изменения для того чтобы изображение поднималось из ресурсов.
Честно говоря я не могу разобраться что именно надо сделать. Вы не могли бы подсказать.

Заранее благодарен.
Re[14]: График
От: yarus23  
Дата: 16.06.09 12:26
Оценка:
Gek>Заранее благодарен.

ОК. Чтобы загрузить например jpeg надо создать ресурс, именованный как расширение файла.
То есть:

ID_OPEN PNG DISCARDABLE "open.png"

Смотрим LoadResourceData(HWND hWnd, LPCWSTR uri ) из sdk\include\wtl_htmlayout.h:

if (wcsncmp( uri, L"res:", 4 ) == 0 )

то есть надо вставить res: в начале.

Смотрим дальше комментарии и код:

// Find specified resource and leave if failed. Note that we use extension
// as the custom resource type specification or assume standard HTML resource
// if no extension is specified

hrsrc = ::FindResource(module, pszName, pszExt);

Ну вот, все становится ясно.
Re[15]: График
От: Gek Россия  
Дата: 16.06.09 13:10
Оценка:
Здравствуйте, yarus23, Вы писали:

Я вроде так и делаю. Вот строчка из .rc
IDR_LOGO PNG DISCARDABLE "Images\\logo.png"
Вот строчка из html
<img src="res:logo.png" width="85px" height="10px">
Re[16]: График
От: Gek Россия  
Дата: 16.06.09 13:19
Оценка:
По коду uri это "res:logo.png"
Т.е. при вызове
FindResource(module, pszName, pszExt);
pszName = "logo"
pszExt = "png"

В моем случае ресурс IDR_LOGO типа PNG.
Re[17]: График
От: Gek Россия  
Дата: 16.06.09 13:39
Оценка:
Может быть дело в путях или у меня какая-то другая версия. Например LoadResourceData(HWND hWnd, LPCWSTR uri ) у меня находится в файле wtl_htmlayouthost.h. а в wtl_htmlayout.h есть функция LoadFromResource(LPCWSTR URI) которая закоментирована.
Re[18]: График
От: yarus23  
Дата: 16.06.09 15:00
Оценка:
Здравствуйте, Gek, Вы писали:

Gek>Может быть дело в путях или у меня какая-то другая версия. Например LoadResourceData(HWND hWnd, LPCWSTR uri ) у меня находится в файле wtl_htmlayouthost.h. а в wtl_htmlayout.h есть функция LoadFromResource(LPCWSTR URI) которая закоментирована.


Покажите строку ресурса из rc файла и чем вы грузите сам html. Может быть до LoadResourceData и не доходит.
Re[19]: График
От: Gek Россия  
Дата: 16.06.09 15:26
Оценка:
Здравствуйте, yarus23, Вы писали:

Y>Здравствуйте, Gek, Вы писали:


Gek>>Может быть дело в путях или у меня какая-то другая версия. Например LoadResourceData(HWND hWnd, LPCWSTR uri ) у меня находится в файле wtl_htmlayouthost.h. а в wtl_htmlayout.h есть функция LoadFromResource(LPCWSTR URI) которая закоментирована.


Y>Покажите строку ресурса из rc файла и чем вы грузите сам html. Может быть до LoadResourceData и не доходит.



IDR_LOGO PNG DISCARDABLE "Images\\logo.png"


bool CWiFixerDlg::GetHtmlResource(LPCTSTR name, PBYTE& pb, DWORD& cb)
{
    HRSRC source = ::FindResource(theApp.m_hInstance, name, MAKEINTRESOURCE(RT_HTML));
    if(!source) return false;

    HGLOBAL resource = ::LoadResource(theApp.m_hInstance, source);
    if(!resource) return false;

    pb = (PBYTE)::LockResource(resource); if (!pb) return false;
    cb = ::SizeofResource(theApp.m_hInstance, source); if (!cb) return false;

    return true;
}

CString CWiFixerDlg::GetHtmlString(DWORD id)
{
    LPBYTE pb;
    DWORD cb;

    if (!GetHtmlResource(MAKEINTRESOURCE(id), pb, cb)) return false;

    return CString((char *)pb, cb); 
}

bool CWiFixerDlg::SetHtmlString(CString buffer)
{
    return ::HTMLayoutLoadHtml(m_hWnd, (LPBYTE)(LPCTSTR)buffer, buffer.GetLength()) != 0;
}
Re[20]: График
От: Gek Россия  
Дата: 16.06.09 15:38
Оценка:
    CString main_tpl = GetHtmlString(IDR_HTML_MAIN);
    SetHtmlString(main_tpl);
Re[21]: График
От: yarus23  
Дата: 16.06.09 18:52
Оценка:
Здравствуйте, Gek, Вы писали:

Gek>
Gek>    CString main_tpl = GetHtmlString(IDR_HTML_MAIN);
Gek>    SetHtmlString(main_tpl);
Gek>


И каким же образом htmlayout должно узнать о ваших png файлах?
Сама библиотека о ресурсах или файлах ничего не знает и получает только char * на битмап картинки, в ответ на нотификацию HLN_LOAD_DATA.

Можете грузить все руками и обрабатывать нотификацию HLN_LOAD_DATA, можете воспользоваться готовым обработчиком из файла htmlayout_notifications.hpp, для этого надо ваш класс унаследовать от notification_handler<your_class> и записаться в обработчики htmlayout нотификаций строкой setup_callback в обработчики WM_CREATE. Или аналогично использовать wtl_htmlayouthost.h, там просто много ненужного.
Re[22]: График
От: Gek Россия  
Дата: 17.06.09 14:13
Оценка:
Понял. Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.