FM>Загруженный в browse.exe, работает нормально. Посмотри, в SDK куча примеров с gif и png.
Ага Только сейчас обнаружил. У меня есть один bmp-файл, который HTMLayout не понимает. Именно этот он отказывается показывать. В чем причина?
Потом у меня интересная ситуация. Необходимо самому "разруливать" загрузку img (через HLN_LOAD_DATA). Есть handle на HICON и/или HBITMAP в памяти. По условиям задачи, в HTML (генерируется налету) img таг прописан так:
<img src="hicon:0x10007"> (0x10007 — значение обычного виндового хэндла)
Необходимо что-то передать в HTMLayout при вызове HLN_LOAD_DATA. Вопрос что?
Файла как такового у меня нет Пусть даже в памяти. Потом если даже я из этого hicon как-то достану битовый образ картинки, поймет ли HTMLayout этот поток данных?
Я вот вижу, есть некий enum — HTMLayoutResourceType. Недостает там (мечтательно ) — HLRT_DATA_HICON Задача бы упростилась в разы.
Здравствуйте, Nikolaz, Вы писали:
N>Ага Только сейчас обнаружил. У меня есть один bmp-файл, который HTMLayout не понимает. Именно этот он отказывается показывать. В чем причина?
Такая же беда. Пиши баг-репорт
N>Потом у меня интересная ситуация. Необходимо самому "разруливать" загрузку img (через HLN_LOAD_DATA). Есть handle на HICON и/или HBITMAP в памяти. По условиям задачи, в HTML (генерируется налету) img таг прописан так:
N><img src="hicon:0x10007"> (0x10007 — значение обычного виндового хэндла)
N>Необходимо что-то передать в HTMLayout при вызове HLN_LOAD_DATA. Вопрос что?
Если есть только хендл, толку от него будет немного, см. http://www.terrainformatica.com/bb/viewtopic.php?t=528. Если добавишь свое пожелание, то может Андрей реализует эту функциональность быстрее
N>Файла как такового у меня нет Пусть даже в памяти. Потом если даже я из этого hicon как-то достану битовый образ картинки, поймет ли HTMLayout этот поток данных?
А что такое битовый образ? Если точная копия файла в памяти, то должно работать. По крайней мере курсоры я так грузил.
Тут есть одна особенность
N>Я вот вижу, есть некий enum — HTMLayoutResourceType. Недостает там (мечтательно ) — HLRT_DATA_HICON Задача бы упростилась в разы.
Здравствуйте, FreshMeat, Вы писали:
FM>Такая же беда. Пиши баг-репорт
Ok.
FM>Если есть только хендл, толку от него будет немного, см. http://www.terrainformatica.com/bb/viewtopic.php?t=528. Если добавишь свое пожелание, то может Андрей реализует эту функциональность быстрее
Будем "желать"
FM>А что такое битовый образ? Если точная копия файла в памяти, то должно работать. По крайней мере курсоры я так грузил.
Так из-за этого и весь "сыр-бор". Дело в том, что это handle системной иконки, полученый из обычного вызова LoadIcon. Файла как бы и не предвидится в этой ситуации
Здравствуйте, Nikolaz, Вы писали:
N>Так из-за этого и весь "сыр-бор". Дело в том, что это handle системной иконки, полученый из обычного вызова LoadIcon. Файла как бы и не предвидится в этой ситуации
У меня аналогичная ситуация, по ссылочке выше описал ее подробнее (формирование курсора при драг-н-дропе).
Я уже то того дошел, что был готов ручками создавать файл, модифицировать css, но во время экспериментов нашел только возможность перегружать целиком css, что никак не устраивает из-за низкой производительности.
Здравствуйте, FreshMeat, Вы писали:
FM>У меня аналогичная ситуация, по ссылочке выше описал ее подробнее (формирование курсора при драг-н-дропе). FM>Я уже то того дошел, что был готов ручками создавать файл,
Меня тоже такая мысль посещала Но я быстро прогнал ее прочь .
N>Здравствуйте, FreshMeat, Вы писали:
FM>>У меня аналогичная ситуация, по ссылочке выше описал ее подробнее (формирование курсора при драг-н-дропе).
Собственно порылся я тут более подробнее в примерах HTMLayout и нашел следующее: behavior:shell-icon. Очень показательный пример. В принципе решает все вышеописанные мной и вами проблемы. Пример можно посмотреть в HTMLayout SDK (html_samples\behaviors\shell-icon.htm). А реализация: include\behaviors\behavior_shellicon.cpp
Правда придется отказаться от стандартного подхода (в смысле <img src="что-то там">). Но может это и к лучшему . В новой реинкарнации это будет похоже примерно на следующее:
<img class="hicon" handle="0x1007" />
где "hicon":
img.hicon
{
behavior: hicon;
}
Ну и реализовать свой behavior на примере из behavior_shellicon.cpp (там всего пару строчек кода).
Здравствуйте, Nikolaz, Вы писали:
N>Собственно порылся я тут более подробнее в примерах HTMLayout и нашел следующее: behavior:shell-icon.
Интересный примерчик. Как-то выпал он из поля зрения. Курсор, правда, заставить работать не удалось — если в on_draw устанавливаю свой курсор (SetCursor), то при любом движении мышкой он изменяется на дефолтный (прописанный в css)
Здравствуйте, FreshMeat, Вы писали:
FM>Интересный примерчик. Как-то выпал он из поля зрения. Курсор, правда, заставить работать не удалось — если в on_draw устанавливаю свой курсор (SetCursor), то при любом движении мышкой он изменяется на дефолтный (прописанный в css)
Правда это только мои размышления . Реально не пробовал
p.s. А я все-таки сделал отрисовку иконок по хэндлу. Как и предпологал — просто нужно было реализовать свой behavior (на примере shell-icon). Правда есть прикол. Если в стиле для img тэга не указать явно стили width и height, то on_draw у behavior почему-то не вызывается. Уж не знаю фича это, или глюк
Угук. А еще есть on_mouse(....)
Вопрос который не дает спокойно спать — чем on_mouse принципиально отличается от handle_mouse (да и вообще ф-ии on_* от handle_*)
Единственный намек — в комментарии
// alternative set of event handlers (aka old set).
это так про on_mouse написано. Что это означает, если учесть что все примеры из SDK используют семейство ф-ий on_* остается только догадываться
N>Правда это только мои размышления . Реально не пробовал
Я пробовал. Не помогает Симптомы описал на одно сообщение выше.
N>p.s. А я все-таки сделал отрисовку иконок по хэндлу. Как и предпологал — просто нужно было реализовать свой behavior (на примере shell-icon). Правда есть прикол. Если в стиле для img тэга не указать явно стили width и height, то on_draw у behavior почему-то не вызывается. Уж не знаю фича это, или глюк
Интересно. (на правах предположения) Возможно HTMLayout сходу не может определить длину и ширину, поэтому устанавливает их в ноль, а потом при рендеринге такие элементы выкидывает.
Здравствуйте, Nikolaz, Вы писали:
N>Или я либо туплю, или это на самом деле? N>HTMLayout img таг не поддерживает bmp, ico файлы?
Вообще бы добавить бы в HTMLayout поддержку, хотя бы не плугинов, а типа а-ля behaviours, только чисто для картинок, к примеру я хочу добавить еще формат, или показывать какой-то свой, ибо делать через beahviors, как рассказано выше не очень "естественно"... вообще бы лучше ввести более гибкую поддержку тегов, типа, раз и добавил свой новый тег, при этом их можно разделять по "библиотекам", т.е. как в JSP (раз все-таки там не совсем HTML, то пусть хоть будет удобным) —
Здравствуйте, Plague, Вы писали:
P>вообще бы лучше ввести более гибкую поддержку тегов, типа, раз и добавил свой новый тег, при этом их можно разделять по "библиотекам", т.е. как в JSP (раз все-таки там не совсем HTML, то пусть хоть будет удобным) — P>
а в своем поведении и картинки нового формата грузить можно и рендерить самостоятельно да и еще миллион полезных вещей делать
Механизм html-классов является достаточно гибкой и мощной штукой. По крайней мере в первом приближении.
FM>а в своем поведении и картинки нового формата грузить можно и рендерить самостоятельно да и еще миллион полезных вещей делать FM>Механизм html-классов является достаточно гибкой и мощной штукой. По крайней мере в первом приближении.
с классами не сильно хорошо — они могут понадобиться для чего-то другого (например, для дизайна и т.п.)
можно использовать собственно-придуманный атрибут, для которого писать селектор.
хотя с таким подходом, классы ничем не отличаются от любых аттрибутов:
<div class="MyClass" MyAttr="MyClass1">...
в
css:
.MyClass {... }
или
[MyAttr="MyClass1"] {... }
(правда, я не уверен в отсутствии падения производительности)
можно и не через CSS, а через явное присоединение бихейвера.
зато class остается для других нужд, а "собственный тег" получается почти прозрачным образом.
Здравствуйте, FreshMeat, Вы писали:
FM>Здравствуйте, Nikolaz, Вы писали:
FM>Единственный намек — в комментарии FM>
FM>// alternative set of event handlers (aka old set).
FM>это так про on_mouse написано. Что это означает, если учесть что все примеры из SDK используют семейство ф-ий on_* остается только догадываться
В предыдущих версиях (до 3.XX) вроде использовались другие обработчики. Похоже что это они и есть.
Здравствуйте, Plague, Вы писали:
P>Здравствуйте, Nikolaz, Вы писали:
N>>Или я либо туплю, или это на самом деле? N>>HTMLayout img таг не поддерживает bmp, ico файлы?
P>Вообще бы добавить бы в HTMLayout поддержку, хотя бы не плугинов, а типа а-ля behaviours, только чисто для картинок, к примеру я хочу добавить еще формат, или показывать какой-то свой, ибо делать через beahviors, как рассказано выше не очень "естественно"... вообще бы лучше ввести более гибкую поддержку тегов, типа, раз и добавил свой новый тег, при этом их можно разделять по "библиотекам", т.е. как в JSP (раз все-таки там не совсем HTML, то пусть хоть будет удобным) — P>
А вообще, есть в природе некое описание всего того, что HTMLayout engine поддерживает?
При углубленном изучении и дальнейшем использовании возникает ощущение, что задействуешь
только процентов 10% всех возможностей, или то, что сделано, можно было реализовать
гараздо проще (имеется ввиду сам HTMLayout).
Здравствуйте, Andrey_Pilya, Вы писали:
A_P>.MyClass {... } A_P>или A_P>[MyAttr="MyClass1"] {... }
A_P>(правда, я не уверен в отсутствии падения производительности) A_P>можно и не через CSS, а через явное присоединение бихейвера.
A_P>зато class остается для других нужд, а "собственный тег" получается почти прозрачным образом.
Элемент может принадлежать нескольким классам одновременно: