Проблема с htmlayout.dll v3.3.1.40
От: maxforme Россия  
Дата: 11.12.09 05:03
Оценка:
Здравствуйте!

Возникла вот такая проблема...



Я отображаю иконки (файлы формата *.ico) на форме htmlayout с помощью <picture .../>
Получаю эти иконки посредством ExtractAssociatedIcon + рисую AlphaBlend + своё сохранение в *.ico

Так вот...
Обновил недавно себе dll'ку на версию 3.3.1.40
а раньше работал с 3.3.1.36

Проблемы:

1. и заметил, что некоторые иконки не показываются
а именно иконки от Total Commander, browse.exe итд
винда их кстати показывает, но открываю иконку программой Paint.NET и там показывается прозрачное поле
на версии 3.3.1.36 htmlayout их показывал

2. проблема с эффектом glow. Раньше эффект glow глючил только на недавно описанных иконках (Total Commander, browse.exe итд)
а именно (я ставил glow на :hover ) иконка пропадала\появлялась при наведении
а теперь ( v3.3.1.40 )такая проблема со всеми иконками при glow

Предполагаю, что всё это из-за подвижек в версиях
3.3.1.37 Fix of rendering of some icons in skin.exe.
3.3.1.39 Fix of GDI handle leak in .ICO files rendering code.


PS решил проверить Restorator'ом закинуть main — иконку в htmlayout
она тоже подмигивает при glow
Re: Проблема с htmlayout.dll v3.3.1.40
От: c-smile Канада http://terrainformatica.com
Дата: 11.12.09 06:02
Оценка:
Здравствуйте, maxforme, Вы писали:

M>1. и заметил, что некоторые иконки не показываются

M> а именно иконки от Total Commander, browse.exe итд

Не верю. Вот тест:

<html>
  <head>
    <title></title>
    <style>
      
      picture.icon 
      {
        width:34px;
        height:34px;
        behavior: file-icon;      
      }
      
      picture.icon:hover
      {
        transition:blend; 
        outline:4px glow red;
      }
     
    </style>
    <script type="text/tiscript"></script>
  </head>
<body>

 <picture.icon filename=".exe" />
 <picture.icon filename=".ico" />
 <picture.icon filename=".cpp" />
 <picture.icon filename="C:\layout\htmlayoutsdk\bin\browse.exe" />

</body>
</html>


Что-то ты там не то делаешь в "ExtractAssociatedIcon + рисую AlphaBlend + своё сохранение в *.ico"
И вообще нафиг оно тебе нужно? Как бы behavior behavior:file-icon; он для того и сделан-то был.
Re[2]: Проблема с htmlayout.dll v3.3.1.40
От: maxforme Россия  
Дата: 11.12.09 06:53
Оценка:
Всё бы отлично если бы

CS> picture.icon

CS> {
CS> width:34px;
CS> height:34px;
CS> behavior: file-icon;
CS> }

у меня width:34px;
height:34px;
не работает

выводит мелкую иконку (
а мне крупная нужна (
Re[3]: Проблема с htmlayout.dll v3.3.1.40
От: c-smile Канада http://terrainformatica.com
Дата: 11.12.09 07:06
Оценка: 18 (2)
Здравствуйте, maxforme, Вы писали:

M>выводит мелкую иконку (

M>а мне крупная нужна (

Доки спеки читал? Вот например: http://www.terrainformatica.com/wiki/h-smile/built-in-behaviors/file-icon

Вот тебе пример с большими иконами:

<html>
<head>
<title></title>
<style>

picture.icon
{
width:34px;
height:34px;
behavior: file-icon;
-icon-size:"large";
}

picture.icon:hover
{
transition:blend;
outline:4px glow red;
}

</style>
<script type="text/tiscript"></script>
</head>
<body>

<picture.icon filename=".exe" />
<picture.icon filename=".ico" />
<picture.icon filename=".cpp" />
<picture.icon filename="C:\layout\htmlayoutsdk\bin\browse.exe" />

</body>
</html>
Re[4]: Проблема с htmlayout.dll v3.3.1.40
От: maxforme Россия  
Дата: 11.12.09 07:16
Оценка:
Здравствуйте, c-smile

CS>Доки спеки читал?


читал-читал виноват
надо было large поставить

behavior: file-icon; отличная вещь жаль я про него раньше не знал пришлось изобретать велосипед

+3 виноват ещё раз
Re[2]: Проблема с htmlayout.dll v3.3.1.40
От: Nikolaz Германия www.nikeware.com
Дата: 11.12.09 09:12
Оценка: 36 (1)
Здравствуйте, c-smile, Вы писали:

CS>Не верю. Вот тест:

А зря
Немного не по теме, но подобная проблема с пропаданием картинок есть здесь.
При наведении на img (у которого стоит glow) происходит его пропадание. Причем я долго не мог понять почему в browse.exe все это прекрасно работает, а в реальном приложении нет. Думал у меня косяк какой. Оказалось проблема в следующем:



В первом случаевсе будет отображаться нормально, а во втором случае, если сжать по вертикале по самое "нехочу", то начинается пропадание img при наведении мышью. А по самое "нехочу" у меня сжимается в рабочем приложении именно потому, что это своего рода отдельный контрол. Там высота hWnd выставляется строго по размеру минимальной допустимой высоты, при которой отсутствует вертикальны скроллбар.

Спасибо,
Николай
Re[3]: Проблема с htmlayout.dll v3.3.1.40
От: Nikolaz Германия www.nikeware.com
Дата: 11.12.09 09:17
Оценка:
Да, все это появилось где-то примерно начиная с 38-40 билда.

p.s. Сорри за грамматические ошибки в прошлом сообщении.
Re[4]: Проблема с htmlayout.dll v3.3.1.40
От: maxforme Россия  
Дата: 11.12.09 11:31
Оценка:
Здравствуйте, c-smile!

А возможно ли показывать иконку папки
например

это не показывается как хотелось бы
<picture.icon icon-size="large"  filename="C:\Projects" />


а вот это показывается

<picture.icon icon-size="large"  filename="I:\" />


если бы папки показывало было бы шикарно
Re[5]: Проблема с htmlayout.dll v3.3.1.40
От: c-smile Канада http://terrainformatica.com
Дата: 11.12.09 19:10
Оценка:
Здравствуйте, maxforme, Вы писали:

M>если бы папки показывало было бы шикарно


Сделаю.
Re[6]: Проблема с htmlayout.dll v3.3.1.40
От: maxforme Россия  
Дата: 14.12.09 08:08
Оценка:
Здравствуйте, c-smile!

Спасибо за fix в 41ом билде

теперь это работает

<picture.icon icon-size="large"  filename="C:\Projects" />


но

если папка была удалена или файл был удален
то объект остаётся, и иконка не рисуется (естественно ссылки то теперь нет)

Можно было бы чтобы когда нет файла рисовалась какая нить Error иконка (раньше по-моему было такое) ?
или это не совпадает с политикой этого бехавира?

Спасибо
Re[7]: Проблема с htmlayout.dll v3.3.1.40
От: maxforme Россия  
Дата: 18.12.09 06:05
Оценка:
Здравствуйте, c-smile!
UP
Re[7]: Проблема с htmlayout.dll v3.3.1.40
От: c-smile Канада http://terrainformatica.com
Дата: 19.12.09 05:35
Оценка:
Здравствуйте, maxforme, Вы писали:

M>если папка была удалена или файл был удален

M>то объект остаётся, и иконка не рисуется (естественно ссылки то теперь нет)

M>Можно было бы чтобы когда нет файла рисовалась какая нить Error иконка (раньше по-моему было такое) ?

M>или это не совпадает с политикой этого бехавира?

Что-то я не могу сообразить как это лучше имплементировать.
По идее в случае ошибки нужно рисовать тот image который описан в foreground-image атрибуте.
Чтобы можно было конфигурировать как-то... Или как?
Re[3]: Проблема с htmlayout.dll v3.3.1.40
От: Nikolaz Германия www.nikeware.com
Дата: 20.12.09 12:55
Оценка:
N>В первом случае все будет отображаться нормально, а во втором случае, если сжать по вертикали по самое "нехочу", то начинается пропадание img при наведении мышью. А по самое "нехочу" у меня сжимается в рабочем приложении именно потому, что это своего рода отдельный контрол. Там высота hWnd выставляется строго по размеру минимальной допустимой высоты, при которой отсутствует вертикальный скроллбар.

Прошу прощения за беспокойство.
Будет ли фикс всего этого дела?
В последнем билде тоже не работает

Спасибо
Re[8]: Проблема с htmlayout.dll v3.3.1.40
От: maxforme Россия  
Дата: 21.12.09 04:12
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Что-то я не могу сообразить как это лучше имплементировать.

CS>По идее в случае ошибки нужно рисовать тот image который описан в foreground-image атрибуте.
CS>Чтобы можно было конфигурировать как-то... Или как?

Да скорее всего так и лучше будет )
Буду обкатывать пока так, потом посмотрим, что из этого выйдет


            .icon
            {
                behavior: file-icon; 
                width:34px;
                height:34px;
                draggable : only-move;
                cursor : pointer;
                padding-left : 13px;
                padding-top : 13px;
               foreground-image: url(images/error.png);
            }
            .icon:hover
            {
                transition:blend; 
                outline:10px glow blue;
            }


Жду не дождусь показать свою программу...
Обидно, у неё много будет функций, и видимо это не произойдет не скоро.
HTMLayout rull
Re[4]: Проблема с htmlayout.dll v3.3.1.40
От: c-smile Канада http://terrainformatica.com
Дата: 21.12.09 05:35
Оценка: 12 (1)
Здравствуйте, Nikolaz, Вы писали:


N>>В первом случае все будет отображаться нормально, а во втором случае, если сжать по вертикали по самое "нехочу", то начинается пропадание img при наведении мышью. А по самое "нехочу" у меня сжимается в рабочем приложении именно потому, что это своего рода отдельный контрол. Там высота hWnd выставляется строго по размеру минимальной допустимой высоты, при которой отсутствует вертикальный скроллбар.


N>Прошу прощения за беспокойство.

N>Будет ли фикс всего этого дела?
N>В последнем билде тоже не работает

N>Спасибо


Будет. На пока убери glow c этого image.

Можешь добавить image-transformation если нужен visual highlight:

img[cmd]:hover
{
  //outline:1px glow red 1px; 
  foreground-image-transformation: contrast-brightness-gamma(0.8,0.5, 1.6);  
  transition:blend;
}
Re[5]: Проблема с htmlayout.dll v3.3.1.40
От: Nikolaz Германия www.nikeware.com
Дата: 21.12.09 09:09
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Будет. На пока убери glow c этого image.

CS>Можешь добавить image-transformation если нужен visual highlight:

Ага, спасибо!
Re[2]: Проблема с htmlayout.dll v3.3.1.40
От: maxforme Россия  
Дата: 06.02.10 09:24
Оценка:
Здравствуйте, c-smile!

Поднимаю давнейший топик

CS>Что-то ты там не то делаешь в "ExtractAssociatedIcon + рисую AlphaBlend + своё сохранение в *.ico"

CS>И вообще нафиг оно тебе нужно? Как бы behavior:file-icon; он для того и сделан-то был.

behavior:file-icon; может и был сделан для этого, но практика показывает, что он лучше всего работает для статичных страниц
у меня же на странице таких много может быть + возможен Htmlayout drag'n'drop
следовательно при драге начинаются лаги. так как Htmlayout для каждого behavior объекта лезет смотрит иконку и рисует её.
конечно хорошо было бы если всё кэшировалось и не лезло на винт при следующих перересовках.
так бы не возникло этой проблемы.

придется видимо не использовать behavior:file-icon; ",а ездить на своем велосипеде" создавать и рисовать свои иконки для приложений?
Re[3]: Проблема с htmlayout.dll v3.3.1.40
От: maxforme Россия  
Дата: 08.02.10 08:02
Оценка:
Здравствуйте, c-smile!

M>придется видимо не использовать behavior:file-icon; ",а ездить на своем велосипеде" создавать и рисовать свои иконки для приложений?


Пришел в ступор

у меня используется вот такая структура

   <div name="1"  id="1001"  selected="">
     <div class="icon_group"  alt="1" >
        <picture class="icon"  src="C:\1.ico" />
       <div class="txt" >text1</div>
     </div>
     <div class="icon_group"  alt="2" >
        <picture class="icon"  src="C:\2.ico" />
       <div class="txt" >text2</div>
      ...

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


и у меня таких объектов класса "icon_group" здесь может быть много ( 0-200 думаю )

класс "icon_group"
описывается как

.icon_group
{    
    ...
    ...
    draggable:    only-move;
    flow:        vertical;
    ...            
}


класс "txt" это собственно текст

класс "icon"
описывается как

.icon
{
        margin: 0 * 0 *;
    
    width: 34px;
    height: 34px;
    
    /*behavior: file-icon;*/
}


Так вот. Я думал, отказавшись от behavior: file-icon; и перейдя на src="*.ico", избавлюсь от тормозов перерисовки при Drag'n'Drop, но они не особо то и пропали

Есть мысли, что мне сделать, чтобы избежать тормозов?

Заранее благодарен за любую помощь
Re[4]: Проблема с htmlayout.dll v3.3.1.40
От: c-smile Канада http://terrainformatica.com
Дата: 08.02.10 08:13
Оценка:
Здравствуйте, maxforme, Вы писали:

Будет пример где можно воспроизвести "тормоза" — что-то могу сказать/посоветовать.
Re[5]: Проблема с htmlayout.dll v3.3.1.40
От: maxforme Россия  
Дата: 08.02.10 09:06
Оценка:
CS>Будет пример где можно воспроизвести "тормоза" — что-то могу сказать/посоветовать.

вот урезанный пример

http://files.rsdn.ru/90326/demo.zip

Открываем закладку 1
Делаем драг — всё отлично

Открываем закладку 2
Делаем драг — уже не очень что-то (

и это при использовании <picture class="icon" src="C:\1.ico" />
а когда был behavior: file-icon; с <picture class="icon" filename="C:\1.lnk" /> то еще хуже естественно
Заранее благодарен
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.