History log of /haiku/src/kits/interface/Font.cpp
Revision Date Author Comments
# a31ade72 01-Mar-2024 Máximo Castañeda <antiswen@yahoo.es>

BFont: remove default values from ambiguous method

Noticed by Joachim Mairböck after I hastily merged change 7402.

Also add named variation instance selection for fonts loaded from memory
areas like there already is for files.

Change-Id: I76de22181dc39559956c25987165be2f8a8c4a37
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7493
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# d0f06357 14-Feb-2024 Jérôme Duval <jerome.duval@gmail.com>

app_server FontManager: load all fonts and named-variants from a file

BFont::LoadFont can now use an index (0-based) and an optional named-instance (1-based)
to select the font variant from a file.
BFont::LoadFont can also use an index when loading from memory.

Change-Id: I0ce3eb6cc77d32cf43847416561eafe3063ca693
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7402
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: Máximo Castañeda <antiswen@yahoo.es>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 4f52a155 16-Jan-2023 Dale Cieslak <dcieslak@yahoo.com>

BFont: Minor code cleanup and autolocking for AppFontManager

* changed explicit locking to use Autolocker for gFontManager/fAppFontManager
in ServerApp, per comments in https://review.haiku-os.org/c/haiku/+/4790
* changed BFont::LoadFont (memory version) to use size_t for size and offset
* no functional changes

Change-Id: I438a4975d5bb1b2fa17bc54e9e171c31dadfeec5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6003
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 85b82f85 19-Jul-2022 Dale Cieslak <dcieslak@yahoo.com>

BFont: allow loading of user fonts from disk or memory

This patch adds an API call to BFont, called LoadFont, that
takes a string path to a font file. The user fonts are managed
via a new class called AppFontManager that inherits from the base
class FontManagerBase but adds the methods to add and remove user
fonts from disk or memory. There is also a new method called UnloadFont
to remove a user font, but on exit of an app all user fonts should be
automatically cleaned up.

Global/system fonts are managed by the GlobalFontManager, which is
a new class that also inherits from the base class FontManagerBase,
replacing the old "FontManager" class.

A maximum of 128 user fonts may be loaded, and memory fonts
may not exceed 20MB.

There's also an overloaded version of LoadFont that accepts
an area_id and loads the font from memory. A size and offset may
optionally be provided to allow for an area that contains more
than just a font.

Change-Id: I6add42bdf0c0cefc0e2e2a4984fd848c3e7269e5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4790
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 094079b8 04-Jul-2022 Dale Cieslak <dcieslak@yahoo.com>

BFont: Implement BFont::BoundingBox

Extracted as separate patch from CR 4790; implement BFont::BoundingBox
as it was in BeOS. Returns a BRect that encloses any character in a
font, scaled by the font size.

Since the FreeType bbox is only valid for vector outlines, for bitmap
fonts, return a BRect with the dimensions of the bitmap font that is
closest to the font size.

Tested with CharacterMap. Will update CharacterMap to use the bounding
box once this change is landed.

Note that bitmap font rendering doesn't appear to work at all.

Change-ID: I8fc42ca0ddc0c77e04e0216001cd17e086ec7495
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5431
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# f1fafe31 12-Apr-2019 Augustin Cavalier <waddlesplash@gmail.com>

kernel/OS.h: Include sys/types.h instead of pthread.h.

This avoids polluting the namespace significantly. Also adjust
all files which depended on this behavior to include pthread.h
directly.


# 9b6b158b 10-Mar-2016 dsizzle <dcieslak@yahoo.com>

Implementation of BFont::Blocks

BFont::Blocks is now implemented in ServerFont, via a call through the
app_server. It uses fontconfig to iterate through a charset of a font
and stores the defined blocks in a bitmap.

A new API was added, BFont::IncludesBlock, that will allow for arbitrary
testing of a given Unicode block. Since nothing is cached, searching
through an entire charset for a series of Unicode blocks can be quite
slow. In a given block there may be only 1 or 2 characters actually
defined so every character within a block needs to be checked until one
is found, which in a degenerate case will mean the entire block is
checked.

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>


# 95fdee0b 21-Jan-2015 Axel Dörfler <axeld@pinc-software.de>

BStringView: added truncation support.

* Added new truncation mode B_NO_TRUNCATION.
* The Truncation()/SetTruncation() methods itself are Dano-compatible,
however, there was no B_NO_TRUNCATION.


# 91233f88 26-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

Font: Work on support for spacing modes.

* Change default spacing to B_BITMAP_SPACING. The BeBook does not document
what the default spacing is, and I have no BeOS install handy to check.
However, I believe that B_BITMAP_SPACING is what should be the default,
since it gives the best visible result for the common use-case.
In terms of implementation, there is no change, since spacing was ignored
until now and the behavior was that of B_BITMAP_SPACING. This change could
however break BeOS apps which assume B_CHAR_SPACING is the default and don't
set it on new when they need it. Sample code in the BeBook however shows
setting B_CHAR_SPACING on a newly created BFont.
* Implement B_STRING_SPACING to do something sensible. The BeBook documentation
is completely vague in what it is actually supposed to do. Given the
possibilities of FreeType, I am implementing it to enable the use of
kerning. Kerning optimizes the spacing between two glyphs, for example, it
would decrease the spacing between "T" and "e" in the string "Test" for
our default font. Untested.


# 569eed2d 26-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

Font.cpp: Style cleanup

* Unify asterisk style
* switch indentation style of FontList declaration
* Order FontList methods according to declaration
* Use named constants in default BFont constructor for spacing and encoding.


# 9c840df0 18-Jan-2013 John Scipione <jscipione@gmail.com>

Woops, I meant == not =


# a8f3c5a8 18-Jan-2013 John Scipione <jscipione@gmail.com>

Style fixes only


# 840476e1 18-Jan-2013 John Scipione <jscipione@gmail.com>

Rename SetFamilyAndStyle variable to code matching the header and BeBook.


# c969b462 18-Jan-2013 John Scipione <jscipione@gmail.com>

Put comments in methods, only description line outside


# 1f7ff051 18-Jan-2013 John Scipione <jscipione@gmail.com>

Style updates and remove docs from cpp file


# 5bc9fb9d 01-Feb-2010 Michael Lotz <mmlr@mlotz.ch>

* Replace the truncate_string() helper function with a new, simplified version.
* Remove no longer necessary support functions.
* The new version uses a single BString as input/output parameter and only
modifies that one by removing non-fitting chars and inserting the ellipsis
where appropriate, so avoids copying around bytes/chars/strings in a few
places. It uses the new Chars functions of BString so also no need for manual
multibyte handling.
* Adjusted the BFont and ServerFont usage of truncate_string() which are both
simplified by using the single BString. It avoids a lot of temprary
allocations and string copying. The char * version of BFont
GetTruncatedStrings() now uses the BString version and not the other way
around anymore which requires us to allocate temporary BString objects, it's
not worse than before though.
* This fixes a bunch of problems with the previous functions like always
prepending the ellipsis for B_TRUNCATE_BEGINNING, crashing on short enough
widths, violating the width in the B_TRUNCATE_END case when the width was
short enough, non-optimal truncation in a few cases and sometimes truncation
where none would've been needed. Also fixes #4128 which was a symptom of the
broken B_TRUNCATE_BEGINNING.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35381 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0eb45760 29-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Turned FontList into a singleton.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34374 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9fffb1c2 02-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* At least pretend to support all unicode blocks, and don't make such
obvious lies.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29867 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 59e13a3f 03-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Patch by Andrej Spielmann (GSoC):
* Simplified the subpixel related methods for the AGG "pixel format" template
interface, the ones for the solid cover simply pass through the existing
methods, so only one subpixel blending function is left which does the actual
work (this removes a lot of the previously added code)
* Implemented a new rasterizer based on the original AGG rasterizer which
implements subpixel anti-aliasing for any generic AGG vector pipelines. It
is now optionally used in Painter and AGGTextRenderer (for vector fonts, ie
rotated, sheared or big enough fonts) depending on the global subpixel
setting.
* Put all subpixel variables into the new GlobalSubpixelSettings.h|cpp
* Simplified DesktopSettings related classes a bit and renamed previous
FontSubpixelAntialiasing to just SubpixelAntialiasing.
* The private libbe functions for subpixel related settings moved from Font.cpp
to InterfaceDefs.cpp where other such functions live. They are not related
to fonts only anymore.
* Removed the subpixel related settings again from the Fonts preflet and added
them to the Appearance preflet instead.

All of the above implements subpixel anti-aliasing on a global scale, which
to my knowledge no other OS is doing at the moment. Any vector rendering
can optionally use subpixel anti-aliasing in Haiku now. The bitmap cached fonts
are still affected by the Freetype complile time #define to enable the patented
subpixel rasterization (three times wide glyphs). Vector fonts and shapes are
not affected though at the moment.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26755 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1d6aab33 10-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

Patch by Andrej Spielmann (GSOC):
* Add a private BFont API that sets/gets the subpixel and hinting configuration
of the app_server. Currently, the options are boolean, but may be changed
to modes later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26363 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e705558b 27-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24159 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 54a7f092 06-Sep-2007 Stephan Aßmus <superstippi@gmx.de>

* fExtraFlags was not maintained in various places, most importantly nowhere
in SetFamilyAndStyle(), this should fix stuff like IsFixed() not working


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22189 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2222864e 02-Aug-2007 Stephan Aßmus <superstippi@gmx.de>

* complete overhaul of the font/glyph caching
* the previous AGG implementation is superfluous
* the new implementation is based on that one, but in a way that allows
read/write locking to the list of cache entries (fonts) as well as
read/write locking to the cached glyphs per individual font cache entry
* new GlyphLayoutEngine.h, which is to be the central place for layouting
glyphs along the baseline.
It handles the locking for getting the font cache entries.
It works by giving it a template class GlyphConsumer which does the
actual work.
* changed AGGTextRenderer to use the new font cache
* changed ServerFont::StringWidth(), and the bounding box stuff to use it
* changed DrawingEngine, it doesn't need the global font lock anymore
* our BFont thought that GetBoundingBoxesAsGlyphs and GetBoundingBoxesAsString
is the same, which of course it isn't, hence the two separate functions...
AsGlyphs just gets the bounding box of each glyph in a string, not treating
the string as an actual word
AsString adds the offset of the glyph in the word to the bounding box
* changed ServerProtocol.h accordingly for the different bounding box meaning


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21797 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e89f68e2 02-Apr-2007 Jérôme Duval <korli@users.berlios.de>

attach missing args for AS_GET_EDGES


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20516 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 10f6ed94 17-Dec-2006 Stephan Aßmus <superstippi@gmx.de>

* implemented "false bold" for text rendering. It is a new property
of BFont. You can BFont::SetFalseBoldWidth(float) a width on a
BFont object, and it will cause the glyph shapes to be run through
an AGG "contour converter" so that they become thicker or thinner.
IIRC, this is commonly referred to as "false bold". The "width" value
is the distance in pixels that the new glyph outline will be offset
from the original outline.

It would be nice if someone could look at my change to View.h with
regards to the B_FONT_ALL flag.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19547 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c585b1f4 03-Oct-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

GetEscapements() didnt' take the font spacing into account. Looks like the spacing is ignored by the font backend, though, am I correct?

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18990 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 839e7aa6 13-May-2006 DarkWyrm <darkwyrm@gmail.com>

Enabled *_font_cache_info functions - used by Scripture Guide 0.8.0


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17436 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 93820f1e 26-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

Renamed moreUTF8.h to utf8_functions.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17239 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 383638ee 01-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16559 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ed942c1 27-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

* Added LinkReceiver methods that return the length of the string.
* AS_GET_STRING_WIDTHS now uses this method to send the strings to the app_server;
ie. it no longer sends the whole strings, and it saves sending the string length
separately.
* BFont::StringWidth() will now always return 0.0f in case of an error (instead of
some random value)
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16525 a95241bf-73f2-0310-859d-f6bbb57e9c96


# db5734a4 05-Feb-2006 Michael Lotz <mmlr@mlotz.ch>

More work on the BFont special functions.

* Reworked functions like GetEscapements(), GetBoundingBoxesAsString() and GetGlyphShapes() completely
* Made the ServerFont functions uniform in their prototypes and cleaned out unnecessary arguments
* Added new UTF8 handling functions to moreUTF8.h that are now used by ServerFont
* Put the common transformations of the FT_Face into an own GetTransformedFace() to lessen code duplication

In other words, ServerFont is now cleaned and handles UTF8 pretty efficiently. Some ToDo's are still left though.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16241 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bb96bd0a 04-Feb-2006 Michael Lotz <mmlr@mlotz.ch>

* Fixed GetGlyphShapes(). The BShapes that are outputted are correct now but the app_server still cannot draw them correctly.
* Changed the allocation to new for GetGlyphShapes() and GetEscapements() as the data is deleted in ServerApp.cpp
* Minor cleanup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16231 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 758b1d0e 12-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixes that make Haiku build with gcc 4. Mainly out of the following
categories:
* Missing includes (like <stdlib.h> and <string.h>).
* Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so.
* Local variables shadowing parameters.
* Default parameters in function definitions (as opposed to function
declarations).
* All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported
explicitly from the std:: namespace now.
* "new (sometype)[...]" must read "new sometype[...]", even if sometype is
something like "const char *".
* __FUNCTION__ is no longer a string literal (but a string expression), i.e.
'printf(__FUNCTION__ ": ...\n")' is invalid code.
* A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes"
is an invalid expression.
* "friend class SomeClass" only works when SomeClass is known before.
Otherwise the an inner class with that name is considered as friend.
gcc 4 is much pickier about scopes.
* gcc 4 is generally stricter with respect to type conversions in C.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fff7b3cd 10-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Now also sorts the font list - unlike the app_server, it could also take the
user's locale into account.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14827 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4e7d1d4b 09-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Oops: 1) fixed warning, 2) added missing bracket (in PrintToStream() output).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14808 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 31cff4dc 09-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Made BFont::PrintToStream() a bit more useful.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14807 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f1d70d80 09-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

New private function _get_system_default_font_() that makes the AS_GET_DEFAULT_SYSTEM_FONT
command available to the fonts preferences.
Now uses the maximum length argument for LinkSender::AttachString() it got from the API user.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14801 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e37155c6 07-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* The font list is now cached client-side. The app_server is only queried for
updates.
* Optimized retrieving the font list from the server.
* This greatly simplifies the app_server communication for getting the font
list as well - there are now only 2 commands instead of 6.
* Moved extra font flags creation from ServerApp to FontStyle::Flags().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14751 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 42b5ae7d 07-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

BFont::_GetExtraFlags() no longer returns a status value, but fills in default
values in case the server communication failed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14742 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b2cc3454 07-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

More font work:
* Simplified server communication a bit: instead of separate queries for font
direction, "is fixed", ... there is now a private extra flags field that is
filled on demand.
* The server command names now describe what the command does, and are not simply
named after the BFont method (AS_SET_FAMILY_AND_STYLE vs. AS_GET_FAMILY_AND_STYLE_IDS).
* Replaced B_SET_SYSFONT_{PLAIN|BOLD|FIXED} with a single B_GET_SYSTEM_FONTS.
* Rewrote Font.h and added our license.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14741 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5d1bd031 02-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed some communication mismatches I introduced earlier: we are no longer sending
whole font_family/style strings (each 64 bytes), but only strings, because they
are usually shorter than 64 bytes.
This should fix the StyleEdit problems Stefano were seeing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14628 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f121769 01-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Added and implemented AS_GET_FONT_FILE_FORMAT - currently, it returns always
B_TRUETYPE_WINDOWS, though.
* possibly returned an uninitialized error code in some BFont methods.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14622 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b8cde449 01-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

More font work:
* simplified BFont::SetFamily*() server communication - there is now only
AS_SET_FAMILY_AND_STYLE left, but at least that one works correctly.
* BFont::fFace is now always updated correctly.
* Moved the fFace masking to the server - BFont doesn't know enough to do
this correctly, anyway.
* Only one version of get_font_style() worked correctly.
* Font family/style ID and index were used completely mixed up - this
would have become an issue as soon as the font list changes during
runtime.
* Enabled AS_GET_FONT_DIRECTION again - missing functionality should only
be taken into account on lowest level as long as it can be emulated.
* Made FontServer a bit clearer to use (more to come).
* fixed several allocation leaks in the font server communication.
* New FontStyle::Direction() method, that currently only returns
B_FONT_LEFT_TO_RIGHT, though.
* more cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14618 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 297cd250 01-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Followed Marcus' suggestion and made fHeight mutable - not nice, but cleaner
than casting away the const.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14614 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec769ec5 31-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

Implemented caching of the font_height, as suggested by Stefano - seems to work fine.
Also added some TODO items (mostly to SetFace()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14612 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a80b5fa 01-Nov-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Looks like Axel did already all the changes I wanted to do.... so I'll just add a comment

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14609 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9b1ad6f4 31-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed a bunch of bugs in the font sub-system:
* BFont::Face() was almost always wrong - also on the server side,
_TranslateStyleToFace() was broken.
* a clean font was not correctly initialized to be_plain_font
* BFont::GetFamilyAndStyle() did not work correctly if either family
or style was NULL - which is allowed, and shouldn't have let it abort
its task.
* FontServer::GetStyle() by ID did not work reliably under certain
circumstances (but those were not reached with the current server)
* BFont::SetFamilyAndStyle() did not work when family was NULL, and
it also never set fFace correctly.
* Introduced a FontFamily::GetStyleWithFace()
* Renamed some FontFamily/FontStyle methods from ie. GetID() to ID()
to match the style used everywhere else in BeOS.
* Removed AS_SET_FAMILY_NAME as its no longer in use.
* Lots of cleanup and simplification.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14602 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 718af224 21-Oct-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

fFlags was not initialized in the =operator and in the copy constructors

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14467 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3cf915cb 26-Aug-2005 Jérôme Duval <korli@users.berlios.de>

spacing is needed for GetBoundingBoxes too (string case)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14072 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 697085a5 26-Aug-2005 Jérôme Duval <korli@users.berlios.de>

shear is needed for GetBoundingBoxes
now uses _GetBoundingBoxes_ for GetBoundingBoxesAsGlyphs and GetBoundingBoxesAsString


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14071 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f23ef90 25-Aug-2005 Jérôme Duval <korli@users.berlios.de>

added GetBoundingBoxesAsGlyph, GetBoundingBoxesAsString, GetBoundingBoxesAsStrings
real implementation with freetype still missing


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14062 a95241bf-73f2-0310-859d-f6bbb57e9c96


# af86ce75 24-Aug-2005 Jérôme Duval <korli@users.berlios.de>

copyright update


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14058 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b1263be 24-Aug-2005 Jérôme Duval <korli@users.berlios.de>

reworked BFont::GetStringWidths and BFont::StringWidth
implemented BFont::GetEdges


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14057 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2185eed6 23-Aug-2005 Jérôme Duval <korli@users.berlios.de>

implemented GetHasGlyphs for real


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14056 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 599be434 19-Jul-2005 Jérôme Duval <korli@users.berlios.de>

Implemented GetHasGlyphs support somehow (FT support is lacking)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13766 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4da5225f 10-Jul-2005 Michael Lotz <mmlr@mlotz.ch>

Fixed broken count_font_styles(), font menus now really work.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13626 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f319b33 10-Jul-2005 Michael Lotz <mmlr@mlotz.ch>

Some cleanup, some removed typos, some unification, some fixes and some added todos. Most of it related to client-server communication. Apps that rely on BFont stuff should work now (StyledEdit, Fonts, Keymap, Menu, ...). Or should not hang/quit at startup at least.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13625 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2d4b179d 15-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Implemented B_TRUNCATE_MIDDLE, since truncate_strings() could corrupt memory
before in this mode. Some further cleanup, only B_TRUNCATE_BEGINNING is still
left.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13154 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd10337f 14-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed BAppServerLink to AppServerLink, BPortLink to PortLink, LinkMsgReader
to LinkReceiver, LinkMsgSender to LinkSender, and put everything into the
BPrivate namespace.
Made AppServerLink a cheap object - it will use the applications receiver/sender
and not create its own buffers.
Fixed broken communication stuff here and there (mostly Font.cpp).
Put the newly introduced set|get_system_colors() into the BPrivate namespace -
please don't introduce private functions into the public namespace!!!
Also fixed their broken communication use, as Darkwyrm obviously forgot about
it again: the sequence Flush(); GetNextMessage() without error checking is
purely wrong and can make the app hang and/or crash! :-)
Other minor cleanup.
The input_server used some test mode with the haiku build target which is
probably wrong.
Hopefully I did not forget anything this time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13128 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b31e304 09-Jun-2005 DarkWyrm <darkwyrm@gmail.com>

More fixes to the prefs panel. In fact, for all practical purposes, it should be done.
Added private function _set_system_font_() to not use R5's hack


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13031 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 59345e26 03-Jun-2005 Stephan Aßmus <superstippi@gmx.de>

huge cleanup, support for SetSizeLimits, support for truncating strings, numerous decorator bug fixes, Layer does not draw when view color is B_TRANSPARENT_COLOR, cleaner dispatching of mouse events to the WinBorder in RootLayer, commented the char map selection in the font server, as it seems glyph lookup by unicode index works much better with the default map

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12945 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a1c5fb34 16-May-2005 Stephan Aßmus <superstippi@gmx.de>

Added a note in GetEscapements

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12688 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9bdb0522 12-May-2005 Stephan Aßmus <superstippi@gmx.de>

Implemented BFont::GetEscapments() float version. It is pretty rough yet, but appears to handle UTF8 correctly. The optional escapement_delta is currently ignored. I didn't touch other functionality too much, until I know more about it.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12645 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f654216 07-May-2005 DarkWyrm <darkwyrm@gmail.com>

Added a rudimentary version of the float version of GetEscapements
Added a TODO to eventually support UTF8 characters


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12589 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7d5778de 01-Apr-2005 Michael Lotz <mmlr@mlotz.ch>

Added support for GetEscapements() too. Still unfinished. Maybe this should be moved elsewhere?

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12216 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c2da902f 01-Apr-2005 Michael Lotz <mmlr@mlotz.ch>

Implemented BPortLink::AttachShape and BPortLink::ReadShape and used them for passing the shapes in AS_GET_GLYPH_SHAPES.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12215 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ebf8af66 01-Apr-2005 Michael Lotz <mmlr@mlotz.ch>

Added support for BFont::GetGlyphShapes. Not finished yet and untested, delivery method as to be changed.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12214 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 20337f31 31-Mar-2005 Michael Lotz <mmlr@mlotz.ch>

Corrected reply handling of FlushWithReply in many places what should fix some strange bugs.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12211 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ac13e18b 26-Mar-2005 Michael Lotz <mmlr@mlotz.ch>

The default shear is actually 90.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12063 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b3838e6 05-Feb-2005 DarkWyrm <darkwyrm@gmail.com>

Tweaks to GetStringWidth()'s server protocol


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11260 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9e6e69ab 20-Jan-2005 DarkWyrm <darkwyrm@gmail.com>

Finished most of the unimplemented methods


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10926 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f8d6d56 17-Jan-2005 DarkWyrm <darkwyrm@gmail.com>

Moved _init_global_fonts to Font.cpp
Implemented _init_global_fonts
BFont::GetHeight returns proper values


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10804 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5b49ad98 15-Jan-2005 DarkWyrm <darkwyrm@gmail.com>

Tweaks to make synchronous replies less work


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10770 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5fbd2c2f 15-Jan-2005 DarkWyrm <darkwyrm@gmail.com>

Implemented a lot of the client side functions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10768 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d9bb1ef4 15-Jan-2005 DarkWyrm <darkwyrm@gmail.com>

Implemented _font_control()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10767 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 50df61f8 20-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Fixed warnings.
Applied our style guide.
Removed fHeight from comparisons, fSize should be enough. Clarified comparisons.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10506 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3ceb31b9 30-Jul-2004 DarkWyrm <darkwyrm@gmail.com>

Pahtz's changes from PortLink/BSession/PortMessage/PortQueue to BPortLink


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8519 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c78c0787 30-Dec-2003 haydentech <haydentech@nowhere.fake>

gcc 3 fix (no default args in implementation) and dead code removal


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5839 a95241bf-73f2-0310-859d-f6bbb57e9c96


# edd19f3d 01-Sep-2003 DarkWyrm <darkwyrm@gmail.com>

Removed a few compiler warnings
Added app-side support for font list
Added mostly-empty global font functions and documented them


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4439 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 40564fea 09-Jul-2003 DarkWyrm <darkwyrm@gmail.com>

Added license and header


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3923 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b6ed79e 28-Feb-2003 DarkWyrm <darkwyrm@gmail.com>

Finally got around to removing the memory leak.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2855 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3bb5ee98 23-Oct-2002 beveloper <beveloper@nowhere.fake>

BFont doesn't have a destructor


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1629 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e57d159b 13-Oct-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed include.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1505 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3a93f97d 12-Oct-2002 DarkWyrm <darkwyrm@gmail.com>

*Doh* Forgot a couple minor edits before initial checkin


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1497 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34377c9b 12-Oct-2002 DarkWyrm <darkwyrm@gmail.com>

Initial framework checkin. Rudimentary functions implemented.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1495 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 95fdee0bc0ac24d9df13391dd8332fcee64dc94c 21-Jan-2015 Axel Dörfler <axeld@pinc-software.de>

BStringView: added truncation support.

* Added new truncation mode B_NO_TRUNCATION.
* The Truncation()/SetTruncation() methods itself are Dano-compatible,
however, there was no B_NO_TRUNCATION.


# 91233f88a3b4dc392389fad1626c56ed0b3812a0 26-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

Font: Work on support for spacing modes.

* Change default spacing to B_BITMAP_SPACING. The BeBook does not document
what the default spacing is, and I have no BeOS install handy to check.
However, I believe that B_BITMAP_SPACING is what should be the default,
since it gives the best visible result for the common use-case.
In terms of implementation, there is no change, since spacing was ignored
until now and the behavior was that of B_BITMAP_SPACING. This change could
however break BeOS apps which assume B_CHAR_SPACING is the default and don't
set it on new when they need it. Sample code in the BeBook however shows
setting B_CHAR_SPACING on a newly created BFont.
* Implement B_STRING_SPACING to do something sensible. The BeBook documentation
is completely vague in what it is actually supposed to do. Given the
possibilities of FreeType, I am implementing it to enable the use of
kerning. Kerning optimizes the spacing between two glyphs, for example, it
would decrease the spacing between "T" and "e" in the string "Test" for
our default font. Untested.


# 569eed2db51aa99e8f088c2a90cf3eb0240a4b2c 26-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

Font.cpp: Style cleanup

* Unify asterisk style
* switch indentation style of FontList declaration
* Order FontList methods according to declaration
* Use named constants in default BFont constructor for spacing and encoding.


# 9c840df052ed690ed6fcbf870e1769e1e34644c0 18-Jan-2013 John Scipione <jscipione@gmail.com>

Woops, I meant == not =


# a8f3c5a8fb8cf179ff555c2236a05ce764854fa7 18-Jan-2013 John Scipione <jscipione@gmail.com>

Style fixes only


# 840476e1cbde279423c4e4ae8c75fc53350caf53 18-Jan-2013 John Scipione <jscipione@gmail.com>

Rename SetFamilyAndStyle variable to code matching the header and BeBook.


# c969b46240df3923e288b13d264da16a10d4f32e 18-Jan-2013 John Scipione <jscipione@gmail.com>

Put comments in methods, only description line outside


# 1f7ff051a783362f02d3a8bf5f3b8b845fda7d98 18-Jan-2013 John Scipione <jscipione@gmail.com>

Style updates and remove docs from cpp file


# 5bc9fb9d241a00edec39ef04479d90b61dba7995 01-Feb-2010 Michael Lotz <mmlr@mlotz.ch>

* Replace the truncate_string() helper function with a new, simplified version.
* Remove no longer necessary support functions.
* The new version uses a single BString as input/output parameter and only
modifies that one by removing non-fitting chars and inserting the ellipsis
where appropriate, so avoids copying around bytes/chars/strings in a few
places. It uses the new Chars functions of BString so also no need for manual
multibyte handling.
* Adjusted the BFont and ServerFont usage of truncate_string() which are both
simplified by using the single BString. It avoids a lot of temprary
allocations and string copying. The char * version of BFont
GetTruncatedStrings() now uses the BString version and not the other way
around anymore which requires us to allocate temporary BString objects, it's
not worse than before though.
* This fixes a bunch of problems with the previous functions like always
prepending the ellipsis for B_TRUNCATE_BEGINNING, crashing on short enough
widths, violating the width in the B_TRUNCATE_END case when the width was
short enough, non-optimal truncation in a few cases and sometimes truncation
where none would've been needed. Also fixes #4128 which was a symptom of the
broken B_TRUNCATE_BEGINNING.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35381 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0eb45760a73c103e70e1f74bc43848cf8a435c7e 29-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Turned FontList into a singleton.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34374 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9fffb1c294c6cfee66e371804bb076496662f506 02-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* At least pretend to support all unicode blocks, and don't make such
obvious lies.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29867 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 59e13a3f06eedbc797f797da71c6810634b22cd4 03-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Patch by Andrej Spielmann (GSoC):
* Simplified the subpixel related methods for the AGG "pixel format" template
interface, the ones for the solid cover simply pass through the existing
methods, so only one subpixel blending function is left which does the actual
work (this removes a lot of the previously added code)
* Implemented a new rasterizer based on the original AGG rasterizer which
implements subpixel anti-aliasing for any generic AGG vector pipelines. It
is now optionally used in Painter and AGGTextRenderer (for vector fonts, ie
rotated, sheared or big enough fonts) depending on the global subpixel
setting.
* Put all subpixel variables into the new GlobalSubpixelSettings.h|cpp
* Simplified DesktopSettings related classes a bit and renamed previous
FontSubpixelAntialiasing to just SubpixelAntialiasing.
* The private libbe functions for subpixel related settings moved from Font.cpp
to InterfaceDefs.cpp where other such functions live. They are not related
to fonts only anymore.
* Removed the subpixel related settings again from the Fonts preflet and added
them to the Appearance preflet instead.

All of the above implements subpixel anti-aliasing on a global scale, which
to my knowledge no other OS is doing at the moment. Any vector rendering
can optionally use subpixel anti-aliasing in Haiku now. The bitmap cached fonts
are still affected by the Freetype complile time #define to enable the patented
subpixel rasterization (three times wide glyphs). Vector fonts and shapes are
not affected though at the moment.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26755 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1d6aab33035ed962812a05ed7b3652a1580f6d6c 10-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

Patch by Andrej Spielmann (GSOC):
* Add a private BFont API that sets/gets the subpixel and hinting configuration
of the app_server. Currently, the options are boolean, but may be changed
to modes later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26363 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e705558bb9caba7bf39967b9c8ee6b723110c920 27-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24159 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 54a7f0923cd6229a6b2d4058040ce9b7d5c62e08 06-Sep-2007 Stephan Aßmus <superstippi@gmx.de>

* fExtraFlags was not maintained in various places, most importantly nowhere
in SetFamilyAndStyle(), this should fix stuff like IsFixed() not working


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22189 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2222864eed6bc28cff3d837c98d1509dcbcf38bc 02-Aug-2007 Stephan Aßmus <superstippi@gmx.de>

* complete overhaul of the font/glyph caching
* the previous AGG implementation is superfluous
* the new implementation is based on that one, but in a way that allows
read/write locking to the list of cache entries (fonts) as well as
read/write locking to the cached glyphs per individual font cache entry
* new GlyphLayoutEngine.h, which is to be the central place for layouting
glyphs along the baseline.
It handles the locking for getting the font cache entries.
It works by giving it a template class GlyphConsumer which does the
actual work.
* changed AGGTextRenderer to use the new font cache
* changed ServerFont::StringWidth(), and the bounding box stuff to use it
* changed DrawingEngine, it doesn't need the global font lock anymore
* our BFont thought that GetBoundingBoxesAsGlyphs and GetBoundingBoxesAsString
is the same, which of course it isn't, hence the two separate functions...
AsGlyphs just gets the bounding box of each glyph in a string, not treating
the string as an actual word
AsString adds the offset of the glyph in the word to the bounding box
* changed ServerProtocol.h accordingly for the different bounding box meaning


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21797 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e89f68e2773054c23486f975d9646a76a6252f8b 02-Apr-2007 Jérôme Duval <korli@users.berlios.de>

attach missing args for AS_GET_EDGES


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20516 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 10f6ed940bffa4153ff5511897bcc823b1f2d792 17-Dec-2006 Stephan Aßmus <superstippi@gmx.de>

* implemented "false bold" for text rendering. It is a new property
of BFont. You can BFont::SetFalseBoldWidth(float) a width on a
BFont object, and it will cause the glyph shapes to be run through
an AGG "contour converter" so that they become thicker or thinner.
IIRC, this is commonly referred to as "false bold". The "width" value
is the distance in pixels that the new glyph outline will be offset
from the original outline.

It would be nice if someone could look at my change to View.h with
regards to the B_FONT_ALL flag.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19547 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c585b1f46df25a610b39200ab7bb4d4f25c4b4cf 03-Oct-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

GetEscapements() didnt' take the font spacing into account. Looks like the spacing is ignored by the font backend, though, am I correct?

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18990 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 839e7aa6de7a41e0273d1bcc1b44dfdfa3730be5 13-May-2006 DarkWyrm <darkwyrm@gmail.com>

Enabled *_font_cache_info functions - used by Scripture Guide 0.8.0


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17436 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 93820f1ea7afb270758e286246c3757622fb0016 26-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

Renamed moreUTF8.h to utf8_functions.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17239 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 383638eee91e28e52f923b7d649939a9c8c63654 01-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16559 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ed942c199a7fcc5b119566d5626adf5be3f251b 27-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

* Added LinkReceiver methods that return the length of the string.
* AS_GET_STRING_WIDTHS now uses this method to send the strings to the app_server;
ie. it no longer sends the whole strings, and it saves sending the string length
separately.
* BFont::StringWidth() will now always return 0.0f in case of an error (instead of
some random value)
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16525 a95241bf-73f2-0310-859d-f6bbb57e9c96


# db5734a452fa53de2ed303eea64622c5d310280e 05-Feb-2006 Michael Lotz <mmlr@mlotz.ch>

More work on the BFont special functions.

* Reworked functions like GetEscapements(), GetBoundingBoxesAsString() and GetGlyphShapes() completely
* Made the ServerFont functions uniform in their prototypes and cleaned out unnecessary arguments
* Added new UTF8 handling functions to moreUTF8.h that are now used by ServerFont
* Put the common transformations of the FT_Face into an own GetTransformedFace() to lessen code duplication

In other words, ServerFont is now cleaned and handles UTF8 pretty efficiently. Some ToDo's are still left though.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16241 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bb96bd0a70d1cd2ac657a59016e70a1df4923909 04-Feb-2006 Michael Lotz <mmlr@mlotz.ch>

* Fixed GetGlyphShapes(). The BShapes that are outputted are correct now but the app_server still cannot draw them correctly.
* Changed the allocation to new for GetGlyphShapes() and GetEscapements() as the data is deleted in ServerApp.cpp
* Minor cleanup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16231 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 758b1d0e05fe1042cce6e00d194a147802d4f9be 12-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixes that make Haiku build with gcc 4. Mainly out of the following
categories:
* Missing includes (like <stdlib.h> and <string.h>).
* Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so.
* Local variables shadowing parameters.
* Default parameters in function definitions (as opposed to function
declarations).
* All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported
explicitly from the std:: namespace now.
* "new (sometype)[...]" must read "new sometype[...]", even if sometype is
something like "const char *".
* __FUNCTION__ is no longer a string literal (but a string expression), i.e.
'printf(__FUNCTION__ ": ...\n")' is invalid code.
* A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes"
is an invalid expression.
* "friend class SomeClass" only works when SomeClass is known before.
Otherwise the an inner class with that name is considered as friend.
gcc 4 is much pickier about scopes.
* gcc 4 is generally stricter with respect to type conversions in C.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fff7b3cd5d86bb012f6137c5ddf52305f82ab837 10-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Now also sorts the font list - unlike the app_server, it could also take the
user's locale into account.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14827 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4e7d1d4b6ab29ea30b0120608aaf73f86f4cdc14 09-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Oops: 1) fixed warning, 2) added missing bracket (in PrintToStream() output).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14808 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 31cff4dc84ee2c31ab0793962b878aa353383357 09-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Made BFont::PrintToStream() a bit more useful.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14807 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f1d70d8037d222969a2b652c3bec05b424511b2b 09-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

New private function _get_system_default_font_() that makes the AS_GET_DEFAULT_SYSTEM_FONT
command available to the fonts preferences.
Now uses the maximum length argument for LinkSender::AttachString() it got from the API user.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14801 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e37155c67037f35d73ab9329f2ebebb9334b1d9c 07-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* The font list is now cached client-side. The app_server is only queried for
updates.
* Optimized retrieving the font list from the server.
* This greatly simplifies the app_server communication for getting the font
list as well - there are now only 2 commands instead of 6.
* Moved extra font flags creation from ServerApp to FontStyle::Flags().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14751 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 42b5ae7db9ba5a8e96a96a016d494bc399921640 07-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

BFont::_GetExtraFlags() no longer returns a status value, but fills in default
values in case the server communication failed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14742 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b2cc345461400d6944e2de35ec6decc8d1af8751 07-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

More font work:
* Simplified server communication a bit: instead of separate queries for font
direction, "is fixed", ... there is now a private extra flags field that is
filled on demand.
* The server command names now describe what the command does, and are not simply
named after the BFont method (AS_SET_FAMILY_AND_STYLE vs. AS_GET_FAMILY_AND_STYLE_IDS).
* Replaced B_SET_SYSFONT_{PLAIN|BOLD|FIXED} with a single B_GET_SYSTEM_FONTS.
* Rewrote Font.h and added our license.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14741 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5d1bd031a2dc1a6b7a610da5f43e202fec25b079 02-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed some communication mismatches I introduced earlier: we are no longer sending
whole font_family/style strings (each 64 bytes), but only strings, because they
are usually shorter than 64 bytes.
This should fix the StyleEdit problems Stefano were seeing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14628 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f121769adf06a153c16e156989ea940a4d8f44d 01-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Added and implemented AS_GET_FONT_FILE_FORMAT - currently, it returns always
B_TRUETYPE_WINDOWS, though.
* possibly returned an uninitialized error code in some BFont methods.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14622 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b8cde4497e0a1d607bd7688742bd2926e4e4dcca 01-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

More font work:
* simplified BFont::SetFamily*() server communication - there is now only
AS_SET_FAMILY_AND_STYLE left, but at least that one works correctly.
* BFont::fFace is now always updated correctly.
* Moved the fFace masking to the server - BFont doesn't know enough to do
this correctly, anyway.
* Only one version of get_font_style() worked correctly.
* Font family/style ID and index were used completely mixed up - this
would have become an issue as soon as the font list changes during
runtime.
* Enabled AS_GET_FONT_DIRECTION again - missing functionality should only
be taken into account on lowest level as long as it can be emulated.
* Made FontServer a bit clearer to use (more to come).
* fixed several allocation leaks in the font server communication.
* New FontStyle::Direction() method, that currently only returns
B_FONT_LEFT_TO_RIGHT, though.
* more cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14618 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 297cd250fa5ae719b821d0a3814f2e688296f29b 01-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Followed Marcus' suggestion and made fHeight mutable - not nice, but cleaner
than casting away the const.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14614 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec769ec5b22f5c1019d2c0844d3ca75804eb5fab 31-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

Implemented caching of the font_height, as suggested by Stefano - seems to work fine.
Also added some TODO items (mostly to SetFace()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14612 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a80b5fa016dab2c917ed0a81571de2f9c164ed5 01-Nov-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Looks like Axel did already all the changes I wanted to do.... so I'll just add a comment

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14609 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9b1ad6f45e47ebe429f2fbc93a7900cb45caa5a3 31-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed a bunch of bugs in the font sub-system:
* BFont::Face() was almost always wrong - also on the server side,
_TranslateStyleToFace() was broken.
* a clean font was not correctly initialized to be_plain_font
* BFont::GetFamilyAndStyle() did not work correctly if either family
or style was NULL - which is allowed, and shouldn't have let it abort
its task.
* FontServer::GetStyle() by ID did not work reliably under certain
circumstances (but those were not reached with the current server)
* BFont::SetFamilyAndStyle() did not work when family was NULL, and
it also never set fFace correctly.
* Introduced a FontFamily::GetStyleWithFace()
* Renamed some FontFamily/FontStyle methods from ie. GetID() to ID()
to match the style used everywhere else in BeOS.
* Removed AS_SET_FAMILY_NAME as its no longer in use.
* Lots of cleanup and simplification.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14602 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 718af224dd2d35d5cded478de8a22c23f85d8674 21-Oct-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

fFlags was not initialized in the =operator and in the copy constructors

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14467 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3cf915cb23b4ab87d244c5a37fb2c39526327401 26-Aug-2005 Jérôme Duval <korli@users.berlios.de>

spacing is needed for GetBoundingBoxes too (string case)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14072 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 697085a5aab25cc8aeba3e36a5a815deb2adce76 26-Aug-2005 Jérôme Duval <korli@users.berlios.de>

shear is needed for GetBoundingBoxes
now uses _GetBoundingBoxes_ for GetBoundingBoxesAsGlyphs and GetBoundingBoxesAsString


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14071 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f23ef90dd1c72779c09cdb5fd035a636f41538b 25-Aug-2005 Jérôme Duval <korli@users.berlios.de>

added GetBoundingBoxesAsGlyph, GetBoundingBoxesAsString, GetBoundingBoxesAsStrings
real implementation with freetype still missing


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14062 a95241bf-73f2-0310-859d-f6bbb57e9c96


# af86ce75a07e5d2e119e46182489e12a22e7dabf 24-Aug-2005 Jérôme Duval <korli@users.berlios.de>

copyright update


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14058 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b1263bedf5512d3312c6722a10c2d1184de391e 24-Aug-2005 Jérôme Duval <korli@users.berlios.de>

reworked BFont::GetStringWidths and BFont::StringWidth
implemented BFont::GetEdges


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14057 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2185eed6d2679fcb56d83287d9939d29608d9f44 23-Aug-2005 Jérôme Duval <korli@users.berlios.de>

implemented GetHasGlyphs for real


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14056 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 599be43472927a99764bc0a5fd9d9bf5d07cb150 19-Jul-2005 Jérôme Duval <korli@users.berlios.de>

Implemented GetHasGlyphs support somehow (FT support is lacking)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13766 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4da5225f84646d149fe855a19b76f77ce3e539d2 10-Jul-2005 Michael Lotz <mmlr@mlotz.ch>

Fixed broken count_font_styles(), font menus now really work.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13626 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f319b3346fcc3f45786d9fb9c6ca698c4de7a22 10-Jul-2005 Michael Lotz <mmlr@mlotz.ch>

Some cleanup, some removed typos, some unification, some fixes and some added todos. Most of it related to client-server communication. Apps that rely on BFont stuff should work now (StyledEdit, Fonts, Keymap, Menu, ...). Or should not hang/quit at startup at least.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13625 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2d4b179de58f8830977ee843c8da2fb77b4b7feb 15-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Implemented B_TRUNCATE_MIDDLE, since truncate_strings() could corrupt memory
before in this mode. Some further cleanup, only B_TRUNCATE_BEGINNING is still
left.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13154 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd10337fd005a67a4947714fdeecf2121485b91d 14-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed BAppServerLink to AppServerLink, BPortLink to PortLink, LinkMsgReader
to LinkReceiver, LinkMsgSender to LinkSender, and put everything into the
BPrivate namespace.
Made AppServerLink a cheap object - it will use the applications receiver/sender
and not create its own buffers.
Fixed broken communication stuff here and there (mostly Font.cpp).
Put the newly introduced set|get_system_colors() into the BPrivate namespace -
please don't introduce private functions into the public namespace!!!
Also fixed their broken communication use, as Darkwyrm obviously forgot about
it again: the sequence Flush(); GetNextMessage() without error checking is
purely wrong and can make the app hang and/or crash! :-)
Other minor cleanup.
The input_server used some test mode with the haiku build target which is
probably wrong.
Hopefully I did not forget anything this time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13128 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b31e304e7248148abc0f8812839d7a59d8ebbd8 09-Jun-2005 DarkWyrm <darkwyrm@gmail.com>

More fixes to the prefs panel. In fact, for all practical purposes, it should be done.
Added private function _set_system_font_() to not use R5's hack


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13031 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 59345e264fccac812b03a49a1e4466f10133a309 03-Jun-2005 Stephan Aßmus <superstippi@gmx.de>

huge cleanup, support for SetSizeLimits, support for truncating strings, numerous decorator bug fixes, Layer does not draw when view color is B_TRANSPARENT_COLOR, cleaner dispatching of mouse events to the WinBorder in RootLayer, commented the char map selection in the font server, as it seems glyph lookup by unicode index works much better with the default map

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12945 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a1c5fb3432cd6faf77803f0b104326d0d06d7f6f 16-May-2005 Stephan Aßmus <superstippi@gmx.de>

Added a note in GetEscapements

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12688 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9bdb0522c19c1f779f8e5c56e8faa4a749800cff 12-May-2005 Stephan Aßmus <superstippi@gmx.de>

Implemented BFont::GetEscapments() float version. It is pretty rough yet, but appears to handle UTF8 correctly. The optional escapement_delta is currently ignored. I didn't touch other functionality too much, until I know more about it.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12645 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f654216126b4459659767124683074db149e708 07-May-2005 DarkWyrm <darkwyrm@gmail.com>

Added a rudimentary version of the float version of GetEscapements
Added a TODO to eventually support UTF8 characters


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12589 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7d5778defa3ca2b0ae8da7604c9e01921b9aaa51 01-Apr-2005 Michael Lotz <mmlr@mlotz.ch>

Added support for GetEscapements() too. Still unfinished. Maybe this should be moved elsewhere?

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12216 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c2da902f2e4736f49ce04a47d9db03bd81b70a57 01-Apr-2005 Michael Lotz <mmlr@mlotz.ch>

Implemented BPortLink::AttachShape and BPortLink::ReadShape and used them for passing the shapes in AS_GET_GLYPH_SHAPES.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12215 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ebf8af66c9ef27a706dde42124e0fa42d594d04e 01-Apr-2005 Michael Lotz <mmlr@mlotz.ch>

Added support for BFont::GetGlyphShapes. Not finished yet and untested, delivery method as to be changed.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12214 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 20337f31657b364a5ca0fcff3afc75d69479fa4d 31-Mar-2005 Michael Lotz <mmlr@mlotz.ch>

Corrected reply handling of FlushWithReply in many places what should fix some strange bugs.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12211 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ac13e18b22810591ca04fa49ea3e1367554437e9 26-Mar-2005 Michael Lotz <mmlr@mlotz.ch>

The default shear is actually 90.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12063 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b3838e6f154755f102438cefe46831bfbaaed34 05-Feb-2005 DarkWyrm <darkwyrm@gmail.com>

Tweaks to GetStringWidth()'s server protocol


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11260 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9e6e69ab9dc03be872f4f117283203d97c64a446 20-Jan-2005 DarkWyrm <darkwyrm@gmail.com>

Finished most of the unimplemented methods


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10926 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f8d6d562d1168db97d553d1b9602740ed4a6cc4 17-Jan-2005 DarkWyrm <darkwyrm@gmail.com>

Moved _init_global_fonts to Font.cpp
Implemented _init_global_fonts
BFont::GetHeight returns proper values


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10804 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5b49ad98d010fa01966415aa263a7a841613b0f4 15-Jan-2005 DarkWyrm <darkwyrm@gmail.com>

Tweaks to make synchronous replies less work


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10770 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5fbd2c2ff74d9f9e017b6c237f5bf36ba23f06be 15-Jan-2005 DarkWyrm <darkwyrm@gmail.com>

Implemented a lot of the client side functions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10768 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d9bb1ef4867e63172e7238f48601c6cacecd190b 15-Jan-2005 DarkWyrm <darkwyrm@gmail.com>

Implemented _font_control()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10767 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 50df61f8911bf4b68ea45dc85fb7d8f7c229354c 20-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Fixed warnings.
Applied our style guide.
Removed fHeight from comparisons, fSize should be enough. Clarified comparisons.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10506 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3ceb31b96aefa3601ccc51e415da557b00155d4f 30-Jul-2004 DarkWyrm <darkwyrm@gmail.com>

Pahtz's changes from PortLink/BSession/PortMessage/PortQueue to BPortLink


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8519 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c78c0787bd592b9b299a49563e93913a0c7b225f 30-Dec-2003 haydentech <haydentech@nowhere.fake>

gcc 3 fix (no default args in implementation) and dead code removal


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5839 a95241bf-73f2-0310-859d-f6bbb57e9c96


# edd19f3d5c870bf9cc72f9d9d89de4c002d7a580 01-Sep-2003 DarkWyrm <darkwyrm@gmail.com>

Removed a few compiler warnings
Added app-side support for font list
Added mostly-empty global font functions and documented them


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4439 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 40564fead11bc909d729fd4afb7ccc1764778381 09-Jul-2003 DarkWyrm <darkwyrm@gmail.com>

Added license and header


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3923 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b6ed79e34d536f103b1f3b25db03e492bff4940 28-Feb-2003 DarkWyrm <darkwyrm@gmail.com>

Finally got around to removing the memory leak.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2855 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3bb5ee98f7a786bba16ea2f0b24c0351ba39ff80 23-Oct-2002 beveloper <beveloper@nowhere.fake>

BFont doesn't have a destructor


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1629 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e57d159b955d65c9ec26f87d0bf39c030c276afe 13-Oct-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed include.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1505 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3a93f97d5223c6cbfd4ebf1b8db1f0a0dcc0f758 12-Oct-2002 DarkWyrm <darkwyrm@gmail.com>

*Doh* Forgot a couple minor edits before initial checkin


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1497 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34377c9b8f4dde0a8268dbf9af8657f00196fca9 12-Oct-2002 DarkWyrm <darkwyrm@gmail.com>

Initial framework checkin. Rudimentary functions implemented.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1495 a95241bf-73f2-0310-859d-f6bbb57e9c96