summaryrefslogtreecommitdiff
path: root/include/libcss
Commit message (Collapse)AuthorAgeFilesLines
* Add support for CSS3 overflow-x and overflow-y properties.Michael Drake2014-06-012-4/+8
| | | | | | | | Now, overflow is a shorthand property setting both overflow-x and overflow-y. The getter for the computed overflow has been removed, and replaced with two for overflow-x and overflow-y.
* Various changes which modify API and ABI:Michael Drake2013-12-136-222/+65
| | | | | | | | | - Remove client allocation function. - Change node_classes callback not to yield array ownership to libcss. - Node bloom filters now built by, during selection libcss. - Added selection callbacks to get and set data on document nodes. Test suite, example, and documentation updated to match.
* Significantly optimise CSS selection performance.Michael Drake2013-12-012-0/+3
| | | | | | | | | | | | | | | | Now we pass a node bloom filter to css_get_style. That node bloom filter is filled with the node's ancestor element, class, and id names. Internally, libcss also generates a bloom filter for each selector chain. If the selector chain's bloom filter is not a subset of the node bloom filter, we know that the selector chain's rule does not apply to the node. This avoids the slow selector chain matching process. Other smaller optimisations to move the ruling out of selector chains for inapplicable media types and other reasons to before we start comparing rules from different sources to find the next rule. All this is now done in hash.c so select.c never sees the trivially ruled out rules.
* Bloom filter implementation for selection optimisation.Michael Drake2013-12-011-0/+205
|
* Add computed style accessor for writing-mode and and writing-mode to the ↵Michael Drake2013-09-101-0/+3
| | | | property handler table.
* Add support for parsing the writing-mode property. Thanks to Caitlin Potter.Caitlin Potter2013-09-101-0/+8
|
* Complete widows and orphans support. Thanks to James Montgomerie.Michael Drake2012-04-132-0/+17
| | | | svn path=/trunk/libcss/; revision=13864
* Fix comma at end of enumerator list warning.François Revel2012-03-251-1/+1
| | | | svn path=/trunk/libcss/; revision=13709
* Add support for parsing CSS3 Multi-column layout properties:Michael Drake2012-01-281-95/+197
| | | | | | | | | | | | | | | | | | + break-after + break-before + break-inside + column-count + column-fill + column-gap + column-rule-color + column-rule-style + column_rule-width + column_span + column_width TODO: Shorthand properties (columns, column-rule) TODO: Selection svn path=/trunk/libcss/; revision=13412
* @font-face support. Credit: James MontgomerieJohn Mark Bell2011-12-044-1/+104
| | | | | | Things missing: parser tests; the following descriptors: font-feature-settings, font-stretch, font-variant, unicode-range. svn path=/trunk/libcss/; revision=13244
* Explicitly narrow resultJohn Mark Bell2011-09-061-1/+1
| | | | svn path=/trunk/libcss/; revision=12769
* Make "params" argument to css_stylesheet_create const. Thanks to James ↵Michael Drake2011-09-021-1/+1
| | | | | | Montgomerie. svn path=/trunk/libcss/; revision=12697
* Add support for selecting page-break-{before, after, inside}John Mark Bell2011-08-232-0/+33
| | | | | | Credit: James Montgomerie svn path=/trunk/libcss/; revision=12645
* Add structure versioning for client inputJohn Mark Bell2011-03-132-0/+14
| | | | svn path=/trunk/libcss/; revision=12007
* Saturated maths in css fixed point Vincent Sanders2011-03-121-17/+105
| | | | svn path=/trunk/libcss/; revision=11975
* CSS3 NamespacesJohn Mark Bell2011-03-122-15/+34
| | | | svn path=/trunk/libcss/; revision=11972
* Hide the CSS computed style itself. Only expose a few simple structures ↵Daniel Silverstone2011-03-121-2084/+258
| | | | | | which we can keep sane. All property accessors are thus hidden behind a link symbol for ABI safety svn path=/trunk/libcss/; revision=11969
* Fix warning: comma at end of enumerator listFrançois Revel2011-02-091-1/+1
| | | | svn path=/trunk/libcss/; revision=11639
* Minor documentation fixes.John Mark Bell2011-02-022-8/+7
| | | | | | Move typedef -- types.h was probably a bad idea, in hindsight. svn path=/trunk/libcss/; revision=11600
* add system font hookVincent Sanders2011-02-022-0/+36
| | | | svn path=/trunk/libcss/; revision=11599
* CSS3 SelectorsJohn Mark Bell2011-01-311-1/+22
| | | | svn path=/trunk/libcss/; revision=11557
* Add support for opacity propertyJohn Mark Bell2011-01-293-3/+34
| | | | svn path=/trunk/libcss/; revision=11527
* Centralise handling of transparent colours.John Mark Bell2011-01-291-7/+7
| | | | | | Add support for currentColor svn path=/trunk/libcss/; revision=11525
* Provide hook for system colour name -> RGB conversionJohn Mark Bell2011-01-291-5/+48
| | | | svn path=/trunk/libcss/; revision=11522
* Turns out, we know the size of the styles block up-front.John Mark Bell2011-01-051-1/+1
| | | | svn path=/trunk/libcss/; revision=11214
* Simultaneously select styles for base + pseudo elements.John Mark Bell2011-01-051-7/+28
| | | | svn path=/trunk/libcss/; revision=11211
* Provide notification hook for imported stylesheets, to enable clients to ↵John Mark Bell2010-12-051-2/+21
| | | | | | parallelise their processing svn path=/trunk/libcss/; revision=10999
* Sync comment with realityJohn Mark Bell2010-12-051-1/+1
| | | | svn path=/trunk/libcss/; revision=10994
* Remove libcss_initialise/finalise.John Mark Bell2010-12-041-7/+0
| | | | | | Fix testsuite to compile (it passes, too) svn path=/trunk/libcss/; revision=10955
* Sprinkle some C++ scoping aroundJohn Mark Bell2010-10-2310-0/+90
| | | | svn path=/trunk/libcss/; revision=10901
* Stop leaking references to interned strings obtained from presentational hintsJohn Mark Bell2010-04-281-12/+1
| | | | svn path=/trunk/libcss/; revision=10513
* Fix libcss to use new libwapcaplet behaviour.Daniel Silverstone2010-03-272-5/+5
| | | | | | | TODO: update the tests to include a refcounting proof svn path=/trunk/libcss/; revision=10162
* Origin and media are not properties of the stylesheet. John Mark Bell2010-01-122-6/+5
| | | | | | | | | They are properties of the context in which the stylesheet is used. Therefore, for top-level sheets, this information must be provided at selection time. For child sheets, the origin is inherited from their parent and the applicable media types are specified on the linking mechanism. svn path=/trunk/libcss/; revision=9802
* Namespace preprocessor macros. I'm not entirely sure why I didn't do this in ↵John Mark Bell2009-08-241-739/+740
| | | | | | the first place. svn path=/trunk/libcss/; revision=9437
* Somewhat nasty text-align magic for the benefit of HTML tables.John Mark Bell2009-08-231-8/+9
| | | | svn path=/trunk/libcss/; revision=9405
* It turns out that using magic values for text-align is simpler than having ↵John Mark Bell2009-08-222-47/+21
| | | | | | an entirely new property for html alignment. svn path=/trunk/libcss/; revision=9387
* -libcss-alignJohn Mark Bell2009-08-212-4/+33
| | | | svn path=/trunk/libcss/; revision=9378
* Avoid type collisions when used from C++John Mark Bell2009-08-021-62/+62
| | | | svn path=/trunk/libcss/; revision=8996
* Apparently, converting from int to enum requires a cast.John Mark Bell2009-08-021-45/+45
| | | | svn path=/trunk/libcss/; revision=8995
* Plug potential memory leaks in property settingJohn Mark Bell2009-07-301-0/+2
| | | | svn path=/trunk/libcss/; revision=8911
* Change selector hash to segregate:John Mark Bell2009-07-291-0/+5
| | | | | | | | | | | | | 1) element selectors 2) universal selectors with class names 3) universal selectors with ids 4) universal selectors Only bother looking for matching selectors in 2 & 3 if the node being selected for has class names or an id, respectively. In theory, this should speed up style selection somewhat. svn path=/trunk/libcss/; revision=8882
* Calculate the in-memory size of stylesheets and provide some API to access this.John Mark Bell2009-07-271-0/+2
| | | | svn path=/trunk/libcss/; revision=8830
* Completely screw over any other client of libcss because NetSurf wants to ↵John Mark Bell2009-07-231-372/+0
| | | | | | | | | | | | | impose a minimum font size. Computed styles no longer contain fully computed units. The only computation that occurs is to convert EX units into EMs. This means that any EM units must be converted to PT by the client. Additionally, percentage line-height must be computed by the client. The client must also compute percentage vertical-align once they have fully resolved the line-height. svn path=/trunk/libcss/; revision=8741
* Remove pointless parameterJohn Mark Bell2009-07-212-2/+1
| | | | svn path=/trunk/libcss/; revision=8653
* Silence warnings in release modeJohn Mark Bell2009-07-171-64/+64
| | | | svn path=/trunk/libcss/; revision=8609
* Change mechanism for handling case sensitivity of element names. Now has ↵John Mark Bell2009-07-171-0/+2
| | | | | | | | another selection handler callback for this. Change selector hash to use an ASCII case-insensitive hash function. svn path=/trunk/libcss/; revision=8602
* Store em and percentage values for properties in the computed style.John Mark Bell2009-07-171-26/+515
| | | | | | | | Fully compute them on access. Introduce a swathe of internal accessors that don't perform the complete computation. Port property composition to these new APIs. Reduce absolute value computation to making font sizes absolute and converting any EX units to EM. svn path=/trunk/libcss/; revision=8601
* Add a flag to the font size computation callback to indicate that the ↵John Mark Bell2009-07-162-1/+2
| | | | | | resultant absolute font size should not be clamped to a fixed minimum (e.g. if the client has a minimum permissible font size) svn path=/trunk/libcss/; revision=8586
* Provide accessor for computed value of display assuming static position.John Mark Bell2009-07-151-0/+41
| | | | | | Modify css_computed_display to follow $9.7. svn path=/trunk/libcss/; revision=8568
* Provide some API to allow retrieval of an Initial styleJohn Mark Bell2009-07-121-0/+4
| | | | svn path=/trunk/libcss/; revision=8468