Commit Graph
100 Commits
Author SHA1 Message Date
Stephan Aßmus f71eec5f41 added three more Transformer implementations:
* AffineTransformer - affine matrix transformation
* PerspectiveTransformer - perspective transformation
* ContourTransformer - extending the underlying VertexSource by a certain
  width (like "false bold" in text rendering)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17898 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-21 15:21:26 +00:00
Stephan Aßmus 0199e126e2 implemented a cool vertex transformation pipeline:
* VertexSource virtualizes the AGG "VertexSource" interface
* Transformer is an interface for building pipelines of
  VertexSource objects, each taking the output of the previous
  object and transforming it in some way
* StrokeTransformer is currently the only implementation and
  converts a path into an outline stroke
* PathSource implements the VertexSource interface on top of
  a VectorPath which it converts into an agg::path_storage
  and into an agg::conv_curve<agg::path_storage> to get smooth
  bezier curves
* added VertexSource() to Shape class, which returns the last
  object of the transformation pipeline, it uses a PathSource
  for the root object
* changed IconRenderer to use the new polymorphic VertexSource
  pipeline


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17896 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-21 14:38:13 +00:00
Stephan Aßmus 0f50089d87 implemented gradient rendering
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17892 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-21 12:14:19 +00:00
Stephan Aßmus f67876a0c5 some more "putting things together" for testing:
* add a VectorPath to Document->Icon()->Paths()
* add a Style to the global StyleManager
* actually add a Shape to the Document->Icon()->Shapes()
  which uses the style and the path from above

fleshing out of CanvasView:
* use an offscreen bitmap/view to avoid flickering
* use an IconRenderer to render the set Icon
* implement support for zooming

PathManipulator:
* use the conversion from/to Canvas space and View space
  in CanvasView (I would have liked to solve this in a
  more generic way, so that PathManipulator didn't have to
  know CanvasView, but I was not very creative...)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-21 10:43:19 +00:00
Stephan Aßmus 3f6acee003 actually render all the shapes... TODO: gradients
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17890 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-21 10:36:39 +00:00
Stephan Aßmus 667973ad58 added more useful colors and some patterns
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17889 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-21 10:34:37 +00:00
Stephan Aßmus 362cd293d6 added IndexOf()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17888 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-21 10:33:52 +00:00
Stephan Aßmus 781809a916 don't ignore the smoothing scale in Iterate()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17887 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-21 10:33:14 +00:00
Stephan Aßmus 3639baa4b0 * add more classes:
PathContainer - a list of VectorPath objects
  ShapeContainer - a list of Shape objects
  Icon - the object contains VectorPaths and Shapes using these paths
  IconRenderer - renders an Icon into a BBitmap using AGG compound shape
  rasterization with additional gamma correction
* Shape has a PathContainer instead of a single VectorPath
* Document has an Icon instance
* changed the inheritance of some classes to us Referenceable more


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17873 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-18 19:05:44 +00:00
Stephan Aßmus 6ebf703166 * implemented more needed classes, Style, StyleManager, Gradient, Shape
* added Referenceable
TODO: Shape needs list of paths instead of one single path,
also transformers, and such stuff


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17867 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-17 19:02:32 +00:00
Stephan Aßmus e39da397f5 * long overdue update to AGG 2.4
* removed the useless parts of AGG (which are only needed for the
  interactive examples)
* make sure to jam -a libagg.a to solve any linking issues


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17838 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-14 14:30:17 +00:00
Stephan Aßmus 128277c969 the first steps towards Icon-O-Matic
* added a framework with many classes that I think will be useful
* currently, the StateView and Manipulator interface are used to
  allow editing a single VectorPath object, nothing more... the
  CommandStack framework is also used to support Undo/Redo


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17822 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-13 13:43:13 +00:00
Stephan Aßmus 1f84dba758 the finishing touches...
* now displays the calculator icon besides the text entry
when the keypad is off, also draws a frame around the text
entry and uses standard black on white...
* fixed a few other issues
* should hopefully be complete now
* on R5, there are sometimes rendering bugs with the 
  app_server (sometimes it doesn't invalidate views that
  are transparent and have been resized before the window is
  shown)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17777 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-08 00:34:02 +00:00
Stephan Aßmus d2176a2d86 * fix leading spaces after evaluating
* increase to 13 digits after decimal point
* load and save the expression history


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17776 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-07 22:42:00 +00:00
Stephan Aßmus 19f75b98e6 I hope Daniel is not upset, but Ingo and I have written a new parser:
* it supports white spaces
* it supports , and . for the decimal point
* it gives parse errors and where the error occured
* it supports more functions
I also added evaluating an expression given on the command line, it doesn't
show the UI then.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17774 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-07 22:05:03 +00:00
Stephan Aßmus 3866a1f6d2 Oops, I commited the destroyed version... but restoring the header
is not half as bad...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17768 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-07 18:24:54 +00:00
Stephan Aßmus b4d21c8325 Quite a bunch of changes... but it doesn't work perfectly yet.
I ran into an obscure Pe bug which resulted in me overwriting
the wrong file... but then the machine KDLd, which it almost
never does... and I got lucky and the file was there again...
But this teaches me to commit more often.
* replaced expression area with a custom text view
* added expression string history (a bit dumb yet)
* added option to hide the keypad


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17767 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-07 18:14:55 +00:00
Stephan Aßmus e61b54a291 remembers option window position and avoids opening another instance of it, options window is not resizable anymore
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-06 16:43:42 +00:00
Stephan Aßmus b962260488 fixed build and applied yet more cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17741 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-06 16:25:46 +00:00
Stephan Aßmus a216b33aed more cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-06 16:21:02 +00:00
Stephan Aßmus d4c6f97c75 added DeskCalc to the image
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17738 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-06 16:09:31 +00:00
Stephan Aßmus 7cb395c433 adding DeskCalc by Timothy Wayper
huge cleanup of the DeskCalc code:
* applied style guide
* fixed any TODOs from timmy
* slightly nicer looking options window
* new way to store settings
* code should be more robust
* includes parser kindly donated by Daniel Wallner


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17737 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-06 16:07:47 +00:00
Stephan Aßmus 86f902c3ed save and restore menu and mouse settings, fixes bug 607
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17676 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-31 19:23:26 +00:00
Stephan Aßmus 25f03a7bd8 * avoid endless loop in some cases concerning scrolling with fractional coords
* detect invalid params to SetRange()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17675 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-31 19:21:16 +00:00
Stephan Aßmus 95f766fa3e cleanup of archiving code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17674 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-31 19:18:25 +00:00
Stephan Aßmus 693f381e83 Fixed a weird Tracker bug, fOkToMapIcons was initialized to "true", but
I have no idea what sense this makes. When switching from list mode to
icon mode, some poses had their locations set to location "infinity",
because MapToNewIconMode did a division by zero. This resulted in feeding
the scrollbars a totally insane range.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17673 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-31 19:16:10 +00:00
Stephan Aßmus 5dadd750c0 very small cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17672 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-31 19:09:24 +00:00
Stephan Aßmus b9535d8e52 * add two of the logos to /boot/beos/etc/artwork, suitable
for putting on your Desktop as background (manual placement!)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-29 14:45:45 +00:00
Stephan Aßmus 292027a476 use the new logo from the artwork folder
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-29 14:30:40 +00:00
Stephan Aßmus 3b2aa67bf2 * added "artwork" folder with variations of the Haiku logo (white on
blue and black on white in different sizes), all of which are pixel
  aligned for the crispest possible look. Both a PNG version and the
  original WonderBrush file are included.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17631 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-29 14:22:57 +00:00
Stephan Aßmus ef64b24102 added Siarzhuk Zharski to the list of contributors
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17626 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-29 10:01:46 +00:00
Stephan Aßmus b3d94504c2 * added a bunch of drivers by Siarzhuk Zharski
-> a USB Mass Storgage module (SCSI bus manager add-on)
-> a SiS 7018 AC97 driver (uses "old" audio driver interface)
-> a USB Serial driver
-> a USB Vision driver and media add-on (Haupauge WinTV USB)
* moved R3MediaDefs.h from usb_audio driver to common place
  headers/private/audio (also used by SiS 7018 driver)
* added TV tuner frequency defines to data/settings/media/usb_vision

Some of these drivers are in unfinished state, particularily the
USB Vision driver, the VideoProducer doesn't seem to use it yet,
the USB Mass Storage module is known to work though, it also includes
add-ons for itself that add support for some "special" hardware, these
are not integrated with the Jamfile build system though.

Also I didn't much much time with the "CVS package" targets, the
ReadMes are not added, someone with more knowledge about this could
add them...

None of this stuff is added to the Haiku image, it is simply included
to be maintained in the Haiku tree from now on.

* fixed a bug in Video Producer sample inherited from Be Sample
  code - the timing from the time source was not really used,
  on some systems this could cause in the producer not waking
  up at the correct time if the system time and audio card time
  are drifting apart



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17625 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-29 09:54:03 +00:00
Stephan Aßmus e229fcb239 nailed a view bugs concerning archiving BViews, the flags where restored 0 in most cases, which means B_WILL_DRAW was not set, I'm going to clean this up some more, ViewState::archiving_flags is bogus...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17612 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-27 21:57:54 +00:00
Stephan Aßmus a502e8cd6e sorry, forgot about this change... fixes build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17604 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-27 09:28:59 +00:00
Stephan Aßmus c7b650c800 * because of my last change, the background was filled even though the app_server already did it
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17603 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-26 22:27:13 +00:00
Stephan Aßmus 12104c2eab synced with OT repository - I guess you knew what was comming,
Tracker saves and restores the window decorator settings on
Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17602 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-26 21:48:53 +00:00
Stephan Aßmus 56cedb9e81 sync to OT repository, simplify drawing code and remove dark edge at first attr column
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17601 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-26 21:41:55 +00:00
Stephan Aßmus d35ed1a6db fixed some remaining issues with tab sliding:
* the tab keeps the relative position when the
  window is resized (could be done nicer though,
  now it uses two members)
* tab offset is no longer reset in _DoLayout(), ie
  when any aspect of the decorator changes...
one issue that is left is sliding the vertical tab
of kLeftTitledWindowLook windows, but there might
be more... like when the look changes or stuff like
that


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17600 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-26 21:26:35 +00:00
Stephan Aßmus 8cd531a9ba As Axel correctly pointed out, but even Ingo overlooked, we need
to export the previously virtual slot to be binary compatible...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17594 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-26 13:50:11 +00:00
Stephan Aßmus 39c991c0f3 Added BPositionIO::GetSize() and implemented it by means of Seek() and
Position(). This used up a virtual slot of BPositionIO. GetSize() needed to be
implemented in BFile, which uses the BStatable version as before. This should
hopefully be binary compatible. The only problem could be in source
compatibility when there are classes inheriting from BPositionIO implementing
their own GetSize().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17593 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-26 13:27:53 +00:00
Stephan Aßmus b30e90211e added a way for BWindow to store and restore arbitrary decor settings,
currently those include only the tab location


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-25 12:01:28 +00:00
Stephan Aßmus 46fb2d73be sorry, I couldn't resist...
* added a few very small changes to make the tab sliding work perfectly
* added a comment on the purpose of WindowLayer::fLastMousePosition and
  how it is supposed to be used to have the mouse cursor stick to what
  is being dragged
* TODO: the tab offset doesn't necessarily have to be on [0..1], as long
  as we update it during window resizing to keep the relative position


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17577 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-24 11:05:25 +00:00
Stephan Aßmus a7f936aa14 * cleanup
* fixed SetViewColor() - I have no idea why it compiled before
* changed SetHidden() to make less of a difference between
  the top view and other views, the clipping is now always
  rebuilt


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17527 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 10:05:17 +00:00
Stephan Aßmus 8dc6e23650 cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17526 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 10:03:24 +00:00
Stephan Aßmus bd5ed534cf a fix to the file cache (done by Axel), that prevents a crash when
reading the file map of certain files (hope I got that more or less
right)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 09:59:07 +00:00
Stephan Aßmus a0c5ca01a5 using Draw(); Flush(); doesn't get a clean background to draw on, other controls should be fixed as well... this should fix the text becomming thick when repeatedly clicking a check box
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17524 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 09:55:39 +00:00
Stephan Aßmus bc685a6444 set_rgb_color() seemed useless
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17523 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 09:54:24 +00:00
Stephan Aßmus 52bc1e501f no need to delete fSelectMessage in the destructor after using SetSelectionMessage(NULL);
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17522 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 09:53:46 +00:00
Stephan Aßmus 431da4dd4b AddItem(..., frame) used AddItem(..., index) which
triggered a debugger call -> refactoring and cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 09:53:08 +00:00
Stephan Aßmus 75b7acdac8 * commented out the code to invalidate a view when
it is added our removed to another view, this is
  taken care of in View.cpp until we find something
  better


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17511 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 09:55:56 +00:00
Stephan Aßmus f5643345cd added an async version of MarkContentDirty(), which would clear the backgrounds in case an expose event had already happened earlier, however, it turned out I didn't need it yet, see next commit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17510 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 09:53:01 +00:00
Stephan Aßmus 3e58cde6dc minor clean up
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 09:51:38 +00:00
Stephan Aßmus 5add574bc9 * invalidate in _Attach and _Detach - I still hope to
find a better solution, at least it fixes the problem
  that when views are added to already showing windows,
  and those views set their view color in
  AttachedToWindow(), the app_server will have already
  cleared the background with the previous view color
  (for example white check boxes problem in Tracker
   Settings window)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17508 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 09:45:01 +00:00
Stephan Aßmus ae749d90ce * updates fLastBounds in AttachedToWindow
* don't do the checks for invalid rect and Window(),
  because Invalidate() does this for you


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17507 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 09:43:06 +00:00
Stephan Aßmus 2a3de9bc1d * use new (nothrow) when checking the returned pointer
* better handling of errors in various versions of AddItem()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17506 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 09:39:54 +00:00
Stephan Aßmus b0cdd6481d synced to 1.17 from OpenTracker CVS (fixed a deadlock when dragging something over Deskbar)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17497 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-17 17:08:26 +00:00
Stephan Aßmus 3702e4734e synced to 1.8 from OpenTracker CVS
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17496 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-17 17:07:41 +00:00
Stephan Aßmus 2c7fad579c synced to rev 1.9 and 1.4 from OpenTracker CVS
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17495 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-17 17:02:25 +00:00
Stephan Aßmus a2a6a329e8 a bunch of ListView fixes:
* removed weird stuff that seemed to have no purpose in life
* added more comments where I had to figure things out
* fWidth is now adjusted in FrameResized()
* ListView scrolls up when items are removed at the end and
  there would be empty room
* fixed SwapItems(), MoveItem() and ReplaceItem() by making
  DoMiscellaneous() use the private implementations instead
  of calling the public ones again resulting in an endless
  loop
* renamed private methods with underscore
* removed more unused/empty private methods
* some slight performance increases here and there
* more correct tracking of fFirstSelected and fLastSelected,
  at least I cannot reproduce one crash in the WonderBrush
  Layer list anymore

even more cleanup and testing would not hurt though...



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17487 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-17 00:12:14 +00:00
Stephan Aßmus fb36570967 * added a simple seeking slider for Marcus to play with...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-08 19:18:19 +00:00
Stephan Aßmus 19f441e575 the drawing code was optimized for bugs in Painter, no longer
necessary


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17330 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 09:04:14 +00:00
Stephan Aßmus 65abd9dff0 * Painter switches back correctly from using B_OP_COPY for text to
using the "normal" B_OP_COPY for lines and such that works more
  like B_OP_OVER actually (for example, the slider in VLC will look
  much better, but also other stuff)
* combined Stroke and FillEllipse() into DrawEllipse() and fixed
  some longstanding issues, ellipses are now correctly placed
  (aligned) and of the correct size
* removed locking in the DrawingEngine drawing functions, since
  you need to have the DrawingEngine locked anyways for the
  clipping to stay what it is (and that's already the case elsewhere
  in the code)
* simplified ConstrainClippingRegion, the NULL version was never
  useful and also locking is removed, see above

summary: slight speed improvements, cleanup and bugfixes...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17329 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 09:03:09 +00:00
Stephan Aßmus e6b19d1f40 removed unnecessary call to ConstrainClipping(), the drawing functions that take a color are reserved for the server and ignore clipping
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 08:56:59 +00:00
Stephan Aßmus ee24641fee removed large chunks of dead code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17327 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 08:55:28 +00:00
Stephan Aßmus 7e07723e68 added tracking the usage of the special B_OP_COPY version for text
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17326 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 08:54:15 +00:00
Stephan Aßmus 022cdecc8f simplified polygon and bezier drawing methods, made them more efficient
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-03 20:34:27 +00:00
Stephan Aßmus d96389c199 fixed BView::Stroke/FillPolygon(), the bounds were not converted to screen and the clipping decision was based on it
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-03 20:33:18 +00:00
Stephan Aßmus a9efee3047 * removed left over debug output, sorry about that
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-03 11:09:37 +00:00
Stephan Aßmus 6a8e3decde * compile fix for the test environment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17306 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-03 11:08:52 +00:00
Stephan Aßmus d6aecd8934 should have fixed BView::StrokeBezier() and BView::FillBezier(), thanks to jan__64 for reporting
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17303 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-03 10:08:23 +00:00
Stephan Aßmus e1fcb5e4b8 added Carwyn Jones to the list of contributors, he seems to have been involved in writing BDirectWindow
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17286 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-01 10:18:52 +00:00
Stephan Aßmus 114752ff21 In FFM mode, clicking a window will not bring it to front
immediately. Only if the mouse is released within a certain
time window (half a sec) and if it was not dragged (as on R5).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17285 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-01 10:17:34 +00:00
Stephan Aßmus e647873a03 implemented TODOs from Desktop::ActivateWindow():
* If the window is on another workspace, the workspace will be
  activated or the window will come to the current workspace
  or nothing will happen depending on the windows flags. Tested
  with WonderBrush, but I just now realise that it will also
  fix activating a window in the Deskbar, which is on a different
  workspace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17284 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-01 10:14:51 +00:00
Stephan Aßmus aaff012f00 Rudolf convinced me to enable WaitForRetrace() again, the ATI driver should be fixed instead (not to export the retrace semaphore when interrupts are disabled)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17274 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 10:48:02 +00:00
Stephan Aßmus 4da35ea940 * added IFS screen saver
* added Installer app
* added all Translators


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 20:14:26 +00:00
Stephan Aßmus 1224ddd152 whoops, accidentally had a broken makefile left there
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17270 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 20:10:51 +00:00
Stephan Aßmus bc679b6077 added a cool looking xscreensaver port, featuring BDirectWindow usage - looks smoother than the original
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 20:08:44 +00:00
Stephan Aßmus a075725845 another long overdue fix... CopyBits() is now taking
children of the view in question into account. Neither
are they included in the region being copied, nor are
views overdrawn by the copied contents. Also, the update
region is calculated from the region having been copied,
so that holes from children views are invalidated
correctly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 18:19:54 +00:00
Stephan Aßmus 5ec797a76f * improved getting the retrace semaphore, now the PrivateScreen
will not try to retrieve the retrace semaphore again and again
  if the graphics cards doesn't support it for some reason
* disabled BScreen::WaitForRetarce() for now, since it will just
  hang on ATI Radeon at least


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 16:46:21 +00:00
Stephan Aßmus 9ac741b2d2 * small cleanup in AS_DIRECT_WINDOW_GET_SYNC_DATA
* added handling of AS_DIRECT_WINDOW_SET_FULLSCREEN
  (returns B_ERROR for now)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 16:40:29 +00:00
Stephan Aßmus 9d8ea7e417 modestly added myself to the authors of View.cpp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17264 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 16:37:10 +00:00
Stephan Aßmus f87b5b9803 long overdue fix for BScrollBar. fValue is now set in SetValue()
instead of ValueChanged(). This fixes BScrollBar implementations
which don't call the inherited version of ValueChanged(). All kinds
of weird behaviour seems to be fixed by this: StyledEdit window
resizing, scrolling in Pe, WonderBrush, eXposer and maybe more.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17263 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 16:36:31 +00:00
Stephan Aßmus a1a536495a corrected slightly weird passing on of flags to the BControl constructor
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17262 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 16:34:10 +00:00
Stephan Aßmus 2e964229ed removed a tiny bit of code duplication
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 16:31:59 +00:00
Stephan Aßmus 109d4881b5 changed translator name to JPEG[2000] Images to be in line with all the other image translators
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-27 22:42:15 +00:00
Stephan Aßmus c98821ac71 * added GUI classes for the transport control panel implementation
* as noted by the headers, these originate from Be Sample Code or
  code that was written by myself alone for VLC (they have been
  updated in the meantime though)
* seek slider is missing yet as well playback position info view
  (could be taken from VLC as well, I still have the implementation
  that contains only my own code)
* fixed application quitting when only one of multiple player
  windows is closed (not it quits when the last player is closed
  or MediaPlayer->Quit is selected from the menu)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17222 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-24 16:49:19 +00:00
Stephan Aßmus 3ca1310ac7 * cleaned up and optimized a lot setting the font in Painter and
AGGTextRenderer (when switching the DrawState for font stuff)
* removed unused stuff from the font signature generation that
  is used to synchronize the font cache
* finally nailed that bug that made glyphs of the wrong size appear
  within lines of text (the problem basically was that outside code
  messed with the freetype library instance while our glyph cache
  thought the library was last setup by itself)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17217 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-23 21:50:05 +00:00
Stephan Aßmus 9d35303f63 added a "reset()" function so that kerning can start clean
and has no left overs from a previous text run


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17216 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-23 21:45:20 +00:00
Stephan Aßmus 8087170c53 * a bit of code clean up
* some fixes to make screen_blanker wait_for_thread() instead of
  killing the screen saver thread, BScreenSaver::Stop() is now called
  as well as its destructor


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17206 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-22 20:18:52 +00:00
Stephan Aßmus bc692d448e encoded Jérôme in UTF8
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-22 20:16:13 +00:00
Stephan Aßmus 3a8e8e427b * Archive() should have been broken, because it didn't add the
class name. Also returns the actual error from the
  BMessage::AddData() if there was any. Please people, correct
  code like that if you spot this elsewhere and don't write
  such code anymore.
* the BMessage constructor should be more robust.
* the copy constructor takes the possibility into account
  that BitsLength() does not match.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17187 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-21 10:14:35 +00:00
Stephan Aßmus 0c4d8bc572 * added TODO in DragMessage about using an area for the message
* removed TODO in DragMessage about reference counting, since
  it already happens
* use _FlushIfNotInTransaction when moving/resizing a view
  programmatically, so that it usually happens instantly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-21 10:09:53 +00:00
Stephan Aßmus 2fdf723b60 * replaced BeOS logos in boot disk and BeOS folder icon with
a (hopefully) cute rocket. It's not quite as readible as
  the other overlays, so I might work on it some more. Also
  note that it is a manned rocket, as per the window, so I
  hope it cannot be mistaken for a missile. :-)
BTW - talk about self contained development, the icon was
done on Haiku!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-21 10:07:13 +00:00
Stephan Aßmus dd98ed8dfc * implemented view bitmap options (B_BITMAP_TILE...) in
ViewLayer (for example, fixes NetPositive rendering
  HTML with a background image)
* use BRegion pool everywhere in ViewLayer
* WindowLayer update sessions distinguish between
  different reasons for the update: exposed and requested -
  on expose updates, the view backgrounds are cleared
  immidiately (as on R5), to keep the time previous stuff
  keeps showing as short as possible, while on requested
  updates, the background clearing is delayed until the
  client draws something, to keep the time until the client
  fills a view with content as small as possible to reduce
  flickering (might need more work, could be buggy yet)
* HWInterface and DrawingEngine support delayed syncing to
  the graphics hardware at least for FillRect/Region. The
  speed up gained by this is minor though.
* HWInterface cursor rendering uses a bit of rounding to
  avoid the slight transparent shadow around the cursor
  (I don't know if it is fully correct though, at least the
  shasow disappeared)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-19 14:12:57 +00:00
Stephan Aßmus 8165fa3936 * fix bug 414 by Sync()ing in UpdateIfNeeded() to make
sure all messages that could trigger an update have
  actually arrived at the server
* small clean ups here and there, some clarifications in
  comments
* check for the return value of Lock() in DisableUpdates()
  and EnableUpdates()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17158 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-17 20:42:22 +00:00
Stephan Aßmus b57f2b537e * added handy BBitmap::Flags() method
* added NOTE to BBitmap::LockBits(), has anybody some insight into this?
  Otherwise we need to write a test app to discover its secrets... :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-13 13:15:00 +00:00
Stephan Aßmus b6a33e1d41 * removed the special font renderer which was actually
the same as the normal one (one less renderer to update
  the color of)
* added a special B_OP_COPY implementation for text, which
  is in fact what the implementation was until now, so
  just like on R5, you have to specify the correct low color
  or you will see artifacts for the anti-aliased pixels
* implemented B_OP_COPY just like B_OP_OVER (only it draws
  the low color too like it should). So all apps that
  used B_OP_COPY to draw anything can continue to do so
  without having to worry about the low color, it will
  be anti-aliased against the actual background instead of
  the low color (which made especially no sense when drawing
  with the low color). Although this change makes it a bit
  slower to use B_OP_COPY, Haiku is now much more compatible.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17117 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-12 21:02:59 +00:00
Stephan Aßmus 196144a56c the dark border is now drawn without holes at the edges, as on R5, also fixed the BBox being used as separator, like NetPositive does
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-12 16:51:40 +00:00
Stephan Aßmus f775a1fea7 forgot to remove debug output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-11 21:15:41 +00:00
Stephan Aßmus a5a38476ea fixed a couple of issues, but lots of work remains, doesn't crash with up side down BMPs in Windows format anymore... could someone provide me with a BMP that actually uses the alpha channel? I could not make one in Windows with Adobe Photoshop Elements.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17098 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-11 21:11:44 +00:00