Commit Graph
60 Commits
Author SHA1 Message Date
Stefano Ceccherini c585b1f46d 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
2006-10-03 11:46:55 +00:00
DarkWyrm 839e7aa6de 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
2006-05-13 10:48:05 +00:00
Axel Dörfler 93820f1ea7 Renamed moreUTF8.h to utf8_functions.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-26 10:16:19 +00:00
Axel Dörfler 383638eee9 Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16559 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-01 17:38:40 +00:00
Axel Dörfler 2ed942c199 * 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
2006-02-27 13:09:37 +00:00
Michael Lotz db5734a452 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
2006-02-05 23:36:59 +00:00
Michael Lotz bb96bd0a70 * 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
2006-02-04 22:20:00 +00:00
Ingo Weinhold 758b1d0e05 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
2005-11-12 23:27:14 +00:00
Axel Dörfler fff7b3cd5d 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
2005-11-10 15:40:22 +00:00
Axel Dörfler 4e7d1d4b6a 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
2005-11-09 20:05:58 +00:00
Axel Dörfler 31cff4dc84 Made BFont::PrintToStream() a bit more useful.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14807 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-09 20:04:12 +00:00
Axel Dörfler f1d70d8037 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
2005-11-09 18:37:01 +00:00
Axel Dörfler e37155c670 * 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
2005-11-07 16:19:40 +00:00
Axel Dörfler 42b5ae7db9 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
2005-11-07 11:08:27 +00:00
Axel Dörfler b2cc345461 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
2005-11-07 11:02:39 +00:00
Axel Dörfler 5d1bd031a2 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
2005-11-02 09:50:51 +00:00
Axel Dörfler 6f121769ad * 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
2005-11-01 18:21:04 +00:00
Axel Dörfler b8cde4497e 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
2005-11-01 16:28:01 +00:00
Axel Dörfler 297cd250fa 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
2005-11-01 13:19:00 +00:00
Axel Dörfler ec769ec5b2 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
2005-11-01 12:03:43 +00:00
Stefano Ceccherini 9a80b5fa01 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
2005-11-01 09:42:10 +00:00
Axel Dörfler 9b1ad6f45e 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
2005-10-31 23:21:36 +00:00
Stefano Ceccherini 718af224dd 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
2005-10-21 21:56:06 +00:00
Jérôme Duval 3cf915cb23 spacing is needed for GetBoundingBoxes too (string case)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14072 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-26 08:47:17 +00:00
Jérôme Duval 697085a5aa 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
2005-08-26 08:40:24 +00:00
Jérôme Duval 2f23ef90dd 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
2005-08-25 15:21:34 +00:00
Jérôme Duval af86ce75a0 copyright update
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14058 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-24 15:08:32 +00:00
Jérôme Duval 2b1263bedf 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
2005-08-24 14:50:41 +00:00
Jérôme Duval 2185eed6d2 implemented GetHasGlyphs for real
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14056 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-23 21:47:41 +00:00
Jérôme Duval 599be43472 Implemented GetHasGlyphs support somehow (FT support is lacking)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13766 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-19 15:22:55 +00:00
Michael Lotz 4da5225f84 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
2005-07-10 21:52:30 +00:00
Michael Lotz 3f319b3346 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
2005-07-10 21:16:43 +00:00
Axel Dörfler 2d4b179de5 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
2005-06-15 16:49:04 +00:00
Axel Dörfler dd10337fd0 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
2005-06-14 21:28:56 +00:00
DarkWyrm 4b31e304e7 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
2005-06-09 16:08:39 +00:00
Stephan Aßmus 59345e264f 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
2005-06-03 19:50:30 +00:00
Stephan Aßmus a1c5fb3432 Added a note in GetEscapements
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 15:02:20 +00:00
Stephan Aßmus 9bdb0522c1 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
2005-05-12 15:09:30 +00:00
DarkWyrm 3f65421612 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
2005-05-07 17:02:56 +00:00
Michael Lotz 7d5778defa 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
2005-04-01 09:18:25 +00:00
Michael Lotz c2da902f2e 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
2005-04-01 07:29:04 +00:00
Michael Lotz ebf8af66c9 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
2005-04-01 07:00:32 +00:00
Michael Lotz 20337f3165 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
2005-04-01 03:02:15 +00:00
Michael Lotz ac13e18b22 The default shear is actually 90.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12063 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 03:15:34 +00:00
DarkWyrm 6b3838e6f1 Tweaks to GetStringWidth()'s server protocol
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11260 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-05 20:09:11 +00:00
DarkWyrm 9e6e69ab9d Finished most of the unimplemented methods
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 12:11:31 +00:00
DarkWyrm 3f8d6d562d 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
2005-01-17 19:57:51 +00:00
DarkWyrm 5b49ad98d0 Tweaks to make synchronous replies less work
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10770 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-16 01:51:00 +00:00
DarkWyrm 5fbd2c2ff7 Implemented a lot of the client side functions
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10768 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-15 23:28:02 +00:00
DarkWyrm d9bb1ef486 Implemented _font_control()
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10767 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-15 22:12:05 +00:00