remembered for now
* fixed some annoying bugs:
- the snapping prevented some of the proximity checks from
working while editing a path or using the transform box,
now the Manipulators themself are responsible for mouse
snapping and can do so at the time it works best for them
- pressing the Esc key while using the transform box did
reset the transformation, but didn't exit the transform
mode (return to path editing)
* improved layout of some views when the window is resized
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19266 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Changed the hotkey for the zoom to be = instead of + so that no shifting is necessary.
- Fixed the bitmap alignment code to solve some problems when zooming.
- Removed all references to alignment in the view since the image was already always centered. This greatly simplified the bitmap alignment.
- Removed the redundant fScaleX and fScaleY members of the view since they were always the same as fZoom.
- Removed all code related to having a border in the view.
- Fixed a bug where the type of file would disappear in the status area when zooming (this fix is a little hackish.)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19253 a95241bf-73f2-0310-859d-f6bbb57e9c96
It's hopefully now used everywhere instead of B_RAW_TYPE where appropriate.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19219 a95241bf-73f2-0310-859d-f6bbb57e9c96
* 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
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
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
* The view wasn't updated on changes... (you shouldn't develop such an application
on a desktop computer)
* enlarged the polling interval to 2 seconds.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19146 a95241bf-73f2-0310-859d-f6bbb57e9c96
Deskbar tray. Currently only works under BeOS, and has rather ugly graphics; Haiku
doesn't have an APM kernel interface yet, and I was too lazy to make any nice
icons/drawings :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19145 a95241bf-73f2-0310-859d-f6bbb57e9c96
I've done all preferences apps for now, and some related.
* Some other related cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19090 a95241bf-73f2-0310-859d-f6bbb57e9c96
TTeamMenuItem::AttachedToWindow() calls BView::SetFont() which entered the debugger
if the menu was visible at the time.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19052 a95241bf-73f2-0310-859d-f6bbb57e9c96
* 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
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
leading "mailto:" from any insertions (like from a clipboard pasting).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18742 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
Added a needed ellipsis to the About item
Increased the space between the "select current folder" button and the Cancel button in the Destination file panel to prevent accidental clicking
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18449 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added Alt+W shortcuts to the Find and Replace windows in StyledEdit
Fixed the Escape key shortcut hack
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18445 a95241bf-73f2-0310-859d-f6bbb57e9c96
are missing from these mails, anyway.
* The decimal entity resolution (Ӓ) did not work correctly in HTML mails.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18198 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
- 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
* 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
* 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
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
* 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
(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
* 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
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
* 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
* 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
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
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
* 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
- 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
in my branch, but in the main trunk. That should do no harm though.
* Made LayoutTest1 build for libbe_test and added it to the
install-test-apps target.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17982 a95241bf-73f2-0310-859d-f6bbb57e9c96
we now search for a Terminal index : we use scripting to ask every Terminal its window title, and from this computes a free index
this fixes bug #699
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17975 a95241bf-73f2-0310-859d-f6bbb57e9c96
* 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
(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
* 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