Derive GimpTranslationStore from GimpLanguageStore. It lists the
installed GIMP translations. Also sort the list alphabetically
instead of relying on the XML file being sorted.
Introduce GimpSessionInfoDock and session manage multi-column dock
windows. We are still backwards compatible with sessionrc, the only
difference is that a "session-info" entry now can have multiple "dock"
entries.
Also make ond dock window multi-column in the regression test
app/tests/test-session-management.c and adjust positions and image
selection menus a bit.
Make drag-and-drop rearrangement of dockables happen directly in the
existing widget hierarchy so we don't have to use special, ugly
widgets (read GimpDockSeparator:s) for that.
More specifically, make edges of dockables and dockbooks have the same
semantics as the GimpDockSeparators had. We put a highlight colored
GdkWindow on top of the widget in question to highlight these special
drop areas. This GdkWindow is not taken into consideration in the GTK+
drag-and-drop code, so it does not interupt the DND interaction.
To achive this, there is a problem we must solve: Drag events in GTK+
are propagated inwards and out, but we sometimes want ancenstor
widgets to take care of drop events. We solve this by introducing the
concept of "drag handlers". A drag handler is asked if it will handle
a given drag event, and if it will, a client will let the drag event
be propagated upwards in the widget hierarchy. Right now, the
GimpPanedBox is the only "drag handler". The code could be generalized
more but it doesn't feel worth it at this point.
The size of the special drop area is 5px, the same size as the default
GtkPaned handles. This is because the plan is to later use these
handles as drop areas too.
Other changes of interest are:
* We need to take care of "drag-motion", "drag-drop" and widget
highlightning ourselves. We can not use the GtkDestDefaults
conveniences with gtk_drag_dest_set() any longer since we need more
control.
* Make the drop callback pass the insert index directly instead of a
GimpDockSeparator
* Add some GIMP_LOG() debug output for DND
* Disable the GimpDockSeparator code in GimpToolbox
Add a new class GimpPanedBox that wraps the arrangement of widgets
into GtkPaned hierarchies. It takes over the separator management from
GimpDock and the GtkPaned management from
gimpwidgets-utils.[ch]. GimpPanedBox can be both vertically and
horizontally oriented.
Change GimpDock to use this widget and make some other minor
adaptations.
It keeps around its children as offscreen widgets and renders them
using a (potantially) arbitrary cairo_matrix_t (the actual API allows
for arbitrary alignment wihin the container and rotating).
When 'Single-window mode is enabled, move the toolbox and existing
docks into the image window. Needs a lot of more work but is
functional enough for curious people.
Implemented by adding a new GimpUIConfigurer component that has global
knowledge. There is a single application instance of this
component. It subscribes to changes in the single-window-mode config
property and adjusts the UI accordingly.
Introduce GimpDockWindow and make GimpDock inherit from it. Right now
it is just a GimpWindow, but window logic from GimpDock and subclasses
will gradually be moved here so that we eventually can make GimpDock a
GtkBin. That in turn will allow us to put several GimpDocks next to
each other in columns, or GimpDocks in an image window.
Convert the GimpToolView dockable to a non-dockable GimpToolEditor,
but wait with renaming the file so that we get better diffs. Part of
fix for bug #500930.
2009-01-17 Michael Natterer <mitch@gimp.org>
* all files with a GPL header and all COPYING files:
Change licence to GPLv3 (and to LGPLv3 for libgimp).
Cleaned up some copyright headers and regenerated the parsers in
the ImageMap plugin.
svn path=/trunk/; revision=27913
Merge the rest of the tagging code developed on the tagging branch
by Aurimas Juška. Development will now continue in trunk.
* app/core/gimptag.[ch]: New files (not strictly true but almost)
implementing the represention of a tag.
* app/core/gimptagcache.[ch]: New files implementing functionality
for loading and saving tags to tags.xml, and assigning loaded tags
to tagged objects.
* app/core/gimpfilteredcontainer.[ch]: New files implementing a
tag filtered GimpContainer.
* app/widgets/gimptagentry.[ch]: New files implementing a
GtkEntry-like widget for entering tags.
* app/widgets/gimpcombotagentry.[ch]: New files implementing a
combobox-like widget for selecting tags.
* app/widgets/gimptagpopup.[ch]: New files implementing a popup of
all available tags that can be selected and combined in a
checkbox-like way.
* app/core/gimp.[ch]: Add a GimpTagCache member and manage tag
assignment and saving and loading to/from tags.xml.
* app/widgets/gimpdatafactoryview.c: Add the tag query and tag
assignment widgets to the UI and show the tag filtered items
instead of all items.
* app/core/Makefile.am
* app/widgets/Makefile.am: Add new files.
* app/core/core-types.h
* app/widgets/widgets-types.h: Add new types.
svn path=/trunk/; revision=27816
2008-10-24 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpfilleditor.[ch]: new widget factored out of
GimpStrokeEditor.
* app/widgets/gimpstrokeeditor.[ch]: derive from GimpFillEditor
and remove UI for the properties of GimpFillOptions.
svn path=/trunk/; revision=27390
2008-09-05 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpactioneditor.[ch]: new simple widget which
contains a GimpActionView plus the search entry.
* app/dialogs/keyboard-shortcuts-dialog.c: use the new widget
instead of implementing the search entry here.
* app/widgets/gimpcontrollereditor.c: use a GimpActionEditor
instead of GimpActionView so the actions become searchable here
too.
svn path=/trunk/; revision=26870
2008-06-22 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpsettingseditor.[ch]: skeleton of a widget to
manage the list of saved settings for the image map tools. Does
absolutely nothing yet apart from displaying the list of settings.
* app/widgets/gimpsettingsbox.[ch]: add "Manage Settings" menu item
and show a dialog containing the new widget.
svn path=/trunk/; revision=25977
2008-06-13 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpsettingsbox.[ch]: new widget containing the
combo and menu button for the image map tool settings plus most of
their logic. Has "import" and "export" signals that might go away
if I figure a way to nicely abstract that. Contains some minor
bugfixes and cosmetic improvements compared to the old code.
* app/tools/gimpimagemaptool.[ch]
* app/tools/gimpimagemaptool-settings.[ch]: changed accordingly,
mostly removal of lots of code that is now in the widget.
svn path=/trunk/; revision=25943
2008-04-28 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpwindow.[ch]: added GimpWindow class and moved
key-press-event handler from GimpDock to this class.
* app/widgets/gimpdock.[ch]:
* app/display/gimpdisplayshell.[ch]: derive from GimpWindow.
svn path=/trunk/; revision=25541
2007-11-20 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-types.h
* app/widgets/Makefile.am
* app/widgets/gimphandlebar.[ch]: new widget implementing the slider
bar known from histogram and levels.
* app/widgets/gimphistogrambox.[ch]: use the new widget. General
cleanup and UI streamlining.
svn path=/trunk/; revision=24198
2007-11-04 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcurveview.[ch]: new GimpHistogramView subclass
which does all the curve stuff.
* app/widgets/gimphistorgramview.[ch]: removed all curve code again.
* app/tools/gimpcurvestool.c: changed accordingly.
svn path=/trunk/; revision=24051
2007-06-27 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpimagecommenteditor.[ch]: new widget derived from
GimpImageParasiteView. Basically the code that used to live in
image-properties-dialog.c.
* app/dialogs/image-properties-dialog.c: use the comment editor.
svn path=/trunk/; revision=22846
2007-04-16 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcellrendereraccel.[ch]: remove GimpCellRenererAccel.
* app/widgets/gimpactionview.c: use GtkCellRendererAccel instead.
If an action has no label, use its name as label. Always show the
"Name" column because there are too many actions with confusingly
similar names.
svn path=/trunk/; revision=22256
2006-12-18 Sven Neumann <sven@gimp.org>
* app/plug-in/plug-in-icc-profile.[ch]
* plug-ins/common/lcms.c: removed run-mode argument from
plug-in-icc-profile-info. Added new procedure to obtain
information
about a color profile on disk.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpprofilechooserdialog.[ch]: added a first draft
of a file-chooser dialog for selecting a color profile.
* app/dialogs/preferences-dialog.c: use it.
2006-11-03 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpimageparasiteview.[ch]: new abstract base class.
* app/widgets/gimpimageprofileview.[ch]: derive from
GimpImageParasiteView.
2006-10-25 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: added signals "parasite-attached" and
"parasite-detached".
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpimageprofileview.[ch]: draft of a new widget
that
displays color profile information.
* app/widgets/gimpimagepropview.c: minor cleanup and bug fix.
* app/dialogs/image-properties-dialog.c: added Color Profile
information.
* plug-ins/common/lcms.c: bug fixes.
2005-09-12 Michael Natterer <mitch@gimp.org>
Really fix bug #150593:
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpdockseparator.[ch]: new widget implementing the
droppable separator bar in docks.
* app/widgets/gimpdock.c: use it and removed local separator
utility functions.
* app/widgets/gimptoolbox.c: use GimpDockSeparator API to show/hide
the label. Expand the separator initially.
* themes/Default/gtkrc
* themes/Small/gtkrc: the separator height style property moved
from GimpDock to GimpDockSeparator.
2005-08-21 Michael Natterer <mitch@gimp.org>
* app/paint/gimppencil.h
* app/paint/gimppenciloptions.h
* app/widgets/widgets-types.h
* app/widgets/gimptooldialog.h: don't simply typedef object
instance structs which add no members as their parent instance
structs. Give them their own instance structs. Fixes gtk-doc
confusion.
2005-07-14 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimppaletteview.[ch]: new widget which manages the
selected palette entry itself and emits "selected", "activated"
and "context" signals. Not used yet.
* app/widgets/gimpviewrendererpalette.[ch]: reimplemented palette
drawing: added optional grid drawing and APIs to configure the
renderer. Should be ready for the palette editor now.
2005-07-13 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpviewrendererpalette.[ch]: new view renderer,
does nothing yet except chaining up in ::render().
* app/widgets/gimpviewrenderer-utils.c
(gimp_view_renderer_type_by_viewable_type): use it for palettes.
2005-05-21 Sven Neumann <sven@gimp.org>
* app/core/gimpdashpattern.[ch]: added utility functions to copy
and to free a dash pattern.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcellrendererdashes.[ch]: added a simple cell
renderer to visualize a dash pattern.
* app/widgets/gimpstrokeeditor.c: show previews of the dash
presets in the combo-box.
2005-05-11 Michael Natterer <mitch@gimp.org>
Some dock refactoring which separates the docking logic from
active image and UI manager stuff:
* app/widgets/gimpmenudock.[ch]: new widget renamed from
GimpImageDock, zero changes except the name change.
* app/widgets/gimpimagedock.[ch]: new widget derived from
GimpDock. Keeps the UI manager.
* app/widgets/gimpdock.[ch]: removed the UI manager. GimpDock only
contains the basic docking logic again.
* app/widgets/gimpmenudock.[ch]
* app/widgets/gimptoolbox.[ch]: derive them from GimpImageDock.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/actions/dialogs-commands.c
* app/actions/dock-actions.c
* app/actions/dock-commands.c
* app/actions/dockable-commands.c
* app/dialogs/dialogs-constructors.c: changed accordingly.
2005-05-09 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontrollerlist.[ch]: new widget which allows
adding/removing controllers using two lists of available/active
controllers. Work in progress...
* app/widgets/gimpcontrollerinfo.[ch]: derive it from GimpVieable
so it can have an icon (unfinished). Added convenience constructor
gimp_controller_info_new().
* app/dialogs/preferences-dialog.c: use a GimpControllerList
instead of a notebook of GimpControllerEditors.
2005-04-05 Michael Natterer <mitch@gimp.org>
More unfinished replacement for the info window:
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpimagepropview.[ch]: new widget showing an image's
size, resolution, mode, memsize etc.
* app/dialogs/Makefile.am
* app/dialogs/image-properties-dialog.[ch]: a dialog keeping the
widget.
* app/widgets/gimphelp-ids.h: a help ID for the dialog.
* app/actions/image-actions.c
* app/actions/image-commands.[ch]
* menus/image-menu.xml.in: action and menu entry for the dialog.
2005-04-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.[ch]: added new signals "sample-point-added"
and "sample-point-removed" and public functions to emit them.
* app/core/gimpimage-sample-points.c (gimp_image_add_sample_point)
(gimp_image_remove_sample_point): emit them accordingly.
* app/core/gimpimage-undo-push.c (undo_pop_image_sample_point):
ditto.
(undo_pop_image_guide)
(undo_pop_image_sample_point): added comments why we add/remove
stuff manually instead of using the GimpImage APIs.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcursorview.[ch]
* app/widgets/gimpsamplepointeditor.[ch]: new widgets.
GimpCursorView is a replacement for the info window's "Cursor"
page, GimpSamplePointEditor is a view on an image's sample points.
The sample point editor does nothing yet except keeping a 2x2 grid
of GimpColorFrames. Addresses bug #137776.
* app/dialogs/dialogs.c
* app/dialogs/dialogs-constructors.[ch]: register the new widgets
as dockable dialogs.
* app/actions/dialogs-actions.c (dialogs_dockable_actions)
* menus/dialogs-menuitems.xml: added actions and menu items for
the new dialogs.
* app/display/gimpdisplayshell-cursor.c
(gimp_display_shell_update_cursor)
(gimp_display_shell_clear_cursor): update the new cursor view.
* app/widgets/gimphelp-ids.h: help IDs for the new dialogs.
* app/widgets/widgets-enums.[ch] (enum GimpColorFrameMode):
changed description "Pixel values" to "Pixel" because the former
was too long.