Commit Graph

943 Commits

Author SHA1 Message Date
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
Michael Lotz
3ddebe7ec2 Moved the CursorManager over to the Desktop too.
Maybe the CursorManager should be used to set the cursors directly instead of using
fDesktop->GetCursorManager.FindCursor() and then fDesktop->GetHWInterface()->SetCursor()
in ServerApp.cpp.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14033 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-21 10:28:40 +00:00
DarkWyrm
d863d4bf1d Made scanning of all font folders a compile-time option
Moved the scanning of individual font folders to FontServer
Implemented server-side code for update_font_families
Removed ClientFontList from the build


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13938 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-12 14:55:46 +00:00
Ingo Weinhold
2826a379d5 The app server for the BeOS test environment is now built by
src/tests/servers/app/Jamfile. This makes the original Jamfile much cleaner.
Note that you now have to maintain two Jamfiles when adding/removing sources.
The test app server is called haiku_app_server, its library
libhaikuappserver.so. I adjusted a few paths in scripts accordingly, but
I may have missed something elsewhere.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13858 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-29 14:44:35 +00:00
Stephan Aßmus
15ae8872f7 hacking session with Ingo part2: in the R5 test environment, the app_server links no longer against libbe.so, the classes which need it, ViewHWInterface + friends, are extracted into their own library, but we need a bridge library as well for HWInterface + friends. The AppServer is consequently no BApplication in the test environment anymore, the BApplication that is needed to display the frame buffer window is handled in ViewHWInterface. No functional change, except that our BRegion implementation is now used in the test environment, and who knows what else... luckily we are so extremely binary compatible, that passing a Haiku BRegion to the R5 app_server actually works.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13848 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-28 23:48:46 +00:00
Axel Dörfler
35a71b1936 The app_server now inherits from MessageLooper as well.
Removed unused stuff.
The app_server now deletes itself when done (and therefore must not be
allocated on the stack anymore).
The cursor handling should be moved over to the desktop as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13825 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-25 21:53:48 +00:00
Axel Dörfler
770c05d6cc The Desktop class now gets its own message processing loop: moved application
creation/deletion (and management) over to that class.
ServerApp now gets a desktop pointer, and no longer uses gDesktop.
Converted private MessageLooper::_MessagePort() to a public method MessagePort()
so that the looper can be addressed from elsewhere without using PostMessage().
Added a real basic message loop to MessageLooper::_MessageLoop().
BApplication now only asks the app_server to get its desktop object which should
now be used for everything that's not in the realm of the application.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13824 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-25 21:08:34 +00:00
Ingo Weinhold
18b5424c5f * Implemented BRoster::ActivateApp().
* Added the respective case statement in AppServer::DispatchMessage().
  The code that actually activates the app is still missing.
* Removed the remnants of the old way of notifying the registrar about
  what app got activated (the activated client window did that).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13820 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-24 21:10:33 +00:00
Stephan Aßmus
7b4cc5a1c7 this has come in handy several times now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13818 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-24 18:35:52 +00:00
Stephan Aßmus
be85e14208 initializing the system palette before creating the desktop and driver fixes the bug that the desktop is first shown in the wrong colors on 8 bit screens
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13817 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-24 18:32:05 +00:00
Axel Dörfler
5f2edc0ffc The Desktop class now inherits from MessageLooper as well, the AppServer
class runs it, too.
No real message processing is done yet, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13816 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-24 17:14:17 +00:00
Axel Dörfler
c6a2527297 Split ServerWindow::Quit() into two parts, and moved the generic one to
the MessageLooper class - the other part is called from there as virtual
_PrepareQuit().
Moved the class documentation to the source file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13815 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-24 17:13:02 +00:00
Axel Dörfler
89ab121e66 Factored a MessageLooper class out of ServerWindow and ServerApp. Could still
be improved a bit (Quit() and _MessageLooper() are empty right now).
Removed ServerApp::PingTarget().
Hopefully cleared some confusion about ServerApp::fClientLooperPort and fClientToken
(previously fHandlerToken), even if it's currently unused.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13807 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-23 18:30:48 +00:00
Stephan Aßmus
05988bd35f inactive workspaces are drawn with darker colors
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13787 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-21 11:43:11 +00:00
Stephan Aßmus
b23f4579af fixed a debug message
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13786 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-21 11:42:26 +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
Stephan Aßmus
0d02a8aaba fixed B_CMAP8 back to front buffer conversion (blue was missing)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13757 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 23:13:42 +00:00
Michael Lotz
d1c86c04c1 Fixed some miss-allocation when getting the the workspace windows.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13754 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 17:48:32 +00:00
Axel Dörfler
83d1f41819 Fixed compilation with debug output turned on.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13744 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 10:34:25 +00:00
Axel Dörfler
39d30137dc A call to SetSizeLimits() can change the window frame, so it's now updated, too (a separate FrameResized() message is sent anyway).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 09:53:37 +00:00
Axel Dörfler
2ca990b801 Moved the RootLayer::LayerRemoved() call from the ServerWindow destructor to RootLayer::RemoveWinBorder().
ServerWindow printed the title in its destructor after freeing it (with debug output turned on).
Calmed it down a bit, too (disabled "listening on port...").


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13741 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 09:24:08 +00:00
Axel Dörfler
0e430ce96e Fixed the crashing bug with BAlerts - have I already said that this code is a mess?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 09:22:34 +00:00
Michael Lotz
a83bffa77a Removed {set|get}_syscursor according to DW. Scratch that last sentence in the last commit, with this Appearance builds again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13727 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 00:35:18 +00:00
Michael Lotz
2213782534 All cursor related changes:
* Moved setting the default cursor from ServerScreen to Desktop
* Getting the default cursor is now done using the CursorManager
* Removed outdated setcursor from SysCursor.cpp (we have a new implementation by now)
* Renamed SysCursor.cpp to CursorSet.cpp as that's what it is
* Moved  headers/private/app/SysCursor.h to headers/private/servers/app/CursorSet.h
* Removed some unneeded header includes along the way

There remains {set|get}_syscursor now in CursorSet.cpp. Serverside for these are not implemented
and they are obvious hacks. Do we need to keep them?
Also this commit _would_ break Appearance, but 1) all the related code is currently commented out
with the comment "cursor set management belongs in another app" and 2) it is already broken
because of ColorSet.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13726 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 00:22:08 +00:00
Michael Lotz
fc6c82dc35 Cleanup and style changes. Removed global cursormanager as each RootLayer has it's own.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13724 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-17 21:26:28 +00:00
Axel Dörfler
ef8810f2ad Extracted the settings stuff from the Desktop class. If you now need to access
the desktop's settings, you have to do something like this:
	DesktopSettings settings(desktop);
	settings.SetMouseMode(mode);
The advantage of this is that this object is fully locked, and cannot lead to
corrupted settings anymore. Also, the settings will stay the same until you
delete the object again.
Updated all accesses to use this new API.
Removed no longer used FFM messages.
Implemented AS_{GET|SET}_MENU_INFO for future use.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13719 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-17 16:25:48 +00:00
Axel Dörfler
67d3b755ec Fixed a stupid bug in ReleaseScreen(); caused an endless loop.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13717 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-17 16:11:27 +00:00
Stephan Aßmus
d461b955a1 fixed my previous commit, it helps to read the diffs again... but this fallback needs to move somewhere else, as commented by the TODO
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13706 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-16 23:43:30 +00:00
Stephan Aßmus
bcdb0e9460 some useful leftovers from debugging, use new with nothrow for it to make sense to test the returned pointer
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-16 23:34:23 +00:00
Stephan Aßmus
657ff50ca9 fall back to double buffered mode was already workingif mode was not 32-bit, only that IsDoubleBuffered() was not implemented, so that HWInterface::DrawingBuffer() returned the front buffer, which had the non-32-bit format... so this fixes non-32 bit modes, IAW, Vesa is working now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-16 22:54:25 +00:00
Stephan Aßmus
95e42caf13 tried to find the bug that causes the wrong area underneath the software cursor to be restored, but failed, the only accomplishment is that the cursor is now showing right from the beginning, not only after one moves the mouse
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13702 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-16 22:52:28 +00:00
Stephan Aßmus
c18d3059b4 added icons needed for BAlerts
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13701 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-16 22:50:43 +00:00
Stephan Aßmus
05ffbfbc24 _FindMode is now more robust and really tries everything it can to find a mode...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13700 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-16 22:50:17 +00:00
Stephan Aßmus
821426f66e forgot to remove debug output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13699 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-16 22:49:17 +00:00
Axel Dörfler
fd5bec1e48 First baby step to a restructured app_server:
- introduced new ScreenManager and VirtualScreen classes
- removed screen handling from RootLayer
- removed multiple screen/root layer stuff from Desktop, it's
  now using a VirtualScreen object instead


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13686 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-15 12:45:23 +00:00
Stefano Ceccherini
16046321cc Implemented BPrivateScreen::ReadBitmap(), but the guts are still missing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13665 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-13 22:33:52 +00:00
Michael Lotz
13b42e5eb4 Just some style cleanups again. Sorry I couldn't resist, won't happen again ;-).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-12 17:41:22 +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
Stephan Aßmus
642467d077 renamed the tree parsing/child iteration functions, I think it is much clearer now what they do, more likely to find bugs too
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13572 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-10 17:16:31 +00:00
Jérôme Duval
7e79718c2b install_fonts isn't useful anymore
fonts are now installed as part of other data files
we still install some host fonts if found


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13557 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-08 12:35:07 +00:00
Jérôme Duval
6f1735a73a moved fonts in data/etc/
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13556 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-08 12:11:56 +00:00
Stephan Aßmus
39e4b4ada6 quick fix to have Tracker display icons, hope this still reaches you, Axel
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13555 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-08 08:48:24 +00:00
Axel Dörfler
3182843008 No longer draws the desktop window.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13549 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-08 00:38:52 +00:00
Axel Dörfler
1f56ada26a New windows are now activated again - temporary fix, won't work with FFM.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13548 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-08 00:11:39 +00:00
Stephan Aßmus
a5ca645e49 when a Layer or WinBorder is deleted, the RootLayer gets a chance to set some important pointers it keeps arround to NULL. It is not unlikely that this improves stability a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13534 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-07 14:04:29 +00:00
Stephan Aßmus
4ed0f43872 checks rootLayer Pointer, since offscreen windows are not attached to RootLayer. This shouldn't have been a problem though since Offscreen windows were never Show()n
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13515 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 23:24:03 +00:00
Axel Dörfler
16e938888d Some more debug output, so that you know which window is killed this way.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13512 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 22:40:01 +00:00
Axel Dörfler
806767ec21 It now deletes its message port (it was previously incorrectly deleted by the client).
Now handles it gracefully if someone deletes its message port (it will try to close
the client and quit).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13511 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 22:39:15 +00:00
Axel Dörfler
189ba7a9dc Tried to separate active WinBorder from front, but failed - it's now always
the focus border, and therefore, I probably broke floating windows (but that's
not that important right now).
Workspace::HideWinBorder() now sets focus to the next WinBorder, not always
the top one.
Workspace::MoveToFront() no longer changes focus, no longer calls ShowWinBorder()
when the window doesn't have to be moved (ie. for the desktop window).
Added Workspace::SetFocus() to change the focus explicetly.
Some other cleanup. This is an ugly patch, but refactoring/rewriting is coming
soon.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 20:19:22 +00:00
Stephan Aßmus
6c3f99cf46 the clipping in fLayerData is in screen space, so when getting/setting the user defined clipping, we need to convert to/from view space
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13505 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 18:05:56 +00:00
Axel Dörfler
063c980a2d Minor cleanup: we have a constant for the desktop window feel.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13502 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 16:26:53 +00:00
Stephan Aßmus
72fab80539 another quick change for Tracker which allows to click on the Deskbar window, for some reason the window manager implementation does not allow a B_SYSTEM_LAST window to become the focus, but this is clearly possible on R5. I tried to track the real problem, but it needs to at least appear to work tomorrow... so double clicking on the Haiku volume indeed opens a Tracker window, though there is nothing in there. Axel, when I launch Tracker, I'm getting a bunch of KDLs with PANIC: BFS where I can continue until finally seeing Tracker. Deskbar works even better, though displaying the BeOS Logo is IMHO unacceptable for the representation, so I'm intending to make a Haiku Deskbar logo ASAP.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13492 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 13:31:41 +00:00
Stephan Aßmus
25685e7e5f this quick change will make sure the Tracker Desktop window is opened behind all other windows and stays there, just to make life easier for Axel when I is representing the thing...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13491 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 13:25:43 +00:00
Stephan Aßmus
101e7104ed fixed screenshots. Again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13484 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 10:21:23 +00:00
Axel Dörfler
c9299b3ce8 Instead of killing the ServerApps the hard way, the AppServer now quits
them if they didn't listen to B_QUIT_REQUESTED. This works much better
as how it was done before.
Now uses exit() instead of exit_thread() which makes sure no thread survives.
Note, there still is a race condition in case an application quits immediately
before shutting down the server - in that case, it doesn't participate in
the fShutdownSemaphore stuff, and therefore, the app_server could quit it
too early. Maybe I'll fix that one day, as well :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13481 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 04:57:57 +00:00
Axel Dörfler
c8e986230f Incorrectly used real_time_clock() instead of system_time() for the message time stamps
(change suggested by stippi).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13476 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 02:48:13 +00:00
Stephan Aßmus
8ffa3fb9fa the official system palette also has the 0xff entry (B_TRANSPARENT_MAGIC_CMAP8) with alpha = 0
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13474 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 01:46:37 +00:00
Stephan Aßmus
53a3e62c74 quick hack for alpha = 0 in B_OP_OVER, needs review, but for now, drawing all those B_CMAP8 bitmaps which have B_TRANSPARENT_MAGIC_CMAP8 pixels is working fine... IAW, icons look cool.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13473 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 01:43:49 +00:00
Axel Dörfler
5c228514df Made the border line darker for B_BORDERED_WINDOW_LOOK - menus look much better now
(but should still have their own look that includes the bevel, I think).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13469 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 23:10:08 +00:00
Axel Dörfler
34ce0e42d4 As it turns out, window_info::type is really the window's "feel".
Basic support for the desktop window feel: WinBorder will now resize
a window with kDesktopWindowFeel to span over the whole screen.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13462 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 20:28:40 +00:00
Axel Dörfler
2b1246d968 Renamed AS_WINDOW_TITLE to AS_SET_WINDOW_TITLE.
Fixed handling in ServerWindow as stippi's latest commit broke it.
It's now properly done with a separate ServerWindow::SetTitle() method,
that will also take care to rename the window's thread.
Changed naming the window thread in the app_server to "w:<team>:<title>".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13461 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 19:20:19 +00:00
Axel Dörfler
4902831aca Fixed the newly introduced hang when a menu item was selected (which was only one
of the consequences): a forgotten rootLayer->Lock()...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13458 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 18:46:59 +00:00
Axel Dörfler
0bb8508592 Stippi's commit accidently changed the initial screen size.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 18:38:12 +00:00
Axel Dörfler
6a0a0a80da Implemented AS_GET_WINDOW_LIST and AS_GET_WINDOW_INFO.
Renamed Desktop::FindWinBorderByServerWindowTokenAndTeamID() to FindWinBorderByClientToken().
Every ServerWindow now gets a server token.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13455 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 18:14:24 +00:00
Stephan Aßmus
359c905c57 offscreen bitmaps work, tested on Haiku as well, supports all colorspaces that BBitmap::ImportBits() supports. It uses a fallback for non-B_RGB(A)32 bitmaps. Added support for B_SUB_PIXEL_PRECISION view flags, though it is a bit hacky, since I had to add it to LayerData, even though it is not a true part of stack data. Added Layer::SetFlags() to enforce code path and update fLayerData. Cleaned up DisplayDriverPainter and DisplayDriver API (changed some const BRect& rect to simply BRect rect in order to be able to reuse it in the code), moved Painter.h, the test environment only draws the changed part of the frame buffer again - this causes a lot less CPU overhead, Painter special cases stroke width of 1.0 to use square caps, which is similar to R5 implementation and removes a lot of problems with non-straight line drawing, ServerWindow uses the DisplayDriver from it's WinBorder instead of the one from the Desktop (needed for offscreen windows, which have their own DisplayDriverPainter), it also checks for GetRootLayer() == NULL, because offscreen layers are not attached to a RootLayer, there was a fix for scrolling which worked at least in the test environment, it is now defunced, because Adi moved _CopyBits to Layer... I need to reenable it later, LayerData has no more fEscapementDelta, also fixed fFontAliasing (which was thought to overriding the font flags, and now works as such again), Desktop initialises the menu_info and scroll_bar_info stuff, which makes ScrollBars work actually... hope I didn't forget something.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13448 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 16:17:16 +00:00
Axel Dörfler
f5d8fa6e60 AS_LAYER_GET_CLIP_REGION missed a Flush() in case the view was not hidden,
and that put apps that used it to sleep (for example, Tracker is using it).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 01:19:01 +00:00
Axel Dörfler
b1e04bcb5c The app_server now also quits fast in case there are no apps to quit... :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13432 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 01:02:32 +00:00
Adi Oanca
be2eea8cf9 implemented hooks for resizing and moving operations. BViews now resize corectly in Playground app. Ignore the Convert*() stuff.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-02 10:40:14 +00:00
Adi Oanca
4a9bbc7d20 addapted to new clipping code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-02 10:37:53 +00:00
Adi Oanca
b72bef8630 Added Flags(), ResizeMode(), made virtuals be prototypes only.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-02 10:36:24 +00:00
Axel Dörfler
bc1a7f9f09 Now prints out a message when the window title should be set.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13392 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 18:29:20 +00:00
Axel Dörfler
1b36d9d743 The TEST_MODE and non-TEST_MODE code is now the same, only the modifiers/keys
are different. Therefore, workspace changes should work on real hardware as
well now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13387 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 11:22:58 +00:00
Axel Dörfler
c030c6fa68 As the comment says, deleting the cursor is not necessary.
But since every single cursor is owned by a team - why the cursor manager?
I must overlook something...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13385 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 10:13:50 +00:00
Axel Dörfler
3870c9f18f Improved quit mechanism (for the last time): if an application had open
windows that wouldn't quit on demand, the app_server would have gotten
the kShutdownServer message anyway already (as the last app was quit).
Since that one removed things like gDesktop/gBitmapManager, it liked
crashing.
Now, there is a semaphore that will be send to each app on quit. Only
when this semaphore can be acquired, the shutdown message will be sent.
Removed unused semaphores (decorator, active app).
Replaced fAppListLock with a BLocker (just calling acquire_sem() without
error checking is very unsafe in userland, and should never be done).

BTW the bug was triggered by broken menu code that only sometimes
really quit the window; it leaves a whole lot of zombies around - Stefano,
any quick idea? :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 10:09:11 +00:00
Axel Dörfler
37fa302a92 Also commented some unimplemented message handler to not break the reply mechanism.
The ServerWindow did not even have such a mechanism anyway... (it now has).
Minor cleanup, replaced some "delete" with "delete[]" where appropriate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 08:50:45 +00:00
Axel Dörfler
1e1b96cdc1 Rather than a "case message: /* unimplemented */ break;", we should not
handle the case at all to give the server the possibility to send a
failure response - ifdef'd some code out.
Added comment to ServerApp::PingTarget(), because what it currently does
does not make any sense.
Minor cleanup (replaced fSignature.String() with Signature()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 08:48:51 +00:00
Axel Dörfler
1786706696 You're not supposed to delete bitmaps yourself; you have to let the
bitmap manager do the job.
This fixes a possible crashing bug on quit, a giant memory hole, and
probably also a possible crash during runtime.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 08:10:42 +00:00
Axel Dörfler
5712a788a1 WorkspacesLayer now makes use of DisplayDriver::ConstrainClippingRegion() in
order to flicker less (which works, but it's not really that nice yet, as
it currently only works for the background).
The workspaces layer is now also invalidated if a new window appears on the
screen or goes away (also when this happens in another workspace).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 07:58:22 +00:00
Axel Dörfler
24a146d4f6 Small hack to get to know the code a bit better.
A view-only workspaces window support (with lots of drawing flicker) - this
means you see what happens in the workspaces, but it doesn't do anything if
you click on it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13378 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 06:53:07 +00:00
Axel Dörfler
f598d348b1 A window thread is now called "w:<title>" instead of just "<title>".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13376 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 06:44:39 +00:00
Axel Dörfler
b7596f59ec AS_LAYER_GET_STATE no longer sends stuff that doesn't belong to the layer's state.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 23:03:28 +00:00
Axel Dörfler
3783821c25 Fixed B_CONTROL_HIGHLIGHT_COLOR/BORDER_COLOR. Changed highlight color from Dano value
to something for R5 (ie. what DiskProbe is using).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 21:52:32 +00:00
Axel Dörfler
80a230b10e Rewrote the push/pop state and ViewAttr stuff:
- it now seems to work finally correctly
- renamed ViewAttr to ViewState and put it into the BPrivate namespace
- some refactoring (moved some private BView methods to ViewState)
- renamed AS_LAYER_MOVETO/RESIZETO to *_TO (note the underscore)
- exchanged BView::originX/Y with fParentOffset (BPoint)
- divided AS_LAYER_GET_COLORS into separate ones for high/low/view color
- BView::SetPattern() now actually works as expected (ie. updates
  only if necessary)
- exchanged the ViewAttr::flags with ViewState::valid_flags which inverses
  the previous logic (which wasn't even used consistently)
- fState was initialized twice (incorrectly by the ViewAttr constructor,
  and then again correctly by initCachedState()) - now the ViewState
  constructor does the job alone, but correctly
- BView::PushState() no longer resets the state (it did so only locally
  anyway...)
- cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13325 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 18:56:55 +00:00
Adi Oanca
f97b5cb586 Moved CopyBits from ServerWindow to Layer. Also, made CopyBits code execute in RootLayer's thread
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 15:34:54 +00:00
Adi Oanca
1302949204 Layer::Show/Hide now works. Improved some invalidating calls. fixed some potential problems
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13317 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 14:57:16 +00:00
Adi Oanca
ecf3bc3eb4 moving and resizing windows works with the new clipping code. scrolling BViews also works.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 12:25:32 +00:00
Axel Dörfler
a87826801c Added workaround for current stability problems of the app_server: giant lock,
say hello to RootLayer.
Adi will probably not like this, but that's definitely only a temporary solution :-)
This little fix greatly increases app_server stability under Haiku - ie. menus
are working now, the team monitor comes up regularly, etc. - how great is that?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13305 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 03:23:16 +00:00
Axel Dörfler
276aa135a7 The size limits are now correctly enforced on window creation, ie. the ResizeLimits
test application now works as it should.
DefaultDecorator::GetSizeLimits() did work correctly, there was no need
to have extra protection limits.
Enabled Stephan's automatic resize code on BWindow::SetSizeLimits() again, and
added a short comment why I think R5's behaviour is just a bug/leftover.
Moved guts of ResizeBy() into _ResizeBy() that doesn't send the update message
to the client, and is now called in the constructor to make sure the border
size is within limits. Also made it work there, as fTopLayer is NULL in that
environment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13304 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 02:00:48 +00:00
Axel Dörfler
85bd83a710 AS_CREATE_WINDOW now also gets the actual frame width and size limits of
the window on server side - ie. if the app_server could not create a
window of the size requested, BWindow::fFrame will still be correct
(and the size limits will mirror actual decorator limits).
Renamed fMinWindHeight and friends to fMinHeight and so on.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13302 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 01:14:39 +00:00
Axel Dörfler
c17904c587 The B_WINDOW_RESIZED message now looks exactly like it does under R5, ie. has a "when" field, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 00:53:41 +00:00
Stephan Aßmus
f8570b7199 substract the border width from minSize, as that is the inner width of the window
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 00:34:51 +00:00
Stephan Aßmus
063f418c53 made room for a new meaning of BitmapBuffer, it will be used for a RenderingBuffer class that wraps arround a ServerBitmap. BBitmapBuffer on the other side is handy as well and wraps arround a BBitmap, as BitmapBuffer did before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13297 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-27 22:11:27 +00:00
Stephan Aßmus
203661c9d0 svn does not do what I want before I commit this... It's going to be renamed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13296 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-27 21:53:17 +00:00
Stefano Ceccherini
9f5ffc2c3c Fixed BFont's GetTunedCount() and IsFixed()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13293 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-27 15:44:47 +00:00
Axel Dörfler
08d9a6e30d Some minor work on minimum window sizes. A WinBorder now makes sure it has
a valid size on construction; DefaultDecorator should do that as well.
ServerApp AS_CREATE_WINDOW now makes sure it passes a valid rectangle to
ServerWindow's constructor.
Smaller default size for Layers that have been created with an invalid frame.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-27 02:06:15 +00:00
Stephan Aßmus
18cbc4ff3d Using the read locking in DisplayDriver was a bit early. Painter itself is not thread safe, so while we use the HWInterface lock for locking, we can only do read locking once each window has its own Painter instance. I'm still investigating this possibility. It depends on the memory foot print of painter, of which I don't have a clear idea yet. Anyways, this quick change fixes Adis problems and is required at this time anyways. Sorry for the inconvenience.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 22:56:24 +00:00
Adi Oanca
e3fbc7752f integration of the new clipping code continues
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 15:45:58 +00:00
Stefano Ceccherini
d06e1bff11 Fixed array initialization.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13276 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 14:13:30 +00:00