History log of /haiku/src/apps/icon-o-matic/transformable/TransformGradientBox.cpp
Revision Date Author Comments
# a75a222b 11-Jul-2023 Zardshard <0azrune6@zard.anonaddy.com>

Icon-O-Matic: Remove dead homebrew translation system

Icon-O-Matic uses Locale.h now.

Change-Id: I9722ee76fda47821bf27e6195f8f6ec3d3e1b43e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6700
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 2263aa8f 10-Mar-2023 Zardshard <0azrune6@zard.anonaddy.com>

Icon-O-Matic: Fix references not being acquired/released

* Replaces the relavent raw pointers with BReferences
* Fixes one observer not being released

Fixes #12076
Fixes #16577

Change-Id: I67b68478911084637e9b474e56066aee7550ffaf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6182
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 0cbb6c11 09-May-2015 Stephan Aßmus <superstippi@gmx.de>

Icon-O-Matic: Make GradientTransformable a BReferenceable

* Switch to using support/Referenceable.h instead of using an older copy
of this code.
* Make GradientTransformable a BReferenceable and fix #12033.


# c88bc5e9 19-May-2010 Stephan Aßmus <superstippi@gmx.de>

When a TransformationBox is used to change the transformation of a gradient, it
only ever changes one gradient at a time, and adopts itself to the current
gradient transformation. When applying it's own transformation on the gradient,
it could then reset and assign the transformation. On the other hand, the
regular TransformObjectCommand works on a different assumption, which is that
the object has it's own original transformation, and the transform box
transformation is chained on top of that. So the TransformGradientBox cannot
use a TransformObjectsCommand for the undo stack. Whenever such a command
could not use the box to apply the transformation, it would mess up the
gradient's transformation and the undo/redo chain. -> Use a dedicated
TransformGradientsCommand which works the same as the TransformGradientsBox
when applying the transformation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36866 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cd7f54f1 14-May-2010 Stephan Aßmus <superstippi@gmx.de>

Missing UnlockLooper() in early return. Never seen it have any effect, just
found it because I am trying to track down another bug.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36815 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7f5bbbdc 26-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed PI, and PI2 from math.h.
* Replaced all occurences with the standard macros M_PI, and M_PI_2.
* Some coding style cleanup on the touched files, no other changes besides
adding a missing check for a failed memory allocation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31250 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 991547ef 14-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

Patch by Artur Wyszynski:
* Implemented BGradient, BGradientLinear, BGradientRadial,
BGradientDiamond, BGradientConic and BGradientRadialFocus
new Interface Kit classes.
* Implemented all the (AGG-based) backend necessary in
the app_server to render gradients (Painter, DrawingEngine)
* app_server/View can convert a BGradient layout to screen
coordinates.
* Added BGradient methods of the Fill* methods in BView.
* Implemented a test app and added it to the image as a
demo.
* Adopted Icon-O-Matic and libs/icon in order to avoid
clashing with the new BGradient class. Re-use some
parts where possible.

Awesome work, Artur! Thanks a lot. Now a more modern
looking GUI has just become much easier to implement! :-)

TODO:
* Remove the need to have gradient type twice in the
app_server protocol.
* Refactor some parts of the patch to remove duplicated
code (Painter, DrawingEngine).
* Adopt the BPicture protocol to know about BGradients.
* Review some parts of the BArchivable implementation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28109 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e1ba39f 29-Aug-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# 0cbb6c11eec74201f566920c90ebd2c5546b7aa6 09-May-2015 Stephan Aßmus <superstippi@gmx.de>

Icon-O-Matic: Make GradientTransformable a BReferenceable

* Switch to using support/Referenceable.h instead of using an older copy
of this code.
* Make GradientTransformable a BReferenceable and fix #12033.


# c88bc5e973fe56886e5cfd3c16982c2eb25d4d4e 19-May-2010 Stephan Aßmus <superstippi@gmx.de>

When a TransformationBox is used to change the transformation of a gradient, it
only ever changes one gradient at a time, and adopts itself to the current
gradient transformation. When applying it's own transformation on the gradient,
it could then reset and assign the transformation. On the other hand, the
regular TransformObjectCommand works on a different assumption, which is that
the object has it's own original transformation, and the transform box
transformation is chained on top of that. So the TransformGradientBox cannot
use a TransformObjectsCommand for the undo stack. Whenever such a command
could not use the box to apply the transformation, it would mess up the
gradient's transformation and the undo/redo chain. -> Use a dedicated
TransformGradientsCommand which works the same as the TransformGradientsBox
when applying the transformation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36866 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cd7f54f1174ce4913554df05ee2c0bdce5491a9d 14-May-2010 Stephan Aßmus <superstippi@gmx.de>

Missing UnlockLooper() in early return. Never seen it have any effect, just
found it because I am trying to track down another bug.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36815 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7f5bbbdc56fa18cfc94ea649e9f1337301906e19 26-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed PI, and PI2 from math.h.
* Replaced all occurences with the standard macros M_PI, and M_PI_2.
* Some coding style cleanup on the touched files, no other changes besides
adding a missing check for a failed memory allocation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31250 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 991547ef6c1fca650f0fba855206296ef54bc441 14-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

Patch by Artur Wyszynski:
* Implemented BGradient, BGradientLinear, BGradientRadial,
BGradientDiamond, BGradientConic and BGradientRadialFocus
new Interface Kit classes.
* Implemented all the (AGG-based) backend necessary in
the app_server to render gradients (Painter, DrawingEngine)
* app_server/View can convert a BGradient layout to screen
coordinates.
* Added BGradient methods of the Fill* methods in BView.
* Implemented a test app and added it to the image as a
demo.
* Adopted Icon-O-Matic and libs/icon in order to avoid
clashing with the new BGradient class. Re-use some
parts where possible.

Awesome work, Artur! Thanks a lot. Now a more modern
looking GUI has just become much easier to implement! :-)

TODO:
* Remove the need to have gradient type twice in the
app_server protocol.
* Refactor some parts of the patch to remove duplicated
code (Painter, DrawingEngine).
* Adopt the BPicture protocol to know about BGradients.
* Review some parts of the BArchivable implementation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28109 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e1ba39f0440e200e30b6a648e70c3e8683dc5f7 29-Aug-2006 Stephan Aßmus <superstippi@gmx.de>

* 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