Commit Graph

286 Commits

Author SHA1 Message Date
Michael Drake 129fb84ed5 Make layout_block_context() private.
svn path=/trunk/netsurf/; revision=7406
2009-05-06 14:20:46 +00:00
Michael Drake a008d3486e Move special casing of form element dimensions out into separate helper function.
svn path=/trunk/netsurf/; revision=7403
2009-05-06 11:16:06 +00:00
Michael Drake 5a35e5cd97 Make form elements with specified sizes include paddings and borders in their sizes in some cases.
svn path=/trunk/netsurf/; revision=7386
2009-05-01 18:00:01 +00:00
Michael Drake a99a5bdd70 Move handling of TR height attribute from box construction to layout and add support for height property on TR.
svn path=/trunk/netsurf/; revision=7358
2009-04-28 20:13:10 +00:00
John Mark Bell 56000c4736 If we calculate the height of the root box to be AUTO, set it to the viewport height before laying out the document (makes html, body { height: 100%; } behave correctly)
svn path=/trunk/netsurf/; revision=7127
2009-04-17 17:28:38 +00:00
Michael Drake 3a12ed0fac Update some comments.
svn path=/trunk/netsurf/; revision=7092
2009-04-15 13:22:28 +00:00
Michael Drake f1c7c7f072 Remove unused line_height stuff for now.
svn path=/trunk/netsurf/; revision=6354
2009-02-02 13:54:48 +00:00
Michael Drake b2182b8c50 Fix clear:both; when there's nothing to clear.
svn path=/trunk/netsurf/; revision=6352
2009-02-02 12:56:15 +00:00
Michael Drake 400ed91129 Hubbub allows FONT tags to span blocks and the way that
the box tree is generated, this makes the BOX_INLINE's
BOX_INLINE_END appears in a different BOX_BLOCK. That
seems wrong, but fix layout not to crash for now.

svn path=/trunk/netsurf/; revision=6325
2009-01-31 22:49:41 +00:00
Michael Drake 414f42faac Make inline boxes store the height of their line box and include in box tree dump.
svn path=/trunk/netsurf/; revision=6319
2009-01-31 13:26:28 +00:00
Michael Drake daf8c22d1b Only get top margin if box has style.
svn path=/trunk/netsurf/; revision=6295
2009-01-29 22:57:32 +00:00
Michael Drake 56b48410be Include top margin when finding sides for block formatting contexts.
svn path=/trunk/netsurf/; revision=6293
2009-01-29 21:23:48 +00:00
Michael Drake 619e5b9631 Once a float has been placed below current line,
ensure that subsequent floats are also placed below.
Make place_float_below() consider float height when
searching for available space.

svn path=/trunk/netsurf/; revision=6287
2009-01-27 13:21:50 +00:00
Michael Drake aa787e9730 Fix specified table widths to include border. Tidy block formatting context and table position setup.
svn path=/trunk/netsurf/; revision=6281
2009-01-26 16:32:19 +00:00
Michael Drake 0a175d4020 Fix -ve margins.
svn path=/trunk/netsurf/; revision=6277
2009-01-26 09:11:54 +00:00
Michael Drake 0fefb7a605 More robust float avoidance for blocks set as block formatting contexts.
svn path=/trunk/netsurf/; revision=6275
2009-01-26 00:15:25 +00:00
Michael Drake beff85fa73 Ignore clear:left; when the only floats are on the right and vice versa.
svn path=/trunk/netsurf/; revision=6176
2009-01-22 17:52:22 +00:00
Michael Drake 3594651a6b Handle clear before working out available width for tables and blocks that cause a new block formatting context.
svn path=/trunk/netsurf/; revision=6174
2009-01-22 15:39:06 +00:00
Michael Drake 4c40bbc096 Fix placement of tables in normal flow next to floats. This stops big blank gaps appearing e.g. at the top of wikipedia articles, on some google search results and on amazon product pages.
svn path=/trunk/netsurf/; revision=6162
2009-01-21 23:01:59 +00:00
Michael Drake 9134956efe Fix positioning of floats that come after floats with negative margins.
svn path=/trunk/netsurf/; revision=6156
2009-01-20 21:36:54 +00:00
Michael Drake c5f72605b4 Block formatting context width is only reduced due to floats if width is auto.
svn path=/trunk/netsurf/; revision=6145
2009-01-19 10:17:44 +00:00
Michael Drake 20120a8acf Make blocks which establish a new block formatting context use have the correct width and position to avoid overlapping floats. Fixes the main problem on the amazon.co.uk front page.
svn path=/trunk/netsurf/; revision=6142
2009-01-18 23:41:48 +00:00
Michael Drake 6a4d4489f5 Rewrite inline rendering. Fixes issues with borders,
background colour and background image display when
inlines have margins and paddings. Support for
background position on inlines. Fix BOX_INLINE
descendant calculation to include BOX_INLINE_END.

svn path=/trunk/netsurf/; revision=5916
2008-12-21 15:51:23 +00:00
Michael Drake f33fd2c604 Take into account variations in text line height due to styled inlines when laying out inline containers.
svn path=/trunk/netsurf/; revision=5587
2008-10-16 20:50:48 +00:00
Michael Drake b3f32dece4 Implement percentage min/max-height.
svn path=/trunk/netsurf/; revision=5566
2008-10-13 19:22:16 +00:00
Michael Drake 38619e2d29 Finish 80 char widthing.
svn path=/trunk/netsurf/; revision=5560
2008-10-13 15:06:19 +00:00
Michael Drake 7293b6f4bb Tidy up where spaces were used for indentation.
svn path=/trunk/netsurf/; revision=5555
2008-10-13 12:30:23 +00:00
Michael Drake a5ac56655c Fix float percentage heights to match other browsers: for floated elements the containing block is the nearest ancestor box at block level, rather than the block formatting context block that the float is in.
svn path=/trunk/netsurf/; revision=5553
2008-10-13 10:50:46 +00:00
Michael Drake 79978eafcd Set float_container before float layout. Fixes percentage height on floated elements.
svn path=/trunk/netsurf/; revision=5552
2008-10-12 21:45:38 +00:00
Michael Drake 1a237535f7 Better commenting of percentage height stuff.
svn path=/trunk/netsurf/; revision=5551
2008-10-12 21:35:04 +00:00
Michael Drake b7a1b3999e Implement percentage heights for block level elements in normal flow, floats and positioned boxes. Percentage min/max-height not yet handled.
svn path=/trunk/netsurf/; revision=5550
2008-10-12 21:22:28 +00:00
Michael Drake c1db0e90cc Use style guide switch formatting all over.
svn path=/trunk/netsurf/; revision=5549
2008-10-12 15:34:43 +00:00
Michael Drake b2486edc5a Fix block level replaced element height regression.
svn path=/trunk/netsurf/; revision=5450
2008-09-28 10:00:32 +00:00
Michael Drake 324cc53e87 Also remember to apply min/max-width on floats without auto width.
svn path=/trunk/netsurf/; revision=5446
2008-09-27 20:43:45 +00:00
Michael Drake 1a00aa03a5 Implement min-width and max-width properties for non-replaced elements. Partially implemented for replaced elements.
svn path=/trunk/netsurf/; revision=5445
2008-09-27 20:19:46 +00:00
François Revel bee268fac3 C89
svn path=/trunk/netsurf/; revision=5440
2008-09-25 23:33:13 +00:00
Michael Drake 804a11af5b Fix for children of a containing block not being placed with respect to the containing block's top padding, if the containing block's first child is absolute positioned.
svn path=/trunk/netsurf/; revision=5424
2008-09-23 19:38:16 +00:00
Michael Drake 4fad8726a4 Ignore clear property on floats when there are no floats to clear.
svn path=/trunk/netsurf/; revision=5402
2008-09-22 23:45:51 +00:00
Michael Drake 4c058dd92c Fix for positioning of inlines when a float is forced below them.
svn path=/trunk/netsurf/; revision=5395
2008-09-22 11:29:39 +00:00
Michael Drake 1850a494e7 Fix relative positioning to affect position of descendant floats which are in a block formatting context which is an ancestor of the relatively positioned box.
svn path=/trunk/netsurf/; revision=5390
2008-09-21 19:18:27 +00:00
Michael Drake 38ef84bf87 Fix floated radio buttons and checkboxes.
svn path=/trunk/netsurf/; revision=5386
2008-09-20 23:25:37 +00:00
Michael Drake 40f20b439e Add param comments to layout_block_find_dimensions.
svn path=/trunk/netsurf/; revision=5267
2008-09-07 10:05:23 +00:00
Michael Drake 8124d3d5ad Possibly fix BeOS / AmigaOS layout assert on line 190 for particular pages.
svn path=/trunk/netsurf/; revision=5197
2008-08-24 18:55:55 +00:00
John Tytgat e063a2a59d Second merge of Adam Blokus' GSoC work from his branch 'branches/adamblokus/netsurf'.
Merged revisions 4195-4211,4216,4219-4220,4222-4234,4236-4250,4252-4262,4264-4266,4268-4326,4329-4335,4338-4342,4344-4411,4413-4420,4422-4436,4438-4491,4494-4506,4508-4514,4516,4518-4552,4554,4556-4564,4567-4568,4570-4574,4576-4686,4689-4692,4694,4698-4709,4715-4723,4725-4755,4757-4769,4771-4919,4921-4996,4998-5110,5112-5117 via svnmerge from 
svn://svn.netsurf-browser.org/branches/adamblokus/netsurf

........
  r4736 | adamblokus | 2008-07-26 13:46:54 +0200 (Sat, 26 Jul 2008) | 2 lines
  
  Sorting out some problems with svn.
........
  r4737 | adamblokus | 2008-07-26 13:54:36 +0200 (Sat, 26 Jul 2008) | 4 lines
  
  Added export tab to the options dialog.
  Added the possibility of changing some print options.
........
  r4897 | adamblokus | 2008-08-04 17:59:05 +0200 (Mon, 04 Aug 2008) | 5 lines
  
  Added checking of horizontal clipping.
  Added better table loosening.
  Changed some minor bugs.
  Applied changes in the Export options tab according to the review from tlsa.
........
  r4905 | adamblokus | 2008-08-05 01:53:34 +0200 (Tue, 05 Aug 2008) | 2 lines
  
  Fixed bug which made it impossible to export pdf's.
........
  r4919 | adamblokus | 2008-08-05 16:39:33 +0200 (Tue, 05 Aug 2008) | 2 lines
  
  Fixed some memory leaks which caused Netsurf to break.
........
  r4927 | adamblokus | 2008-08-06 02:26:30 +0200 (Wed, 06 Aug 2008) | 4 lines
  
  Fixed bug with filenames which crashed Netsurf.
  Turned anti aliasing off for printing.
  Fixed some scaling issues.
........
  r4928 | adamblokus | 2008-08-06 17:52:44 +0200 (Wed, 06 Aug 2008) | 5 lines
  
  Added new export/print options:
  - suppressing images
  - turning off backgrounds
  - toggled loosening
........
  r4950 | adamblokus | 2008-08-07 21:15:21 +0200 (Thu, 07 Aug 2008) | 5 lines
  
  Added new options to PDF export:
  - document compression
  - document encryption
  Added PDF password dialog
........
  r4954 | adamblokus | 2008-08-07 22:11:31 +0200 (Thu, 07 Aug 2008) | 2 lines
  
  Added saving print settings.
........
  r4956 | adamblokus | 2008-08-07 22:44:48 +0200 (Thu, 07 Aug 2008) | 2 lines
  
  Fixes to PDF encryption
........
  r4970 | adamblokus | 2008-08-09 15:26:24 +0200 (Sat, 09 Aug 2008) | 3 lines
  
  Fixed bug in plotting tiled bitmaps.
  Fixed bug with too long text decorations.
........
  r4977 | adamblokus | 2008-08-09 19:18:56 +0200 (Sat, 09 Aug 2008) | 2 lines
  
  Fixed JPG embedding bug.
........
  r4988 | adamblokus | 2008-08-10 16:59:51 +0200 (Sun, 10 Aug 2008) | 3 lines
  
  Added clip checking to pdf plotters. No more "blank" clips.
  Made PDF compression a default setting.
........
  r4995 | adamblokus | 2008-08-10 20:03:00 +0200 (Sun, 10 Aug 2008) | 2 lines
  
  Fixed Haru crash on font-size==0.
........
  r4996 | adamblokus | 2008-08-10 21:04:43 +0200 (Sun, 10 Aug 2008) | 2 lines
  
  Added changing text mode only if necessary.
........
  r5045 | adamblokus | 2008-08-11 21:26:26 +0200 (Mon, 11 Aug 2008) | 3 lines
  
  Removing gtk stuff from core code.
  Little fix in options. 
........
  r5048 | adamblokus | 2008-08-11 21:57:45 +0200 (Mon, 11 Aug 2008) | 2 lines
  
  Better font size checking in PDF export.
........
  r5050 | adamblokus | 2008-08-11 22:19:56 +0200 (Mon, 11 Aug 2008) | 2 lines
  
  Fixed riscos text scale bug.
........
  r5073 | adamblokus | 2008-08-12 17:40:57 +0200 (Tue, 12 Aug 2008) | 2 lines
  
  Added missing tooltips
........
  r5092 | adamblokus | 2008-08-13 17:09:25 +0200 (Wed, 13 Aug 2008) | 2 lines
  
  Moved /pdf folder to desktop/save_pdf
........
  r5110 | adamblokus | 2008-08-13 22:44:50 +0200 (Wed, 13 Aug 2008) | 2 lines
  
  Added comments.
........
  r5113 | adamblokus | 2008-08-13 23:07:35 +0200 (Wed, 13 Aug 2008) | 2 lines
  
  Cosmetic changes
........
  r5116 | adamblokus | 2008-08-14 16:10:18 +0200 (Thu, 14 Aug 2008) | 2 lines
  
  Fixed bug with BOX_INLINE_END in tree duplication.
........
  r5117 | joty | 2008-08-14 21:47:46 +0200 (Thu, 14 Aug 2008) | 1 line
  
  Improvement for r5116: use local vars when possible; rename global last to box_duplicate_last; check on box_duplicate_main_tree failure.
........

svn path=/trunk/netsurf/; revision=5118
2008-08-14 20:32:10 +00:00
François Revel 914cbeacfe C89
svn path=/trunk/netsurf/; revision=4963
2008-08-08 20:12:38 +00:00
Rob Kendrick 052f99d379 Include headers we need, rather than depending on (optional) features doing so.
svn path=/trunk/netsurf/; revision=4774
2008-07-28 20:32:51 +00:00
John Tytgat 35d3d6d0bb First merge of Adam Blokus' GSoC work from his branch 'branches/adamblokus/netsurf'.
Merged revisions 4212-4552,4554-4709,4711-4724 via svnmerge from 
svn://svn.netsurf-browser.org/branches/adamblokus/netsurf

........
  r4212 | adamblokus | 2008-05-26 19:42:31 +0200 (Mon, 26 May 2008) | 4 lines
  
  Pdf plotting skeleton pinned on Print Preview in GTK.
  Just creates a file and draws lines. 
........
  r4213 | adamblokus | 2008-05-27 00:11:03 +0200 (Tue, 27 May 2008) | 4 lines
  
  Pdf plotter - added drawing some graphic primitives.
  Still with limited functionality, but a snapshot of the
  currently viewed page can be made and resembles the original.
........
  r4214 | adamblokus | 2008-05-27 11:43:31 +0200 (Tue, 27 May 2008) | 2 lines
  
  Corrected encoding name
........
  r4215 | adamblokus | 2008-05-27 12:47:26 +0200 (Tue, 27 May 2008) | 3 lines
  
  Colours and polygons added.
........
  r4217 | adamblokus | 2008-05-27 21:39:35 +0200 (Tue, 27 May 2008) | 6 lines
  
  Added rectangles, filled boxes and clipping.
  Taken into consideration joty's comments.
  Added a todo list for this part.
  Added some debug stuff and checking boundaries.
........
  r4218 | adamblokus | 2008-05-28 12:37:30 +0200 (Wed, 28 May 2008) | 2 lines
  
  Added path ploting (not sure if valid argument order for bezier) and dashed/dotted line styles
........
  r4221 | adamblokus | 2008-05-28 22:11:05 +0200 (Wed, 28 May 2008) | 3 lines
  
  Some more options in graphic primitives and normalizing some parameters.
........
  r4235 | adamblokus | 2008-05-31 22:54:56 +0200 (Sat, 31 May 2008) | 4 lines
  
  Plotting changed as jmb suggested (is the least invasive one from the possible)
  Added dummy bitmap plotting - way of plotting an image is determined by its type. 
........
  r4251 | adamblokus | 2008-06-03 17:12:15 +0200 (Tue, 03 Jun 2008) | 3 lines
  
  Added plotting jpg and png images - quite a lot to improve in this code, but it seems to work ;)
........
  r4263 | adamblokus | 2008-06-05 14:20:32 +0200 (Thu, 05 Jun 2008) | 3 lines
  
  Added hadling images other than png and jpeg - with transparency.
........
  r4267 | adamblokus | 2008-06-06 15:36:34 +0200 (Fri, 06 Jun 2008) | 5 lines
  
  Added handling NULL-returns from all mallocs.
  Added plot_bitmap_tile handling.
  Changed code style a little.
........
  r4327 | adamblokus | 2008-06-12 17:46:34 +0200 (Thu, 12 Jun 2008) | 5 lines
  
  Added a first prototype of the paged-output organization.
  Still not sure about naming, file locations etc.
  Works with the same pdf plotting as before.
........
  r4328 | adamblokus | 2008-06-13 13:52:15 +0200 (Fri, 13 Jun 2008) | 4 lines
  
  Added primitive width adjustment and outputing the whole
  website in multiple pages.
........
  r4336 | joty | 2008-06-15 15:06:57 +0200 (Sun, 15 Jun 2008) | 1 line
  
  Fix RISC OS build failure (change r4235 wasn't complete).
........
  r4337 | joty | 2008-06-15 18:15:32 +0200 (Sun, 15 Jun 2008) | 16 lines
  
  This enables "Export PDF" in RISC OS build:
  
  - Docs/Doxyfile(PREDEFINED): Added WITH_PDF_EXPORT
  - Makefile.sources(S_PDF): Add to RISC OS target as well.
  - utils/config.h: Define WITH_PDF_EXPORT which controls if we want to have
    PDF export functionality or not.
  - riscos/save_pdf.c,riscos/save_pdf.h(save_as_pdf): Use PDF print API made
    by Adam Blokus to write a PDF file under RISC OS.
  - riscos/save.c: Call save_as_pdf added.
  - riscos/menus.c: Add 'Export->PDF' menu entry.
  - riscos/menus.h(menu_action): Added BROWSER_EXPORT_PDF.
  - desktop/gui.h(gui_save_type): Added GUI_SAVE_PDF.
  - desktop/print.c(print_run): Added return value.
  - Makefile(CCACHE): Moved closed to the place where CC is set for the first time.
    (LDFLAGS): Centralised adding all non-pkgconfig libraries and added Haru + PNG libs.
........
  r4343 | adamblokus | 2008-06-16 01:08:52 +0200 (Mon, 16 Jun 2008) | 3 lines
  
  Added margins and page size adjustment.
........
  r4412 | adamblokus | 2008-06-21 20:22:07 +0200 (Sat, 21 Jun 2008) | 4 lines
  
  Added 'fuzzy' margins on page bottom. 
  Disabled direct png embedding, because it is too unstable in Haru now.
........
  r4421 | adamblokus | 2008-06-22 18:52:28 +0200 (Sun, 22 Jun 2008) | 2 lines
  
  Added "Save as.." dialog and Export->PDF menu entry. Print preview still works with default path.
........
  r4437 | adamblokus | 2008-06-25 02:44:46 +0200 (Wed, 25 Jun 2008) | 4 lines
  
  Added skeleton of applying loose layout.
  Minor code cleaning-up.
........
  r4492 | adamblokus | 2008-07-02 09:02:42 +0200 (Wed, 02 Jul 2008) | 5 lines
  
  Implemented the elementar ideas of the loose layout.
  Added scaling in the printing routine.
  Added some basic demonstrations.
........
  r4493 | adamblokus | 2008-07-02 09:05:55 +0200 (Wed, 02 Jul 2008) | 3 lines
  
  Cleaned up the loosing code - commited to much of leftover rubbish code.
........
  r4507 | adamblokus | 2008-07-04 14:25:48 +0200 (Fri, 04 Jul 2008) | 4 lines
  
  Added duplicating box tree and current content - window flickering during printing solved.
  Minor error checking after new HPDF_Image_AddSMask call.
........
  r4515 | adamblokus | 2008-07-06 22:28:16 +0200 (Sun, 06 Jul 2008) | 2 lines
  
  Changes in loosen layout (image resizing).
........
  r4517 | adamblokus | 2008-07-06 22:38:23 +0200 (Sun, 06 Jul 2008) | 2 lines
  
  Added pdf font handling and rendering functions with the use of Haru functions.
........
  r4555 | adamblokus | 2008-07-10 00:59:05 +0200 (Thu, 10 Jul 2008) | 2 lines
  
  Added a very basic and still buggy GTK print implementation.
........
  r4565 | adamblokus | 2008-07-10 14:50:16 +0200 (Thu, 10 Jul 2008) | 2 lines
  
  Added gtk printing one more time - I have forgotten to add the main file.
........
  r4566 | adamblokus | 2008-07-10 14:57:02 +0200 (Thu, 10 Jul 2008) | 2 lines
  
  removed error with comment
........
  r4569 | adamblokus | 2008-07-10 15:52:55 +0200 (Thu, 10 Jul 2008) | 5 lines
  
  Major style improvements - added a lot of doxygen comments, 
  followed tlsa's style guide.
  Added some more error checking, too.
........
  r4575 | adamblokus | 2008-07-10 18:48:26 +0200 (Thu, 10 Jul 2008) | 2 lines
  
  Cleaned up the code.
........
  r4687 | adamblokus | 2008-07-17 14:17:19 +0200 (Thu, 17 Jul 2008) | 2 lines
  
  Changed everything according to jmb's review plus some minor bug fixes to gtk_print.
........
  r4688 | adamblokus | 2008-07-17 17:16:34 +0200 (Thu, 17 Jul 2008) | 2 lines
  
  Solved the netsurf.glade clash from r4421.
........
  r4693 | adamblokus | 2008-07-18 18:11:51 +0200 (Fri, 18 Jul 2008) | 2 lines
  
  Fixed bug with wrong number of pages in gtk printing.
........
  r4695 | adamblokus | 2008-07-18 19:59:24 +0200 (Fri, 18 Jul 2008) | 3 lines
  
  - fixed uncommented line from the previous commit
  - fixed bug with scale bigger than 1.0 (incorretly clipped page)
........
  r4696 | adamblokus | 2008-07-18 23:28:00 +0200 (Fri, 18 Jul 2008) | 2 lines
  
  Fixed bug in gtk_print_font_paint (and nsfont_paint).
........
  r4697 | adamblokus | 2008-07-18 23:35:38 +0200 (Fri, 18 Jul 2008) | 2 lines
  
  Bug fix in nsfont_paint.
........
  r4711 | adamblokus | 2008-07-19 22:44:15 +0200 (Sat, 19 Jul 2008) | 2 lines
  
  Added gtk_selection files.
........
  r4712 | adamblokus | 2008-07-20 11:15:06 +0200 (Sun, 20 Jul 2008) | 2 lines
  
  Addam missing glade files.
........
  r4713 | joty | 2008-07-20 17:13:10 +0200 (Sun, 20 Jul 2008) | 1 line
  
  Follow change r4517 for RISC OS and BeOS platforms : Added pdf font handling and rendering functions with the use of Haru functions.
........
  r4714 | joty | 2008-07-20 18:19:50 +0200 (Sun, 20 Jul 2008) | 1 line
  
  Declare haru_nsfont iso define an instance for each C source including the font_haru.h header.  This fixes breakage of PDF export on RISC OS.
........
  r4724 | adamblokus | 2008-07-23 03:30:08 +0200 (Wed, 23 Jul 2008) | 6 lines
  
  Applied changes according to joty's review.
  Added checking the dimensions of a plotted image to pdf plotter.
  Commented out jpg embedding (it seems to cause some problems
  I'll bring it back when I figure out what's wrong) .
  Added back some files removed by mistake.
........


svn path=/trunk/netsurf/; revision=4741
2008-07-26 16:01:59 +00:00
Michael Drake 1edf2c51b8 Fix comment typo.
svn path=/trunk/netsurf/; revision=4589
2008-07-11 12:19:47 +00:00
Michael Drake 1cdfeae0c6 Fix top margin of boxes with a non-visible overflow type.
svn path=/trunk/netsurf/; revision=4482
2008-06-30 15:53:28 +00:00
Michael Drake f69c024ecb Add param and return details to layout_solve_width() comment.
svn path=/trunk/netsurf/; revision=4322
2008-06-10 22:00:12 +00:00