Re[4]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 27.01.15 10:14
Оценка:
Здравствуйте, c-smile, Вы писали:

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

CS>Посмотрю.

Ковыряясь в api обнаружил HTMLayoutSetOption и параметр HTMLAYOUT_SMOOTH_SCROLL, надоже, как я его пропустил, проверил — то что надо, работает!
Смотрю в sciter api это есть, думаю сейчас решу эту проблему. Делаю ::SciterSetOption( GetSafeHwnd(), SCITER_SMOOTH_SCROLL, FALSE ) — возвращает 1, но всё равно плавный скролл...
Re[2]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 27.01.15 10:52
Оценка:
Здравствуйте, c-smile, Вы писали:

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


Загружаю html, страница длинная, зажимаю мышкой скролл бар и тяну вниз — вылетает
<td> element is not allowed at ((244))
First-chance exception in proga.exe (SCITER32.DLL): 0xC0000005: Access Violation.

В sciter.exe эта бага не повторяется...
Re[9]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 27.01.15 17:29
Оценка:
Здравствуйте, zitz, Вы писали:

Z>Зачем такие сложности? Уж если корячить html, то можно SciterSetElementHtml сделать...

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

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


Зачем SciterSetScript если есть SciterEval ?

Этой функцией можно script непосредственно исполнить, а можно
SciterEval(hwnd, "include \"some.tis\";");
Re[5]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 27.01.15 18:13
Оценка:
Здравствуйте, zitz, Вы писали:

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


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

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

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


Z>Нет, эту путь к файлу на диске.

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

FALSE возвращается если
1. hwnd не sciter
2. url не local и sciter загрузит его позже.
3. Если SC_LOAD_DATA вернул LOAD_DISCARD — т.е. запретил загрузку.


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

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

Z>Было бы замечательно.

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

CSS:
td[bgcolor]{ aspect: SetBGColor url(html4helpers.tis); }


html4helpers.tis
function SetBGColor() {
  this.style["background-color"] = this.attributes["bgcolor"];
}


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


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

Z>Передал всё на SciterSetCSS, заработало

SciterAppendMasterCSS работает, в sciter.exe так добавляется "<checkbox>":

  const char* def = "checkbox { display:inline-block; display-model:inline-inside; style-set: \"std-checkbox\"; }";
  SciterAppendMasterCSS((const byte*)def,UINT(strlen(def)));


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


Z>Проблема в следующем — отключение анимации не дружит с body{ behavior:htmlarea; } — при движении курсора все равно пытается плавно прокручивать.

Z>Также не работают клавиши промотки вверх-вниз-home-end — он пытается ими двигать курсор. Мне двигать курсор не требуется, но требуется выделять мышью — можно как-то отключить движение курсора по клавишам стандартным способом? Или придется перехватывать?

Я починил animation setup для caret movement, в след. билде будет.

caret будет двигаться в htmlarea всегда иначе например Shift+Left/Right выделение работать не будет.

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

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

Z>Пожалуйста:

Z>
Z><HTML>
Z></HTML>
Z>

Z>Свою проблему решил так — после SciterLoadHtml принудительно отправляю окну WM_SIZE после этого отображается нормально

Это уже предмет для разговора...

Напиши там
html { overflow:hidden; }
body { overflow:scroll-indicator; size:*; }
// or body { overflow:auto; size:*; }


Z>Кстати если этот html открыть в sciter.exe, то при уменьшении размера окна вообще два скролла появится


Это нормально. Корневой документ там сознательно был оставлен с overflow:auto;

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

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

Z>Пожалуйста:

Z>
Z><HTML>...
Z></HTML>
Z>

Z>Эту странность не получается побороть...

Забудь про проценты от размера view — они имеют другую семантику в desktop приложениях.

Попробуй вот:

<HTML>
 <HEAD>
  <style>
   body{ background-color: #EEF2FB;
         margin: 0;
         padding: 0; }
   img { 
         margin: *;
         border: #000 solid 1px;
         display: block; 
    }
  </style>
 </HEAD>
 <BODY>
    <img src='sciter:busy.png'>
 </BODY>
</HTML>


Про margin: *; я рассказал в статье
Re[9]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 27.01.15 20:28
Оценка:
Здравствуйте, zitz, Вы писали:

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


Про SciterEval я уже сказал выше но на самом деле тебе и это не надо.

Скажем если тебе нужно выполнить некую функцию для DOM элемента то пишем скрипт

utils.tis :
function Foo() {
  this // here is the element
}


и вызываем эту скрипт функцию через CSS:

div[foo] {
  aspect: Foo url(utils.tis);
}

для всех <div> у которых есть атрибут foo.

Можно также зайти с другой стороны:
в CSS:
html {
  aspect: MyHtmlProcessor url(utils.tis);
}


объявлено что для <html> документа будет вызвана функция MyHtmlProcessor которая выглядит например так

function MyHtmlProcessor() {

  for( var el in this.selectAll("div[foo]") )
    // do something with each div[foo]

}
Отредактировано 27.01.2015 20:29 c-smile . Предыдущая версия .
Re[3]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 28.01.15 13:20
Оценка:
Здравствуйте, zitz, Вы писали:

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


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


Z>Загружаю html, страница длинная, зажимаю мышкой скролл бар и тяну вниз — вылетает

Z><td> element is not allowed at ((244))
Z>First-chance exception in proga.exe (SCITER32.DLL): 0xC0000005: Access Violation.

Z>В sciter.exe эта бага не повторяется...


Бага случается из-за того что я после загрузки SciterLoadHtml делаю SciterSetCSS
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; }
Убираю эти два стиля — падения прекращаются
Re[6]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 28.01.15 13:28
Оценка:
Здравствуйте, c-smile, Вы писали:

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

CS>FALSE возвращается если
CS>1. hwnd не sciter
CS>2. url не local и sciter загрузит его позже.
CS>3. Если SC_LOAD_DATA вернул LOAD_DISCARD — т.е. запретил загрузку.

"SC_LOAD_DATA вернул LOAD_DISCARD" — ВАХ! Кто бы мог подумать — у меня обработчик стоит который режет всё кроме некоторых картинок и file:
А зачем так сделано? Если я делаю вызов SciterLoadFile разве это не значит что я хочу его загрузить?
uri файла приходит с замененными слешами на бекслеши — зачем? Причем ладно бы кодировал url символы и подставлял file:/// — так нет же, меняет только слеши...
Чтобы разрешить загрузку надо сделать sLoadedPath.Replace( _T("\\"), _T("/") ) и сравнить или он ещё какие символы по партизански портит?
Ну да ладно — это пол беды, самая главная проблема — не устанавливается baseUrl каталог с файлом — картинки которые лежат в том же каталоге не грузятся

Я тут параллельно уже накидал код который сам файл открывает, считывает и делает SciterLoadHtml.
Думал слеши на обратные поменяю в пути, да и всё раз уж он такой путь в SC_LOAD_DATA кидает, значит понимает... Ан нет...
Что за двойные стандарты Таки придется urlEncode писать...

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

CS>>>Ни разу не видел, надо HTML на посмотреть.
Z>>Пожалуйста:
Z>>
Z>><HTML>
Z>></HTML>
Z>>

Z>>Свою проблему решил так — после SciterLoadHtml принудительно отправляю окну WM_SIZE после этого отображается нормально
CS>Это уже предмет для разговора...
CS>Напиши там
CS>
CS>html { overflow:hidden; }
CS>body { overflow:scroll-indicator; size:*; }
CS>// or body { overflow:auto; size:*; }
CS>


В этом случае скрол всегда поверх текста отображается и WM_SIZE не спасает

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

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

Z>>Эту странность не получается побороть...
CS>Забудь про проценты от размера view — они имеют другую семантику в desktop приложениях.
CS>Попробуй вот:
CS>Про margin: *; я рассказал в...

Проблема в том что margin: * не работает в HTMLayout — выравнивает только по горизонтали.
В Sciter этот margin: * работает как надо и эффект с исчезанием картинки пропал...
Можно как-то по другому решить этот вопрос, чтобы работало и там и там?
Re[10]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 28.01.15 13:58
Оценка:
Здравствуйте, c-smile, Вы писали:

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


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


CS>Про SciterEval я уже сказал выше но на самом деле тебе и это не надо.


Я не совсем понимаю... Можно скрипт в css запихнуть?
Или ты предлагаешь делать мне внешний файл и его скармлевать в Sciter через SciterEval?
Можно как то обойтись без создания файла и без нахлобучек ввиде фреймов? Требуется генерировать скрипт программно и сразу пихать его в Sciter?

Например, есть SciterSetCSS — удобно, практично, прекрасно! Я могу сгенерировать стиль и сразу его применить, хочешь так крути, хочешь сяк... В одном случае то, во втором это, в третьем по другому. Можно на лету менять. Не надо ничего никуда сохранять во внешние файлы — красота. В этом случае тоже можно же сказать — это API убираем, пусть все грузят через include...
Если будет SciterSetScript то он даст такуюже свободу, тем более что с помощью скриптов можно расширить API которые не хочет возвращать разработчик
Re[7]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 28.01.15 17:59
Оценка:
Здравствуйте, zitz, Вы писали:

Z>"SC_LOAD_DATA вернул LOAD_DISCARD" — ВАХ! Кто бы мог подумать — у меня обработчик стоит который режет всё кроме некоторых картинок и file:

Z>А зачем так сделано? Если я делаю вызов SciterLoadFile разве это не значит что я хочу его загрузить?
Z>uri файла приходит с замененными слешами на бекслеши — зачем? Причем ладно бы кодировал url символы и подставлял file:/// — так нет же, меняет только слеши...
Z>Чтобы разрешить загрузку надо сделать sLoadedPath.Replace( _T("\\"), _T("/") ) и сравнить или он ещё какие символы по партизански портит?
Z>Ну да ладно — это пол беды, самая главная проблема — не устанавливается baseUrl каталог с файлом — картинки которые лежат в том же каталоге не грузятся

Вообще-то SciterLoadFile() ожидает url.
Т.е. в случае файлов это что-то типа file://c:/.....

Если дашт URL — получишь URL в callback.

"А зачем так сделано?"

Были неоднократные запросы на тему "хотим чтобы весь трафик шел через SC_LOAD_DATA" для того чтобы
имплементирвать свой loader в одном месте. Посчитал что это разумно.


Z>Я тут параллельно уже накидал код который сам файл открывает, считывает и делает SciterLoadHtml.

Z>Думал слеши на обратные поменяю в пути, да и всё раз уж он такой путь в SC_LOAD_DATA кидает, значит понимает... Ан нет...
Z>Что за двойные стандарты Таки придется urlEncode писать...

Давай URL по всем правилам и будет тебе шастя.

Z>В этом случае скрол всегда поверх текста отображается и WM_SIZE не спасает


Попробуй так
  Твой markup
<HTML>
 <HEAD>
  <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
  <style type='text/css'>
   html { overflow:hidden; }  
   body{ behavior: htmlarea; overflow:auto; size:*; margin:0; }
   body{ font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
         font-size: 8pt;
         word-wrap: break-word;
         text-wrap: unrestricted; }
   table{ width:*;}
   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; }
   .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>


Обрати внимание на table { width:* }

У тебя было table { width:100% } что engine и исполнял — 100% от ширины окна. Но без scrollbars.

Т.е. либо надо флексы использовать либо overflow-y:scroll, а не overflow-y:auto как у тебя.
Либо вообще overflow:scroll-indicator — он места не занимает.

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

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

Z>>>Эту странность не получается побороть...
CS>>Забудь про проценты от размера view — они имеют другую семантику в desktop приложениях.
CS>>Попробуй вот:
CS>>Про margin: *; я рассказал в...

Z>Проблема в том что margin: * не работает в HTMLayout — выравнивает только по горизонтали.

Z>В Sciter этот margin: * работает как надо и эффект с исчезанием картинки пропал...
Z>Можно как-то по другому решить этот вопрос, чтобы работало и там и там?

<picture> использовать. Это блочный элемент.

<html>
  <head>
    <style>
      picture { margin:* }  
    </style>
  </head>
<body>
  <picture src=alpha-back.png />
</body>
</html>
Re[4]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 28.01.15 18:25
Оценка:
Здравствуйте, zitz, Вы писали:

Z>Бага случается из-за того что я после загрузки SciterLoadHtml делаю SciterSetCSS

Z>img:busy { background-image:none; background-color:transparent; min-width:1x; min-height:1px; border:0px; border-color:transparent; }
Z>img:not(:busy):incomplete { background-image:none; background-color:transparent; min-width:1px; min-height:1px; border:0px; border-color:transparent; }
Z>Убираю эти два стиля — падения прекращаются

Про <frame> я тебе уже сказал.
Re[11]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 28.01.15 20:16
Оценка:
Здравствуйте, zitz, Вы писали:

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


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


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


CS>>Про SciterEval я уже сказал выше но на самом деле тебе и это не надо.


Z>Я не совсем понимаю... Можно скрипт в css запихнуть?

Z>Или ты предлагаешь делать мне внешний файл и его скармлевать в Sciter через SciterEval?
Z>Можно как то обойтись без создания файла и без нахлобучек ввиде фреймов? Требуется генерировать скрипт программно и сразу пихать его в Sciter?

SciterEval принимает на вход script to execute. Я не знаю как тебе объяснить еще.

Z>Например, есть SciterSetCSS — удобно, практично, прекрасно! Я могу сгенерировать стиль и сразу его применить, хочешь так крути, хочешь сяк... В одном случае то, во втором это, в третьем по другому. Можно на лету менять. Не надо ничего никуда сохранять во внешние файлы — красота. В этом случае тоже можно же сказать — это API убираем, пусть все грузят через include...

Z>Если будет SciterSetScript то он даст такуюже свободу, тем более что с помощью скриптов можно расширить API которые не хочет возвращать разработчик

После загрузки DOM выполняется фактически это вот:

for each <script> in DOM 
  SciterEval ( text of that <script> element )


Это понятно?
Re[5]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 29.01.15 11:39
Оценка:
Здравствуйте, c-smile, Вы писали:

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


Z>>Бага случается из-за того что я после загрузки SciterLoadHtml делаю SciterSetCSS

Z>>img:busy { background-image:none; background-color:transparent; min-width:1x; min-height:1px; border:0px; border-color:transparent; }
Z>>img:not(:busy):incomplete { background-image:none; background-color:transparent; min-width:1px; min-height:1px; border:0px; border-color:transparent; }
Z>>Убираю эти два стиля — падения прекращаются

CS>Про <frame> я тебе уже сказал.


Можно ткнуть носом? Не совсем понимаю при чем тут frame...
Еще раз по шагам:
1. Шаг первый — грузим SciterLoadHtml с картинками, таблицами и пр., загрузка картинок запрещена или они не доступны по сети (проверял и так и так)
2. Шаг второй — вызываем функцию SciterSetCSS, куда передаем css с описанием img:busy и img:not(:busy):incomplete (описаны выше)
3. Шаг третий — в окне пытаемся проскроллить мышкой — падает в дебрях SCITER32.DLL
Я как-то не правильно использую SciterSetCSS? После её вызова надо ещё что-то сделать?
Я передаю в css стили различным элементам, падает только из-за img:busy и img:not(:busy):incomplete — комменчу эти два стиля — работает, раскомментирую — падает

Аналогично делаю в HTMLayout — сначала HTMLayoutLoadHtmlEx, потом HTMLayoutSetCSS — всё работает корректно
Re[8]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 29.01.15 12:14
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Вообще-то SciterLoadFile() ожидает url.

CS>Т.е. в случае файлов это что-то типа file://c:/.....
CS>Давай URL по всем правилам и будет тебе шастя.

Хмм... Из документации это совершенно не следует.
Проблема в том что HTMLayoutLoadFile отрабатывает нормально, а для SciterLoadFile надо делать urlEncode...

Z>>В этом случае скрол всегда поверх текста отображается и WM_SIZE не спасает

CS>Обрати внимание на table { width:* }
CS>У тебя было table { width:100% } что engine и исполнял — 100% от ширины окна. Но без scrollbars.
CS>Т.е. либо надо флексы использовать либо overflow-y:scroll, а не overflow-y:auto как у тебя.
CS>Либо вообще overflow:scroll-indicator — он места не занимает.

Не помогает.
Багу можно повторить в sciter.exe — раскопируй тело у исходного html чтобы на экран не влезало и открой через load html in view.

CS>Забудь про проценты от размера view — они имеют другую семантику в desktop приложениях


Почему?
Я честно говоря не понимаю почему engine не учитывает scrollbars — во всех браузерах учитывает, в HTMLayout учитывает, а тут нет...
Браузер firefox — это desktop приложение? Все браузеры как то разруливают наличие скролбара и HTMLayout это тоже умеет, а тут нет...
Чем принципиально отличаются width:* и width:100%? Зачем делать неправильную обработку когда при парсинге можно привести 100% к *, а 50% к 0.5* и получится правильно
(в данном случае конечно это всё равно не помогает)

Z>>Проблема в том что margin: * не работает в HTMLayout — выравнивает только по горизонтали.

Z>>В Sciter этот margin: * работает как надо и эффект с исчезанием картинки пропал...
Z>>Можно как-то по другому решить этот вопрос, чтобы работало и там и там?

CS><picture> использовать. Это блочный элемент.


picture не отображает gif анимацию
Как-то можно заставить быть img блочным? Я так понимаю display: block; не работает...
Пробовал сделать так
<HTML>
 <HEAD>
  <style>
   body{ background-color: #EEF2FB; margin: 0; padding: 0; }
   div { margin: *; }
   img { border: #000 solid 1px; display: block; }
  </style>
 </HEAD>
 <BODY>
  <div>
   <img src='sciter:busy.png'>
  </div>
 </BODY>
</HTML>

HTMLayout отображается как надо, в Sciter нет — воспринимает его только как объект по высоте, а ширину игнорирует — пробовал даже вручную поставить
Re[12]: HTMLayout text-wrap:unrestricted
От: zitz  
Дата: 29.01.15 12:15
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>SciterEval принимает на вход script to execute. Я не знаю как тебе объяснить еще.

CS>После загрузки DOM выполняется фактически это вот:

CS>
CS>for each <script> in DOM 
CS>  SciterEval ( text of that <script> element )
CS>


CS>Это понятно?


Теперь понятно, спасибо! Буду пробовать
Re[9]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 29.01.15 18:14
Оценка:
Здравствуйте, zitz, Вы писали:

Z>picture не отображает gif анимацию

Z>Как-то можно заставить быть img блочным? Я так понимаю display: block; не работает...

в HTMLayout — никак. В Sciter display: block;

Вот это работает в SC и HL:

<html>
  <head>
    <title></title>
    <style>
      body {
        foreground-image: url(busy.png);
        foreground-repeat: no-repeat;
        foreground-position: 50% 50%;
      }
    </style>
  </head>
<body>
</body>
</html>


busy.png это анимирванный png.
Re[6]: HTMLayout text-wrap:unrestricted
От: c-smile Канада http://terrainformatica.com
Дата: 30.01.15 07:39
Оценка:
Здравствуйте, zitz, Вы писали:

Z>Можно ткнуть носом? Не совсем понимаю при чем тут frame...

Z>Еще раз по шагам:
Z>1. Шаг первый — грузим SciterLoadHtml с картинками, таблицами и пр., загрузка картинок запрещена или они не доступны по сети (проверял и так и так)
Z>2. Шаг второй — вызываем функцию SciterSetCSS, куда передаем css с описанием img:busy и img:not(:busy):incomplete (описаны выше)
Z>3. Шаг третий — в окне пытаемся проскроллить мышкой — падает в дебрях SCITER32.DLL
Z>Я как-то не правильно использую SciterSetCSS? После её вызова надо ещё что-то сделать?
Z>Я передаю в css стили различным элементам, падает только из-за img:busy и img:not(:busy):incomplete — комменчу эти два стиля — работает, раскомментирую — падает

У меня нет под рукой проекта на проверить. На той неделе попробую что-то избразить.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.