HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 19.01.15 12:28
Оценка:
Приветствую!

Мне требуется перенос по словам, если слово не влезает в ширину, то оно то оно должно разрываться

Ставлю text-wrap:unrestricted — переносит точку или запятую в конце слова, получаются строки где перенесена только точка.
Как избавится от этого эффекта?
Re: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 19.01.15 23:29
Оценка:
Здравствуйте, zitz, Вы писали:

Z>Приветствую!


Z>Мне требуется перенос по словам, если слово не влезает в ширину, то оно то оно должно разрываться


Z>Ставлю text-wrap:unrestricted — переносит точку или запятую в конце слова, получаются строки где перенесена только точка.

Z>Как избавится от этого эффекта?

Я починил это дело в Sciter. И там это поведение описывается [теперь] стандартным свойством
word-wrap: break-word;


Если есть возможность перейти на Sciter то лучше это сделать по многим причинам включая эту.
Re[2]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 22.01.15 12:53
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Если есть возможность перейти на Sciter то лучше это сделать по многим причинам включая эту.


C переходом проблемы:
Поставил define PLAIN_API_ONLY и пытаюсь подключить sciter-x.h
В value.h подключается value.hpp который не компилируется, добавил в строке 291 && !defined( PLAIN_API_ONLY ) — повылазили другие ошибки
В sciter-x-api.h и sciter-x-dom.hpp подключается tiscript.hpp который тоже не компилится
Re[2]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 22.01.15 13:48
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Если есть возможность перейти на Sciter то лучше это сделать по многим причинам включая эту.


Как сделать shellicon_behavior? HANDLE_DRAW отключен...

Как организовать печать? Какая альтернатива функциям HTMPrintSetDataReady, HTMPrintSetCallback?
Re[2]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 22.01.15 14:30
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Если есть возможность перейти на Sciter то лучше это сделать по многим причинам включая эту.


Как в Sciter сделать мод HLM_SHOW_SELECTION?
Какая альтернатива HTMLayoutSelectionExist, HTMLayoutGetSelectedHTML, HTMLayoutClipboardCopy, HTMLayoutVisitElements, HTMLayoutGetElementInnerText?
Re[3]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 22.01.15 14:54
Оценка:
Здравствуйте, zitz, Вы писали:

Z>Здравствуйте, c-smile, Вы писали:


CS>>Если есть возможность перейти на Sciter то лучше это сделать по многим причинам включая эту.


Z>C переходом проблемы:

Z>Поставил define PLAIN_API_ONLY и пытаюсь подключить sciter-x.h
Z>В value.h подключается value.hpp который не компилируется, добавил в строке 291 && !defined( PLAIN_API_ONLY ) — повылазили другие ошибки
Z>В sciter-x-api.h и sciter-x-dom.hpp подключается tiscript.hpp который тоже не компилится

Эти мелочи решаются — закомментил всё что мешало... А вот нехватку api как пережить при переходе ума не приложу
Re[3]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 22.01.15 17:58
Оценка:
Здравствуйте, zitz, Вы писали:

Z>Здравствуйте, c-smile, Вы писали:


CS>>Если есть возможность перейти на Sciter то лучше это сделать по многим причинам включая эту.


Z>Как сделать shellicon_behavior? HANDLE_DRAW отключен...


behavior:file-icon; встроенный

См. {scitersdk}\samples\goodies\file-icon.htm

Z>Как организовать печать? Какая альтернатива функциям HTMPrintSetDataReady, HTMPrintSetCallback?


Для печати пока никакой альтернативы нет. Работаю над этим. На пока можно использовать HTMPrint***
Re[3]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 22.01.15 18:08
Оценка:
Здравствуйте, zitz, Вы писали:

Z>Здравствуйте, c-smile, Вы писали:


CS>>Если есть возможность перейти на Sciter то лучше это сделать по многим причинам включая эту.


Z>Как в Sciter сделать мод HLM_SHOW_SELECTION?

Z>Какая альтернатива HTMLayoutSelectionExist, HTMLayoutGetSelectedHTML, HTMLayoutClipboardCopy, HTMLayoutVisitElements, HTMLayoutGetElementInnerText?

в CSS написать

body {
  behavior:htmlarea;
}


и body content будет selectable. Ctrl+C будет копировать выделение в clipboard и всё такое прочее.

HTMLayoutVisitElements -> SciterSelectElements
HTMLayoutGetElementInnerText -> SciterGetElementTextCB
Re[4]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 22.01.15 18:25
Оценка:
Здравствуйте, zitz, Вы писали:

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


Z>>Здравствуйте, c-smile, Вы писали:


CS>>>Если есть возможность перейти на Sciter то лучше это сделать по многим причинам включая эту.


Z>>C переходом проблемы:

Z>>Поставил define PLAIN_API_ONLY и пытаюсь подключить sciter-x.h
Z>>В value.h подключается value.hpp который не компилируется, добавил в строке 291 && !defined( PLAIN_API_ONLY ) — повылазили другие ошибки
Z>>В sciter-x-api.h и sciter-x-dom.hpp подключается tiscript.hpp который тоже не компилится

Z>Эти мелочи решаются — закомментил всё что мешало... А вот нехватку api как пережить при переходе ума не приложу


А чем ты компилируешь ?
Re[4]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 23.01.15 09:25
Оценка:
Здравствуйте, c-smile, Вы писали:

Z>>Как в Sciter сделать мод HLM_SHOW_SELECTION?

CS>в CSS написать
CS>
CS>body {
CS>  behavior:htmlarea;
CS>}
CS>

CS>и body content будет selectable.

Z>>Какая альтернатива HTMLayoutVisitElements, HTMLayoutGetElementInnerText?

CS>
CS>HTMLayoutVisitElements -> SciterSelectElements
CS>HTMLayoutGetElementInnerText -> SciterGetElementTextCB
CS>


C этим разобрался, спасибо.

Z>>Какая альтернатива HTMLayoutSelectionExist, HTMLayoutGetSelectedHTML, HTMLayoutClipboardCopy?

CS>Ctrl+C будет копировать выделение в clipboard и всё такое прочее.

Допустим для HTMLayoutClipboardCopy можно послать ему Ctrl + C — хоть это и через задний проход, но всёже лучше чем ничего
А вот с HTMLayoutSelectionExist что делать? Я делаю кастомное меню в котором пункт IDM_COPY задисейблен если ничего не выбрано
Плюс как мне получить HTMLayoutGetSelectedHTML? Меня не устраивает по ряду причин то что копируется в буфер по дефолту, по этому я делаю свой обработчик чтобы исправить этот тект
Re[4]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 23.01.15 09:40
Оценка:
Здравствуйте, c-smile, Вы писали:

Z>>Как организовать печать? Какая альтернатива функциям HTMPrintSetDataReady, HTMPrintSetCallback?

CS>Для печати пока никакой альтернативы нет. Работаю над этим. На пока можно использовать HTMPrint***

Так их вместе не подключить — они конфликтуют по именам:
error C2371: 'HELEMENT' : redefinition; different basic types
И т.п.
Re[5]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 23.01.15 09:42
Оценка:
Здравствуйте, c-smile, Вы писали:

Z>>>C переходом проблемы:

Z>>>Поставил define PLAIN_API_ONLY и пытаюсь подключить sciter-x.h
Z>>>В value.h подключается value.hpp который не компилируется, добавил в строке 291 && !defined( PLAIN_API_ONLY ) — повылазили другие ошибки
Z>>>В sciter-x-api.h и sciter-x-dom.hpp подключается tiscript.hpp который тоже не компилится

Z>>Эти мелочи решаются — закомментил всё что мешало...


CS>А чем ты компилируешь ?


Проект старый на Visual Studio 6.
Re[5]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 23.01.15 17:27
Оценка:
Здравствуйте, zitz, Вы писали:

Z>>>Какая альтернатива HTMLayoutSelectionExist, HTMLayoutGetSelectedHTML, HTMLayoutClipboardCopy?

CS>>Ctrl+C будет копировать выделение в clipboard и всё такое прочее.

Z>Допустим для HTMLayoutClipboardCopy можно послать ему Ctrl + C — хоть это и через задний проход, но всёже лучше чем ничего

Z>А вот с HTMLayoutSelectionExist что делать? Я делаю кастомное меню в котором пункт IDM_COPY задисейблен если ничего не выбрано
Z>Плюс как мне получить HTMLayoutGetSelectedHTML? Меня не устраивает по ряду причин то что копируется в буфер по дефолту, по этому я делаю свой обработчик чтобы исправить этот тект

Вот пример behavior:htmlarea на <div class="selectable">.

Там объявлены:
  1. custom menu — <menu.context #for-htmlarea>
  2. getSelectedText() — функция возвращает plain text из selection
  3. getSelectedHTML() — функция возвращает HTML из selection

Эти две функции можно вызывать снаружи из C++

sciter::value result;
SciterCall(hwnd,"getSelectedText",0,nullptr,&result);


А можно всю твою обработку содержимого selection прямо в скрипте и делать.

<html>
  <head>
    <title>behavior:htmlarea demo</title>
    <style>
      div.selectable {
        border:1px solid;
        behavior:htmlarea;
        context-menu: selector(menu#for-htmlarea);
      }
    </style>
    <menu.context #for-htmlarea>
      <li command="edit:copy"    style="foreground-image:url(sciter:copy.png)"><label>Copy</label><span class="accesskey">Ctrl+C</span></li>
      <hr/>
      <li command="edit:selectall"><label>Select All</label><span class="accesskey">Ctrl+A</span></li>
      <hr/>
      <caption>Custom actions</caption>
      <li #selected-text><label>Show selected text</label></li>
      <li #selected-html><label>Show selected HTML</label></li>
    </menu>
    <script type="text/tiscript">
    
    function getSelectedText() {
      return $(div.selectable).selection.text;
    }
    
    function getSelectedHTML() {
      return $(div.selectable).selection.html;
    }

    function hasSelection() {
      return $(div.selectable).selection.type;
    }
    
    $(div.selectable).on("click","li#selected-text", function() { view.msgbox(#information,getSelectedText().htmlEscape()); })
                     .on("click","li#selected-html", function() { view.msgbox(#information,getSelectedHTML().htmlEscape()); })
                     .on("keydown", function(evt) { return true; /*supress key handling in selectable */ } );
    
    </script>
  </head>
<body>
  <p>Element below is selectable as it uses <code>behavior:htmlarea</code></p>
  <div.selectable>
    <h1>behavior:menu</h1>
    <p>This behavior provides basic hierarchical menu functionality</p>
    <h2>Elements</h2>
    <p>that have this behavior applied by default to:</p>
    <ul>
      <li><code>&lt;menu class=&quot;context&quot;&gt;</code> - context menu;</li>
      <li><code>&lt;menu class=&quot;popup&quot;&gt;</code> - popup menu.</li></ul>
    <h2>Model</h2>
    <p>Example of menu declaration in Sciter:</p>
 <div>
</body>
</html>
Re[5]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 23.01.15 17:31
Оценка:
Здравствуйте, zitz, Вы писали:

Z>Здравствуйте, c-smile, Вы писали:


Z>>>Как организовать печать? Какая альтернатива функциям HTMPrintSetDataReady, HTMPrintSetCallback?

CS>>Для печати пока никакой альтернативы нет. Работаю над этим. На пока можно использовать HTMPrint***

Z>Так их вместе не подключить — они конфликтуют по именам:

Z>error C2371: 'HELEMENT' : redefinition; different basic types
Z>И т.п.

Ты их неправильно включаешь как-то.

Два .cpp — два разных include. Не должны мешать друг другу.
Re[2]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 26.01.15 11:43
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Если есть возможность перейти на Sciter то лучше это сделать по многим причинам включая эту.


Еще проблемы повылазили:

1. SciterLoadFile возвращает FALSE
HTMLayoutLoadFile в аналогичной ситуации работает
Как узнать что ему не нравится?
Этот же файл открываю через sciter.exe — открывается без вопросов...
Эта функция просто отказывается работать чтобы я туда не подставлял.


2. Sciter перестал понимать bgcolor у table, tr и td. На HTMLayout такой проблемы нет.

3. Отключаю "волшебный" скроллинг через SciterAppendMasterCSS "html { overflow:auto scroll-manner( page-animation:false, step-animation:false, home-animation: false, wheel-animation:false ) }" — в окне жму клавишу End включается плавный скроллинг, к томуже еще не в низ, а вверх кудато...

4. Отключаю фон не загрузившихся картинок, делаю SciterAppendMasterCSS "img:busy { background-image:none; background-color:transparent; }", далее делаю SciterAppendMasterCSS "img:not(:busy):incomplete { background-image:none; background-color:transparent; }" — всё равно квадраты на местах картинок...

5. Сразу поле делаю SciterLoadHtml RedrawWindow и вызываю SciterSetScrollPos — внутри html таблица растягивается по ширине и скролл налезает на контент. На HTMLayout такого нет.

6. Загружаю SciterLoadHtml картинку GIF — не отображается, надо подрыгать, размер поменять чтобы заработало, причем когда размер меняешь мигает скролл.
Повторяется на sciter.exe если этот html загрузить по кнопке load html in view. На HTMLayout такого эффекта нет.
Re[6]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 26.01.15 13:38
Оценка:
Здравствуйте, c-smile, Вы писали:

Z>>Допустим для HTMLayoutClipboardCopy можно послать ему Ctrl + C — хоть это и через задний проход, но всёже лучше чем ничего

Z>>А вот с HTMLayoutSelectionExist что делать? Я делаю кастомное меню в котором пункт IDM_COPY задисейблен если ничего не выбрано
Z>>Плюс как мне получить HTMLayoutGetSelectedHTML? Меня не устраивает по ряду причин то что копируется в буфер по дефолту, по этому я делаю свой обработчик чтобы исправить этот тект

CS>Вот пример behavior:htmlarea на <div class="selectable">.

CS>Там объявлены:
CS>

    CS>
  1. custom menu — <menu.context #for-htmlarea>
    CS>
  2. getSelectedText() — функция возвращает plain text из selection
    CS>
  3. getSelectedHTML() — функция возвращает HTML из selection
    CS>
CS>Эти две функции можно вызывать снаружи из C++

Ситуация следующая — я подгружаю внешний файл, мне нужно в нем копирование — во всем документе "body{ behavior:htmlarea; }", нужно получать выбранный текст и выбранный хтмл.
В данном примере я должен div.selectable заменить на body?
Если включить копирование я могу с помощью SetCss "body{ behavior:htmlarea; }", то как мне вставить <script type="text/tiscript">?
Для HTMLayoutClipboardCopy слать ему Ctrl + C напрямую? WM_COPY поймет?

CS>А можно всю твою обработку содержимого selection прямо в скрипте и делать.


Я понимаю что каноничное использование — это взять движок Sciter/HTMLayout и писать на нем приложения. Но я использую его не так. Для меня Sciter/HTMLayout — это то с помощью чего я могу описывать некоторые части интерфейса программы в html.
У меня своё меню, там свои функции (и копирование — не центровая), у них свои обработчики, свой стиль меню + на это всё накладывается локализация через свои обертки.
У меня есть пару окон которые выводят html — в одном случае я сам делаю ему html, во втором он получат внешний хтмл.
На HTMLayout все работает, но бага с word-wrap и со скачущим выделением. На Sciter не работает Selection, LoadFile, печать, проблемы со сроллином и фоном таблиц, зато работает word-wrap и выделение не пляшет...

Меня еще в HTMLayout давно интересовал вопрос — почему так мало внимания уделяется API для Selection? Этоже прекрасная вещь! Банальный поиск текста приходится делать через хайлайт, а не через селект... А теперь оно вообще убрано...
Re[3]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 26.01.15 18:49
Оценка:
Здравствуйте, zitz, Вы писали:

Z>Здравствуйте, c-smile, Вы писали:


CS>>Если есть возможность перейти на Sciter то лучше это сделать по многим причинам включая эту.


Z>Еще проблемы повылазили:


Z>1. SciterLoadFile возвращает FALSE

Z>HTMLayoutLoadFile в аналогичной ситуации работает
Z>Как узнать что ему не нравится?
Z>Этот же файл открываю через sciter.exe — открывается без вопросов...
Z>Эта функция просто отказывается работать чтобы я туда не подставлял.
Z>

Это внешинй URL? http://... и т.д.

Z>2. Sciter перестал понимать bgcolor у table, tr и td. На HTMLayout такой проблемы нет.


В HTML5 таких атрибутов уже нет. Могу конечно приделать но позже.

Z>3. Отключаю "волшебный" скроллинг через SciterAppendMasterCSS "html { overflow:auto scroll-manner( page-animation:false, step-animation:false, home-animation: false, wheel-animation:false ) }" — в окне жму клавишу End включается плавный скроллинг, к томуже еще не в низ, а вверх кудато...


Посмотрю.

Z>4. Отключаю фон не загрузившихся картинок, делаю SciterAppendMasterCSS "img:busy { background-image:none; background-color:transparent; }", далее делаю SciterAppendMasterCSS "img:not(:busy):incomplete { background-image:none; background-color:transparent; }" — всё равно квадраты на местах картинок...


По усолчанию стили там:
svg:incomplete:not(:busy),
img:incomplete:not(:busy)   
{
   background-image :url(sciter:no-image.png);
   background-repeat: repeat; 
   min-width:20px; min-height:20px;
   border:1px solid; border-color: #aaa #eee #eee #aaa; }


Т.е. min-width/height нужно давить. И border.


Z>5. Сразу поле делаю SciterLoadHtml RedrawWindow и вызываю SciterSetScrollPos — внутри html таблица растягивается по ширине и скролл налезает на контент. На HTMLayout такого нет.


Ни разу не видел, надо HTML на посмотреть.

Z>6. Загружаю SciterLoadHtml картинку GIF — не отображается, надо подрыгать, размер поменять чтобы заработало, причем когда размер меняешь мигает скролл.

Z>Повторяется на sciter.exe если этот html загрузить по кнопке load html in view. На HTMLayout такого эффекта нет.

ditto.
Re[7]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 26.01.15 19:25
Оценка:
Здравствуйте, zitz, Вы писали:

Z>Здравствуйте, c-smile, Вы писали:


Z>>>Допустим для HTMLayoutClipboardCopy можно послать ему Ctrl + C — хоть это и через задний проход, но всёже лучше чем ничего

Z>>>А вот с HTMLayoutSelectionExist что делать? Я делаю кастомное меню в котором пункт IDM_COPY задисейблен если ничего не выбрано
Z>>>Плюс как мне получить HTMLayoutGetSelectedHTML? Меня не устраивает по ряду причин то что копируется в буфер по дефолту, по этому я делаю свой обработчик чтобы исправить этот тект

CS>>Вот пример behavior:htmlarea на <div class="selectable">.

CS>>Там объявлены:
CS>>

    CS>>
  1. custom menu — <menu.context #for-htmlarea>
    CS>>
  2. getSelectedText() — функция возвращает plain text из selection
    CS>>
  3. getSelectedHTML() — функция возвращает HTML из selection
    CS>>
CS>>Эти две функции можно вызывать снаружи из C++

Z>Ситуация следующая — я подгружаю внешний файл, мне нужно в нем копирование — во всем документе "body{ behavior:htmlarea; }", нужно получать выбранный текст и выбранный хтмл.

Z>В данном примере я должен div.selectable заменить на body?
Z>Если включить копирование я могу с помощью SetCss "body{ behavior:htmlarea; }", то как мне вставить <script type="text/tiscript">?
Z>Для HTMLayoutClipboardCopy слать ему Ctrl + C напрямую? WM_COPY поймет?

Рекомендую следующее:

Грузить в Sciter по умолчанию следующий документ:

<html> 
  <head>
    <style>
      html { padding:0; margin:0; }
    </style>
    <script>
      const frame = $(frame);
      // API for native code:
      function getSelectedText() {
        // assumes that body has behavior:htmlarea
        var docInFrame = frame[0];
        return docInFrame.$(body).selection.text;
      }
      function getSelectedHTML() {
        var docInFrame = frame[0];
        return docInFrame.$(body).selection.html;
      }
      ... 
    </script>
  </head>
  <body>
    <frame src="docurl" content-style="cssurl">
      loading ...
    </frame>
  </body>
</html>

Где
content-style="some.css"
это URL того css который будет применен поверх того что есть в документе, то что ты пытаешься сейчас append в master css как раз и должно быть в этом CSS.

Примерно так сделано в sciter help viewer.

Этот вот CSS: {scitersdk}/doc/styles/content.css грузится во frame для каждого документа:

<frame #content src="" src="content/preface.htm" content-style="styles/content.css"/>


См. {scitersdk}/doc/main.htm

CS>>А можно всю твою обработку содержимого selection прямо в скрипте и делать.


Z>Я понимаю что каноничное использование — это взять движок Sciter/HTMLayout и писать на нем приложения. Но я использую его не так. Для меня Sciter/HTMLayout — это то с помощью чего я могу описывать некоторые части интерфейса программы в html.

Z>У меня своё меню, там свои функции (и копирование — не центровая), у них свои обработчики, свой стиль меню + на это всё накладывается локализация через свои обертки.
Z>У меня есть пару окон которые выводят html — в одном случае я сам делаю ему html, во втором он получат внешний хтмл.
Z>На HTMLayout все работает, но бага с word-wrap и со скачущим выделением. На Sciter не работает Selection, LoadFile, печать, проблемы со сроллином и фоном таблиц, зато работает word-wrap и выделение не пляшет...

Да, "взять движок Sciter/HTMLayout и писать на нем приложения" это primary use case. H/W accelerated rendering и high-dpi handling и всё такое.
По поводу "У меня своё меню..." и всё такое — нет проблем, просто нужно соотв. API написать по типу того что я привел выше.
Т.е. грузить в Sciter некий API layer + примитивную UI обработку, а уже в нем content твой грузить.

Z>Меня еще в HTMLayout давно интересовал вопрос — почему так мало внимания уделяется API для Selection? Этоже прекрасная вещь! Банальный поиск текста приходится делать через хайлайт, а не через селект... А теперь оно вообще убрано...


В Sciter selection именно тот что должен быть и функционально полный. В HTMLayout такого нет подавно.

Просто тебе несколько нужно перестроить ментальную модель:

1. Не я определяю конкретный API, это невозможно по определению — сколько людей столько и вариантов,
2. ты себе определяешь себе API который тебе нужен.

scripting это такая же декларация как и CSS по большлму счету. Только определят способ реакции на примитивные события, а не способ рисования.

Например в script можно добавить поддержу bgcolor и вообще много чего на эту тему.
Re[4]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 27.01.15 09:24
Оценка:
Здравствуйте, c-smile, Вы писали:

Z>>1. SciterLoadFile возвращает FALSE

Z>>HTMLayoutLoadFile в аналогичной ситуации работает
Z>>Как узнать что ему не нравится?
Z>>Этот же файл открываю через sciter.exe — открывается без вопросов...
Z>>Эта функция просто отказывается работать чтобы я туда не подставлял.
Z>>

CS>Это внешинй URL? http://... и т.д.


Нет, эту путь к файлу на диске.
Пробовал разные варианты — думал может путь длинный, думал может русские символы, разные файлы пробовал с разным содержимым, все равно 0 возвращает.

Z>>2. Sciter перестал понимать bgcolor у table, tr и td. На HTMLayout такой проблемы нет.

CS>В HTML5 таких атрибутов уже нет. Могу конечно приделать но позже.

Было бы замечательно.
Либо пример как сделать так:
> Например в script можно добавить поддержу bgcolor и вообще много чего на эту тему.
Я бы тогда еще поддержку align добавил

Z>>4. Отключаю фон не загрузившихся картинок, делаю SciterAppendMasterCSS...


Понял в чем проблема — не работает SciterAppendMasterCSS, хотя при вызове возвращает 1...
Передал всё на SciterSetCSS, заработало

Z>>3. Отключаю "волшебный" скроллинг через SciterAppendMasterCSS...


Проблема в следующем — отключение анимации не дружит с body{ behavior:htmlarea; } — при движении курсора все равно пытается плавно прокручивать.
Также не работают клавиши промотки вверх-вниз-home-end — он пытается ими двигать курсор. Мне двигать курсор не требуется, но требуется выделять мышью — можно как-то отключить движение курсора по клавишам стандартным способом? Или придется перехватывать?

Z>>5. Сразу поле делаю SciterLoadHtml RedrawWindow и вызываю SciterSetScrollPos — внутри html таблица растягивается по ширине и скролл налезает на контент. На HTMLayout такого нет.

CS>Ни разу не видел, надо HTML на посмотреть.

Пожалуйста:
<HTML>
 <HEAD>
  <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
  <style type='text/css'>
   body{ behavior: htmlarea; }
   body{ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
         font-size: 8pt;
         word-wrap: break-word;
         text-wrap: unrestricted; }
   html { overflow:auto scroll-manner( page-animation:false, step-animation:false, home-animation: false, wheel-animation:false, step:6.25%, page:100% ) }
   img:busy { background-image:none; background-color:transparent; min-width:1x; min-height:1px; border:0px; border-color:transparent; }
   img:not(:busy):incomplete { background-image:none; background-color:transparent; min-width:1px; min-height:1px; border:0px; border-color:transparent; }
   table{ width: 100%;}
   .tableborderbottom{ border:1px; border-color:rgb( 235, 235, 235);border-top-style: none; border-right-style: none; border-left-style: none; border-bottom-style: dashed; }
   td{ vertical-align: top; }
   a{ text-decoration: none; }
   a:hover{ text-decoration: underline; color: #559DE5 }
   .textUserName{ color: #559DE5; font-weight: bold; }
   .textMyName{ color: #808080; font-weight: bold; }
   .textTime{ color: #808080; }
   .textFileState{ color: #808080; }
   .textLink{ color: #559DE5; }
   .tdtime{ width: 50px; text-align: right; vertical-align: top; }
   .hidden{ display: none; }
   .shown{ }
   .selection{ color: white; background-color: green; }
   .shell-icon{ width: 16px; height: 16px; behavior: file-icon; }
  </style>
 </HEAD>
 <BODY>
  <DIV valign='center' align='center'>
<B>1</B> - 2
  </DIV>
  <HR SIZE='1' COLOR='#CECECE' ALIGN='LEFT'>
  <DIV valign='center'>
   <IMG src='img_clock' ALIGN='left'><B>3</B> - 4
  </DIV>
  <HR SIZE='1' COLOR='#CECECE' ALIGN='LEFT'>
  <TABLE  >
   <TR>
    <TD><FONT class='textMyName'>5</FONT></TD>
    <TD></TD>
   </TR>
   <TR tagUid='0021F0EE-F6B9-420A-8FC3-036C957ADC3E' tagDate='2015.1.22-18:12:12'>
    <TD><DIV>одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница.</DIV></TD>
    <TD class='tdtime'><FONT class='textTime'><IMG class='hidden' src='img_not_received'>18:12</FONT></TD>
   </TR>
  </TABLE>
  <HR SIZE='1' COLOR='#CECECE' ALIGN='LEFT'>
  <DIV valign='center'>
   <IMG src='img_clock' ALIGN='left'><B>3</B> - 4
  </DIV>
  <HR SIZE='1' COLOR='#CECECE' ALIGN='LEFT'>
  <TABLE class='tableborderbottom' >
   <TR>
    <TD><FONT class='textMyName'>5</FONT></TD>
    <TD></TD>
   </TR>
   <TR tagUid='BAF051A9-B128-447B-9556-969E82905605' tagDate='2015.1.26-10:45:1'>
    <TD><DIV>одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница.</DIV></TD>
    <TD class='tdtime'><FONT class='textTime'><IMG class='hidden' src='img_not_received'>10:45</FONT></TD>
   </TR>
  </TABLE>
  <TABLE class='tableborderbottom' >
   <TR tagUid='67992356-FC21-4317-AA3F-084B35620E8B' tagDate='2015.1.26-14:29:18'>
    <TD><DIV>одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница.</DIV></TD>
    <TD class='tdtime'><FONT class='textTime'><IMG class='hidden' src='img_not_received'>14:29</FONT></TD>
   </TR>
  </TABLE>
  <TABLE class='tableborderbottom' >
   <TR tagUid='6592F136-D252-4123-A7E2-010F87D9F232' tagDate='2015.1.26-14:31:28'>
    <TD><DIV>одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница.</DIV></TD>
    <TD class='tdtime'><FONT class='textTime'><IMG class='hidden' src='img_not_received'>14:31</FONT></TD>
   </TR>
  </TABLE>
  <TABLE class='tableborderbottom' >
   <TR tagUid='CC37B55A-7E88-41E3-B41C-7D5B58DB584F' tagDate='2015.1.26-14:40:25'>
    <TD><DIV>одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница.</DIV></TD>
    <TD class='tdtime'><FONT class='textTime'><IMG class='hidden' src='img_not_received'>14:40</FONT></TD>
   </TR>
  </TABLE>
  <TABLE  >
   <TR tagUid='FC13C629-56C8-4B2F-90F0-60EDAF0BD1FA' tagDate='2015.1.26-14:40:37'>
    <TD><DIV>одиннадцатиклассницаодиннадцатиклассницаодиннадцатиклассница...</DIV></TD>
    <TD class='tdtime'><FONT class='textTime'><IMG class='hidden' src='img_not_received'>14:40</FONT></TD>
   </TR>
  </TABLE>
  <HR SIZE='1' COLOR='#CECECE' ALIGN='LEFT'>
  <DIV valign='center'>
   <IMG src='img_clock' ALIGN='left'><B>4</B> - 1
  </DIV>
  <HR SIZE='1' COLOR='#CECECE' ALIGN='LEFT'>
  <TABLE  >
   <TR>
    <TD><FONT class='textMyName'>5</FONT></TD>
    <TD></TD>
   </TR>
   <TR tagUid='6BF48AFF-5E13-46B6-8F9F-F3567F58786C' tagDate='2015.1.27-11:53:19'>
    <TD><DIV>одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница. одиннадцатиклассница.</DIV></TD>
    <TD class='tdtime'><FONT class='textTime'><IMG class='hidden' src='img_not_received'>11:53</FONT></TD>
   </TR>
  </TABLE>
 </BODY>
</HTML>

Свою проблему решил так — после SciterLoadHtml принудительно отправляю окну WM_SIZE после этого отображается нормально
Кстати если этот html открыть в sciter.exe, то при уменьшении размера окна вообще два скролла появится

Z>>6. Загружаю SciterLoadHtml картинку GIF — не отображается, надо подрыгать, размер поменять чтобы заработало, причем когда размер меняешь мигает скролл.

Z>>Повторяется на sciter.exe если этот html загрузить по кнопке load html in view. На HTMLayout такого эффекта нет.
CS>Ни разу не видел, надо HTML на посмотреть.

Пожалуйста:
<HTML>
 <HEAD>
  <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
  <style type='text/css'>
   body{ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
         font-size: 8pt;
         background-color: #EEF2FB;
         margin: 0;
         padding: 0;
         height: 100%;
         text-wrap: unrestricted; }
   div#table { display: table;
               width: 100%;
               height: 100%; }
   div#row { display: table-row;
             width: 100%;
             height: 100%; }
   div#cell { display: table-cell;
              height: 100%;
              width: 100%;
              vertical-align: middle; }
   img { text-align: center;
         margin: 0 auto;
         border-bottom: #000 solid 1px;
         border-right: #000 solid 1px;
         border-top: #000 solid 1px;
         border-left: #000 solid 1px;
         display: block; }
  </style>
 </HEAD>
 <BODY>
  <div id='table'>
   <div id='row'>
    <div id='cell'>
     <img src='C:\gif.gif'>
    </div>
   </div>
  </div>
 </BODY>
</HTML>

Эту странность не получается побороть...
Re[8]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 27.01.15 09:57
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Рекомендую следующее:

CS>Грузить в Sciter по умолчанию следующий документ:
CS>...
CS>Где
CS> content-style="some.css"
CS>это URL того css который будет применен поверх того что есть в документе, то что ты пытаешься сейчас append в master css как раз и должно быть в этом CSS.
CS>...
CS>Да, "взять движок Sciter/HTMLayout и писать на нем приложения" это primary use case. H/W accelerated rendering и high-dpi handling и всё такое.
CS>По поводу "У меня своё меню..." и всё такое — нет проблем, просто нужно соотв. API написать по типу того что я привел выше.
CS>Т.е. грузить в Sciter некий API layer + примитивную UI обработку, а уже в нем content твой грузить.
CS>В Sciter selection именно тот что должен быть и функционально полный. В HTMLayout такого нет подавно.
CS>Просто тебе несколько нужно перестроить ментальную модель:
CS>1. Не я определяю конкретный API, это невозможно по определению — сколько людей столько и вариантов,
CS>2. ты себе определяешь себе API который тебе нужен.
CS>scripting это такая же декларация как и CSS по большлму счету. Только определят способ реакции на примитивные события, а не способ рисования.

Зачем такие сложности? Уж если корячить html, то можно SciterSetElementHtml сделать...
Я же не против перестроить свою корявую ментальную модель, но чтобы сделать себе эти API нужно уж очень хитро извратится: сделать html по умолчанию, в нем фрейм, в этот фрейм грузить css извне, содержимое извне... Это при том что у меня уже всё работает как надо на HTMLayout и я уже и так не кислый рефакторинг провел.
Ведь с CSS же всё просто — есть SciterSetCSS и SciterAppendMasterCSS, крути-верти как хочешь без особых плясок с бубном.

Слезно прошу, сделай, пожалуйста, такуюже штуку для скриптов — SciterSetScript — всё многократно упростится, тем более что "scripting это такая же декларация как и CSS по большому счету" и скрипты я как понял это и есть основная фишка Sciter по сравнению с HTMLayout.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.