* 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
* 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
* 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
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
* 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
* 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
* the flags are no longer mutually exclusive.
* nicer about window.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17830 a95241bf-73f2-0310-859d-f6bbb57e9c96
* 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
* 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
* 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
* 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
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
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
I'm not so pleased with the code, though it works nice on Dano at least. Still lot of graphics bugs on Haiku
DrawButton is now transparent
little refactoring in ScopeView
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17718 a95241bf-73f2-0310-859d-f6bbb57e9c96
This fixes bug #593.
* No longer opens an empty document for every non existing path - it now only
opens a new document if there is none yet.
* No longer open an empty document for non existing files - instead, it just
passes the ref to StyledEditApp::OpenDocument(). StyledEditWindow::_LoadFile()
now treats those files gently as well, so that you can create new documents
via StyledEdit as on BeOS without getting annoyed too much.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17699 a95241bf-73f2-0310-859d-f6bbb57e9c96
* If you install ProcessController to the Deskbar after startup, its window
is not opened anymore.
* When you install ProcessController, the Deskbar is only restarted if needed;
this can probably be removed completely under Haiku.
* Renamed some menu items.
* Removed "Use Pulse's settings" menu item.
* Fixed remaining issues from bug #633 as far as ProcessController was concerned.
* Removed unused source files.
* Big cleanup, even though there could be done much much more.
* Compacted the source files a bit, merged PCView.cpp and PCView2.cpp to
ProcessController.cpp to match the name of the class.
* Renamed PCUtils.{cpp|h} to Utilities.{cpp|h}
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17647 a95241bf-73f2-0310-859d-f6bbb57e9c96
is now cleared - this changes the behaviour of bug #603, but doesn't fix
it (as this is no DiskProbe bug).
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17621 a95241bf-73f2-0310-859d-f6bbb57e9c96
like any other.
* Added ProcessController to the image.
* Have BeUnited made any changes to the sources besides putting "copyright beunited"
everywhere? If so, we could just remove them to reduce the clutter. If anyone
knows, please tell.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17595 a95241bf-73f2-0310-859d-f6bbb57e9c96