Commit Graph

261 Commits

Author SHA1 Message Date
Michael Drake 8491aecb35 Ensure min line length takes into account margins, borders and paddings of objects.
svn path=/trunk/netsurf/; revision=3827
2008-02-03 14:24:46 +00:00
Michael Drake 120ca506c1 Make text input boxes with height:auto; and no initial value get a sensible height. Make all form elements have their dimensions based on the configured minimum font size, if the current text size is smaller. Remove redundant code for setting radio icon and checkbox sizes. All em/ex based sizes now respect the min font size, when it's in effect. Updated default styles for form elements.
svn path=/trunk/netsurf/; revision=3813
2008-02-02 00:13:19 +00:00
Michael Drake 0241f21d4d Fix syntax.
svn path=/trunk/netsurf/; revision=3800
2008-01-29 01:18:23 +00:00
Michael Drake 3edfd4feb7 Reinstate things lost in the last checkins.
svn path=/trunk/netsurf/; revision=3799
2008-01-29 01:14:20 +00:00
Michael Drake 30b76c4dfa No need to recalculate a value we already have.
svn path=/trunk/netsurf/; revision=3798
2008-01-29 01:01:02 +00:00
Michael Drake 38dcd3f172 Apply min font size config option to radio icons and checkboxes.
svn path=/trunk/netsurf/; revision=3797
2008-01-29 00:42:15 +00:00
Michael Drake 882c04c2fb Only needed the vertical position changed.
svn path=/trunk/netsurf/; revision=3789
2008-01-28 02:01:04 +00:00
Michael Drake 49fce64c1a Fix vertical position of images with margin/borders/padding.
svn path=/trunk/netsurf/; revision=3785
2008-01-28 00:58:31 +00:00
Michael Drake 48bdeb34c8 Ensure images within inline-blocks are shown properly. Fixed by zamez.
svn path=/trunk/netsurf/; revision=3783
2008-01-27 22:25:11 +00:00
Michael Drake b2b6fa0f10 Make inline-blocks have margins. Add defualt margin around form inputs.
svn path=/trunk/netsurf/; revision=3779
2008-01-27 17:39:14 +00:00
Michael Drake 053f2f830c Hopefully fix inline-block positioning. (Stops form elements from overlapping.)
svn path=/trunk/netsurf/; revision=3778
2008-01-27 11:59:01 +00:00
Michael Drake 252aa870f8 No need to reduce box height when adding scrollbar.
svn path=/trunk/netsurf/; revision=3777
2008-01-26 23:03:30 +00:00
Daniel Silverstone 13b91169fd Protect <pre> fix in cases where c->style is NULL
svn path=/trunk/netsurf/; revision=3673
2007-12-23 16:09:02 +00:00
Daniel Silverstone 23781fb862 An INLINE_CONTAINER which contains a TEXT which is zero chars long but *is* in a PRE white-space rule *DOES* contain a text child.
svn path=/trunk/netsurf/; revision=3672
2007-12-23 14:15:11 +00:00
Richard Wilson 14c30d64a6 Remove legacy code.
svn path=/trunk/netsurf/; revision=3629
2007-10-10 20:33:15 +00:00
James Bursa 3af1dbdb12 Fix disappearing borders for elements with overflow: hidden.
svn path=/trunk/netsurf/; revision=3534
2007-08-28 00:53:22 +00:00
James Bursa 21db9de5f8 Make F9 dump box tree to an editor for easier debugging.
svn path=/trunk/netsurf/; revision=3529
2007-08-20 02:39:49 +00:00
Daniel Silverstone d1382c6d0e Provide the facility to set the DPI of the display by removing the assumptions of 90.0 dpi from the CSS and layout engines.
svn path=/trunk/netsurf/; revision=3528
2007-08-19 10:08:49 +00:00
Vincent Sanders 2f864eeecc Update all source code file headers to reflect GPL version 2 only and contain appropriate licence text
svn path=/trunk/netsurf/; revision=3486
2007-08-08 16:16:03 +00:00
Daniel Silverstone 6807b4208a Remove the netsurf/ from the include paths and rationalise use of <> vs "" in includes
NetSurf includes are now done with ""s and other system includes with <>s as C intended.
The scandeps tool has been updated to only look for ""ed includes, and to verify that the
files exist in the tree before adding them to the dependency lines. The depend rule has
therefore been augmented to make sure the autogenerated files are built before it is run.

This is untested under self-hosted RISC OS builds. All else tested and works.


svn path=/trunk/netsurf/; revision=3307
2007-05-30 22:39:54 +00:00
John Mark Bell 4d55f43a3d Object sizes do not apply when calculating the extent of descendent
bounding boxes. (fixes 1601881)

svn path=/trunk/netsurf/; revision=3240
2007-04-07 02:29:32 +00:00
John Mark Bell a96ef2a906 Fix assertion when table has negative mbp (1579981)
svn path=/trunk/netsurf/; revision=3222
2007-03-25 16:20:10 +00:00
John Mark Bell cabed36421 Fix handling of scrollbar addition to blocks which have height/width ==
AUTO (fixes 1567430)

svn path=/trunk/netsurf/; revision=3220
2007-03-24 23:47:44 +00:00
John Mark Bell 5e0bec495c Fix FP exception when right-aligned tables with margin: auto are nested
(interaction with floats, resulting in margin[TOP] == AUTO) (fixes 
1662931)

svn path=/trunk/netsurf/; revision=3218
2007-03-24 21:03:36 +00:00
James Bursa 367c2aea88 Fix height of absolutely positioned inline blocks with an object. Fix layout of list markers with no text.
svn path=/trunk/netsurf/; revision=3122
2006-12-26 21:51:08 +00:00
Michael Drake ba23e4b693 Update project URL.
svn path=/trunk/netsurf/; revision=3073
2006-11-27 15:35:18 +00:00
Michael Drake 5adbed530c Fix gap between list marker and list content.
svn path=/trunk/netsurf/; revision=3040
2006-11-10 14:53:46 +00:00
James Bursa df7912f96b Fix distortion of list marker images.
svn path=/trunk/netsurf/; revision=3039
2006-11-07 21:49:03 +00:00
James Bursa f4f17f905b More work on lists. Simplify the implementation to a BLOCK for display: list-item, with a marker box on box->list_marker.
svn path=/trunk/netsurf/; revision=3031
2006-11-05 12:58:24 +00:00
John Mark Bell 7bd710a71c Initial work for display: list-item support
svn path=/trunk/netsurf/; revision=3028
2006-11-04 19:53:22 +00:00
James Bursa b6c8e435cd Implement absolute positioned inlines.
svn path=/trunk/netsurf/; revision=3026
2006-11-04 19:17:11 +00:00
James Bursa 2227b7c582 Do absolute positioning after other layout so that containing block is fully positioned.
svn path=/trunk/netsurf/; revision=2991
2006-10-10 22:00:10 +00:00
James Bursa 7b30364bc3 Check for null style before using it.
svn path=/trunk/netsurf/; revision=2986
2006-10-09 21:34:34 +00:00
James Bursa a785bc25f7 Modify implementation of absolute positioning to support "static positions". Absolutely positioned boxes are now in their original place in the tree instead of linked from absolute_children.
svn path=/trunk/netsurf/; revision=2984
2006-10-08 22:46:25 +00:00
James Bursa bd0dff9098 Add some documentation to layout_block_context(). Move code out into layout_block_object().
svn path=/trunk/netsurf/; revision=2957
2006-09-16 21:48:28 +00:00
Jeffrey Lee f2cd31779b Fixed textarea wordwrap if first character on line is a space
svn path=/trunk/netsurf/; revision=2941
2006-09-10 13:59:19 +00:00
Jeffrey Lee 271c28a5df textarea html tag fix; horizontal scrollbars; auto-scroll improvements
svn path=/trunk/netsurf/; revision=2940
2006-09-10 13:27:08 +00:00
James Bursa 304616a797 Fix layout of standalone <br>.
svn path=/trunk/netsurf/; revision=2849
2006-08-14 23:05:08 +00:00
James Bursa 8405d18361 Use a minimum line height of 0 for inline containers which have no text.
svn path=/trunk/netsurf/; revision=2838
2006-08-13 01:00:22 +00:00
James Bursa 80b3286e9d Layout absolutely positioned children of tables.
svn path=/trunk/netsurf/; revision=2791
2006-07-23 18:23:02 +00:00
James Bursa 71287140ca Ensure that layout of absolute children is carried out after the height is known.
svn path=/trunk/netsurf/; revision=2696
2006-07-02 17:36:27 +00:00
John Mark Bell 928f949413 Ensure containing block has valid height for positioning absolute children
svn path=/trunk/netsurf/; revision=2680
2006-06-29 23:30:06 +00:00
John Mark Bell b427a005b6 Properly take account of padding on containing block.
svn path=/trunk/netsurf/; revision=2673
2006-06-29 15:53:17 +00:00
John Mark Bell 25537a488a Position specifiers are relative to containing block's padding edge for
absolutely positioned boxes. Compensate for this.

svn path=/trunk/netsurf/; revision=2672
2006-06-29 11:55:21 +00:00
John Mark Bell 19e81ab5e9 Fix previous commit; it failed to make available_width include mbp such
that subtracting them after determining the width works in the case 
where available_width > box->min_width.

svn path=/trunk/netsurf/; revision=2671
2006-06-29 09:55:31 +00:00
John Mark Bell 38bd0b13fe Compensate for box->{min_width,max_width} including mbp when
auto-widthing absolutely positioned content.

svn path=/trunk/netsurf/; revision=2670
2006-06-29 09:37:18 +00:00
John Mark Bell 22e405f914 Fix float placement when it's an exact fit for the width available
svn path=/trunk/netsurf/; revision=2661
2006-06-28 16:47:02 +00:00
John Mark Bell 61dc91e0c5 Relative positioning for absolutely positioned boxes
svn path=/trunk/netsurf/; revision=2653
2006-06-26 22:24:42 +00:00
John Mark Bell 50a8bae10f Box x,y coordinates are of padding edge relative to parent;
top,left,bottom,right are of margin edge relative to parent, so add 
margin and border width when calculating x,y from left,top.

svn path=/trunk/netsurf/; revision=2652
2006-06-26 22:00:10 +00:00
John Mark Bell f881db3654 Fix calculation of right margin in case where margin right is auto
Initialise available_width correctly for shrink-to-fit widthing.

svn path=/trunk/netsurf/; revision=2649
2006-06-26 13:22:43 +00:00
James Bursa 8ee81a7d8e Implement absolute positioning.
svn path=/trunk/netsurf/; revision=2648
2006-06-26 04:52:34 +00:00
James Bursa 21dd10bcda Fix float positions after a block with a specified height.
svn path=/trunk/netsurf/; revision=2598
2006-05-07 17:20:18 +00:00
James Bursa 3e5490c6fd Move word that doesn't fit next to float below float correctly (fixes crash on ofsted site).
svn path=/trunk/netsurf/; revision=2516
2006-04-09 18:59:07 +00:00
Daniel Silverstone cb243c8565 [project @ 2006-04-04 10:55:47 by dsilvers]
Small extra debug statement for when looking at box splitting

svn path=/import/netsurf/; revision=2485
2006-04-04 10:55:47 +00:00
James Bursa 4750aa968f [project @ 2006-03-26 21:41:18 by bursa]
Fix layout bug related to negative text indent (fixes 1437728).

svn path=/import/netsurf/; revision=2185
2006-03-26 21:41:18 +00:00
James Bursa c2bddcee46 [project @ 2006-03-26 19:59:15 by bursa]
Fix layout bug related to floats near end of line (fixes 1453561). Pass 1 and pass 2 in layout_line() were handling space_after differently.

svn path=/import/netsurf/; revision=2182
2006-03-26 19:59:15 +00:00
James Bursa e8ef816111 [project @ 2006-01-15 22:25:40 by bursa]
Fix crash related to negative margins on inlines.

svn path=/import/netsurf/; revision=2021
2006-01-15 22:25:40 +00:00
James Bursa 04566797cd [project @ 2005-11-06 11:00:33 by bursa]
Fix crash when a frame contains floats.

svn path=/import/netsurf/; revision=1877
2005-11-06 11:00:33 +00:00
James Bursa a54ae0e82d [project @ 2005-10-30 21:23:24 by bursa]
Treat HTML objects (frames) as part of the box tree during layout.

svn path=/import/netsurf/; revision=1875
2005-10-30 21:23:24 +00:00
James Bursa 7a981bb70a [project @ 2005-08-08 19:19:20 by bursa]
Fix redraw of underlines and other text-decoration.

svn path=/import/netsurf/; revision=1845
2005-08-08 19:19:20 +00:00
James Bursa 419517f0aa [project @ 2005-08-07 21:28:48 by bursa]
Improvements to frames. Fix bug with BR at end of inline container.

svn path=/import/netsurf/; revision=1843
2005-08-07 21:28:48 +00:00
James Bursa 1808739e33 [project @ 2005-08-06 23:34:30 by bursa]
Fix vertical positioning of floats when an empty block with top padding is present.

svn path=/import/netsurf/; revision=1842
2005-08-06 23:34:30 +00:00
James Bursa 362a6000b4 [project @ 2005-08-06 22:29:30 by bursa]
Use given width as initial min/max width of fixed-width table columns. This improves the layout of certain tables with colspans.

svn path=/import/netsurf/; revision=1841
2005-08-06 22:29:30 +00:00
James Bursa 0ba79e1ad4 [project @ 2005-07-31 21:57:07 by bursa]
Implement clear on <br>.

svn path=/import/netsurf/; revision=1834
2005-07-31 21:57:07 +00:00
James Bursa 0455ab1c54 [project @ 2005-07-31 11:21:46 by bursa]
Fix certain cases of relative positioning, and make the recursion more efficient (don't recurse for BOX_TEXT).

svn path=/import/netsurf/; revision=1831
2005-07-31 11:21:46 +00:00
John Mark Bell aa0b803063 [project @ 2005-07-30 23:32:48 by jmb]
Position: relative; support.

svn path=/import/netsurf/; revision=1830
2005-07-30 23:32:48 +00:00
James Bursa e05db0c28c [project @ 2005-07-24 14:29:32 by bursa]
Fix position of certain floats.

svn path=/import/netsurf/; revision=1822
2005-07-24 14:29:32 +00:00
James Bursa 4e9457bee1 [project @ 2005-07-21 21:48:41 by bursa]
Fix layout min max bug with blocks with negative margins. Add assert()s to check that 0 <= min_width <= max_width at the end of each layout_minmax_X() function.

svn path=/import/netsurf/; revision=1813
2005-07-21 21:48:41 +00:00
James Bursa 5e14874115 [project @ 2005-07-20 22:25:56 by bursa]
Fix fixed width table min / max width calculations.

svn path=/import/netsurf/; revision=1811
2005-07-20 22:25:56 +00:00
James Bursa e24bed7715 [project @ 2005-07-20 22:08:56 by bursa]
Fix min / max bug with negative margins (treat as 0 for now).

svn path=/import/netsurf/; revision=1810
2005-07-20 22:08:56 +00:00
James Bursa 78102aa4e1 [project @ 2005-07-02 23:37:41 by bursa]
Improvements to layout_minmax_line(). Fix width of floats / inline blocks without an explicit width (space for margins, borders, padding was added twice).

svn path=/import/netsurf/; revision=1781
2005-07-02 23:37:41 +00:00
James Bursa 9b78daf135 [project @ 2005-07-02 18:17:51 by bursa]
Rewrite calculation of box minimum and maximum widths to improve layout of many pages. Move calculation of column types and border collapsing to box tree normalising stage, since they are layout independent. Add window height parameter to layout and make <html> and <body> at least window height.

svn path=/import/netsurf/; revision=1777
2005-07-02 18:17:51 +00:00
James Bursa 57b68bd933 [project @ 2005-06-05 20:54:37 by bursa]
More work on borders / padding / margins on inline elements. Add BOX_INLINE_END to hold the right border / padding / margin (left is in the BOX_INLINE).

svn path=/import/netsurf/; revision=1742
2005-06-05 20:54:37 +00:00
James Bursa e2fb0a94cd [project @ 2005-05-23 22:14:09 by bursa]
Start to implement borders on inline elements. Note: borders of form controls are rendered incorrectly (text boxes in form controls need changing from INLINE to TEXT).

svn path=/import/netsurf/; revision=1734
2005-05-23 22:14:09 +00:00
James Bursa 22640f85e0 [project @ 2005-05-22 21:50:14 by bursa]
Add BOX_TEXT type to distinguish boxes which came from an inline element to boxes which came from a text node. Add inline_parent pointer to box structure. Rewrite text-decoration support to take advantage of the new data (line colours are now correct). Note: there is a clipping issue in redraw.

svn path=/import/netsurf/; revision=1732
2005-05-22 21:50:14 +00:00
Richard Wilson 240f15b692 [project @ 2005-04-28 02:35:03 by rjw]
HTML border attributes have lower priority that CSS values (fix osnews). Disable tr height minimum value usage for now.

svn path=/import/netsurf/; revision=1694
2005-04-28 02:35:03 +00:00
Richard Wilson 7525f1dc31 [project @ 2005-04-28 01:50:55 by rjw]
Respect minimum height for tr.

svn path=/import/netsurf/; revision=1693
2005-04-28 01:50:55 +00:00
Richard Wilson 487cad486d [project @ 2005-04-14 19:54:24 by rjw]
Implement HTML table border setting. Improve support for the collapsing border model.

svn path=/import/netsurf/; revision=1632
2005-04-14 19:54:24 +00:00
James Bursa 49fdeafbbf [project @ 2005-04-09 13:25:54 by bursa]
Add an assert() to layout_line() to help detect bugs.

svn path=/import/netsurf/; revision=1614
2005-04-09 13:25:54 +00:00
James Bursa 2920bca14a [project @ 2005-04-09 09:47:36 by bursa]
Move HTML contents almost fully over to talloc(), simplifying code. Improvements to title attributes, broken forms, cellpadding. Reorder functions in box_construct.c.

svn path=/import/netsurf/; revision=1608
2005-04-09 09:47:37 +00:00
John Mark Bell f228f3c8da [project @ 2005-04-02 18:24:47 by jmb]
Fix more FP exceptions

svn path=/import/netsurf/; revision=1589
2005-04-02 18:24:47 +00:00
James Bursa bed3897f66 [project @ 2005-04-02 11:13:27 by bursa]
Assert when a box has UNKNOWN_WIDTH after layout.

svn path=/import/netsurf/; revision=1588
2005-04-02 11:13:27 +00:00
Richard Wilson 39c6af5d64 [project @ 2005-03-22 16:29:16 by rjw]
Fix some rounding issues for table cell calculations.

svn path=/import/netsurf/; revision=1571
2005-03-22 16:29:16 +00:00
Richard Wilson b832e05f03 [project @ 2005-03-22 00:10:42 by rjw]
Experimental cellpadding support

svn path=/import/netsurf/; revision=1569
2005-03-22 00:10:42 +00:00
James Bursa 527bbec028 [project @ 2005-03-07 21:30:28 by bursa]
Fix some more FP exceptions related to layout.

svn path=/import/netsurf/; revision=1528
2005-03-07 21:30:28 +00:00
James Bursa 10b27f45f8 [project @ 2005-02-26 18:30:48 by bursa]
Fix some FP exceptions due to widths left as UNKNOWN_WIDTH.

svn path=/import/netsurf/; revision=1526
2005-02-26 18:30:48 +00:00
James Bursa 1a52a32e5d [project @ 2005-02-20 13:18:21 by bursa]
Font rewrite, part 2.

svn path=/import/netsurf/; revision=1518
2005-02-20 13:18:21 +00:00
James Bursa a76404dfd0 [project @ 2005-01-13 20:28:50 by bursa]
Fix some compilation warnings in the debug build. Update nsgtk_plot_rectangle() with the new parameters.

svn path=/import/netsurf/; revision=1447
2005-01-13 20:29:24 +00:00
John Mark Bell 15e08b5252 [project @ 2005-01-11 19:39:49 by jmb]
Handle property: inherit; properly

svn path=/import/netsurf/; revision=1441
2005-01-11 19:39:49 +00:00
Richard Wilson 652fe9ac95 [project @ 2005-01-11 14:16:40 by rjw]
Perform vertical alignment for cells with specified heights.

svn path=/import/netsurf/; revision=1439
2005-01-11 14:16:40 +00:00
Richard Wilson 7b1c6c0ea8 [project @ 2005-01-10 21:35:33 by rjw]
Vertical alignment for table cells

svn path=/import/netsurf/; revision=1437
2005-01-10 21:35:34 +00:00
James Bursa 3e6a2b9d9a [project @ 2004-12-05 21:42:08 by bursa]
Make frames scroll. Implement table cellspacing attribute.

svn path=/import/netsurf/; revision=1383
2004-12-05 21:42:08 +00:00
James Bursa 37d7353f43 [project @ 2004-12-01 21:48:11 by bursa]
Implement table cell padding and separated borders model for tables. Min/max width calculations still need implementing.

svn path=/import/netsurf/; revision=1378
2004-12-01 21:48:11 +00:00
James Bursa 48ee62b660 [project @ 2004-11-21 19:45:51 by bursa]
Take objects into account when calculating descendant boxes.

svn path=/import/netsurf/; revision=1367
2004-11-21 19:45:51 +00:00
James Bursa a31f6306f9 [project @ 2004-11-20 00:02:56 by bursa]
Improvements to overflow and scrolling: scrollbars now have most of the usual RISC OS behaviour. Better rendering of dotted and dashed borders.

svn path=/import/netsurf/; revision=1363
2004-11-20 00:02:56 +00:00
James Bursa da5d07f0be [project @ 2004-10-22 20:58:11 by bursa]
Fix form textarea scrolling. The scrollbar now works properly.

svn path=/import/netsurf/; revision=1334
2004-10-22 20:58:11 +00:00
James Bursa fd4e3de0b5 [project @ 2004-10-17 21:10:19 by bursa]
Move box tree from html.layout->children to html.layout. Work on scrollbars.

svn path=/import/netsurf/; revision=1314
2004-10-17 21:10:19 +00:00
John Tytgat 7264ae50e5 [project @ 2004-08-14 15:07:19 by joty]
- Rename len() to css_len2px().
- Less compiler warnings concerning float/int implicit casts.
- More stddef.h type usuage.

svn path=/import/netsurf/; revision=1232
2004-08-14 15:07:21 +00:00
John Tytgat 7d3a242132 [project @ 2004-08-14 12:57:00 by joty]
Using more stddef.h types.

svn path=/import/netsurf/; revision=1230
2004-08-14 12:57:02 +00:00
James Bursa 9e1dbe3a36 [project @ 2004-08-01 13:08:18 by bursa]
More work on overflow. Modify block centering to left-align when insufficient space. Fix caret positioning for form controls with padding.

svn path=/import/netsurf/; revision=1171
2004-08-01 13:08:19 +00:00