History log of /haiku/src/apps/icon-o-matic/MainWindow.h
Revision Date Author Comments
# 4b0dffe5 21-Aug-2023 Zardshard <0azrune6@zard.anonaddy.com>

Icon-O-Matic: Make list items copy/pastable

Also:
* make transformers draggable
* clean up archiving code

Partially addresses #18400

Change-Id: Ibc384a1919e1330113a5e2857da16284181a834e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6869
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 098eaec6 08-Jun-2023 Zardshard <0azrune6@zard.anonaddy.com>

Icon-O-Matic: Add reference images

Fixes #2748

Also fixes a comment misstating a function's name and code style.

Change-Id: I609a1f1e100ded647818e70b428cedc48cf29036
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6604
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# e48af9e4 22-Mar-2023 Yourself <0azrune6@zard.anonaddy.com>

Icon-O-Matic: cleanup workspace switching code

* Remove comment stating DesktopColor is buggy. The documentation has
since been updated clarifying that this is the expected behavior.
* Refactor code.
* No functional changes.

Change-Id: I03711136eb613afb80ad8c03a7f18ba6d15f641c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6256
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 27ae691c 02-Aug-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Icon-O-Matic: fix the main menu bar

Mentionned in #8759 as well.

Change-Id: I90bb0529a6bf1dd18316a95f87947e142128d5db
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3123
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# e6da4edf 10-Apr-2011 Stephan Aßmus <superstippi@gmx.de>

Update window title with file name when it is known.


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


# 61ee19d1 10-Apr-2011 Stephan Aßmus <superstippi@gmx.de>

* A whole buch of refactoring and other changes to make Icon-O-Matic
a multi-document application. This is already more useful than
before, but will be even more useful once it is possible to copy
more types of objects to the system clipboard and paste them into
other open icons.
* Fixed wrong snapping menu item being marked when restoring settings
that enable a different snapping mode from the default.


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


# cf4224b6 31-Mar-2011 Stephan Aßmus <superstippi@gmx.de>

Use layout aware BMenuBars and do not shrink the
left side of the interface below the menu bars
minimum width. Resolves cut off strings with
localization.


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


# aed19c75 18-Dec-2010 Stephan Aßmus <superstippi@gmx.de>

* Coding style cleanup.
* Removed R5 versions of the code, since I don't believe
other parts of Icon-O-Matic still compile on R5...
* No functional changes.


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


# 25dc253d 22-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Merged weak-symbols branch.
* Fixed trivial merge conflict in src/system/libroot/posix/locale/nl_langinfo.cpp
* Fixed gcc 2 compilation of src/system/glue/init_term_dyn.c.


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


# c4ce9e76 21-Sep-2007 Stephan Aßmus <superstippi@gmx.de>

* the custom ScrollView supports B_NO_BORDER, B_PLAIN_BORDER and B_FANCY_BORDER
and each side of the border can be turned off or on individually
* -> cosmetic improvements


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


# 5725361f 08-Sep-2007 Stephan Aßmus <superstippi@gmx.de>

* some fixes to the GUI on BeOS, avoid an app_server bug when resizing the window
after creating the views, but before Show()
* make the MenuFields in the Style section follow left/right


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


# 325a6253 02-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

* Put the remaining libicon.a classes into the BPrivate::Icon namespace.
* Minor cleanup (like removing the extra blank line between the copyright and the
header guard).


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


# 4fac07a0 12-Nov-2006 Stephan Aßmus <superstippi@gmx.de>

* started work on saving program settins, window frame is
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


# 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


# ea374679 11-Jul-2006 Axel Dörfler <axeld@pinc-software.de>

Fixed build under Dano.


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


# 2205ee09 10-Jul-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# 85623bad 09-Jul-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# 4215c452 08-Jul-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# e2a31283 05-Jul-2006 Stephan Aßmus <superstippi@gmx.de>

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


# bab183a2 04-Jul-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# 8815fed6 02-Jul-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# cfda5dd7 30-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# e5799544 23-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

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


# ce181bb0 21-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# 128277c9 13-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

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


# e6da4edf67fc804db7bae8d9dab32b5c3cdf91db 10-Apr-2011 Stephan Aßmus <superstippi@gmx.de>

Update window title with file name when it is known.


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


# 61ee19d10fcc38e93a80a29b90efe6e4e15604df 10-Apr-2011 Stephan Aßmus <superstippi@gmx.de>

* A whole buch of refactoring and other changes to make Icon-O-Matic
a multi-document application. This is already more useful than
before, but will be even more useful once it is possible to copy
more types of objects to the system clipboard and paste them into
other open icons.
* Fixed wrong snapping menu item being marked when restoring settings
that enable a different snapping mode from the default.


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


# cf4224b6dac32583861b29b89a5819b863fd008c 31-Mar-2011 Stephan Aßmus <superstippi@gmx.de>

Use layout aware BMenuBars and do not shrink the
left side of the interface below the menu bars
minimum width. Resolves cut off strings with
localization.


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


# aed19c751be5ff477644c4dfb2e3281af0856ef4 18-Dec-2010 Stephan Aßmus <superstippi@gmx.de>

* Coding style cleanup.
* Removed R5 versions of the code, since I don't believe
other parts of Icon-O-Matic still compile on R5...
* No functional changes.


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


# 25dc253d6ab28ce204fa4de2d3e7a27d167fc817 22-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Merged weak-symbols branch.
* Fixed trivial merge conflict in src/system/libroot/posix/locale/nl_langinfo.cpp
* Fixed gcc 2 compilation of src/system/glue/init_term_dyn.c.


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


# c4ce9e76075d8a9b4a380cedfa790739c7d03585 21-Sep-2007 Stephan Aßmus <superstippi@gmx.de>

* the custom ScrollView supports B_NO_BORDER, B_PLAIN_BORDER and B_FANCY_BORDER
and each side of the border can be turned off or on individually
* -> cosmetic improvements


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


# 5725361ffe6b7987fcedc7225c3a03081ea5dc86 08-Sep-2007 Stephan Aßmus <superstippi@gmx.de>

* some fixes to the GUI on BeOS, avoid an app_server bug when resizing the window
after creating the views, but before Show()
* make the MenuFields in the Style section follow left/right


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


# 325a6253ceb7c4162df2805f7aabc2a119c93534 02-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

* Put the remaining libicon.a classes into the BPrivate::Icon namespace.
* Minor cleanup (like removing the extra blank line between the copyright and the
header guard).


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


# 4fac07a0887406d944d78403f8a3b01a4e6154be 12-Nov-2006 Stephan Aßmus <superstippi@gmx.de>

* started work on saving program settins, window frame is
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


# 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


# ea3746798b3755fe480effea2002c716bf083272 11-Jul-2006 Axel Dörfler <axeld@pinc-software.de>

Fixed build under Dano.


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


# 2205ee09148c5472af4cecc2b4cc15a65d643c1d 10-Jul-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# 85623bad057fb4912f355ac5a4dde05fbd471b10 09-Jul-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# 4215c452a4a92759e04b8c221016fea48531f1bc 08-Jul-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# e2a31283dde5ae5dfc14c3d2075e0d17cf392892 05-Jul-2006 Stephan Aßmus <superstippi@gmx.de>

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


# bab183a27305174861a27a136599b863d22318c7 04-Jul-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# 8815fed657af2ded0928525f76d5249c65a936a9 02-Jul-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# cfda5dd75bf4c1cae5b1aa808f37b59da114be26 30-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# e57995449d5e5a8ed659229d98274bea0d824cef 23-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

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


# ce181bb0cd9855442f7a1db340e7e9d51f231e33 21-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

* 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


# 128277c969aa806add78941cd2972754c37a1572 13-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

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