Commit Graph
100 Commits
Author SHA1 Message Date
Stephan Aßmus 7612834182 * hide the "more unfinished than the rest" bits at the bottom
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-09 20:48:59 +00:00
Stephan Aßmus a0bc9c3aa8 * fixed wrong html tags, now the spacing around the images looks much better...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-09 20:46:56 +00:00
Stephan Aßmus 8a1684f4ba * fixed the spelling, thanks Axel and Simon!
-> still unfinished though!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-09 20:40:51 +00:00
Stephan Aßmus 15e5a8b1e9 some more forgotten places for B_VECTOR_ICON_TYPE
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19229 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-08 04:53:23 +00:00
Stephan Aßmus e0c6ab6012 * fixed shadow of folder icon
* made the paper sheet just a bit lighter at the bottom
* created font folder icon


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19228 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-08 04:51:02 +00:00
Stephan Aßmus b763084c19 Axel forgot to adopt this very central place to the new B_VECTOR_ICON_TYPE
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19227 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-08 04:48:41 +00:00
Stephan Aßmus 4288fdd07e created icon
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19226 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-08 04:47:13 +00:00
Stephan Aßmus 37425ede90 a first draft of the icon guide lines, with some pictures
and some unfinished paragraphs at the end, feel free to
comment and discuss


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19222 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-07 09:34:36 +00:00
Stephan Aßmus 46abf7cb24 2005->2006
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-07 09:32:42 +00:00
Stephan Aßmus 0b1889422e just some small corrections
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-07 09:32:18 +00:00
Stephan Aßmus c2c1e4c725 * added scroll view around canvas in Haiku version
* used new layout features in StyleView for Haiku version


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19212 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-06 00:24:07 +00:00
Stephan Aßmus 73a2ffba3b * implemented a Translator for WonderBrush image files, these files contain
the layer bitmaps, all the Translater has to do is compose the layers, tested
  and works with all my WonderBrush images, hopefully contains no memory leaks...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19211 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-05 21:47:28 +00:00
Stephan Aßmus d632afd30e * new vector icons I created in the past months
for applications, I kept the R5 icon around and the
vector icon is only used when compiling for Haiku,
for the mimetypes, I removed the R5 icon, as I don't
think they are used outside the Haiku build

naturally, I'm open for comments



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-03 09:47:18 +00:00
Stephan Aßmus ca1a22a7a8 * commented out span acceleration function, since it doesn't seem to work
* added mode for 1440x900, the numbers are just guessed, but work fine
  with my monitor (after some fiddling), would be best to have some common
  VGA communication code for all drivers to use and auto-detect the preferred
  mode of the monitor
* messed around with the overlay brightness and contrast values to give
  good looking video



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-03 09:43:13 +00:00
Stephan Aßmus 4e0139d026 * hack to compare rgb_colors so that the translator can be compiled
for BeOS, adjusted Jamfile accordingly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-03 09:41:49 +00:00
Stephan Aßmus d01c27d4f1 * documenting small addition to protocoll when handling flat vector icon data
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-03 09:41:20 +00:00
Stephan Aßmus f12a404e88 * small simplification
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-03 09:40:48 +00:00
Stephan Aßmus 6e3b3b09d3 * improvements to saving/loading, biggest flaw was that appending an icon
changed the save entry_ref to the appended file, instead of keeping it
* added cleaning up styles (removing duplicates) after importing from SVG
* compile fixes for rgb_color ==/!= rgb_color
* added Style::operator==(const Style& other)
* improved debug output when listeners are still attached
  to a VectorPath upon destruction



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-03 09:40:22 +00:00
Stephan Aßmus 64dfde6fb0 * new copyright header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19187 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-03 09:38:53 +00:00
Stephan Aßmus 2f7c57a986 * small cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-03 09:38:27 +00:00
Stephan Aßmus 0030de4a8f * small cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-03 09:38:02 +00:00
Stephan Aßmus 97e01beb46 * fixed typo in comment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-03 09:37:36 +00:00
Stephan Aßmus d6951dd4ca * redefined mkindex -> why was it removed?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-03 09:36:49 +00:00
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