Commit Graph

142 Commits

Author SHA1 Message Date
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
57bbc53987 Moved some system colors code to be monitored by a client's ServerApp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13123 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 19:48:30 +00:00
Stefano Ceccherini
3a27ae791e Added server support for activate_workspace(). Looks like it's not doing anything, though SetActiveWorkspace() returns true....
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 22:11:29 +00:00
Stefano Ceccherini
eef16dda7d implemented server support for current_workspace(), just because I had enough of the 'blablah got unknown reply' message
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13102 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-13 21:54:11 +00:00
Stefano Ceccherini
f1496739a3 removed AS_SET_SCREEN_MODE handler
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13040 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-10 08:29:49 +00:00
Stefano Ceccherini
2ed35bc88c Thanks to Axel's change, now we can pass the app_server's colormap to libbe. Methods like BScreen::ColorMap() and BScreen::ColorForIndex() work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13023 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-09 04:36:00 +00:00
Axel Dörfler
3ba7d6f350 Added AS_{GET|SET}_DESKTOP_COLOR.
(Incorrectly) implemented AS_GET_DESKTOP_COLOR - works for now.
Minor cleanup.
Is AS_SET_SCREEN_MODE used at all?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13010 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 13:24:40 +00:00
Axel Dörfler
bd28b3c746 BAppServerLink is now using BApplication::fServerTo/From for its messaging.
Added LinkMsgReader::NeedsReply() method.
Completely redone ServerApp messaging: no more "replyport" from BAppServerLink; instead,
the registered client reply port is used. Fixed some more weak messaging stuff.
ServerApp now recognizes if an unknown message needs a reply, and sends it - for example,
the "Screen" preferences app no longer hangs, but crashes on start :)
Made LinkMsgReader::Read() virtual again, since it's needed by RAMLinkMsgReader.cpp.
Renamed BPortLink::GetNextReply() to GetNextMessage().
Some more cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 04:01:59 +00:00
Axel Dörfler
75936a02e4 BPortLink now has a FlushWithReply() method itself.
BPortLink::AttachString() now accepts a length argument, and will no longer
send a terminating null byte; LinkMsgReader::ReadString(), however, will
make sure the string read is null terminated.
Changed client communication code to use FlushWithReply() instead of Flush()
and GetNextReply() - there were many bugs and shortcomings in the code, I
hope I've fixed them all.
Converted ClientFontList.cpp to our coding style (but not completely, the
class members are missing).
Some more cleanup - I hope Adi will adopt our coding style one day!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12998 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 00:36:26 +00:00
Stefano Ceccherini
7475dcdf3a Added an app server command to retrieve the color map. Made some adjustments to SystemPalette.cpp, implemented support for it in BPrivateScreen. Moved get_scs() a bit down to avoid a deadlock. Note that getting the colormap doesn't work due to port capacity limit (?)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 21:32:24 +00:00
Stephan Aßmus
f9e3895bf2 added tracing to some messages
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12952 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-04 11:17:30 +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
Stefano Ceccherini
19e4729202 Uncommented SendMessageToClient, as it's used in test mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12869 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-28 16:58:25 +00:00
Stefano Ceccherini
8380e999e7 better error checking in Run()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12866 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-28 14:00:15 +00:00
Stefano Ceccherini
6390df8e27 Made app_server a static, renamed desktop to gDesktop as it's a global, RootLayer now uses its own fDesktop internal member instead of the global one. Fixed a typo in some commented code (thanks Axel)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12864 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-28 13:43:13 +00:00
Stefano Ceccherini
7f2831b56b Removed a couple of friendships, commented/removed unused stuff
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-28 13:20:05 +00:00
Axel Dörfler
2724858b5b Added global app_server port, so that other parts of the server don't have
to search for it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12859 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-27 13:36:05 +00:00
Axel Dörfler
d7c08b7d2e Tried to make the ServerApp aware when a client dies: the main communication
port is now transferred to the client, so that it goes away automatically.
Unfortunately, this doesn't seem to work. This code is truly a big mess :-/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-26 15:06:31 +00:00
Axel Dörfler
e5b4782b4e Made some necessary enhancements to class Screen; the app_server also
has to care about refresh rates. Also changed Screen::GetMode() (formerly
Resolution()) to return all interesting values, so that hopefully no one
will call it anymore like RootLayer::SetScreens() did.
Greatly improved the horrible RootLayer::SetScreens().
The app_server is now able to deal with failing HWInterface::SetMode() calls;
in this case, it will fall back to the hardware's current mode. This now
also works correctly in combination with the vesa driver, so that you don't
have to compile the app_server with the same resolution you boot in anymore.
SetMode() now always returns if it succeeded or not.
Renamed RootLayer::fScreenXYResolution to fScreenWidth/Height respectively.
Removed the useless DisplayDriver::DisplayMode() method.
Added B_GET_DISPLAY_MODE to the required accelerant hooks.
Some minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12831 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-26 09:21:51 +00:00
Stephan Aßmus
2762b0cecd Work in progress... improvements on font stuff, reverted to using Painter to get the string width. Since it actually uses glyph caching, it is about 20 times faster than the implementation in ServerFont (and a about twice the time as R5). I added a StringWidth method to Painter and AGGTextRenderer which works as correct as ServerFont::StringWidth, which btw was broken, because I mixed up glyph count and byte count...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12745 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 19:52:38 +00:00
Stephan Aßmus
38c5a7b7fa Implemented StringWidth in ServerFont, updated ServerApp to use it, and removed a -1 from TextView in the char location calculation, which I didn't understand and without which the cursor location and related stuff now finally work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12744 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 17:36:55 +00:00
Stefano Ceccherini
cb80e15b3c ServerWindow is no more a ServerApp's friend. Some cleanups.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12663 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-14 13:22:26 +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
Stephan Aßmus
b3d3da708d more cleanup, fixed a bug in AS_GET_ESCAPEMENTS_AS_FLOATS that caused a lockup. DarkWyrm - I'm looking at you. :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12640 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-12 10:31:48 +00:00
Stefano Ceccherini
f3a544e820 Putting this handler in once again, as it looks it's used in InterfaceDefs.cpp, even if it's not working
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-08 06:21:48 +00:00
Stefano Ceccherini
8058130392 Cleanup of the ServerApp parts I looked at. Removed reduntant comments
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12594 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-08 06:06:55 +00:00
DarkWyrm
fb52610b82 Added a handler for GET_ESCAPEMENTS_AS_FLOATS so that there are no deadlocks in the BFont call until the server-side code can be implemented
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12590 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-07 17:11:30 +00:00
Stefano Ceccherini
04efb239b7 AppServer is no longer a friend of ServerApp. Small cleanups.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12586 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-07 15:56:15 +00:00
Stefano Ceccherini
78f09a0553 app_server doesn't hang anymore when an application exits in an unclean way. Got rid of the kill_thread in ServerApp's destructor. Small refactoring. Added a TODO item.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12578 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-06 22:38:04 +00:00
Stefano Ceccherini
61d296c9f5 Fixed a crashing bug
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12574 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-05 07:38:39 +00:00
DarkWyrm
5e6d7d522d Fixed a TODO - added a method for calling StringWidth with a ServerFont instead of DrawData
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12568 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-04 09:39:06 +00:00
Stefano Ceccherini
f812bf8b4c Implemented server side support for BScreen::SetMode(). Note that setting the mode works, but rootlayer crashes afterwards. I guess I'll need to lock something. Adi ? Stephan ?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12523 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-01 06:26:49 +00:00
Stefano Ceccherini
6e927d6e3b BScreens methods didn't work for a number of reasons: fixed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12517 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-30 07:04:27 +00:00
Stephan Aßmus
e742e3e106 refactoring and cleanup in LayerData and friends, it shows what I mean by "forced code paths" for example in coupled font size and view scale, added a couple TODOs, disabled decoupled frame buffer transfers, it is buggy and deadlocks for some reason...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12441 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-19 00:42:42 +00:00
Stephan Aßmus
3dea4bb659 cleanup the defines, move old DisplayDriver implementations out because they are currently unused and won't build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12438 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-18 18:48:19 +00:00
Adi Oanca
d7c2c05061 Big cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-16 13:30:49 +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
Axel Dörfler
b2b5acff33 Made DISPLAYDRIVER a true compile time option.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 15:39:08 +00:00
Adi Oanca
256c1b1502 Insignifican change. Read uint32 instead of int32.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 21:26:35 +00:00
Axel Dörfler
33bbe22391 Moved app_server files to app/.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11972 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-24 14:45:52 +00:00