Build# Date Updates
3.2.2.18 04-05-2008
  • Fix of possible AV on dynamic updates of float:left|right elements.
  • Fix of bullet positioning.
  • Fix of scrollbar handling in <textare>, <richtext> and <plaintext> input elements.
  • Update, support of multiple rendering behaviors attached to the same element.
  • Fix of line-height attribute interpretation.
  • New CSS attributes list-marker-color : color, list-marker-size : length and list-marker-style : border-style-enumeartion. These attributes are used to style bullets (and so tree lines). ATTN: outline-*** attributes used for defining tree view styles are not in effect now.
  • New function for fore/background-image-transformation : opacity(opacity-value) where opacity-value is a number between 0.0 and 1.0 - opacity of the image. This function is in effect only for 32bpp images.
3.2.2.17 23-04-2008
  • Fix of custom scrollbar rendering while smooth-scrolling.
  • Fix of handling of input elements inside other inputs (e.g. <select>) (MOUSE_UP/set_capture() issue).
  • Fix of outline rendering inside abs positioned elements.
  • Fix of popup/anchor style inheritance.
  • Fix of Ctrl-Enter handling in <texarea>/<richtext>.
  • New sample /forms/custom-ctl-styles.htm - custom edit background/border + glow.
  • Fix of Layered Window rendering when background bitmap is semitransparent. See updated skin sample.
  • New attribute in behavior:popup-menu: align-popup = left | right | top | bottom; - allows to define poition of popup window.
  • Fix of MOUSE_MOVE handling (capturing) in scrollbars.
  • New, "inverse" slider support: if min > max then slider operates in opposite direction.
  • ATTN, CRITICAL: fix of possible AV introduced in 3.2.2.16 version. Thanks to rsdn::creatman.
  • Fix of text-overflow: ellipsis handling. ATTN: code behind ellipsis was redesigned significantly, please verify if you use them.
  • Fix of float:left | right layout/rendering. Thanks to rsdn::Lazarus.
  • Some RTL fixes.

Mobile version was also updated in this release.
3.2.2.16 15-04-2008
  • Fix of GIF animations on tabs and other elements that are getting shown/hidden in runtime.
  • Fix(?) of hang-up while loading through http/https.
  • Fix of date format determination on some locales.
  • Fix of :empty state flag for date/calendar inputs.
  • Fix of scrollbar recalculation for root (<html>) node.
  • More scrolling fixes.
  • New/update. Implementation of background/border/outline for <tr> elements in tables. See grid/scrollable-table.htm
    Background/borders of <tr> are rendered now as in any other solid block e.g. with gradient spanning whole row. Exception are  rows that contain "holes" - for example cells that spanned over such rows.
  • New. Support of new value of outline-style:glow and two more CSS attributes:
    • outline-shift-x: length;
    • outline-shift-y: length;
    • or outline-shift: length [ length];

    outline-style:glow and outline-shift allow to define glows and shadows. Here is an example of glow rendering:
    Glow outline samples
    Glow outline is implemented as 2D filter with shape close to this:
    Filter chart
    and filter radii equal to sum of outline-offset and outline-width values.

    See samples: /html_samples/css-plus/outline-glow.htm and /html_samples/css-plus/outline-styles.htm


Mobile version was also updated in this release.
3.2.2.15 06-04-2008
Mobile version was also updated in this release.
3.2.2.14 29-03-2008
  • RTL fixes:
    • Fix of tooltip generation for text-overflow:ellipsis RTLed items. See: html_samples/drag-n-drop/tree-view-rtl.htm
    • Popups properly inherit directionality from anchor elements.
    • More fixes with dir=rtl text rendering.
  • Fix of Crash - repeatable in browse.exe. That is also related to loading new document when previous one did not finish loading.
  • Fix of HTMLayoutSetScrollPos for <richedit>
  • Fix of behavior_font_size.cpp
  • Fix of parsing of attribute "behavior" in style parser
  • Fix of warnings in json_***.h
  • Fix/Update. Support of the inherit value in CSS attributes.
  • Update. Support of the outline for inline elements (spans).
  • Fix of outline rendering for cases when outline is outside of border box of element.
  • Fix of drag-n-drop of relatively positioned elements. See: html_samples/drag-n-drop/tabs-reordering.htm
  • Fix of expando.finalize call. expando.finalize is getting called as a very last step of DOM element destruction.
  • New, support of the tooltip attribute. It is the same as title but supports inline html.
  • New attribute bar = clip | resize in behavior:progress, see:html_samples/forms/progress.htm
  • New, support of flex units (%%, *) for left/right/top/bottom attributes for position:absolute | fixed elements. See: html_samples/abs/fix_center.htm
  • New, <frameset> may contain <hr> elements inside. That enables styling of splitters. See: html_samples/frames/frame-splitter-styling.htm
  • Resizing and measurement should work a bit faster.

Mobile version was also updated in this release.
3.2.2.13 22-03-2008
  • Fix (attempt) of Crash - repeatable in browse.exe. Problem is related to reloading document that has external (http:/https:) resources.
  • One more fix of WM_SIZE handling.
  • Update, behaviors_tabs.cpp - should work faster while switching tabs.
  • Fix of hiding HWND based controls when they placed on tabs.
  • Update of DATA_ARRIVED_PARAMS structure, it got uri and status fields.
  • Fix in CSS parser. behavior: ~ something; declaration properly assigns value of the behavior if initial behavior list was empty.
  • Fix of rendering of "one\r\n  two" text - visually it used to contain more than one whitespace.
  • Minor RTL rendering fixes.
  • New, support of:
    • hsl() function (CSS3) - it allows to define colors using HSL color space.
    • tint({base-color}, {luminance} [,{saturation}]) function. This function allows to define color values linked with some other {base-color}. See example in: /html_samples/css-plus/hsl-colors.htm and CSS Map (at the end).

Mobile version was also updated in this release.
3.2.2.12 18-03-2008
  • Fix of resizing bug: black stripe may appear in place of scrollbar in some circumstances.
  • Fix of outline rendering: outline was obscured by elements that are on the same layer in some cases.
  • Fix of handling STATE_EXPANDED/STATE_COLLAPSED flags.

Mobile version was also updated in this release.
3.2.2.11 15-03-2008
  • Fix of IME issues reported in "Can not activate the IME in TEXTAREA"
  • Fix of "Different font face are used for controls"
  • Fix of "'line-height' bug"
  • Fix of 'expand' mode background stretching bug
  • Fix of margin collapsing between blocks having different values of the flow attribute. See: margin-top (in Russian).
  • Various fixes related to rendering of RTL texts in the engine. Editing of RTL texts in <textarea> is not complete yet though.
    • New CSS pseudo-classes :rtl and :ltr. These classes reflect current state of directionality of text for the element. E.g. if document has <html dir="rtl"> then all subelements will have :rtl state set. I suggest to use these flags to style elements that are rtl/ltr aware and have non-symmetric attriubutes. For example:
      blockquote { padding-left:25%; padding-right:10%; }
      blockquote:rtl { padding-left:10%; padding-right:25%; }
      See: CSS Selectors support map
  • Fix of scrollbar appearance on the root element.
  • New @step attribute in behavior:slider, see: can a slider have a step?
  • New behavior_sizer.cpp - simple behavior that enables resizing of elements (including popups) by mouse/gripper. See samples: /html_samples/behaviors/sizer.htm and /html_samples/behaviors/sizer-popup.htm.

Mobile version was also updated in this release.
3.2.2.10 08-03-2008
  • New <richtext> commands: load, save, setForeSpan, setBackSpan, setBlock, indentPlus, indentMinus, selectAll, see more;
  • New back/foreground-repeat: stretch keep-ratio; See /html_samples/back/keep-ratio.htm sample;
  • New <frame content-style="url.css">
  • Fix of rtl/text-align:justify rendering;
  • Fix of the "height:100%" problem when consequent window resizes cause incremental doc size increasing.
  • New AxHTMLayout demo project - ActiveX wrapper of htmlayout.
  • New attribute <richtext allow-clipboard-images>, see more;
  • New drop:replace value. Idea is to support editing of maps like this, where elements from pallete can be dragged into destination cells.
  • Fix, IME input support in <richtext>, <plaintext> and <textarea>.
  • Update in browse.exe: support of WM_DROPFILES - files can be dragged into the view window.
  • Update in skin sample - it shows how to create not strictly rectangular windows.
3.2.2.9 01-03-2008
  • Fix of :nth-child(-2) selector parsing
  • Fix. Master CSS update: select[editable] > caption { context-menu:url(res:behavior-edit-menu.htm);  }
    That enables context menu for editable portion.
  • Fix of FOCUS notifications on behavior attached to the window (view).
  • Fix of scrolling of position:relative elements.

Mobile version was also updated in this release.
3.2.2.8b 23-02-2008
  • Fix of CSS resolution bug introduced in 3.2.2.8. Desktop and CE version.
3.2.2.8 23-02-2008
  • built-in drag-n-drop support, continued.
    • new :drag-source flag and CSS pseudo class.
    • new behavior_gripper.cpp demonstarting how to start D&D operation. Example /html_samples/drag-n-drop/gripper.htm.
  • outline-style:dotted and outline-style:dashed rendering was changed. See: /html_samples/css-plus/outline-styles.htm
  • New value of list-style-type: tree-line; - allows to draw tree outlines. See: /html_samples/css-plus/tree-view-lines.htm
  • New values of the transition CSS attribute:
    • window-blend
    • window-slide-ttb
    • window-slide-btt
    • window-slide-ltr
    • window-slide-rtl
    Tohether with the none value these values allow to define the way how popup windows appear on the screen. See: /html_samples/animations/popup-animations.htm sample.
  • Fix of text-overflow:ellipsis rendering on WinCE/Mobile.
  • Fix of PrintEx.registerHyperlinkArea() callback generation.

Mobile version was also updated in this release.
3.2.2.7 16-02-2008
  • New, support of built-in drag-n-drop support. Examples are in /html_samples/drag-n-drop/ folder.
  • New, HTMLayoutProcessUIEvent API.
  • Fix, added BUTTON_CLICK generation in <input type="slider"> (behavior:slider). This event is generated after MOUSE_UP or KEY_UP processing.
  • Fix in <input type="radio"> (behavior:radio). It used to treat id attribute as name in some circumstances.
  • Fix in <input type="edit"> (behavior:edit). Ctrl-Shift combination switches RTL/LTR input only if direction CSS attribute (or dir HTML attribute) is defined for the element (and so in any of its parents).
  • Update, <input type="currency"> and <input type="decimal"> elements can use format attribute defined at element itself (as element attribute in HTML) or -format custom CSS attribute. Thus:
    input[type="currency"]
    {
    -format: "grouping-sep:' '";
    }
    will set whitespace as a grouping separator for all currency input elements.

Mobile version was also updated in this release.
3.2.2.6 02-02-2008
Mobile version was updated in this release. Graphin API is also available on Mobiles.
3.2.2.5 13-01-2008
  • Fixes in richtext: select-all/paste and indication of <br>.
  • Fixes in json-value.h file - in array append function.
  • New Graphin API (based on AGG): htmlayout_graphin.h has plain C definition and C++ classes htmlayout::image and htmlayout::graphics. There is one more file: htmlayout_canvas.hpp that defines class htmlayout::canvas - specialization of htmlayout::behavior for drawing. Samples:
    • behavior_graphin_clock.cpp - demonstrates basic drawing operations,
      html_samples/behaviors/graphin-live-clock.htm.
    • behavior_chart.cpp - demonstrates drawing with simple animation. It also demonstrates that dom::element::get_value() can be used for getting value of <script type="application/json"> element,
      /html_samples/behaviors/chart.htm.
3.2.2.4 06-01-2008
  • Fix of "100% CPU consumption when engine is attached to WM_EX_LAYERED window".
  • Update of json_value.h: New method json::value::append(v) - allows to dynamically append arrays(lists) of values. Attention: this change in json::value is not binary compatible with previous version - you need to recompile your side if you use arrays of values.
  • New API function: HTMLayoutParseValue( text, textLength, mode, JSON_VALUE *pVal ); This is parser of so called relaxed JSON (superset of original JSON):
    { one:1 2:two }
    is a valid input. In strict JSON that sample above must be written as:
    { "one":1, 2:"two" }
    Relaxation:
    • ',' is made optional;
    • NMTOKEN (that is [A-Z][A-Z0-9]* ) is allowed and parsed to string value;
    • Strings literals can be written by using ' (apostrophe symbol);
    • Sequence '(' text ')' is treated as string literal that is parsed into trimmed string:
      { one: ( .sel[name="two"] > :current ) }
      is an equivalent of:
      { "one": ".sel[name=\"two\"] > :current" }
  • behavior_action.cpp is updated to support copy-state: method. See: samples/behaviors/actions.htm.
  • New, <richtext> supports insertion of images from clipboard now. Code that will allow to serialize them together with HTML is not there yet. Will be in the next build.

Mobile version is updated in this release:

Windows CE / Mobile was significantly redesigned and optimized by Dmitriy Yakimov, the Great. He even managed to enable animations on this platform. Animated gifs work smoothly but animations like transition:slide make sense to use only for simple contstructions (if they make sense at all on mobile devices). Popups and all behvairos (inputs) are all working.

Thus htmlayout/CE has exactly the same feature set as desktop version.

Only <richtext> is not compiled in Mobile version simply because we are not sure about richtext editing on Mobile. Probably it makes sense for some Windows CE devices with keyboard, but for Mobile? In any case it is a matter of changing #define in source. Let us know if someone will need it there.

3.2.2.3 28-12-2007
3.2.2.2 21-12-2007
  • Fix of memory leak that happens on mouse over <font><a href=...>...</a></font> constructions.
  • Fix of entities parsing, see details
  • Fix of parsing of empty elements, e.g. <table/>.
  • Fix in behavior:select-dropdown, it is closer to standard system combobox (mouse down on items in popup).
  • New element <plaintext> that is block (not inline) version of <textarea> input. <textarea> is using now behavior:plaintext too. I've removed previous implementation of multiline editors completely. behavior:htmlarea is still there though - it supports  read-only selection of text for applied elements.
  • New method dom::element::xcall(), see htmlayout_dom.hpp, behavior:richtext (and so plaintext) actively uses it. Other inputs will support it too.
  • New UI_STATE_CHANGED behavior event. It is generated by behavior:richtext and behavior:plaintext. It is being sent when UI state of the editor is changed. See behavior_rtc_current_objects.cpp and /html/richtext/richtext.htm.
    behavior_rtc_current_objects.cpp is so called richtext-companion behavior - it shows stack of current elements under the caret.
  • Fixes in behavior:richtext. RTL is not yet supported but will.
  • New option in HTMLayoutSetOption - HTMLAYOUT_FONT_SMOOTHING.
  • Update of mfclite sample, it shows of how to handle timer events -so animation works in the sample. I've also added CMemDC based rendering there. Ctrl-O allows to load html files.
3.2.2.1 15-12-2007
  • Better scrolling.
    Simple and smooth scrolling were redesigned significantly. It works better in many aspects now. Best results are for elements that have solid background defined, e.g. background-color: #xxx; or background-image(theme:edit-normal).
    Whole window scroll is still implemented by using system scrolling so if you have no HWND based controls inside then I suggest to declare body { overflow:auto; } to use internal smooth scrolling mechanism.
    Samples: in sdk/html_samples/grid/, sdk/html_samples/generic/custom-control-border.htm and other files with overflow:auto elements.
  • Last parameter in HTMLayoutScrollToView function was redefined from BOOL to UINT. That will not require any changes in existing code but allow to define explicitly what type of scrolling you want: simple or with animation.
  • <richtext> engine (behavior:richtext) has been added in this build.
    Richtext is not 100% complete but will be finalized in upcomming builds. The plan is to replace current behavior:textarea|htmlarea by this one completely. But I will not change API of existing textarea|htmlarea.
    See sdk/html_samples/richtext/richtext.htm for an example. I expect more public behaviors - "richtext companions" that will automate tasks like insert table/image, etc.
  • Fix of position:absolute positioning when elements have no explicit left/right and top/bottom defined.
3.2.1.15 09-12-2007
  • Fix of AV for elements having titleid="non-existent-id".
  • Fix in popup elements implementation. Anchor is getting MOUSE_LEAVE correctly when popup is closed.
3.2.1.14 07-12-2007
  • Various highly professional and effective fixes and optimizations made by Dmitriy Yakimov from activekitten.com . His patches are targeted primarily on htmlayout for Windows Mobile/CE but desktop version should also feel better.
  • Fix (attempt of) HTMLayoutElementUpdate. Couple of cases were reported on the forum. This should fix them if I understand them correctly.
  • New HLN_DOCUMENT_LOADED notification. It is sent when parsing is finished so DOM is complete. HLN_DOCUMENT_LOADED is raised before HLN_DOCUMENT_COMPLETE.
  • New API functions HTMLayoutElementSetExpando/HTMLayoutElementGetExpando. These functions allow to associate custom struct/class/data with the DOM element. Rationale: better support of various language bindings.
  • New, support of !important modifier in CSS.
3.2.1.13 24-11-2007
  • Fix of border-spacing computation for collapsed/hidden rows;
  • Fix in behavior:dropdown-select, intrinsic size computation for empty <select>s;
  • Fix in editing widgets: "AltGr fix" - text input by using Polish (programmer's) and some other European keyboards;
  • Fix, http GET is allowed to get data from WinInet cache now;
  • Fix in htmlite - AV when no callback set.  mfclite update - handling keyboard events has been added;
  • Fix in CSS parser @set sections can contain @media sub-sections now;
  • Fix, :owns-popup ( STATE_OWNS_POPUP ) flag is cleared in POPUP_DISMISSED handler. See updated behavior_popup.cpp for the idea.
  • New sample sdk/html_samples/MSVS-start-page/, that reproduces Microsoft Visual Studio start page:  http://www.terrainformatica.com/htmlayout/images/vs-start-page.jpg in HTMLayout.
3.2.1.12 17-11-2007
  • Fix in behavior:tabs (behavior_tabs.cpp), problems when some tab panel contains inner tabs element
    • Update in dom::element::find_first() /all() methods(HTMLayoutSelectElements). This method knows about :root pseudo-element in selector. :root matches element that find_first is applied to. Use it when you need to select immediate children only.
  • Fix in behavior:dropdown-select, custom combobox mode ( see: forms/custom-dropdown-selects.htm ) element with @role="dropdown" is propely recognized now.
  • Fix of overflow:none value interpretation. (Itamar, this is yours, thanks)
    Note that none is a non-standard value of @overflow but supported by htmlayout. Its effect can be modelled by the following:
    .no-overflow
    {
    overflow: visible;
    min-width: min-intrinsic;
    min-height: min-intrinsic;
    }
3.2.1.11 13-11-2007
  • Fixes of problems introduced in build #3.2.1.10.
3.2.1.10 11-11-2007
  • Fix in CSS parser. clear:none and float:none parsed properly now. Fixes in float:left|right elements rendering.
  • Fix of the bug in behavior:textarea - copy to clipboard was not copying last character.
  • RTL fixes: behavior:edit, Ctrl+LeftShift and Ctrl+RightShift combinations switch value of the dir attribute to ltr and rtl. behavior:calendar was also updated.
  • New enumeration value for overflow, overflow-x and overflow-y: hidden-scroll. No scrollbars are shown but content of the element can be scrolled. E.g. HTMLayoutScrollToView also allows to scroll elements in such a container.
3.2.1.9 27-10-2007
  • Fix of behavior:hslider|vslider.
  • Fix of RTL issue: decimals and rtl.
  • Fix of htmlayout::dom::element::update() - it should work more optimal (faster) in some cases.
  • Fix of gradient svg rendering.
3.2.1.8 24-10-2007
  • Fix of behavior:frameset
  • Fix of flow:v-flow layout manager, details.
  • Update of PrintEx::onNextPage() callback. Attention! signature of HTMPRINT_NEXT_PAGE callback function was changed.
3.2.1.7 22-10-2007
  • Fix in behavior:number: MOUSE_WHEEL message in it "disable" element with the behavior.
  • Fix in behavior:textarea: deletuion of last word may cause AV.
  • Fix in behavior:decimal: bad rendering after LOST_FOCUS.
  • Fix in behavior:select: it may not send SELECTION_CHANGED event in some cases.
3.2.1.6 21-10-2007
  • Fix of transition:slide problem, details.

Mobile build was updated too.
3.2.1.5 16-10-2007
  • Fix of memory leak while parsing inline style attribute. The leak "introduced" in 3.2.0.26 so if you use this version or after - please update.
  • Update, better support of system fonts. CSS attribute font supports now following predefined font names:
    • system - default system UI font used for input elements;
    • system-menu - system menu font;
    • system-caption - window caption font;
    • system-status - statusbar and tooltip system font.
    Note: To be in effect these font names can be used only in font attribute - in font-family such names are ignored. Rationale of this is simple: declaration font:system-menu; is a shortcut of four attributes of the font - font-family, font-size, font-weight and font-variant.
3.2.1.4 13-10-2007
  • Fix of value attribute interpretation in <input type="date" />
  • New, support of theme:toolbar-*** group of images.
  • New API function HTMPrintSetNextPageCallback. It allows to print pages of variable height.
3.2.1.3 06-10-2007
  • Fix of overflow-x scrollbar positioning for <table width=auto>. See details.
  • Fix of MOUSE_PARAMS.cursor_type. It is now a read/write field.
  • New, support of HLN_BEHAVIOR_CHANGED notification. This notification allows to detect moment of changing behaviors of DOM elements. See HOW-TO: HTMLayout and scripting engines... for the rationale.
3.2.1.2 29-09-2007
  • Fix of behavior:textarea, it now supports  TEXT_EDIT_GET_SELECTION, TEXT_EDIT_SET_SELECTION, TEXT_EDIT_REPLACE_SELECTION methods.
  • New method TEXT_EDIT_GET_CARET_POSITION. Allows to get position(rectangle) of the caret. Supported by behavior:edit and behavior:textarea.
3.2.1.1 26-09-2007
  • Fix of text-overflow:ellipsis, direction: rtl.  See [BUG] text-overflow in 3.2.0.25 or 26
  • Fix in HTML parser, parsing of custom html elements. See: BLOCK_BLOCK_ELEMENT (in Russian).
  • Fix of rendering of inline elements with vertical-align attribute.
  • New pseudo classes in CSS:
    :has-child - Matches element that has exactly one child.
    :has-children - Matches element that has more than one child.
3.2.1.0 15-09-2007
  • New layout manager: flow:grid. See examples in html_samples/flows/grid***.htm
  • Fix of text-overflow:ellipsis for direction:rtl elements.
  • Fix of text-align:justify for direction:rtl elements. Itamar, thanks for your test cases.
3.2.0.29 09-09-2007
  • Fix of VK_UP/VK_DOWN handling in <textarea>
  • Fix of handling of { position:relative; display:inline; } elements.
  • Update behavior:magnifier, support of magnification-step attribute.
  • Update of behavior CSS attribute, it supports append mode now:
  • behavior: ~ new-behavior; will update list of behaviors defined before for the element and
    behavior: new-behavior ~; will insert new-behavior in front of behaviors defined before for the element.
3.2.0.28 07-09-2007
3.2.0.27 03-09-2007
  • New behavior:magnifier. See samples in /html_samples/fisheye/ folder. Magnifier a.k.a. fisheye magnifies elements when mouse moves over them.
3.2.0.26 26-08-2007
  • New. Support of text-transform : none | lowercase | uppercase | capitalize; CSS attribute. See CSS 2.1 and htmlayoutsdk/html_samples/css-plus/content-transform.htm sample.
  • New. Support of content: "text" CSS attribute. Pay attentrion that CSS 2.1 the content attribute is applicable only to ::before and ::after pseudo elements bu in h-smile core it works for the element itself. This allow to define different captions of some element by CSS using for example some attribute as a switch:
  • p.status[state="pending"] { content: "Pending"; foreground-image:...; }
    p.status[state="done"] { content: "Done"; foreground-image:...; }
    p.status[state="warning"] { content: "Warning!"; foreground-image:...; }
    Note: content is applicable only to elements that allowed to have textual content. E.g. it will work for P, SPAN, etc. but not to DIV.
3.2.0.25 23-08-2007
  • Fix (final) of AV introduced in 3.2.0.23.
  • Fix of <select editable>
3.2.0.24 22-08-2007
3.2.0.23 20-08-2007
3.2.0.22 18-08-2007
  • Fix. Better rendering of text-overflow:ellipsis.
  • Fix of back/foreground-position-right CSS attribute parsing. So <select multiple="checks" dir="rtl">, <button type="checkbox" dir="rtl"> place checkboxes in correct position.
  • Fix of popup elements position determination.
3.2.0.21 14-08-2007
  • Fix of Alt-Gr Key issue.
  • Fixes in filter implementation of <input type=text filter=... >. IME input is getting filtered too now.
  • Fix of <table align=right> rendering.
3.2.0.20  
  • Fix of dynamic update of z-index CSS attribute.
  • Fixes in behavior:popup-menu.
  • Fix, call HTMLayoutSetStyleAttribute(he, name, NULL) will clear attribute name previously set by HTMLayoutSetStyleAttribute(he, name, value) call.
  • Fix of HWND control and named background-color.
  • Fix of accesskeys and beep.
  • Fix of Can not activate the IME in TEXTAREA. Not perfect yet but works. Sorry for the delay.
  • New API function: HTMLayoutAppendMasterCSS - allows to append custom styles to MasterCSS.
  • New API function: HTMLayoutEnumElementStyles - allows to get list of CSS rules applied to the element.
    In browse.exe menu Debug/Element probe on + right click on element you are interested in.
3.2.0.19 28-07-2007
  • Set of of minor fixes.
  • New, support of custom CSS attributes. Any CSS attribute that starts from '-' is interpreted as custom CSS attribute. See CSS Attributes support map for more details.
  • New, support of visibility:collapse. See CSS Attributes support map. Use visibility:collapse for dynamic show/hide effects. Technically it is almost display:none; but is more convenient for design as it has single "on" value - visibility:visible.

Mobile build was also updated.
3.2.0.18 20-07-2007
  • Fix. Generation of LPNMHL_DATA_LOADED for resources pointed by file:// urls.
  • Fixes in rtl support. Columns in <table dir="rtl"> are getting reordered.

Mobile build was also updated.
3.2.0.17 17-07-2007
  • Fix in table layout engine, details (first sample at the bottom).  
  • Fix in printing module, details.
  • Fixes in rtl support. In particular flow:horizontal and flow:h-flow are rtl aware - they replace blocks in proper direction.
3.2.0.16 13-07-2007
3.2.0.15 04-07-2007
  • Fix of layout of absolute positioned spans. Details.
  • Fix of AV in dibex interface implementation.
  • Update of SVG engine: support of <linearGradient> and <radialGradient> elements. See: sdk/html_samples/svg/gradient-svg.htm
3.2.0.14 08-06-2007
  • Fixes in behavior:dropdown-select and behavior:number, details.
  • Fix: transparency support for svg images. See: html_samples/svg/.
3.2.0.13 01-06-2007
  • Fix of HTMLiteSetDataReady function.
  • Fix of focus handling in intrinsic popup-menu behavior.
  • Fix of calculation of heights of absolute positioned elements.
  • Fix of interpretation of fullwidth digit characters.
  • Fix in behavior:select, generation of notification when selection was caused by character press.
  • Fix of hangup that happen when Internet Explorer is used as a child widget of htmlayout.
  • Fix (attn: behavior change), FOCUS_PARAMS::target field is indeed a handle of new focus element now (used to be current focus element).

Mobile build was also updated.
3.2.0.12 18-05-2007
  • Fix of AV that may happen on call of set_html() without following update().
  • Fix. Engine used to generate mouse events for elements with visibility:hidden. Not anymore.
  • New API functions: htmlayout_dom.h:  HTMLayoutEnumerate and HTMLayoutGetCharacterRect. htmlayout_dom.hpp was updated accordingly, see struct dom::enumerator. Demo: browse.exe -> Tests -> Test enumeration. See also Bounding Boxes of Words discussion.
3.2.0.11 11-05-2007
3.2.0.10 09-05-2007
  • Fix,  context-menu:none; is properly handled now.
  • Fix, &#x200b; character (zero-width space) is properly handled now.
  • Attn!: change, png loader uses now screen gamma value 2.2 (used to be 2.0). It appears as in FF gamma is 2.2 and IE uses 1.8 value.
3.2.0.9 07-05-2007
3.2.0.8 06-05-2007
  • Fix of fore/background-image-transformation: color-schema(...); rendering.
3.2.0.7 03-05-2007
3.2.0.6 01-05-2007
3.2.0.5 25-04-2007
3.2.0.4 19-04-2007
  • Fix of memory corruption in HTMLiteRenderOnBitmap.
  • Fix of access violation while removing absolute positioned elements. See, detalis.
3.2.0.3 16-04-2007
  • Fix of PrintEx problem introduced in 3.2.0.2, see: Problem with color RGB, thanks to tomap.
  • Fix of mouse hover detection introduced in 3.2.0.2. David, thanks.
3.2.0.2 14-04-2007
3.2.0.1 31-03-2007
  • Mobile SDK update only. It is now supports SVG too.
3.2.0.1 30-03-2007
  • Fix of theme image rendering introduced in the previous build.
3.2.0.0 29-03-2007
  • Initial implementation of SVG support. Currently engine accepts svg files as background and foreground images:
    background-image:url(some.svg) and foreground-image:url(some.svg) and plan is to support TinySVG specification.

  • Implementation of SVG engine is based on AGG library of Maxim Shemanarev (Максим Шеманарев) - www.antigrain.com, SVG layer is of Pavel Korzh (Павел Корж).

    Sample: sdk/html_samples/svg/simple-svg.htm

  • Fix of memory leak in http client module.
  • Fix of the background-position issue: hover background-position ignored.
3.1.2.11 25-03-2007
  • Another fix of HTMLayoutScrollToView(he, TRUE /*toTopOfView*/) function. Scroll to top of the view scrolls element unconditionaly.  See discussion.
  • Fix of HtmLayout breaks HWND ComboBox after scrolling window .
  • "Fix" of position:absolute rendering. While rendering this document HTMLayout uses IE way of rendering it. This is not conformant to CSS spec but anyway there is no correct implementation of this case - FF and O both show rendering bugs on this document.

Mobile SDK was also updated in this build.
3.1.2.10 18-03-2007
  • Fix of HTMLayoutScrollToView(he, TRUE /*toTopOfView*/) function.
  • Fix of scroll/rendering error in nested frames.
3.1.2.9 17-03-2007
  • Fix of issue with frames nested 2 levels deep.
  • Fix (attempt to fix) of NT4 compatibility.
3.1.2.8 11-03-2007
  • Fix of <include> pseudo-element parsing inside table.
  • Update: generalization of image ***-position-left, ***-position-right, ***-position-top and  ***-position-bottom attributes. See CSS images plus.
  • New  hit-margin CSS attribute. Allows to change (extend or reduce) hit (or clickable) area of the element. See CSS map.
3.1.2.7 02-03-2007
3.1.2.6 25-02-2007
  • Fix of mouse handling in behavior:hyperlink and behavior:button.
  • Fix of position:relative | absolute | fixed elements, layout and rendering. It should be more standard conforming now and work inside frames. ATTN: all places where positioning used need to be verified.
  • Fix of outline issue: outline CSS style doesn't work in :hover condidtion
  • New sample wtl/htmlite demonstrating use of htmlite windowless API.
3.1.2.5 18-02-2007
  • Fix in PrintEx. Transparent GIF and PNG printing.
  • Support of rgb(r,g,b) color notation in CSS.
  • Update of event propagation schema - new HANDLED flag. Now bubbling/sinking uses "full cycle". When some event handler returns true then event dispatching does not stop as it used to be - event.cmd field is getting HANDLED flag and event ptopagation continues. This way container can do some event handling after handling of the event by the child.
  • switch(evt.cmd)
    {
     case MOUSE_DOWN | SINKING: // before all children.
     case MOUSE_DOWN:           // after all children and no one of them has handled it.
     case MOUSE_DOWN | HANDLED: // after all children, and some child has handled it.
    }
     
3.1.2.4 8-02-2007
3.1.2.3 31-01-2007
3.1.2.0 20-01-2007
Mobile SDK was updated also in this build.
3.1.2.0 17-01-2007
Fixes:
New:
  • behavior:calendar, sample: /html_samples/forms/datetime.htm
  • behavior:date, sample: /html_samples/forms/datetime.htm
  • behavior:masked, sample: /html_samples/forms/datetime.htm
  • behavior:selector, not documented yet, but sample is in /html_samples/forms/popup-selector.htm
  • behavior:clickable, non-focusable (so mouse only) button. Generates BUTTON_CLICK event.
New in CSS:
  • "CSS++" feature. attribute style-set (will be documented later), used together with the @set block definition allows to establish local style set for the element. @set abstraction was updated - now one set can be derived from another.
    Example: @set std-date < std-edit {}  introduces named set std-date that inherits from std-edit.
    Master style sheet was redesigned by using @sets. Main reason: to improve style lookup process.
  • attributes: foreground-position-left, foreground-position-right, foreground-position-top and foreground-position-bottom. Allow to define separately components of foreground-position integral attribute.
Update:
  • HTMLite now supports animation and animated gifs too.
3.1.1.67 26-12-2006
  • Fix of behavior:button, see Button appearance.
  • Fix in intrinsic behavior:hyperlink implementation. See a bug in HtmLayout?
  • New. Support of page-break-before and page-break-after CSS attributes. Pay attention that only auto and always values are supported. Also note that the engine supports conditional page breaks (non-standard) - e.g. page-break-before: 75% means that page break will be inserted only if position of the element happens to be in last quarter of the page. See CSS Attributes support map for more details.
3.1.1.66 12-12-2006
  • Update in HTMLayoutSetOption, it now allows to set HTMLAYOUT_CONNECTION_TIMEOUT.
  • CSS, new value of foreground-image-transformation and background-image-transformation attributes:
    foreground-image-transformation: contrast-brightness-gamma(0.5,0.5, 1.0);
    Values of attribute foreground-image-transformation are defined here.
3.1.1.65 07-12-2006
  • Fix of HTMLayoutDetachElement for inline elements.
  • Fix of background-repeat:stretch rendering.
  • Fix in behavior:button, mouse click that originated in the button but ended up outside of the button is not causing BUTTON_CLICK now.
  • Update in behavior:edit, implementation of Ctrl-Delete handling.
  • Fix of scroll on focus issue, see bug report.
  • Fix in scrollable tables - header row is drawn improperly when table was scrolled horizontally.
  • Update in HLN_DATA_LOADED - notification structure got new field - status. See htmlayout.h for more details.
3.1.1.64 28-11-2006
  • Fix of cursor appearance, see Window resizing?
  • Fix of various problems with <fieldset> rendering, see: Fieldset, CSS and Gif transparency
  • Fix of expandable image rendering. Chris, this is yours #860991.
  • New alternative WTL wrapper by Alexander Murashko. This is clean and simple WTL wrapper of HTMLayout free from remnants of previous versions. I suggest to use it for new projects. Alexander, thanks a lot!
3.1.1.63 26-11-2006
  • New, 64-bit version of the HTMLayout.dll.
  • Fix of margin collapsing given in flex units (%% or *).
3.1.1.62 25-11-2006
  • Fix of opacity rendering in HTMLite.
  • Fix of HTMLayoutCloneElement for <select> elements.
  • Fix of rendering issues in the skin sample
3.1.1.61 23-11-2006
  • New, support of opacity CSS attribute . Opacity supported for all elements including <input> and <popup>. Samples are sdk/html_samples/abs/abs.htm and sdk/html_samples/tooltips/titles.htm.
  • Update of transition:slide implementation, it also dissolves item being collapsed.
  • Fix of layout <img align="middle"> when image dimensions are significantly bigger than font size in the line.
  • Fix of HTMLayoutCloneElement implementation for <input> and <widget> elements.
  • Fix in file sdk/include/behaviors/behavior_aux.h - obsolete declarations there were removed.
  • Fix of inline <style> section parsing - wrong encoding used while parsing it.
  • Fix of HTMLayoutGetMinWidth/HTMLayoutGetMinHeight. They shall return size needed to show html document without scrollbars.
3.1.1.60 19-11-2006
  • Fix of repainting issue on popup elements introduced in previous 3.1.1.60 build.
  • Fix of caret repainting in HTMLite.
3.1.1.60 18-11-2006

New header file htmlayout_queue.h in the SDK - implementation of asynchronous action queue. This queue allows to post actions that will be executed in the GUI thread.

Please read htmlayout_queue.h file - it is really simple - not a rocket science at all. At the end it contains example - implementation of append_and_update action that can be used from worker thread.

As soon as some DOM element is not connected to the DOM it is safe to call low level methods like HTMLayoutCreateElement, HTMLayoutInsertElement, etc in worker (non-gui) thread. And only when you need to connect it to the DOM you need to do this in GUI thread so to use append_and_update or the like.


Mobile SDK was updated also in this build. Bug with <input type="text"> rendering is fixed.
3.1.1.59 17-11-2006
  • Fix of margin-top issue.
  • Attention, intrinsic style has been changed: body element used to have padding:8px - not anymore. Instead, by default, it is getting margin:8px; value. Rationale: compatibility with browsers. So default style sheet looks like:
    html { padding:0; margin:0; }
    body { padding:0; margin:8px; }
3.1.1.58 16-11-2006
  • Fix of <select type="dropdown-select"> and <inout type="number"> rendering.
  • Fix of margin collapsing in flow:horizontal containers.
3.1.1.57 14-11-2006
  • One more fix of layout algorithm. display:inline-blocks with vertical-align:middle were not properly handled. Joel, this is yours, thanks for the test case.
  • Removed generation of behavior notifications (VALUE_CHANGED) in edit boxes inside set_value() implementation. Such notification may cause stack overflow when value of the edit box is updated programmatically in VALUE_CHANGED event.
  • htmlayout_controls.hpp got new function clr_values(). Thanks to its author - Vladimir Kubyshev.
3.1.1.56 11-11-2006
3.1.1.55 10-11-2006
3.1.1.54 09-11-2006
  • Fix of HLN_ATTACH_BEHAVIOR handling for htmlayout and htmlite.
3.1.1.53 08-11-2006
  • Fix of img:incomplete
  • Update of sdk/html_samples/frames/frames.htm - it uses now :busy selector to show that spining thing while loading frame from remote source.
3.1.1.52 07-11-2006
  • Fix of <include> bug introduced in previous build (#3.1.1.51).
3.1.1.51 06-11-2006
  • Fix of Table layout problem
  • Fix of Splitter resizing bug, behavior:frameset only.
  • Fix of default context menu for <textarea>.
  • Various fixes in David's win32.directx.htmlite.
  • New CSS pseudo class :busy and STATE_BUSY state flag. HTMLayoutRequestElementData will set this flag if external data was requested for the element. When data will be delivered engine will reset this flag on the element. Introduced for compatibility with the Sciter where it is used by Element.request() (AJAX/JSON-RPC call) for styling "retrieving data" state.
3.1.1.50 03-11-2006
  • New sample win32.directx.htmlite demonstrating use of htmlite on DirectX surface. Courtesy of its author: David Suede at PicClique.com
  • Fix of scrollbar rendering issue.
3.1.1.49 02-11-2006
  • New feature: @const declarations in CSS. Details and formal definition is here.
    I cannot resist anymore, it appears as "must have" thing in emebeddable engine. Beg my pardon in advance to the CSS purists camp.
  • Fix of bug with selecting in textarea ;
  • Fix of Problem with TAG <OL type=a> ;
  • Fix of default context menu ;
  • Fix of scrollbar positioning in scrollable tables;
  • Fix of position:absolute problem introduced in one of the recent builds.
3.1.1.48 31-10-2006
Mobile SDK was updated also in this build. Bug with <input type="text"> rendering is still not fixed, will fix it in the next build.
3.1.1.47 29-10-2006
  • Fix in animated GIF handling when first frame is transparent. See: Problems with animated GIF , thanks to Orangy for the sample.
  • New function HTMLayoutSetOption, currently it allows to enable/disable smooth scrolling.
  • class HTMLite - new traverseTimerEvent function, fixes in getDocumentMinWidth/Height functions.
3.1.1.46 27-10-2006
  • Fix in json-value.h, see: bug in json::value? Thanks to ccoder for the fix.
  • Fix of old bug in animated gifs - when HTML contains multiple animated gifs from the same URL their speed of animation is wrong. Fixed now.
  • Change, :incomplete flag now only reflects state of foreground image only. This allows to define animated indicators for loading images using solely CSS. You can assign such image to the background-image. See img:incomplete discussion.
  • Update in htmlite.h - new methods traverseMouseEvent and traverseKeyEvent.
  • Fix of VK_TAB handling in select type="dropdown-select" when its popup window is open.
  • Fix of HLN_DATA_LOADED missing
3.1.1.45 25-10-2006
  • New API: htmlite.h - windowless htmlayout engine (rendering and event processing). This feature is not tested yet. Sample of using htmlayout on DirectX surface is in design.
  • Fix of WM_NCPAINT handling when htmlayout is a desktop window.
3.1.1.44 22-10-2006
  • Fix of IME window positioning.
3.1.1.43 19-10-2006
  • Fix of "behavior:edit, VK_END is not removing selection"
  • Fix of "HTMLayoutHttpRequest does not allow to send GET and POST parameters in single requests".
  • Various fixes of CSS resolving issues (minor).
  • Fix of "engine does not report state of STATE_POPUP flag".
  • Fix of "engine does not fire POPUP_DISMISSED behavior event". POPUP_DISMISSED shall work now.
  • Fix. Second click on button in <select type="dropdown-select"> will close popup window if it was open already.
  • Fix Alt+arrows keyboard shortcut.
  • Updates in behavior_accesskeys.cpp and behavior_tabs.cpp to support activation of tabs by hot keys (accesskey attribute). See /html_samples/behaviors/more_tabs.htm for example.
Mobile SDK was updated also in this build.
3.1.1.42 18-10-2006
  • More fixes of C++ warnings
  • Fix of Tracking problem
  • Fix of SetValue with dropdown-select
  • json::string was updated - in particular copy ctor just adds reference to the string buffer instead of copying it. Also json::value -> json::string is more optimal now.
  • Public version of the DLL is packaged by UPX by default now.
3.1.1.41 12-10-2006
  • Fix of named sets handling in CSS. Engine was ignoring named sets declared in master style sheet.
  • Fix of C++ warnings.
  • New API functions:
    • HTMLayoutControlGetType(CTL_TYPE)
    • HTMLayoutControlGetValue(JSON_VALUE)
    • HTMLayoutControlSetValue(JSON_VALUE)
    These functions allow to get/set values of DOM elements that have intrinsic behaviors applied. For other elements these functions are equivalents of get/set_text.
  • New headers json-value.h and json-aux.h. json::value is an extended version of htmlayout::value_t.
Mobile SDK was updated also in this build.
3.1.1.40 07-10-2006
  • More fixes and updates of behavior:dropdown-select. Now behavior matches reasonably close Windows COMBOBOX.
  • Implementation of DO_CLICK behavior method for behavior:menu-button.
  • Fix of mouse events handling on scrollbars of scrollable tables.
3.1.1.39 05-10-2006
  • Fixes in <htmlarea> (behavior:htmlarea), in particular AV while pasting HTML from clipboard.
  • Update in <select> (behavior:dropdown-select). Alphanumeric character pressed will cause popup of the list.  
3.1.1.38 04-10-2006
  • Improvements (various) in drawing of transparent popups.
  • Fix of [BUG] Cloning tables - crush.
  • Fix of HTMLayoutSelectElements function. Being called on "super-root" element it used to match elements in contained <frame>s.
  • New API function HTMLayoutRender(HWND hWndHTMLayout, HBITMAP hBmp, RECT area ). This function allows to draw HTML on 32bpp surfaces with alpha transparency. This is (partial?) solution of Rendering with alpha channel problem.
3.1.1.37 28-09-2006
  • Fix of AV while reading (narrating) documents that contain <iframe>s by JAWS application.
  • New, behavior:shell-icon , simple behavior allowing to show system shell icons registered for files in system. Source is in include/behaviors/behavior_shellicon.cpp and sample is in html_samples/behaviors/shell-icon.htm.
  • New, HTMLayoutSetHttpHeaders API function implementation. Allows to set additional http headers while sending http requests. Demo is under menu Tests -> Test of SetHttpHeaders function.
3.1.1.36 25-09-2006
  • Fix of [3.1.1.35] browse.exe crashes w/ custom-dropdown-selects.htm
  • Fix of byte-order-mark parsing in fragments loaded by <include> meta tag.
  • Fix of misspelling in htmlayout_controls.hpp described here Stable 3.1.
  • Update of FOCUS_PARAMS structure (htmlayout_behavior.h). It got new field cancel allowing to cancel set focus operation during FOCUS_LOST event handling.
3.1.1.35 11-09-2006
3.1.1.34 02-09-2006
  • Update. Intrinsic hyperlink behavior handles RETURN key press - it used to handle only spacebar click.
  • behavior_accesskeys.cpp update - hidden IFRAMEs are not used in accesskey lookup now.
  • behavior_tabs.cpp update - it now supports behavior event/command DO_SWITCH_TAB to do switch programmatically. select_tab method does not require previous tab be selected.
  • Fix of border-color default value assignment. If border defined as border:1px solid; it shall be drawn by using color (text color) value.
  • Fix. Memory consumption optimization of basic DOM structures. It shall take less memory to render average html/css constructions.
  • Fix related to static data initialization. Chris, this is #785459 of yours.
3.1.1.33 27-08-2006
  • Fixes in HTMLayoutScrollToView function. It properly scrolls to span elements. Change: from now on it will not try to scroll blocks with overflow:hidden set in scrolling direction. Only overflow:auto and overflow:scroll blocks will be affected.
  • Optimization and fix of dynamic resolution of "deep state selectors" like "element1:state element2". It used to take too much processor power to be resolved. That issue arised in <select>s and grids with large sets of options/rows in them.
  • Fix of [3.1.1.27] Scrollbar in RTL layout misdrawn
  • Fix of [BUG] Table view after row modification-
  • Fix of resizing issues of intrinsic frames - behavior:frame / <frame>.
  • Fix of possible AV when HTMLayoutSetInnerText[16] is getting garbage text (probably binary data casted to utf8/utf16 sequence of code units). That not happen in real life but mighty Symantec QA managed to get it. My honest thanks to them for that.
  • Fix in behavior_tabs.cpp - to better style in-focus state. See /html_samples/forms/tabs.htm.
  • Update in /html_samples/stress/ folder. I've added there animation.htm file showing big transition:blend areas.
  • Implementation of simple color transformations of images.
    [back/fore]ground-image-transformation: color-schema(...)
    allows to use single source image for rendering it in different visual states. Here is a screenshot for the same element and image on it in two different states (second - on hover). Please see html_samples/css-plus/color-transform.htm for more details :). color transformations was planned feature for 3.1 and here is it.

ATTN: This is last build of 3.1.*.* series having something new in it. All further 3.1.*.* builds will contain only critical bug fixes. Amen!
3.1.1.32 24-08-2006
  • Fix of HTMLayoutDeleteElement
  • Fix of Bouncing buttons
  • Update in colors table: invert pseudo color. Use it in e.g. outline:... to draw focus rect - dotted inverted rectangle.
  • New CSS state flag :tab-focus and STATE_TABFOCUS state bit. This flag is active if element got focus only by tab traversal. Engine will set it together with :focus. In Windows UI focus rectangle is being drawn on buttons only if focus was set by tab traversal. :tab-focus allows to style this situation properly. I've updated Master style sheet accordingly.
3.1.1.31 23-08-2006
  • Fix in animation module. It works and works better a bit.
  • By request of one gentlemen from Japan IME composition window position was updated again.
  • More hearings of MS Narrator.exe. This guy is dubbing DOM elements marked as OFFSCREEN... Now it should be silent on those.
  • More fixes in dynamic measurement module.
  • Fix in HTMLayoutUpdateElement function for cases when element is located inside <frame>.
  • Fix in themes module - it supports now change of OS theme on fly.
3.1.1.30 22-08-2006
  • Better mouse events handling while popup is visible.
  • Fix of drawing issues in scrollables (overflow:auto).
  • Better IME composition window positioning.
  • Better handling of IAccessible::get_accFocus, IAccessible::get_accRole and IAccessible::get_accState.
  • After call of FreeLibrary for HTMLayout it frees all allocated memory.
3.1.1.29 21-08-2006
3.1.1.28 21-08-2006
  • Critical fix in HTMLayoutGetElementHtml/HTMLayoutGetElementInnerText - it used to be memory leakage there. Great thanks to Brian and Chris and their team.
  • Optimization of HTMLayoutUpdateElement - dynamic updates should work faster now.
  • Fix of [v3.1.1.18] Key handling . Joel thanks a lot.
  • Implementation of "All children" ideom for sorting
  • More memory management fixes related to dynamic freeing of the library.
3.1.1.27 18-08-2006
  • Fix of [PRB] Rendering of an image with rounded corners
  • Fix of [PROBLEM] element of class "sidebar" changes posit . To avoid problems like this (call EnsureVisible) I suggest to use explicitly overflow-y and overflow-x rather than just overflow. Another thing here: remember that LI has by default display:list-item - its visible shape includes bullet so I recommend to define display:block for cases when LI is not supposed to use bullets.
  • Better handling of my internal FinalizeLibrary function (called by ::FreeLibrary). It clears also some static references to DOM elements I have. For those who are using tools like dll2lib - please verify your code.
  • Fix of compatibility with Windows 98/NT4.0.
  • Fix of compatibility with Windows CE5.0.
3.1.1.26 18-08-2006
  • Implementation of non-rectangular menus and popups in general. See /html_samples/menus/non-rectangular-menu.htm , /html_samples/tooltips/titles.htm and this screenshot: http://www.terrainformatica.com/htmlayout/images/tooltip-balloon.jpg
  • Fix of the bug in rendering /html_samples/tooltips/titles.htm, float:left/right was not propely wrapped by surrounding text.
3.1.1.25 17-08-2006
  • Implementation of stock context menus for input type="edit". These menus are customizeable - you can provide your own HTML for them, for example to translate them to different languages or change default menu item icons.
  • context-menu CSS attribute now accept two forms:
    1. context-menu: selector( menu-selector );
    2. context-menu: url( url-of-menu-html );
    use second form if you need to generate menu on the fly. You need to process HLN_LOAD_DATA for url-of-menu-html appropriately.
  • Update of HLN_LOAD_DATA structure. It has now new field: HELEMENT principal. This field contains reference of DOM element for which data was requested. For context-menus this is a reference to the element with context-menu defined.
3.1.1.24 15-08-2006
  • Update of HTMLayoutDialog API function. Parameter alignment accepts also -9..-1 range of values allowing to align dialog relative to its parent window.  See: htmlayout.h or documentation.
  • Optimization of HTMLayoutInsertElement/HTMLayoutDetachElement functions. They should work significantly faster for tables/rows/cells now.
  • Fix in slider behaviors, see: Trackbar bugs
  • Fix of NT4/Win98 compatibilities. Use of functions mentioned in Dependencies and some others are optional.
3.1.1.23 13-08-2006
New. Initial Menus implementation, see H-SMILE core. Popup and context menus (HTMLayout and Sciter engines)
New. :not CSS3 selector support. See: Negation selector specification.
Update in popup block management. If popup block is shown and is getting new dimensions during update()  window resizes accordingly. Should help to implement collapsible menus in MS Office style.
Fix of follow up on HTMLayoutGetElementHtml() and '-0' inside html
Fix of <include> bug
Fix of [BUG] cannot retrieve selected item from a dialog . Joel, thanks a lot.
3.1.1.22 05-08-2006
  • Update. <table fixedlayout> calculation algorthim was changed and time needed to show/resize fixedlayout tables significantly improved - near the order of magnitude. The price of this is that fixedlayout tables will have all rows calculated having the same height equals to the height of first non-fixed row. This limitation is not so critical for most "grid" cases though. I've added also stress sample html_samples/stress/grid-fixed-10000.htm demonstrating of what timing you should expect for loading and showing recordsets with 10,000 records. fixedlayout also allows to implement virtual grids now.
  • New. Support of IAccessible interface. Such accessibilty tools as Narrator use it for presenting UI to people with vision impairments.
  • New API function HTMLayoutTraverseUIEvent (htmlayout_dom.h)- allows you to send sinking/bubbling mouse and key events. One of possible use of this function it to automate testing of UI.
  • New API function HTMLayoutSetMediaType (htmlayout.h) - allows to change default value of media type ("screen") of window based html views. I've added method SetupMediaType into wtl_htmlayout.h - use it as an example.
  • Fix of  AnimateWindow API, and Windows NT problem.
  • Fix of Problem with STATE_SYNTHETIC issue.
3.1.1.21 30-07-2006
  • RTL fixes:
    • RTL editing in behavior:edit ( <input dir="rtl" type="text" /> ).
    • Proper handling of '(' ')' in RTL texts.
    • "text-align:left; direction:rtl" aligns text to the left now.
  • New, behavior:edit got simple undo implementation. Not perfect but at least something.
  • Fixes in <table> layout module. In particular margin:0; is not required anymore in cases like Layouting questions.
  • Fix of Odd background-color gradient issue.
  • New "secret" CSS selector :synthetic and state flag STATE_SYNTHETIC. I am marking by this flag some synthesized elements. For example: I am creating empty TDs to cover table "holes". All such synthesized elements are getting this flag. You can use this flag for your own purposes too - element is getting this value in parse time and after that engine is not touching it.
  • Public version of the engine is compiled now with Optimization for Speed rather than Optimization for Size. This increases size of the dll but improves speed too - up to 10%. (Retail build is still using Optimization for Size).
3.1.1.20 20-07-2006
3.1.1.19 19-07-2006
"Middle East build", RTL support, phase I:
  • Engine renders pure RTL texts written in Hebrew, Arabic, N'ko, Syriac, Thaana/Thana with correct word order.
  • dir=ltr/rtl HTML attribute and CSS direction attribute are recognized now by the engine for all elements.
  • direction:rtl overflowed elements shows vertical scrollbar at the left side.
  • direction:rtl list elements (ul and ol) shall show bullets on the right side.
  • direction:rtl block elements shall properly allign text on the right side.
This is an initial implementation and I expect some problems when mixed rtl/ltr text is used in the same paragraph. Let me know if you will find problems here.

I am publishng this build in hope that it will help stop somehow that brainless cauchemar happening on the Middle East now. Cradle of the Civilization, peoples with deepest history on the Earth and such ... Are we human or what?

3.1.1.18 08-07-2006
  • New. <frameset> and <frame> support ( behavior:frame-set and behavior:frame accordingly).
  • <frameset>

    • implements splitters. Supports multiple elements in the row or column.
    • supports either cols or rows attributes (but not both).
    • can be placed in any arbitrary place where block elements are acceptable. behavior:frame-set can be applied to any div alike element. Even to <td>.
    • can contain any arbitrary blocks inside (not only frames). See: html_samples/frames.

    <frame>

    • is a div alike block element.
    • close to standard HTML frame.
    • src attribute if provided will cause loading of referred document into the element. After loading the frame will contain single child - <html> element (root) of the loaded document. So you can access its DOM from the <frame> element.
    • Styles and images loaded for the document will not affect parent DOM. Reloading such document will free its resources. So if you need isolated HTML islands - here they are.
    • The frame can appear in any place where block elements are allowed (not only in <frameset>). From this point of view <frame> and <iframe> are equivalents but IFRAME is reserved for HWND based frames.

    behavior:hyperlink implemented internally now. Reason is simple - to support <a target> attribute with the frames. And you have two options with hyperlinks:

    1. If you are not going to use <frame>s you can use implementation of behavior:hyperlink from SDK - it works now and beyond.
    2. If you are going to use <frame>s then simply remove behavior_hyperlink.cpp from your project. Thus you will enable internal implementation. Internal implementation posts bubbling BEHAVIOR_EVENT/HYPERLINK_CLICK as old one.

  • New, support of border-spacing CSS attribute [description] with following differences from standard:
    • Only single value supported, border-spacing:2px 4px; will set spacing 2px in both directions.
    • border-spacing applies not only to tables but to all div alike elements. For such elements it establishes minimum margin value between children of such elements.
  • New, support of <select editable>. If dropdown select element will have editable attribute defined then its caption will have behavior:edit applied - will be editable. Thing is known as combobox in Windows.
  • Update of behavior:edit. GOT_FOCUS event selects whole text in the element.
  • Fix of table-in-scrollable-div problem, George and Oliver, thanks for report.
  • New, support of misterious WM_UNICHAR message [discussion].
  • New API functions:
    • HTMLayoutAttachEventHandlerEx - allows to assign event handler with event group subscription flags.
    • HTMLayoutWindowAttachEventHandler
    • HTMLayoutWindowDetachEventHandler - these two allow to install permanent event handler on the window. Such handler being set once will work for all documents loaded cosequently in the window. Consider it as a "surface" or "ground" permanent handler.
  • Fix of absolute positioning of children of flow:horizontal containers. [description]
  • Update of scrollbar styling. It is possible now to define width of vscrollbar and height of hscrollbar. Sample is in /css-plus/ folder.
RTL implementation was not included in the build - still have things to do there.
3.1.1.17 01-07-2006
  • Update of behavior:select. Key handling was changed according to [discussion].
  • Fix of TAB navigation handling in empty IFRAMEs.
  • Various minor layout fixes.
  • Fix of AV in fixedlayout tables [description].
  • Update. Max length of paragraphs (max number of characters paragraph can contain) was increased from number close to 10000 to 0xFFFFFFF (268435455). Please pay attention that limitation of number of <spans> paragraph can contain still exist - only 6400 first level spans per paragraph please.
  • Fixes of DOM manipulation functions related to adding cells in tables. Insertion of cells in rows is still only possible in disconnetcted rows though.
  • New behavior:scroller. Sample in html_samples/behaviors/scroller.htm. It is better to load it to get an idea.
3.1.1.16 25-06-2006
  • Fix in animation module. In some circumstances it could produce AV.
  • Update of behavior:grid. It is generating TABLE_ROW_DBL_CLICK event on double click on the row.
  • New API function: HTMLayoutSortElements, it allows to sort children of some element by sorting rule provided by application.
  • New behavior:sortable-grid in file behavior_grid.cpp. Its sample is in html_samples/grid/sortable-grid.htm
3.1.1.15 23-06-2006
  • Fix in get_value() function (in htmlayout_controls.hpp), thanks to Leon & the crew. This was causing AV in bahaviors/test-form.htm sample (click on Reset).
  • Fix WM_CHAR handling - it used to return 0 as LRESULT and bHandled == TRUE in all cases. Now it returns 0/bHandled(TRUE) only if character was really consumed. Chris, thanks.
  • Fix of HTMLayoutCloneElement for table rows. Thanks go to Zverok this time.
  • Fix in behavior:select. <options> elements having children are getting either one :expanded or :collapsed flag set while parsing. <options> without children (caption is not included here) will have both :expanded and :collapsed flags reset. You can use this fact for proper styling of tree views. <options> having no leafs should not show +/- icon. Joel, thanks.
  • Update of behavior:check and behavior:radio. They now DO_CLICK (change value) when assigned accesskey pressed.
  • New CSS feature - named style sets. Style set is a set of style definitions applied as a whole system. Notation is as:
    @set name
    {
    selector1 { ... style attributes... }
    selector2 { ... style attributes... }
    }
    There are many cases where sets are needed. The first one is:

  • New. Styleable scrollbars. Example:

    Scrollbar style definition is made by named style set and applied to the particular element by using new CSS attributes:
    • vertical-scrollbar: name-of-style-set;
    • horizontal-scrollbar: name-of-style-set;
    Please see sample of styleable scrollbar in sdk/html_samples/css-plus/scrollbar-styling.htm
3.1.1.14 20-06-2006
  • New,  support of IME - input method used in China, Japan and some other countries.
  • Fix of the problem. Rainer, danke.
  • Fix of HTMLayoutMinWidth/HTMLayoutMinHeight computation when document dimensions defined explicitly. Chris, thanks.
3.1.1.13 19-06-2006
  • New CSS attribute selector: [attr=="value"] - case insensitive string match. Given selector will match elements having attr="Value" or attr="vALUE" defined.
  • behavior:acesskeys was updated to use case insensitive string match above so now value of accesskey attribute is case insensitive: accesskey="^m" and accesskey="^M" will trigger on Ctrl-M.
  • Fix of CSS parser hanging problem. Thanks, Alex.
  • New SDK sample: skin - an example of window styling using solely HTML/CSS/behaviors:
3.1.1.12 17-06-2006
  • Fix of the problem loading images from styles referred by <link>. [description]
  • One more fix of @media rule parsing [description]
  • Update of behavior:accesskeys. Now this behavior does deep search including content of possible <iframe>s.  I also have updated Master CSS with the line: html { behavior:accesskeys; } so all documents will have this behavior by default.
  • New behavior:decimal and behavior:currency and correspondent <input type="decimal" /> and <input type="currency" />. Details are here. See: html_samples/forms/form.htm for example.
  • New API functions HTMLayoutIsElementVisible and HTMLayoutIsElementEnabled - detectors of deep visibility and enabled state.
3.1.1.11 15-06-2006
  • More fixes in CSS parser, in particular problem of parsing @media section.
  • Fix in behavior:hyperlink - now it clicks only on left mouse button.
  • Update of behavior:tabs - it generates now bubbling notifications ELEMENT_EXPANDED/COLLAPSED on tab switch.
  • Fix in behavior:button. It clciks now on ENTER too.
  • Fix of HTMLayoutHttpRequest function - POST requests.
  • New behavior:form - support of submit / reset buttons. This is a template behavior - you should override on_data_arrived to do something usefull. Currently it popups HTML dialog with server answer. See: html_samples/behaviors/form-test.htm
  • browse.exe updated. It popups now debugging console window in case of CSS parsing errors.
Mobile version was updated too in this build.
3.1.1.10 11-06-2006
  • Fix of problem in CSS parser causing parser to hang up while loading document.
  • behavior:grid fix.
  • New. C++ comments in CSS.
    Being caught once again writing C++ comments ( from // and up to the end of the string ) in CSS files I decided to implement them in CSS parser. Please be aware - they are non-standard. But convenient.
    Probably it's time to use name  CSS++ for what is used in HTMLayout?
  • New behavior:path. One more drawing behavior sample. This behavior:path renders content of the element with DT_PATH_ELLIPSIS style. Sample is in sdk/html_samples/behaviors/path-behavior.htm.
  • Added '/' and '\' characters to the list of symbols where text can wrap.
  • New API function HTMLayoutHttpRequest. It allows to send HTTP GET/POST requests with collection of parameters. ATTN: not tested yet at all.
3.1.1.9 10-06-2006
  • CSS parser was completely redesigned in this build. It is more stable and maintainable and fixes this bug among other things. This version also allowed to implement:
  • New API function HTMLayoutSetupDebugOutput. This function allows to setup debug output stream for HTMLayout. When it will be set HTMLayout will report there parsing problems (only CSS parsing for a while).
    See file browse.cpp, it has following declaration:
  • #ifdef _DEBUG
     // enable debug output
    htmlayout::debug_output _debug_stream;
    #endif
    This installs debug output stream for HTMLayout. This stream uses Visual Studio output panel for showing debug messages. Pretty convenient - I immediately found one CSS bug in file /behaviors/more_tabs.htm sample.
  • Fix of css selector specificity calculation for pseudo-classes nth-child and nth-last-child.
Gentlemen, this is pretty significant change, so please test first your projects in debug mode. Praemonitus - praemunitus.
3.1.1.8 06-06-2006
  • Update of behavior:grid (behavior_grid.cpp) - made it compileable by VC 2003.
  • Fix of behavior:textarea and behavior:htmlarea - now they correctly handle readonly and disable attributes and state flags. Rainer, your case should be fixed now, thanks.
  • Update of behavior:textarea, it supports maxlength attribute now. See Behaviors, Event Handlers and builtin HTML Controls
3.1.1.7a 05-06-2006
  • Update of behavior_grid.cpp. Now it supports multiple row selection. Thanks to Andrey Kubyshev for the updates. html_samples/grid/scrollable_grid.cpp has been updated too. Use CSS to style :checked rows.
  • Added CSS support of :anchor state flag (STATE_ANCHOR). Typically used to mark anchor element in multiple selection lists.
3.1.1.7 02-06-2006
  • Fix <input type=button> rendering when it is in disabled sate.
  • Fix in behavior_hyperlink.cpp, on_focus return TRUE now.
  • Fix, WM_SYSKEYDOWN, WM_SYSKEYUP, WM_SYSCHAR handling so now is possible to handle Alt-A for example.
  • New, engine interprets characters -,?,!, ], ) as wordbreaks now [ source ].
  • <textarea> is in feature complete state.
  • Fix of CSS nth-child selector handling, now it correctly selects first 3 children by :nth-child(-n+3).
  • Other fixes in CSS parser.
3.1.1.6 01-06-2006
  • Fix of focus event propagation. GOT_FOCUS/LOST_FOCUS | EVENT_SINKING is sent now to the element itself [problem definition].
  • Fix of bgcolor attribute parsing - it accepts color names in upper case too now. Mark, this is yours, thanks.
  • Fix of programmatic insertion of <options> element [problem definition].
  • HTMLayout_Use/UnuseElement is thread safe now.
  • New behavior:scroll-bar and <input/widget type="vscrollbar"> / <input/widget type="hscrollbar">. Useful for creation of virtual lists or grids. See html_samples/forms/scrollbar.html
3.1.1.5 30-05-2006
  • Redesign of <table fixedlayout>. Table fixed layout principles:
    • All rows will have height of first non-fixed row.
    • Columns will have widths determined by width of cells in fixed rows and in first non-fixed row. Rule is first-definition-come-first-used.
    • All cells in fixed table behave as if overflow:hidden set to them.
    • Main goal of the fixedlayout is to support behavior:grid alike use cases. fixedlayout significantly improves speed of layout (e.g. due to resizing) of tables having more than 5.000 of rows or so.

      Two **-fixed-**.htm files were added into html_samples/stress/ folder.

  • WM_ERASEBKGND - fix of fix :) For child HTMLayout windows it just returns TRUE as it was before.
3.1.1.4 29-05-2006
  • Fix of problem with table vertical adjustment.
  • Fix of <table fixedrows> problems (AV and row resizing) described here. Now if there is overflow-y set to the table its rows are not expanded to fit the whole table height.

Updated Sciter to version 3.1.1.4. Tests like dynamic DOM manipulation are more convenient to write using its scripting.
3.1.1.3 28-05-2006
  • Fix in HTMLayoutDialog function. [problem definition]
  • Fix of AV in call of HTMLayoutInsertElement( EMPTY ROW);  [problem defintion]
  • New behavior:accesskeys. Support of accesskey html attribute, format:
    • "^keyname" - press of CTRL + keyname;
    • "!keyname" - just keyname press (without any modifier);
    • "keyname" - press of ALT + keyname;
    See source in /include/behaviors/behavior_accesskeys.cpp and /html_samples/behaviors/accesskeys.htm
  • New behavior:actions. It is pure demo behavior. Now it allows to declare some actions directly in HTML. In fact this behavior should use some interpretter (see question on forum).
3.1.1.2 27-05-2006
  • Fix of parsing of erroneous html tables. Previously parsing of <table>hi!</table> was skipping "hi!" at all. Now parser is trying to do its best to place such erroneous content somewhere in table structure. Mark, this is yours, thanks.
  • Fix in HTMLayoutCloneElement. [problem definition]
  • Fix of empty <option></option> tag rendering. [problem definition]. Comment: to calculate height of <select size=4> element (its height/min-intrinsic) uses first option' height for calculations. Empty <option> has 0 height so total height evaluated to zero too.
  • Fix of latent bug may cause segmentation fault while measuring some documents. Thanks, Chris!
  • Fix of vertical alignment calculation of blocks containing float elements for typical use cases. Use of floating elements and elements having vertical flex'es (%%) in the same container is still a gray area - logical conflicts. Anatoly, this is yours, thanks.
  • Fix of rendering when htmlayout is attached to frame window (not a child window). Moving other windows over such window used to create artifacts - non-painted areas. This can be observed in Sciter now.
  • Fix of repainting of bulleted lists. Anatoly, this is also yours.

Mobile version: it was also updated in this build. I switched back to eVC4 (couple of last builds were made using VC2005). Let me know if you will find any problems with this.
3.1.1.1 24-05-2006
Updates of SDK source files:
  • htmlayout_dailog.hpp:
    • Made it compileable under VS 2003.
    • Use of files from /xool/ folder was eliminated. The whole /xool/ folder has gone from SDK.
    • new method group htmlayout::dialog::input(html, named_values) - allows to show input dialog and set/get input values in single function call. Forget about DDX.
  • browse sample: added new menu item Dialogs/Input Dialog to demonstrate new dialog::input methods.
  • htmlayout_aux.h file got new helper classes a2w, w2a, utf2w and w2utf.
HTMLayout.dll has no new features or major fixes in this build.
  Version 3.1.1.1 of HTMLayout SDK is also available here: HTMLayoutSDK.3.1.1.1 as a separate distribution.
3.1.1.0 23-05-2006
  • Final fixes in printing module, in particular bug "same line of text can appear as last and first line on two consequent pages" was fixed.
  • New API function: HTMLayoutDialog. It allows to show HTML based dialogs. See file (also new): htmlayout_dialog.hpp

log file of versions prior 3.1.1.0