Commit Graph

154 Commits

Author SHA1 Message Date
Chris Young
8dc7ec2cb4 More split fixery 2013-05-25 14:12:02 +01:00
Chris Young
4a618b7040 Another attempt to fix the moving split position when a string fits exactly. 2013-05-25 14:05:32 +01:00
Chris Young
2f94771f41 revert text split change 2013-05-20 17:59:58 +01:00
Chris Young
5fcdbb80f0 Try to avoid the split point jumping around when it occurs exactly on the boundary requested 2013-05-18 13:34:36 +01:00
Chris Young
e4f11d1b74 Fix a potential crash when plotting glyphs 2013-04-28 11:53:37 +01:00
Chris Young
d9b8809908 Fix memory leak and make a point of ignoring UTF-16 surrogates 2013-04-14 16:03:46 +01:00
Chris Young
52e811a842 Don't recalculate next char position 2013-04-14 15:05:27 +01:00
Chris Young
7de97e8d6a ensure the closest character is picked 2013-03-24 11:35:27 +00:00
Chris Young
f70e58b4a1 update posn_in_string loop to be similar to nsfont_split 2013-03-24 11:27:26 +00:00
Chris Young
e678df267e Handle UTF-16 multi-length characters properly 2013-03-24 11:06:36 +00:00
Michael Drake
d0966c9d3f Fix leaked utf16 string. 2013-03-20 22:22:36 +00:00
Michael Drake
91d05fc0f1 Ensure that actual_x is set when string fits inside available_width. 2013-03-20 22:07:22 +00:00
Michael Drake
918aa9d266 Fix error. 2013-03-20 20:59:00 +00:00
Michael Drake
138d2529ef More meddling. 2013-03-20 20:55:03 +00:00
Michael Drake
5d7b1f40a3 Another attempt. 2013-03-20 20:06:24 +00:00
Michael Drake
ea4b7eb3a8 Try fixing Amiga nsfont_split. (Untested!) 2013-03-20 13:14:17 +00:00
Chris Young
8da8f14396 More logical splitting code 2013-02-15 16:51:50 +00:00
Chris Young
d25fd5fb6c Set the split point to the end of the line if the entire string fits in the allocated space 2013-02-12 00:21:56 +00:00
Chris Young
d78777276c Bring nsfont_split up to core expectations. Slightly bodged. 2013-02-10 23:24:04 +00:00
Chris Young
d7ddfd6ac3 Make logic compare clearer 2013-01-10 22:07:11 +00:00
Chris Young
34154ebb99 Disable anti-aliasing for palette-mapped modes 2012-08-05 10:48:36 +01:00
Chris Young
dad8065f0a move text colour settings into plotters.c, and use palette-map capable function 2012-08-04 18:05:26 +01:00
Chris Young
0161b2a33e Rescan fonts if preferred fallback font is changed in the GUI
svn path=/trunk/netsurf/; revision=13908
2012-05-06 17:55:35 +00:00
Chris Young
7003f6932e Use font_unicode option as preferred (first scanned) font. Ideally need to
expand this so multiple fonts can be specified.  Allow disabling of
scanning other fonts. Add stubs for a scanning progress GUI.

svn path=/trunk/netsurf/; revision=13907
2012-05-05 19:09:42 +00:00
Chris Young
d5608581b9 Integrate Unicode font scanner into NetSurf.
NetSurf will now use any available font when trying to print
characters that are missing from the current font.
TODO: Preferred font list.

svn path=/trunk/netsurf/; revision=13905
2012-05-05 15:58:17 +00:00
Chris Young
a4ff885365 Ensure we are using the faster(?) character size functions in all
applicable places.

svn path=/trunk/netsurf/; revision=13901
2012-05-02 18:29:59 +00:00
Chris Young
8d4678b04b Add AppWindow ourself rather than letting window.class create it. Initial
tests indicate we are no longer losing icon drop events although there is
still an "event leak" somewhere.
Fix warnings.

svn path=/trunk/netsurf/; revision=13894
2012-04-28 19:43:46 +00:00
Chris Young
f6b15c1061 Re-jig URL launch as would never have fallen back to using openurl.library.
Add it as an option instead.

svn path=/trunk/netsurf/; revision=13882
2012-04-18 19:44:09 +00:00
Chris Young
65b128b088 Just get glyph widths rather than the entire glyph when calculating sizes.
This should be faster but isn't (probably still rendering the glyph
internally)

svn path=/trunk/netsurf/; revision=13843
2012-04-09 12:01:57 +00:00
Vincent Sanders
1490b52a6b NetSurf options rework (a=vince r=daniels,jmb)
svn path=/trunk/netsurf/; revision=13548
2012-03-22 09:34:34 +00:00
Chris Young
61a36faf7f Add proposed small caps "x" and "q" mappings.
svn path=/trunk/netsurf/; revision=13247
2011-12-05 20:08:17 +00:00
Chris Young
71a08da397 Support small caps using the font's designed characters.
TODO: fallback to generated characters.

svn path=/trunk/netsurf/; revision=13245
2011-12-04 23:39:22 +00:00
Chris Young
ccbca43457 Avoid memory leak when requested font cannot be opened.
svn path=/trunk/netsurf/; revision=13243
2011-12-04 20:06:53 +00:00
Chris Young
a06678dabf Don't use a designed font for oblique, only italic.
svn path=/trunk/netsurf/; revision=13226
2011-12-04 01:45:31 +00:00
Chris Young
0ce6fc409c Global list for diskfont.library fontengine cache
svn path=/trunk/netsurf/; revision=13225
2011-12-04 01:10:19 +00:00
Chris Young
69f83ed262 Be more flexible with the aspect ratios we correct to.
svn path=/trunk/netsurf/; revision=13036
2011-10-11 17:58:14 +00:00
Chris Young
8e67ad8051 Select fonts, sizes and colours for splash screen text rather than relying on system
default

svn path=/trunk/netsurf/; revision=12776
2011-09-07 23:01:53 +00:00
Chris Young
11b3bb228a Correct aspect ratio correctly and support widescreen displays
svn path=/trunk/netsurf/; revision=12607
2011-07-17 14:48:19 +00:00
Chris Young
208363fe2a Rename DataTypes related code/files/defines to avoid confusion and aid adding support
for other DataType classes.
Disable MNG/WebP by default as they aren't common and the required libs are quite
large; DataTypes can handle these formats for now.

svn path=/trunk/netsurf/; revision=12284
2011-05-06 22:42:37 +00:00
Chris Young
da20605385 Correct width of the em-square for non-72dpi settings
Fix warnings

svn path=/trunk/netsurf/; revision=12268
2011-05-02 10:33:16 +00:00
Chris Young
08dcfc0c44 Every five minutes, close any fonts not used in the last five minutes
svn path=/trunk/netsurf/; revision=12267
2011-05-01 11:59:08 +00:00
Chris Young
37854d1575 Better logging
svn path=/trunk/netsurf/; revision=12266
2011-05-01 08:53:51 +00:00
Chris Young
56482725b6 If a designed font is defined but not available, error out
svn path=/trunk/netsurf/; revision=12265
2011-05-01 08:49:00 +00:00
Chris Young
11a0284427 Don't open fonts until they are needed
svn path=/trunk/netsurf/; revision=12264
2011-04-30 19:05:11 +00:00
Chris Young
06213b4dd2 Make Y DPI a configurable option. Default is 72 (AmigaOS standard)
svn path=/trunk/netsurf/; revision=12237
2011-04-25 17:43:22 +00:00
Chris Young
93d4939787 Logically, this ratio should be x/y not y/x
svn path=/trunk/netsurf/; revision=12232
2011-04-22 17:00:27 +00:00
Chris Young
1bc9a86109 Aspect-corrected font DPI. Needs testing on a mode with non-square pixels and on a
widescreen monitor.

svn path=/trunk/netsurf/; revision=12230
2011-04-22 16:48:29 +00:00
Chris Young
83914b9c3e Set font DPI from nscss_screen_dpi to ensure it is always in sync
Reset font DPI when opening screens to allow us to correct for aspect ratio in the
future

svn path=/trunk/netsurf/; revision=12229
2011-04-22 16:06:46 +00:00
Chris Young
b14edfdd5a Also add softstyle for italics
Move the values into defines at the top of the file to make them easier to change

svn path=/trunk/netsurf/; revision=12228
2011-04-22 15:30:16 +00:00
Chris Young
ed5d8d0dba Use bold softstyle when no designed bold font is defined
svn path=/trunk/netsurf/; revision=12225
2011-04-22 14:53:56 +00:00
Michael Drake
e073f1c542 Don't scale text plots in front end (Amiga).
svn path=/trunk/netsurf/; revision=11939
2011-03-08 18:49:11 +00:00
John Mark Bell
d83f683e96 Sprinkle some #ifdef __amigaos4__ around
svn path=/trunk/netsurf/; revision=11230
2011-01-06 23:17:17 +00:00
Chris Young
f55c11dbd6 Amiga font code revamped and fixed. Will now fall back to a different font if the
character isn't present in the current one, this needs a complete or near-complete
Unicode font in order to be useful - Code2000 and Bitstream Cyberbit are auto-detected
by NetSurf on startup if none is configured.  Japanese websites now display correctly,
along with Japanese characters within Google UK search results etc.

svn path=/trunk/netsurf/; revision=10551
2010-05-06 10:02:58 +00:00
Chris Young
4d6abc7744 Fix assert. This is wrong, needs investigation.
svn path=/trunk/netsurf/; revision=10549
2010-05-03 21:45:58 +00:00
Chris Young
d752fd194c Fix loops reading too many characters
svn path=/trunk/netsurf/; revision=10548
2010-05-03 20:57:32 +00:00
Chris Young
a3b14f6d98 Fix assert when clicking empty text boxes
svn path=/trunk/netsurf/; revision=10531
2010-04-30 17:28:07 +00:00
Chris Young
b579b0deb3 Don't check if the next character is outside the printable string, if it is it'll pick
up the NULL terminator anyway.

svn path=/trunk/netsurf/; revision=10523
2010-04-29 23:05:52 +00:00
Chris Young
ce570ddde0 Text kerning
svn path=/trunk/netsurf/; revision=10522
2010-04-29 22:30:21 +00:00
Chris Young
c0d7ba762e More correct font width calculations/placing
svn path=/trunk/netsurf/; revision=10518
2010-04-29 19:43:50 +00:00
Chris Young
1f529dc33f Possibly more accurate text placement
svn path=/trunk/netsurf/; revision=10517
2010-04-29 18:22:20 +00:00
Chris Young
3921fcf173 Fix character offset, which was one character left of where the user clicked even
though the caret itself was placed in the correct location.

svn path=/trunk/netsurf/; revision=10128
2010-03-14 22:48:25 +00:00
Chris Young
6061cc3103 More helpful font open error
svn path=/trunk/netsurf/; revision=9809
2010-01-15 22:51:07 +00:00
Chris Young
90012b487a Fix odd missing chars
svn path=/trunk/netsurf/; revision=9654
2009-10-24 09:18:22 +00:00
Chris Young
a80a4968bd fix text cursor positioning some more
svn path=/trunk/netsurf/; revision=9597
2009-09-23 21:52:36 +00:00
Chris Young
3d971835db Click position improvements
svn path=/trunk/netsurf/; revision=9541
2009-09-05 14:39:38 +00:00
Chris Young
2fc90e362c Fix missing characters
svn path=/trunk/netsurf/; revision=9540
2009-09-05 12:35:05 +00:00
Chris Young
b322e5d8d6 More simple
svn path=/trunk/netsurf/; revision=9539
2009-09-05 11:58:13 +00:00
Chris Young
10a9f0e030 Simplify and fix some long-standing highlight/layout issues
svn path=/trunk/netsurf/; revision=9538
2009-09-05 11:33:05 +00:00
Chris Young
138d0754c9 Font scaling - scaling now works for printing, need 2nd attempt at implementing it for
browsing.

svn path=/trunk/netsurf/; revision=9496
2009-08-29 14:24:47 +00:00
John Mark Bell
ddeadd1c02 Merge LibCSS port to trunk.
svn path=/trunk/netsurf/; revision=8752
2009-07-23 23:05:34 +00:00
John Mark Bell
6e13c2fb0a Scale font sizes, for better accuracy.
svn path=/trunk/netsurf/; revision=8657
2009-07-21 16:55:35 +00:00
John Mark Bell
2565a37a52 Refactor text plotter and other font functions to remove dependency on CSS.
svn path=/trunk/netsurf/; revision=8641
2009-07-21 10:59:53 +00:00
Chris Young
b8f6dfd58d Minor positional changes. This code probably needs a rethink as it doesn't correctly
advance for two-byte UTF8 chars.

svn path=/trunk/netsurf/; revision=8276
2009-07-02 23:07:04 +00:00
Chris Young
397e2cc0a9 Revert accidental change
svn path=/trunk/netsurf/; revision=7898
2009-06-20 14:13:16 +00:00
Chris Young
cb23d7d911 Modify correct RastPort
svn path=/trunk/netsurf/; revision=7897
2009-06-20 14:11:24 +00:00
Chris Young
2afe4157cd Support option_font_default
svn path=/trunk/netsurf/; revision=7896
2009-06-20 13:44:39 +00:00
Chris Young
c28114732a Adjust minimum font size
svn path=/trunk/netsurf/; revision=7450
2009-05-09 14:30:17 +00:00
Chris Young
3ad3a8f7f9 Fix warnings
svn path=/trunk/netsurf/; revision=7131
2009-04-18 16:55:59 +00:00
Chris Young
853793eaa8 Remove option_quick_text (local charset text printing)
svn path=/trunk/netsurf/; revision=7021
2009-04-01 17:36:18 +00:00
Chris Young
f388785f8a fix text co-ordinate
svn path=/trunk/netsurf/; revision=6987
2009-03-29 20:57:57 +00:00
Chris Young
3179a891d6 Fix actual_x
svn path=/trunk/netsurf/; revision=6968
2009-03-28 14:12:31 +00:00
John Mark Bell
41d2eca3b1 Port our UTF-8 routines to parserutils (only enabled when building against Hubbub).
Sync our temporary internal copies of these functions with parserutils (which is rather better tested and fixes a number of known bugs in NetSurf's previous UTF-8 handling).
Ideally, this will be the only place in NetSurf that has any dependency on parserutils, so port the amiga font code to our internal APIs.

svn path=/trunk/netsurf/; revision=6550
2009-02-17 23:44:17 +00:00
Chris Young
f4d1f89957 It's probably a good idea to free memory once we've finished with it.
svn path=/trunk/netsurf/; revision=6222
2009-01-24 12:24:15 +00:00
Chris Young
161dea3d8b Implement bold and italic font rendering for Unicode display and make it the default.
svn path=/trunk/netsurf/; revision=6155
2009-01-20 16:53:06 +00:00
Chris Young
ddd59deaf2 position in string was off by one
svn path=/trunk/netsurf/; revision=6141
2009-01-18 12:15:48 +00:00
Chris Young
1417b0c0b8 Complete Unicode text display implementation bar styles (bold, italic)
Need to find out why it is freezing on yahoo.ru

svn path=/trunk/netsurf/; revision=6115
2009-01-17 15:29:41 +00:00
Chris Young
da4b0580b9 Most nsfont placement routines done for UTF-8 printing, missing the odd character off
of the end of lines though so needs some tweaking.

svn path=/trunk/netsurf/; revision=6109
2009-01-17 00:43:51 +00:00
Chris Young
cd4f5ebd08 nsfont_width implemented for Unicode text
cache outline fonts for big speedup

still need to implement other text size functions
and also bold and italic fonts

svn path=/trunk/netsurf/; revision=6095
2009-01-16 20:05:21 +00:00
Chris Young
15bd48a0da Spacing perfect, text now printing correctly on baseline.
Formatting is mostly only wrong when non-local charset characters are being printed,
due to the current text size calculations routines needing rewriting.

svn path=/trunk/netsurf/; revision=6073
2009-01-15 23:15:17 +00:00
Chris Young
82a801dbfa Much faster Unicode text display (still slower than local charset mode though)
Improved character spacing

Still some formatting issues:
Baseline is ignored
The text size calculation routines need to be re-written for the Unicode display

However sites are mostly readable now with this option enabled.

svn path=/trunk/netsurf/; revision=6072
2009-01-15 22:46:28 +00:00
Chris Young
2967b76f4a Unicode text display. Painfully slow and needs some work wrt text alignment, colours.
The nsfont_width etc functions also need adjustment.

svn path=/trunk/netsurf/; revision=5938
2008-12-27 23:25:42 +00:00
Chris Young
b682523066 Minor improvements to output.
svn path=/trunk/netsurf/; revision=5905
2008-12-13 23:20:49 +00:00
Chris Young
d9c7f033e6 Code cleanup, removed remnants of ttengine experimental code (way too slow to be
useful)

svn path=/trunk/netsurf/; revision=5337
2008-09-15 22:18:33 +00:00
Chris Young
5c9f7937f5 Fixed bold/italic styles
svn path=/trunk/netsurf/; revision=5328
2008-09-15 18:56:11 +00:00
Chris Young
35befab994 Experimental font code to plot Unicode text.
svn path=/trunk/netsurf/; revision=5220
2008-08-30 16:55:25 +00:00
Chris Young
c7da20b4c1 Improved text reflow more
svn path=/trunk/netsurf/; revision=5208
2008-08-26 18:03:07 +00:00
Chris Young
2d4818c5ad Work on local charset encoded strings for improved layout.
svn path=/trunk/netsurf/; revision=5204
2008-08-26 01:21:22 +00:00
Chris Young
f071afe243 Code cleanup.
svn path=/trunk/netsurf/; revision=5167
2008-08-21 21:42:48 +00:00
Chris Young
61294f493e Close fonts properly and default back to initial RastPort font.
svn path=/trunk/netsurf/; revision=5136
2008-08-17 16:22:40 +00:00
Chris Young
ea5e026f7d Fixed font styles
svn path=/trunk/netsurf/; revision=5075
2008-08-12 17:47:35 +00:00