Commit Graph

12364 Commits

Author SHA1 Message Date
Stephan Aßmus
3f513bbafe Font rendering code should be cleaner, maybe a little more efficient and better documented. Rotated text is supported again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12748 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 23:26:15 +00:00
Stephan Aßmus
e980fe005f fixed the build, sorry
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12747 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 19:59:24 +00:00
Stephan Aßmus
1218d80ff8 removed no longer used stuff
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12746 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 19:54:12 +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
Axel Dörfler
097d641852 Didn't know that BView::do_owner_check() also checks the lock - maybe
it should be renamed to do_owner_and_lock_check().
Removed looper locking again, since it's not needed, then. Thanks to
Adi for the hint.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12743 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 14:58:49 +00:00
Axel Dörfler
52005fdaff Finally fixed Adi's repeatedly mentioned pet peeve: in AS_LAYER_GET_MOUSE_COORDS
communication, the port's reply port is no longer sent to the app_server (as it
knows where to reply to, anyway).
Also made sure the view's looper is locked while getting the coords - I guess
BPortLink doesn't like to be written to from two different threads :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 02:42:52 +00:00
Stephan Aßmus
9962b67e5f DisplayDriver::DrawBitmap() takes no more region, the clipping is expected to be already set, as with all other drawing functions. Moved bitmap drawing message dispatching in the drawing messages area, where the correct clipping is set too. Moved cases for messages that don't need clipping applied, ie which don't draw anything, into the normal dispatch function. This means SetHighColor() and so on will no longer rebuild the clipping in Painter. Would be interesting to know how much performance this had cost...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12741 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 00:09:59 +00:00
Stephan Aßmus
746d7f54e5 better visualization and more comfortable editing of the Bitmap frame
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 00:04:38 +00:00
Axel Dörfler
4dfc2afb5b Added a BAlert to the "clear" button - doesn't work yet (not even pressing <enter>
for the default button does), but at least, the window itself is updated now :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12739 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 00:00:52 +00:00
Stephan Aßmus
0fa7031a26 A test for drawing bitmaps. Surprisingly, it worked out of the box. Though the clipping inside the view works, we segfault when moving the window outside the frame buffer bounds so that the bitmap is drawn outside the frame buffer. Should be an easy fix though...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12738 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 20:54:05 +00:00
Stephan Aßmus
9f602781bf Added a check for single buffered mode when reporting available HW acceleration, because it clearly won't work in double buffered mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12737 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 17:39:58 +00:00
Axel Dörfler
25500bdfd9 Fixed BWindow::UpdateIfNeeded() by moving the code from BView::GetMouse() over.
GetMouse() will now just call UpdateIfNeeded().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12736 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 17:20:36 +00:00
Axel Dörfler
402612b831 It's called "preferences" not "prefs"! :-)
Added some preferences applications to the image. Some of them even start
(DataTranslations, Keyboard), most will bring down the app_server, or miss
libtracker.so.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12735 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 16:49:19 +00:00
Axel Dörfler
04dc040e40 No more B_MESSAGE_NOT_UNDERSTOOD messages for standard messages.
Added another ToDo item about missing filtering.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12734 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 16:14:51 +00:00
Jérôme Duval
7a2b05c5ad multiple chunks handling
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12733 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 15:38:29 +00:00
Axel Dörfler
d1783112af Our devfs currently keeps drivers around, so it's not a good idea to
install interrupt handlers in init_driver().
The downside of this is that you can now only use F12 to drop into
the debugger when the console appeared (not before).
This way, the driver no longer causes ps2_hid to not be able to
disable or enable the keyboard (which means you can keep them both
installed without worries).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12732 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 14:30:27 +00:00
Axel Dörfler
fe9bc5ae27 Added sqrt() and sqrtf() assembly versions.
Still they are not yet really used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12731 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 14:13:22 +00:00
Axel Dörfler
d6fad1d006 Changes due to Adi's insight:
- there can only be one _UPDATE_ message at a time in the queue so we
  can stop searching after we hit the first one
- mouse coordinates are always send in screen coordinates (unlike R5,
  which means this is a compatibility problem), so we need to convert
  them even for the current view.
Apps should now work with the old synchronous controls method (even
though their drawing updates look clumsy and are slow compared to
asynchronous controls for whatever reason).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12730 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 14:12:02 +00:00
Andrew Bachmann
84987c7ad5 it is now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12729 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 00:01:56 +00:00
Stephan Aßmus
1fd87770e9 added scrolling with the right mouse button
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12728 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 23:42:58 +00:00
Axel Dörfler
62f9753de5 Added public domain versions of sin() and cos() (taken from glibc).
Not yet used, though - we probably need to rearrange the source files a bit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12727 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 22:19:35 +00:00
Andrew Bachmann
f789e6b332 all tests now passing, print table entries only in case of failures
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12726 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 21:41:22 +00:00
Andrew Bachmann
42b25a64ad for libroot's trig functions we need PI2 = 2*pi, so undef the math definitions. this affects only this private header (trig.h) and the files that include it from libroot (sincos.c, tan.c). fixes sin/cos/tan problems.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12725 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 21:39:36 +00:00
Andrew Bachmann
00b424f83a test more values, add sin2+cos2=1 check
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12724 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 21:12:16 +00:00
Axel Dörfler
bcd8a1fad9 Converted Window.cpp to our coding style guide and (unfortunately) fixed a
myriad of small bugs here and there, as well as some very odd coding techniques:
- the "Minimize" property was not handled
- the "Minimize" property was not settable
- the property/scripting stuff was horrible, anyway
- there are more and better error codes than B_ERROR (could someone tell the
  app_server guys? :))
- added some ToDo items here and there
- and much more I don't remember


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12723 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 20:53:21 +00:00
Adi Oanca
fd5fe00cb1 Got scrolling to work properly
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12722 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 20:47:13 +00:00
Andrew Bachmann
ba2286a9a9 add test for drem, expand testing for and supress table output for copysign, drem
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12721 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 20:45:02 +00:00
Andrew Bachmann
dfdc5e411e use "national" math (fixes copysign/drem)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12720 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 20:43:52 +00:00
Andrew Bachmann
a3344504d0 add copysign test, formatting changes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12719 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 19:59:38 +00:00
Andrew Bachmann
5c8563d142 add some math tests
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12718 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 19:38:10 +00:00
Adi Oanca
e3b75692e9 implemented ScrollBy
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12717 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 17:17:06 +00:00
Axel Dörfler
3405fff2a9 Implemented private function BWindow::DequeueAll() which reads all pending
messages from the port.
BView::GetMouse() now calls this function if it was called from the window's
thread and thus blocking the message loop.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 16:54:56 +00:00
Axel Dörfler
25b0ec461d Now, GetMouse() processes and removes all _UPDATE_ messages, not
just those before the first mouse message.
This should be more correct and look better.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12715 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 15:47:49 +00:00
Axel Dörfler
c66f958bb6 Corrected BView::GetMouse(), untested though:
- it returned on _UPDATE_ messages without a mouse position
- it no longer calls DispatchMessage() for everything anymore,
  however, it will still call BWindow::DispatchMessage() directly
  for _UPDATE_ messages
- it didn't care for B_MOUSE_DOWN messages
- it didn't unlock the queue in case it found a message.
(this message actually reflects the differences to r12683 of this
file, but the newer one r12705 was even more broken, but in other
ways)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12714 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 15:40:29 +00:00
Axel Dörfler
c1fc0493cb Added missing wctype.h header - R5 does not include this header, but its
libroot.so exports the functions declared therein.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12713 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 15:02:09 +00:00
Jérôme Duval
6005071a1c Patch from John [Beta] Drinkwater
Fix for 3 misbehaviors compared to R5


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12712 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 13:00:16 +00:00
Stephan Aßmus
c7694b4ac7 Make the dot a dynamic size and improve the rendering for anti-aliasing under Haiku. Confirmed to look good with different font sizes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12711 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 12:18:11 +00:00
Stephan Aßmus
3eaf632305 improve smoothnes of arcs rendering in Painter, fix a warning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12710 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 12:16:15 +00:00
Stefano Ceccherini
91b84c7729 Some initial code for async mouse tracking. Just playing around actually.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12709 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 10:45:36 +00:00
DarkWyrm
d73474eee9 Removed an infinite recursion bug in StrokePolygon
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12708 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 10:01:52 +00:00
DarkWyrm
585fe26c42 Added OutlineListView to build and fixed an include problem
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 09:24:59 +00:00
DarkWyrm
2763f978ce Small tweak to make window IDs good when running as an R5 Terminal replacement
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12706 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 08:22:39 +00:00
Stefano Ceccherini
898289a3f1 Improved a bit BView::GetMouse(). Added more ToDOs
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12705 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 07:02:25 +00:00
Stephan Aßmus
e803c97c34 pen size text control is now enabled in the correct situations
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 00:51:15 +00:00
Stephan Aßmus
987f7a0a18 Updated Painter to produce the exact same results for stroked round rects and ellipses. R5 is kind of strange... I didn't reproduce some obvious R5 round rect defects though. Added a remark in ServerScreen about deleting the DisplayDriver, I left it commented, because the obos_registrar is not quitting when the app_server is closing, this should be fixed first.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 00:22:49 +00:00
Stephan Aßmus
78c1c29baf Playground is now a little drawing app. Fully functional under Haiku, but with some strange defects in arc calculation within AGG.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12702 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 00:15:58 +00:00
Adi Oanca
4a95e83357 Implemented some support for moving and reziving Layers. It works too. :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12701 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-17 17:24:50 +00:00
Stefano Ceccherini
e3c6cec42e Fixed a bad typo
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12700 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-17 15:53:17 +00:00
Stefano Ceccherini
335b47697c Added a small test for GetMouse().
Looks like that, when called with "true" as third parameter,
it "eats" all the input messages like B_MOUSE_UP/B_MOUSE_MOVED. That means our implementation isn't correct.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12699 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-17 13:47:30 +00:00