Commit Graph

42 Commits

Author SHA1 Message Date
Michael Drake 31def6a338 Add rudimentary support for resizing.
- Currently only libnsfb's SDL surface supports resizing.
- Flickers like crazy while resizing.  Possibly because the SDL
  surface is not set to use double buffering.
- The internal widget library, fbtk, was never intended for this,
  as such it has no knowledge of how a widget should be positioned
  with respect to its parent.
  This means the top level window has to track everything and move
  them itself.
2014-07-26 22:12:55 +01:00
Michael Drake 4cbc56ebc1 Add Unicode support to internal font.
+ Now contains more glpyhs (was previously limited to cp-1252).
  + When a glyph is unavailable, the codepoint is now rendered.
  + Added glyph data file.
  + Added converter to generate the font's .c file from the data.

TODO:

  The generated file is currently checked into the repo, but it
  should be generated as part of the build process, in the
  build-* directory.

  To update the generated source file, first build the converter:

      $ gcc -O2 -Wall framebuffer/convert_font.c -lm \
          -o build-Linux-framebuffer/tools/convert_font

  And then use it to generate the souce file:

      $ build-Linux-framebuffer/tools/convert_font \
         framebuffer/res/fonts/glyph_data \
         framebuffer/GEN_font_internal.c -v

  The converter's usage is:

     convert_font [options] <in_file> <out_file>

  See convert_font --help for more details.
2014-05-06 21:31:05 +01:00
Michael Drake e1a96ecfe1 Register destruction callback to free text widget text. 2013-10-23 19:58:20 +01:00
Michael Drake fe67bd95d7 There must be a next widget for swap_siblings. 2013-09-05 14:24:17 +01:00
Michael Drake c56560c2ac Suppress most fbtk logging when FBTK_LOGGING is unset. 2013-08-29 12:28:37 +01:00
Michael Drake 5ca6862a87 FONT_SIZE_SCALE is for preserving fractional parts, so use it properly. 2013-08-29 12:04:37 +01:00
Michael Drake 7af0614202 Make delete line key enum value name less missleading. (Doesn't cut to clipboard.) 2013-02-11 10:34:06 +00:00
Michael Drake 5f7a3a7ada Widget can't be NULL. 2012-10-11 14:07:22 +01:00
Michael Drake 84e1bf89d9 Add OSK icon. 2012-09-28 19:52:21 +01:00
Michael Drake 53a379ea45 Squash warning. 2012-08-10 12:17:34 +01:00
Michael Drake 126141a52c Ensure text is at the right height for Freetype and Internal fonts. 2012-08-08 14:04:57 +01:00
Michael Drake b238791002 Use enum instead of magic numbers for tracking key modifier states. Pass special keys to core (e.g. WORD_LEFT, SELECT_ALL, etc). 2012-08-01 14:47:20 +01:00
Michael Drake 46527795db Pass pointer hotspots to libnsfb. 2012-08-01 12:52:46 +01:00
Michael Drake d84ad62a04 Scroll text in writable text widget so caret is always in view. 2012-08-01 09:29:26 +01:00
Michael Drake 465ebb2c7b Only writable text widget needs caret rendering. 2012-08-01 09:16:25 +01:00
Michael Drake 9e3db46b67 Handle CTRL modifier too. CTRL with cursor left/right is same as SHIFT. CTRL+U clears writable. 2012-07-31 22:55:08 +01:00
Michael Drake 21ce8800b8 Cursor left/right keys plus modifier move caret to extrems. 2012-07-31 22:40:47 +01:00
Michael Drake 75cc4a06be Factor out some repeated code. 2012-07-31 22:30:39 +01:00
Michael Drake 53183b2411 Make text input widget remove caret on "strip focus" event. 2012-07-31 22:18:44 +01:00
Michael Drake 72cb5b6ea4 Add widget callback for getting stripped of focus. Call it in the input setter, on previous input holder. 2012-07-31 22:14:48 +01:00
Michael Drake daa47fce52 Use setter when giving clicked input focus. 2012-07-31 21:49:01 +01:00
Michael Drake 2999410af6 When a text input widget has its text set, and it has the caret, move the caret to the end. 2012-07-31 21:04:20 +01:00
Michael Drake 140795500c Claim, position, and render caret in text input widget. Currently does not remove caret when input widget is stripped of focus (because widget doesn't know). 2012-07-31 20:43:43 +01:00
Michael Drake 941a48dabd When setting fbtk caret, register callback for redrawing caret removal. 2012-07-31 20:40:14 +01:00
Michael Drake 4125a8afdf Remove strlen from redraw functions. 2012-07-31 15:18:25 +01:00
Michael Drake 45b9d96678 Add support for editing text input widget contents from arbitrary position in string (instead of just end). 2012-07-31 15:13:52 +01:00
Michael Drake 90b0c48bb2 Split out common code to generate a font style for text input widget. 2012-07-31 14:06:57 +01:00
Michael Drake 8db6d74bcb Add basic awareness of text input caret to ftbk and functions to get/set caret pos. 2012-07-31 14:04:12 +01:00
Michael Drake 41f88e6937 Scrollbar behaviour fixes.
Stop scrollbar sliding at different rate from pointer.
Stop jump on drag start when scrollbar position indicator isn't at zero.
2012-07-27 14:05:13 +01:00
Michael Drake 382c2f2289 Only warp pointer once for a sequence of consecutive move events. Further reduces lag when dragging scrollbar. 2012-07-26 23:14:27 +01:00
Michael Drake 514bee5786 Handle consecutive queued mouse move events together. Reduces pointer lag when busy. 2012-07-26 22:38:38 +01:00
Vincent Sanders 820312eb35 Update for modified libnsfb API
Make thumbnailing work

svn path=/trunk/netsurf/; revision=13159
2011-11-21 08:45:08 +00:00
Michael Drake eddae6af06 Remove plotter table global. Pass a redraw context around redraw functions. Knockout could be handled better. Note: untested on most front ends.
svn path=/trunk/netsurf/; revision=12543
2011-06-30 15:48:07 +00:00
Vincent Sanders 06764ea9f0 add control of fbtk text widget padding
svn path=/trunk/netsurf/; revision=12116
2011-03-21 07:51:37 +00:00
John Mark Bell d945884cb1 Fix font sizing in text widget
svn path=/trunk/netsurf/; revision=12016
2011-03-13 10:52:09 +00:00
Vincent Sanders 30a92ed4e6 remove malloc.h anachronism
svn path=/trunk/netsurf/; revision=11227
2011-01-06 09:24:14 +00:00
Vincent Sanders 7a3a96045c fix off by 1 in previous commit
svn path=/trunk/netsurf/; revision=10958
2010-12-04 14:30:08 +00:00
Vincent Sanders 4cf27ef338 Stop cursor leaving the root widget and causing a segfault (Found by tlsa)
svn path=/trunk/netsurf/; revision=10957
2010-12-04 14:24:53 +00:00
Michael Drake 71ea71540a Give the browser window widget input focus by defualt on startup.
svn path=/trunk/netsurf/; revision=10948
2010-11-20 18:50:45 +00:00
Michael Drake 908da609e7 Make click action happen on release.
svn path=/trunk/netsurf/; revision=10947
2010-11-20 17:27:36 +00:00
Vincent Sanders 60fc5bab4f add explicit inlude for varargs
svn path=/trunk/netsurf/; revision=10678
2010-08-03 10:16:41 +00:00
John Mark Bell 5bebf2f2fc Merge branches/vince/netsurf-fbtk-rework to trunk.
svn path=/trunk/netsurf/; revision=10605
2010-07-07 18:08:17 +00:00