Re[7]: img таг и bmp, ico файлы
От: Nikolaz Германия www.nikeware.com
Дата: 25.12.06 16:52
Оценка: 7 (1) +1
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 (там всего пару строчек кода).
img таг и bmp, ico файлы
От: Nikolaz Германия www.nikeware.com
Дата: 24.12.06 22:16
Оценка:
Или я либо туплю, или это на самом деле?
HTMLayout img таг не поддерживает bmp, ico файлы?
Re: img таг и bmp, ico файлы
От: FreshMeat Россия http://www.rsdn.org
Дата: 25.12.06 08:21
Оценка:
Здравствуйте, Nikolaz, Вы писали:

N>Или я либо туплю, или это на самом деле?

N>HTMLayout img таг не поддерживает bmp, ico файлы?

<html>
    <head>
    </head>
    <body>
        <img src="button-back.bmp">
    </body>
</html>

Загруженный в browse.exe, работает нормально. Посмотри, в SDK куча примеров с gif и png.
Хорошо там, где мы есть! :)
Re[2]: img таг и bmp, ico файлы
От: Nikolaz Германия www.nikeware.com
Дата: 25.12.06 09:52
Оценка:
Здравствуйте, FreshMeat, Вы писали:

FM>
FM><html>
FM>    <head>
FM>    </head>
FM>    <body>
FM>        <img src="button-back.bmp">
FM>    </body>
FM></html>
FM>

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 Задача бы упростилась в разы.
Re[3]: img таг и bmp, ico файлы
От: FreshMeat Россия http://www.rsdn.org
Дата: 25.12.06 10:35
Оценка:
Здравствуйте, 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 Задача бы упростилась в разы.
Хорошо там, где мы есть! :)
Re[4]: img таг и bmp, ico файлы
От: Nikolaz Германия www.nikeware.com
Дата: 25.12.06 10:52
Оценка:
Здравствуйте, FreshMeat, Вы писали:

FM>Такая же беда. Пиши баг-репорт

Ok.

FM>Если есть только хендл, толку от него будет немного, см. http://www.terrainformatica.com/bb/viewtopic.php?t=528. Если добавишь свое пожелание, то может Андрей реализует эту функциональность быстрее

Будем "желать"

FM>А что такое битовый образ? Если точная копия файла в памяти, то должно работать. По крайней мере курсоры я так грузил.

Так из-за этого и весь "сыр-бор". Дело в том, что это handle системной иконки, полученый из обычного вызова LoadIcon. Файла как бы и не предвидится в этой ситуации
Re[5]: img таг и bmp, ico файлы
От: FreshMeat Россия http://www.rsdn.org
Дата: 25.12.06 11:09
Оценка:
Здравствуйте, Nikolaz, Вы писали:

N>Так из-за этого и весь "сыр-бор". Дело в том, что это handle системной иконки, полученый из обычного вызова LoadIcon. Файла как бы и не предвидится в этой ситуации


У меня аналогичная ситуация, по ссылочке выше описал ее подробнее (формирование курсора при драг-н-дропе).
Я уже то того дошел, что был готов ручками создавать файл, модифицировать css, но во время экспериментов нашел только возможность перегружать целиком css, что никак не устраивает из-за низкой производительности.
Хорошо там, где мы есть! :)
Re[6]: img таг и bmp, ico файлы
От: Nikolaz Германия www.nikeware.com
Дата: 25.12.06 11:23
Оценка:
Здравствуйте, FreshMeat, Вы писали:

FM>У меня аналогичная ситуация, по ссылочке выше описал ее подробнее (формирование курсора при драг-н-дропе).

FM>Я уже то того дошел, что был готов ручками создавать файл,
Меня тоже такая мысль посещала Но я быстро прогнал ее прочь .
Re[8]: img таг и bmp, ico файлы
От: FreshMeat Россия http://www.rsdn.org
Дата: 25.12.06 17:55
Оценка:
Здравствуйте, Nikolaz, Вы писали:

N>Собственно порылся я тут более подробнее в примерах HTMLayout и нашел следующее: behavior:shell-icon.

Интересный примерчик. Как-то выпал он из поля зрения. Курсор, правда, заставить работать не удалось — если в on_draw устанавливаю свой курсор (SetCursor), то при любом движении мышкой он изменяется на дефолтный (прописанный в css)
Хорошо там, где мы есть! :)
Re[9]: img таг и bmp, ico файлы
От: Nikolaz Германия www.nikeware.com
Дата: 25.12.06 21:48
Оценка:
Здравствуйте, FreshMeat, Вы писали:

FM>Интересный примерчик. Как-то выпал он из поля зрения. Курсор, правда, заставить работать не удалось — если в on_draw устанавливаю свой курсор (SetCursor), то при любом движении мышкой он изменяется на дефолтный (прописанный в css)


// ctor
    shellicon(): behavior(HANDLE_DRAW | HANDLE_MOUSE, "shell-icon") {}


HANDLE_MOUSE — добавить (в вашем случае)?
Ну а там в недрах родительского класса есть:

virtual BOOL handle_mouse  (HELEMENT he, MOUSE_PARAMS& params );


Правда это только мои размышления . Реально не пробовал

p.s. А я все-таки сделал отрисовку иконок по хэндлу. Как и предпологал — просто нужно было реализовать свой behavior (на примере shell-icon). Правда есть прикол. Если в стиле для img тэга не указать явно стили width и height, то on_draw у behavior почему-то не вызывается. Уж не знаю фича это, или глюк
Re[10]: img таг и bmp, ico файлы
От: FreshMeat Россия http://www.rsdn.org
Дата: 25.12.06 23:25
Оценка:
Здравствуйте, Nikolaz, Вы писали:

N>HANDLE_MOUSE — добавить (в вашем случае)?

Само собой
N>Ну а там в недрах родительского класса есть:

N>
N>virtual BOOL handle_mouse  (HELEMENT he, MOUSE_PARAMS& params ); 
N>

Угук. А еще есть 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 сходу не может определить длину и ширину, поэтому устанавливает их в ноль, а потом при рендеринге такие элементы выкидывает.
Хорошо там, где мы есть! :)
Re: img таг и bmp, ico файлы
От: Plague Россия  
Дата: 26.12.06 12:11
Оценка:
Здравствуйте, Nikolaz, Вы писали:

N>Или я либо туплю, или это на самом деле?

N>HTMLayout img таг не поддерживает bmp, ico файлы?

Вообще бы добавить бы в HTMLayout поддержку, хотя бы не плугинов, а типа а-ля behaviours, только чисто для картинок, к примеру я хочу добавить еще формат, или показывать какой-то свой, ибо делать через beahviors, как рассказано выше не очень "естественно"... вообще бы лучше ввести более гибкую поддержку тегов, типа, раз и добавил свой новый тег, при этом их можно разделять по "библиотекам", т.е. как в JSP (раз все-таки там не совсем HTML, то пусть хоть будет удобным) —
<MyTagLibrary:MySuperTag>test</MyTagLibrary:MySuperTag>
Re[2]: img таг и bmp, ico файлы
От: FreshMeat Россия http://www.rsdn.org
Дата: 26.12.06 14:07
Оценка:
Здравствуйте, Plague, Вы писали:

P>вообще бы лучше ввести более гибкую поддержку тегов, типа, раз и добавил свой новый тег, при этом их можно разделять по "библиотекам", т.е. как в JSP (раз все-таки там не совсем HTML, то пусть хоть будет удобным) —

P>
P><MyTagLibrary:MySuperTag>test</MyTagLibrary:MySuperTag>
P>

С небольшими модификациями синтаксиса
css
  .MyTagLibrary-MySuperTag
  {
    behavior: my-behavior;
  }


html
  <div class="MyTagLibrary-MySuperTag">test2</div>

а в своем поведении и картинки нового формата грузить можно и рендерить самостоятельно да и еще миллион полезных вещей делать
Механизм html-классов является достаточно гибкой и мощной штукой. По крайней мере в первом приближении.
Хорошо там, где мы есть! :)
Re[3]: img таг и bmp, ico файлы
От: Andrey_Pilya  
Дата: 26.12.06 16:37
Оценка:
Здравствуйте, FreshMeat, Вы писали:

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


FM>html

FM>
FM>  <div class="MyTagLibrary-MySuperTag">test2</div>
FM>

FM>а в своем поведении и картинки нового формата грузить можно и рендерить самостоятельно да и еще миллион полезных вещей делать
FM>Механизм html-классов является достаточно гибкой и мощной штукой. По крайней мере в первом приближении.

с классами не сильно хорошо — они могут понадобиться для чего-то другого (например, для дизайна и т.п.)
можно использовать собственно-придуманный атрибут, для которого писать селектор.

хотя с таким подходом, классы ничем не отличаются от любых аттрибутов:

<div class="MyClass" MyAttr="MyClass1">...
в
css:

.MyClass {... }
или
[MyAttr="MyClass1"] {... }

(правда, я не уверен в отсутствии падения производительности)
можно и не через CSS, а через явное присоединение бихейвера.

зато class остается для других нужд, а "собственный тег" получается почти прозрачным образом.
Re[11]: img таг и bmp, ico файлы
От: Denis_TST Россия www.transsys.ru
Дата: 26.12.06 17:38
Оценка:
Здравствуйте, FreshMeat, Вы писали:

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


FM>Единственный намек — в комментарии

FM>

FM>// alternative set of event handlers (aka old set).

FM>это так про on_mouse написано. Что это означает, если учесть что все примеры из SDK используют семейство ф-ий on_* остается только догадываться
В предыдущих версиях (до 3.XX) вроде использовались другие обработчики. Похоже что это они и есть.
... << RSDN@Home 1.2.0 alpha rev. 648>>
Re: img таг и bmp, ico файлы
От: c-smile Канада http://terrainformatica.com
Дата: 28.12.06 22:45
Оценка:
Здравствуйте, Nikolaz, Вы писали:

N>Или я либо туплю, или это на самом деле?

N>HTMLayout img таг не поддерживает bmp, ico файлы?

behavior_shellicon.cpp — рисует системные иконы для разных file extensions.

Используется так:

<style>
  
  img.shell-icon 
  {
        width:20px;
    height:20px;
    behavior: shell-icon;
    vertical-align:middle;
    }

</style>

  </head>
  <body>
  
  <h1>Sample of behavior shell-icon</h1>
  
  <select size="6">
    <option><img class="shell-icon" filename=".png" /> *.png icon</option>
    <option><img class="shell-icon" filename=".jpg" /> *.jpg icon</option>
    <option><img class="shell-icon" filename=".doc" /> *.doc icon</option>
    <option><img class="shell-icon" filename=".html" /> *.html icon</option>
    <option><img class="shell-icon" filename=".cpp" /> *.cpp icon</option>
    <option><img class="shell-icon" filename=".h" /> *.h icon</option>
    <option><img class="shell-icon" filename=".js" /> *.js icon</option>
    <option><img class="shell-icon" filename=".exe" /> *.exe icon</option>
  </select>


sdk/html_samples/behaviors/shell-icon.htm

Соответсвенно всяко разны другие картинки можно также рисовать.
Re[2]: img таг и bmp, ico файлы
От: c-smile Канада http://terrainformatica.com
Дата: 28.12.06 22:55
Оценка:
Здравствуйте, Plague, Вы писали:

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


N>>Или я либо туплю, или это на самом деле?

N>>HTMLayout img таг не поддерживает bmp, ico файлы?

P>Вообще бы добавить бы в HTMLayout поддержку, хотя бы не плугинов, а типа а-ля behaviours, только чисто для картинок, к примеру я хочу добавить еще формат, или показывать какой-то свой, ибо делать через beahviors, как рассказано выше не очень "естественно"... вообще бы лучше ввести более гибкую поддержку тегов, типа, раз и добавил свой новый тег, при этом их можно разделять по "библиотекам", т.е. как в JSP (раз все-таки там не совсем HTML, то пусть хоть будет удобным) —

P>
P><MyTagLibrary:MySuperTag>test</MyTagLibrary:MySuperTag>
P>


Немного не то но думаю будет полезно:
engine поддерживает вот такую нотацию:

<div.myclass1>
  ...
</div>

<div.myclass1.myclass2>
  ...
</div>

или так:

<div some-other-attributes .myclass1 .myclass2 >
  ...
</div>


Что эквивалентно:

<div class="myclass1 myclass2">
  ...
</div>


Такая нотация имеет один плюс:
В стандарте, если указать такое

<div class="myclass1" class="myclass2">
  ...
</div>


то использоваться будет последнее объявление.

Конструкция же
<div .myclass1 .myclass2>
  ...
</div>

просто образует единую коллекцию.

Удобно в случаях машинной генерации HTML.
Re[3]: img таг и bmp, ico файлы
От: Nikolaz Германия www.nikeware.com
Дата: 28.12.06 23:18
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Немного не то но думаю будет полезно:

CS>engine поддерживает вот такую нотацию:

CS>
CS><div.myclass1.myclass2>
CS>  ...
CS></div>

CS>или так:

CS><div some-other-attributes .myclass1 .myclass2 >
CS>  ...
CS></div>

CS>


Классно

А вообще, есть в природе некое описание всего того, что HTMLayout engine поддерживает?
При углубленном изучении и дальнейшем использовании возникает ощущение, что задействуешь
только процентов 10% всех возможностей, или то, что сделано, можно было реализовать
гараздо проще (имеется ввиду сам HTMLayout).

C Уважением,
Николай
Re[4]: img таг и bmp, ico файлы
От: c-smile Канада http://terrainformatica.com
Дата: 29.12.06 02:14
Оценка:
Здравствуйте, Andrey_Pilya, Вы писали:

A_P>.MyClass {... }

A_P>или
A_P>[MyAttr="MyClass1"] {... }

A_P>(правда, я не уверен в отсутствии падения производительности)

A_P>можно и не через CSS, а через явное присоединение бихейвера.

A_P>зато class остается для других нужд, а "собственный тег" получается почти прозрачным образом.


Элемент может принадлежать нескольким классам одновременно:

<p class="cls1 cls2">...</p>


И вообще селектор p.cls1 это просто короткая запись p[class~="cls1"].
См. http://www.terrainformatica.com/htmlayout/selectors.whtm
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.