Commit Graph
100 Commits
Author SHA1 Message Date
Stephan Aßmus fd49bce12e * For DrawBitmap(), the bitmap rect needs to be aligned onto pixels
just like the view rect. This fixes bug 721.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18872 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-17 11:55:23 +00:00
Stephan Aßmus e20af02a1d * now draws disabled icons fine when they are B_RGBA32
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18847 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 18:14:17 +00:00
Stephan Aßmus 358b3c8e76 * don't mess so much with the drawing and blending mode when
drawing icons, most importantly, don't switch from compositing
  to pixel alpha, this fixes the drag bitmap generation, now
  it looks beautiful


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 18:13:11 +00:00
Stephan Aßmus ebe10933dd * when the group of dragged icons was a bit larger, the
bitmap was not completely transparent, but had a faint
  shadow, I removed this, though it seemed to be on purpose,
  I have no idea why... it looked like a bug


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18845 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 18:11:19 +00:00
Stephan Aßmus 5fa040e3b9 * some clean up for style guide conformance
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18844 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 18:08:15 +00:00
Stephan Aßmus d39634ce4d * on R5, the meaning of B_CONSTANT_ALPHA is a bit different
with regards to drawing bitmaps with alpha channel, instead
  of ignoring the bitmap alpha channel, it is further multiplied
  with the high color alpha channel, so basically, you can
  use the high color alpha as a "global" alpha value to
  draw the bitmap with
* removed some duplicate code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18843 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 18:07:02 +00:00
Stephan Aßmus 846cc588f2 * a fix for the bug where clicking a window decor button drew
over the mouse cursor. The problem is actually something else:
  non-straight lines extend a little past the calculated rectangle 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18842 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 18:03:39 +00:00
Stephan Aßmus ae540011ed * when the layout branch was merged, the same problem
got fixed twice, any unoptimized lines were drawn at
  a (0.5, 0.5) offset


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18841 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 18:00:09 +00:00
Stephan Aßmus a907e70198 * a hack to support transparent CMAP8 color in bitmaps
(this would fix the white background on disabled looking
   icons if Tracker would still use B_CMAP8 icons)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18840 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 17:57:37 +00:00
Stephan Aßmus af957c251b * don't read the frame buffer a second time when no
blending has to take place


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18839 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 17:55:55 +00:00
Stephan Aßmus a89fb19365 * on R5, invalid BRects cannot be used with FillRect(), Haiku is
compatible now. This fixes the last remaining drawing bug in
 SoundRecorder.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18838 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 17:54:17 +00:00
Stephan Aßmus 4423855cbd This is the kind of bug you can search for hours. At first, I suspected
a concurency problem in the DrawingEngine, so there is some debugging
stuff added, as well as some unnecessary locking removed there. The
problem was in Painter though, in that certain functions adjusted clipping
at the "rasterizer level", while some other functions didn't care about
that. Now the clipping is consistently set at the rasterizer level (rough
estimate to avoid scanline generation outside real clipping region bounds).
There are a number of bugs fixed by this, I'm going to find out later,
what their ticket numbers are... Mouse preflet draws the mouse now,
Backgrounds preflet draws the screen reliably... probably more, anything
to do with bitmaps, round rects and possibly ellipses.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18828 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-13 20:02:00 +00:00
Stephan Aßmus aac40c99c2 * Tracker makes sure certain mimetypes exist and copies icons from
its resources -> now also the vector icons (thanks Jérôme for
  the hint)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18806 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-11 15:12:50 +00:00
Stephan Aßmus 59deaf10bc various changes to improve integration of vector icons
* Deskbar uses 32 bit icons now
* vector icons are now correctly converted to B_CMAP8 bitmaps
  if no B_CMAP8 icon is available
* small fixes in Tracker (window mode menu)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18803 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-11 10:52:01 +00:00
Stephan Aßmus f4bd80a2dc * when loading an icon via drag&drop, the file will be remembered
for saving later
* added "Clean Up" feature to "Path" menu
* added "Freeze Transformation" to "Shape" menu (will apply the
  current shape transformation onto the path and reset the shape
  transformation to identity)
* small cleanup in ShapeListView
* implemented zooming in CanvasView
* added context menu while editing a path
* implemented undo/redo for transforming points
  (press T or use context menu)
* added "Split Points" feature (path editing context menu), it will
  make two points from one control point
* improved selecting path points with selection rect
* improved SVG import for zuMis BeOS icons (more precise scale)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18800 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-10 22:31:09 +00:00
Stephan Aßmus 7fb6186f3c * integration of vector icons with the registrar and the mime data base
* additional versions of SetIcon[ForType] and GetIcon[ForType] in BMimeType
  and BAppFileInfo, which handle flat vector icon data
* changes in Tracker to support scalable icons (currently broken for
non-vector icons and needs cleanup) and drawing icons correctly with alpha
channel (large parts of this work done by Michael Lotz)

If someone feels like looking over the changes, that would be much
appreciated! :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18699 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-29 17:06:23 +00:00
Stephan Aßmus 0e1ba39f04 * merged Icon-O-Matic from Ingos layout branch into trunk (r18134:18685)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18686 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-29 10:20:40 +00:00
Stephan Aßmus 1213a0db75 newer versions of ZETA advertise version 6.0
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-26 14:25:11 +00:00
Stephan Aßmus d4962719c6 * updated script
* added test for copy bits when the view has children


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18642 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-26 14:13:51 +00:00
Stephan Aßmus 778e3c640d * just an update to my local playground
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18641 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-26 14:11:39 +00:00
Stephan Aßmus 9cb7e84b1b updated comments for BMP header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-26 13:59:27 +00:00
Stephan Aßmus 100fd931d7 build Magnify for the app_server test environment also
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-26 13:57:31 +00:00
Stephan Aßmus 4c25eb4d04 * delete -> delete[]
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18635 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-26 13:56:41 +00:00
Stephan Aßmus 67ca1dc6aa * don't remember what this was for, I think it elliminates flickering,
because the SeekSlider knows if the knob position actually changed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-26 13:55:18 +00:00
Stephan Aßmus 5fc2ff880a work in progress to integrate vector icons with BNodeInfo,
BMimeType and Tracker in general, nothing should have changed
visually, Tracker is now using 32 bpp icons though

I hope I have not broken anything...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-26 13:51:51 +00:00
Stephan Aßmus db4e86f3fa * crisp logo for the new website
-> Waldemar, could you please use this one? Do you need a transparent version?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18613 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 19:46:03 +00:00
Stephan Aßmus 20d4ee1d59 * updated to Konatu 1.5 - I wasn't sure what to do with the Konatu_xx files.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18589 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-23 18:37:44 +00:00
Stephan Aßmus 8ae0d03ade * Icon inherits from Referenceable in Icon-O-Matic mode
* new listeners receive an AreaInvalidated notification


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18564 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-22 13:33:27 +00:00
Stephan Aßmus 2d8b47105a * a VectorPath can transform all it's points using a given
Transformable, should have been part of the last commit...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18556 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-21 18:19:16 +00:00
Stephan Aßmus bd04a1e761 * quickly unbreak the build... I wasn't realizing that the headers
got added in my (bonefish's) developer branch...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18554 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-21 17:33:19 +00:00
Stephan Aßmus 86133f5e63 * (temporarily) added libexpat, built as static lib, removed all
clutter, straight from the sources of release 1.95.8, configured
  to obtain expat_config.h, seems to work fine


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18552 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-21 17:24:26 +00:00
Stephan Aßmus 4fdb58bec0 * added device ids for "Geforce 7300 GT". Lucky me, this works
beautifully. Tested with ZETA on PCIe system.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18542 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-20 12:13:10 +00:00
Stephan Aßmus a3b31b17d2 added versions of the logos on transparent background, clipped to
have no unnecessary pixels around the logo


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18535 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-18 09:54:11 +00:00
Stephan Aßmus 2f953b71af * min/max visibility scale is now between 0 and 4
* flat icon format optimizes for grays in styles


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18508 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-13 16:06:42 +00:00
Stephan Aßmus 014c7e9459 * Transformable::Reset() + Invert() didn't notify
* Path and StyleContainer take an index in Add...()
* FlatIconImporter works when "appending" another icon


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18448 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-07 20:47:20 +00:00
Stephan Aßmus 4122cbb09a * copied code from BNodeInfo over to BIconUtils
* implemented a simple "GetIcon" function which loads whatever
  icon fits most depending on the available icons and the
  colorspace/size of the pre-allocated bitmap passed to the function


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-05 16:06:09 +00:00
Stephan Aßmus 6b422a8c22 * added a little documentation to BIconUtils in the header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-05 13:53:54 +00:00
Stephan Aßmus 70f4b8c0ae * cleanup for consistency in FlatIconFormat.h
* used Axels proposals for vector icon attribute name
* added a BIconUtils class, currently only dealing with vector icons,
  it will render a vector icon from either a BNode attribute or a flat
  buffer in memory into a provided bitmap. The bitmap needs to be of
  B_RGBA32 colorspace, the size of the bitmap determines the scaling
  of the vector icon, width and height should currently be the same
  (square bitmap)
* TODO:
  - add reading of "old" BeOS icons / move icon reading from other
    places (BMimeType?) into BIconUtils
  - add reading icons from resources?
  - suggestions?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-05 13:12:43 +00:00
Stephan Aßmus 38c71d13d7 * fixed build for PathContainer.cpp (stupid last minute change...)
* fixed crashing bug in Shape, it doesn't "own" the Style...
* fixed problem in Shape in for non Icon-O-Matic build, fNeedsUpdate
  still needs to be maintained.
  
Having a read-only version has definitely improved efficiency! The
icon import time must have dropped 50%. The overall penalty for
reading vector icons in Tracker seems to be 1.5 to 2 ms now, including
parsing and rendering at 32x32. 



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-05 00:24:12 +00:00
Stephan Aßmus fb07ece069 * moved all the classes actually needed for reading a
vector icon to this place, #ifdef'd out all the editing
  features (listening, referencing, converting to
  PropertyObject... etc)
* TODO: put into BPrivate namespace...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18396 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-04 23:57:01 +00:00
Stephan Aßmus fd493c239f simplified translation(), more robust too
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-04 23:49:14 +00:00
Stephan Aßmus 976ba53424 * don't loose sync of the current color in case
gradient stop changes color for some reason


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-13 12:51:07 +00:00
Stephan Aßmus 61b0e9e314 * added a little bit of tracing to object destruction, since there
seems to be a problem when quitting the app
* added Undo/Redo commands for numerous operations
	- (un)assigning VectorPaths to Shapes
	- adding new VectorPaths
	- removing VectorPaths
	- adding Shapes
	- transforming Shapes
	- adding Styles
	- changing Style color
* there was a mix up in classes inheriting from SimpleListView,
  RemoveItemList() gives a list of item pointers, not indices
* GradientControl sent the focus notification to the window instead
  of the set BHandler target
* StyleView takes care of transfering the current Style color or
  the focused gradient stop color to the CurrentColor object, so
  the current color of the SwatchGroup is synced
* small improvement to layout of SwatchGroup
* SwatchGroup no longer knows anything about a Style
* fixed syncing the global Selection to the listview selection
  at least for ShapeListView
* implemented cloning Shapes
  - added Transformer::Clone(VectorSource& source) to all Transformers
  - ShapeListView uses this when dropping shapes with shift pressed
* updated NOTES
* added Transformable::matrix_size, so that "6" isn't hardcoded
  everywhere (though it still is at most places)
* added listener interface to TransformBox, this is used by
  the new TransformObjectsCommand, as long as the TransformBox still
  exists, the command modifies the TransformBox transformation instead
  of messing with the objects itself
* fixed hotspot size in TransformBox by using the zoom level of
  the CanvasView
* TransformBox rotates/scales correctly around the visible pivot
* fixed TransformCommand toggling to transformation (the diff was bogus)
* Gradient doesn't trigger unnecessary notifications in SetColor()
* CanvasView doesn't eat keyboard events when the GradientControl or
  one of the ListViews has focus (is a hack currently...)
* fixed bug in PropertyListView when it calls the PropertyChanged()
  hook: because of the notification mechanism, the Properties might
  be toast after the hook returns
* moved all GetProperty() implementations from headers into .cpp files



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18122 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-12 15:46:01 +00:00
Stephan Aßmus 0e684ccfed * added a framework for affine transformations and manipulating them
- Transformable: the base class with a nice interface to agg::trans_affine
- ChannelTransform: inheriting from Transformable, keeping the affine
  parameters separate
- TransformBox: inheriting from ChannelTransform and Manipulator
- TransformShapesBox: transfering the TransformBox transformation onto
  multiple selected Shape objects
* Shape inherits from Transformable
* solved an important TODO in IconRenderer: a Gradient is now transformed
  along with a Shape
TODO: Undo/Redo for manipulating the transformation


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-11 17:25:37 +00:00
Stephan Aßmus 2205ee0914 * added GradientControl which can edit a Gradient
* filled out StyleView for configuring a Style
* added SetGradientCommand for undo/redo editing a
  Gradient
* Style::SetGradient() doesn't assume ownership
  of the Gradient passed in anymore


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-10 21:36:46 +00:00
Stephan Aßmus 85623bad05 * relayout of the GUI, you can start to take it serious :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18077 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-09 10:21:18 +00:00
Stephan Aßmus 8b97f0dcaf * editing the color of a style works now
* added current color swatch view
* clicking current color will open the color picker panel


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-09 07:56:17 +00:00
Stephan Aßmus 4215c452a4 * implemented MoveTransformersCommand (so Transformers can be
drag sorted now)
* implemented RemoveTransformersCommand
* implemented StyleListView (I promise, this is the last list view :-)
* implemented adding new styles via the Style menu
* implemented selecting the Style of the currently selected Shape


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18072 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-08 13:04:05 +00:00
Stephan Aßmus d4d2597fef * small cleanup in VectorPath
* cache the agg converted path in Shape on multiple
  calls to VertexSource (rendering multiple icons after
  a single change)
* added VertexSource::ApproximationScale() which is used
  to retrieve a suitable approximation scale for the
  whole Transformer pipeline
* added a couple more properties to Contour and Stroke


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18070 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-08 09:29:25 +00:00
Stephan Aßmus 05fd381837 * implemented more fine grained listener support in VectorPath
(this separates the notification for shape changes versus other
   properties and improves the performance)
* added affine properties to AffineTransformer (for testing only,
  will need to be implemented more carefully)
* added Width property to ContourTransformer
* changed the way how it is determined that paths need to stay
  open for the StrokeConverter, now it works correctly with
  sub-paths


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18064 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-07 17:33:14 +00:00
Stephan Aßmus e2a31283dd many improvements and bug fixes:
* added VertexSource::SetLast() used by PathSource
  to call agg::path_storage::close_polygon(). The
  StrokeTransformer avoids this of course. Affine
  and PerspectiveTransformer forward this to their source.
* TransformerItems watch their transformers for notifications
* made VectorPath an IconObject
* VectorPath no longer uses close_polygon() when converting
  to agg::path_storage to allow open strokes
* added IconObjectListView which inherits from
  PropertyListView and allows to edit the properties of the
  last selected object from one of the other list views
* fixed a couple bugs when adopting properties:
  - removed the Property* in the PropertyEditorView base
  class, and made GetProperty() virtual, as the base class
  pointer was not maintained and superfluous
  - delete the old PropertyObject in PropertyListView::SetTo
  when adopting the properties instead of the object whose
  properties were adopted...
* added SetPropertiesCommand to allow Undo/Redo on changes
  of properties
* Style is also an IconObject now (TODO: yet another list view
  for styles... :-)
* Style watches its Gradient for notifications and builds and
  caches the color array now
* removed generating the color array for each scanline in
  IconRenderer, so the performance is improved a lot
* Shape watches its Transformers for notifications in order
  to trigger rerendering
* StrokeTransformers adds a bunch of properties like stroke
  width, cap and join mode
* StateView keyboard filter no longer steals keydown events
  from BTextViews
* PropertyItemViews resize with the parent
* refined the interface for PropertyListView for easier
  tracking of the changed properties in derived classes
* added HasPendingNotifications() to Observable, so that
  IconObjects can track changes more easily when adopting
  a PropertyObject
* the name is now part of any IconObject


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18045 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-05 23:51:34 +00:00
Stephan Aßmus a744b2c60e * Style is now responsible for generating and caching
the gradient color array, it observs the gradient for
  this purpose
* introduced IconObject class that combines Observable,
  Referenceable and Selectable interfaces and adds an
  interface for retrieving a PropertyObject that represents
  the object in question
* Shape and Style inherit from IconObject now


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18037 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-05 11:14:08 +00:00
Stephan Aßmus 64d80db621 added extensive "PropertyObject" framework
* Property is an abstract class for representing some property with
  an interface for setting/getting the value and cloning
  the property and such stuff
* PropertyObject holds a bunch of different Properties
* various specific Property classes represent floats, integers,
  colors, booleans, options and so on
* PropertyListView can edit the different properties in a
  given PropertyObject by using individual property editor views

The plan is to be able to convert some random object (for example
a selected Shape or Transformer, Style or whatever) into a
PropertyObject for being edited in the PropertyListView like it is
done in WonderBrush...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18036 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-05 02:09:43 +00:00
Stephan Aßmus bab183a273 * Transformers have Name() now
* added TransformerFactory to instantiate the various types via the GUI
* added Transformer menu to main window
* added TransformerListView that shows the Transformers applied to the
  selected Shape
* implemented more powerful listener interface for Shape, used by
  TransformerListView


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18027 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-04 14:16:03 +00:00
Stephan Aßmus 064ad96310 * removed another local and obsolete test from the jamfile
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18024 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-04 09:42:48 +00:00
Stephan Aßmus 98bad22a2b * fixes build... completely forgot about this one :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18023 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-04 09:40:49 +00:00
Stephan Aßmus 9813f97ff9 added a test showing the R5 bug that ignores the internal coordinate
system given by BBitmap::Bounds() when drawing bitmaps (Haiku copies
this bug)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18022 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-04 09:32:48 +00:00
Stephan Aßmus 9b4fa889fd * the path list view shows check boxes now when a shape is selected,
the marked paths are used in the shape
* a new path is auto-selected
* deselecting a shape still sends the selection message
* PathSource does not call agg::path_storage::start_new_path() for
  each subpath... a move_to() is sufficient and makes sure the
  subpaths are rendered even :-)
* updated NOTES
* moved IconView into gui subfolder


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18021 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-04 00:04:50 +00:00
Stephan Aßmus 8815fed657 * MultipleManipulatorState invalidates the area of an
added or removed Manipulator
* added a menu bar to the MainWindow
* undo/redo work from the menu now
* one can add a new path object
* the selected path will get focus for being manipulated
  (will be moved elsewhere later on...)
TODO: allow to connect paths to shapes


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-02 09:56:06 +00:00
Stephan Aßmus 2ce8d31d09 * added MoveShapesCommand and RemoveShapesCommand
* ShapeContainerListener also gets the index at which a Shape was added
* ShapeListView allows to drag-sort the shapes
* ShapeListView allows to remove shapes (untested)

* IconRenderer is independent of StyleManager now, the
  order of shapes is now correct
* disabled clipping for now, since clear() ignores it (clearing will
  be changed for a checker background anyways)
* added copy constructor to Shape (needs to clone the Transformers yet)

* Selectable optionally knows the global Selection, so that one
  could use Selectable::SetSelected() and it would add itself to
  the selection (not yet used)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17995 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-01 12:42:52 +00:00
Stephan Aßmus cfda5dd75b * work in progress on GUI classes
- added IconView which just uses an IconRenderer to display a preview
    of the icon at a certain size
  - PathListView and ShapeListView (very much work in progress)
* actually had the gamma correction applied in the wrong direction...
  now the anti-aliasing looks as smooth as planned
* added SetName() and Name() to Shape and VectorPath... will be in a
  common base class later on


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17988 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-30 21:39:18 +00:00
Stephan Aßmus 29c171b18f reverted my "build fix" since it actually breaks the build on R5
... the problem is local to my machine... sorry about that!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17937 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-27 14:14:37 +00:00
Stephan Aßmus 75acb8cbf8 synced with rev 1.12 from OT rep, fixed build on R5
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-27 09:18:25 +00:00
Stephan Aßmus f8262c2b19 sync to rev 1.62 from OT rep: use the event time instead of the current system time for appending or starting a new match when typing ahead to select a pose
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17930 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-27 09:16:31 +00:00
Stephan Aßmus e57995449d beginning to check up on gui components:
* added a group of controls to access and manipulate colors (incomplete)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17917 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-23 23:14:12 +00:00
Stephan Aßmus 5ca1108776 * fixed off by one errors when calculating min size
* added setter for internal spacing 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17916 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-23 23:12:18 +00:00
Stephan Aßmus 31e2089106 * added a color picker panel
(heavily modified, but originally based on Colors! by Werner Freytag)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17915 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-23 22:09:53 +00:00
Stephan Aßmus ef355aa493 nice to have on BeOS as well...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17912 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-23 12:29:01 +00:00
Stephan Aßmus 56aceca439 updates NOTES
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-22 00:46:51 +00:00
Stephan Aßmus fd8b7ce55a one more small fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17904 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-22 00:30:39 +00:00
Stephan Aßmus ce181bb0cd * fixed memory leaks and display bugs
* VectorPath objects were released one two many times
  by the Shape PathContainers (they don't acquire when
  a path is added, the Shape does that for them) the
  PathContainer of the Icon needs to release though, as
  it "owns" the paths
* put the Selection class used by PathManipulator into
  the PathManipulator namespace, since the compiler seemed
  to use the wrong destructor (the one from the generic
  Selection class)
* uses a better mechanism to track and render
  changed parts of icon


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17903 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-22 00:22:23 +00:00
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