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
2007-03-17 Michael Natterer <mitch@gimp.org>
Make the height of the previews in data editors configurable.
Fixes bug #337757.
* app/widgets/gimpdataeditor.[ch]: add member "view" which needs
to be set by subclasses. Add style property "minimal-height" which
defaults to 96. Add style_set() implementation which sets
editor->view's height to the configured value.
* app/widgets/gimpbrusheditor.[ch]
* app/widgets/gimpgradienteditor.[ch]
* app/widgets/gimppaletteeditor.[ch]: use data_editor->view for
storing the view widget and removed own view members. Remove
separate #defines for the view's default width and height, it's
width follows the dialog anyway.
* themes/Default/gtkrc: document the default value of 96.
* themes/Small/gtkrc: set it to 64.
svn path=/trunk/; revision=22137
2006-11-01 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdataeditor.c
* app/widgets/gimppaletteeditor.c: set the editable state, not
the
sensitivity of the entries according to the data's editable
state.
2006-08-29 Michael Natterer <mitch@gimp.org>
Changed GimpViewable preview rendering to have a context to get
FG/BG/whatever from. Use the context to enable dynamic FG/BG
colors in gradients. Fixes bug #127676 and bug #352214. Addresses
bug #128367 (doesn't fix it because there's no loading/saving and
no GUI yet).
* app/core/core-enums.[ch]: added enum GimpGradientColor to enable
specifying gradient colors in terms of foreground and background.
* app/core/gimpgradient.[ch]: added color_type members to the
GimpGradientSegment struct and honor them in
gimp_gradient_get_color_at(). Added GimpContext parameters to all
functions which finally call get_color_at().
* app/core/gimp-gradients.c: use the new method to implement the
builtin gradients.
* app/core/gimpviewable.[ch]: added GimpContext parameters to all
get_preview() and get_pixbuf() functions.
* app/core/gimpbrush.c
* app/core/gimpbuffer.c
* app/core/gimpdrawable-preview.[ch]
* app/core/gimpgradient.c
* app/core/gimpimage-preview.[ch]
* app/core/gimpimagefile.c
* app/core/gimppalette.c
* app/core/gimppattern.c
* app/core/gimpundo.[ch]
* app/text/gimpfont.c
* app/vectors/gimpvectors-preview.[ch]: changed ::get_preview()
and ::get_pixbuf() implementations accordingly.
* app/core/gimpdrawable-blend.c
* app/core/gimppalette-import.[ch]
* app/dialogs/dialogs-constructors.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/resize-dialog.c
* app/display/gimpdisplayshell-layer-select.c
* app/display/gimpdisplayshell.c
* app/display/gimpnavigationeditor.c
* app/paint/gimppaintoptions.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimptexttool.c
* app/actions/gradient-editor-commands.c
* app/widgets/gimpaction.c
* app/widgets/gimpbrusheditor.[ch]
* app/widgets/gimpbufferview.c
* app/widgets/gimpcellrendererviewable.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpclipboard.c
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainerbox.c
* app/widgets/gimpcontainercombobox.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainerentry.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.[ch]
* app/widgets/gimpdataeditor.[ch]
* app/widgets/gimpdevicestatus.c
* app/widgets/gimpdnd.[ch]
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpgradienteditor.[ch]
* app/widgets/gimpgradientselect.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimppaletteeditor.[ch]
* app/widgets/gimppropwidgets.[ch]
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpthumbbox.[ch]
* app/widgets/gimptoolbox-image-area.c
* app/widgets/gimptoolbox-indicator-area.c
* app/widgets/gimptooloptionseditor.c
* app/widgets/gimpundoeditor.c
* app/widgets/gimpvectorstreeview.c
* app/widgets/gimpview-popup.[ch]
* app/widgets/gimpview.[ch]
* app/widgets/gimpviewablebutton.c
* app/widgets/gimpviewabledialog.c
* app/widgets/gimpviewrenderer.[ch]
* app/widgets/gimpviewrenderer-frame.c
* app/widgets/gimpviewrendererbrush.c
* app/widgets/gimpviewrendererbuffer.c
* app/widgets/gimpviewrendererdrawable.c
* app/widgets/gimpviewrenderergradient.c
* app/widgets/gimpviewrendererimage.c
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/gradient.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/image.pdb: added tons of GimpContext members
and parameters, implement GimpDocked::set_context() in many
widgets. Pass these locally remembered contexts to GimpViewable
functions. Did some minor cleanups on the way. There are still
some minor FIXMEs around where the code uses a NULL context (which
is allowed by the APIs)
* app/pdb/drawable_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/gradients_cmds.c
* app/pdb/image_cmds.c: regenerated.
2006-05-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdataeditor.c (gimp_data_editor_name_activate)
* app/widgets/gimpdatafactoryview.c
(gimp_data_factory_view_tree_name_edited): strip the newly
entered name from whitespace and reject empty names.
2006-01-18 Michael Natterer <mitch@gimp.org>
* app/config/config-types.c: define GIMP_PARAM_STATIC_STRINGS
which is G_PARAM_STATIC_NAME|NICK|BLURB. Also define
GIMP_PARAM_READABLE, _WRITABLE and _READWRITE which include
GIMP_PARAM_STATIC_STRINGS.
* app/*/*.c: use them for all object properties so their
strings are not copied.
2005-10-26 Michael Natterer <mitch@gimp.org>
Fixed bug #313547:
* app/widgets/gimpdataeditor.c
(gimp_data_editor_set_aux_info)
(gimp_data_editor_get_aux_info): store the state of edit_active
in sessionrc.
(gimp_data_editor_constructor): enable edit_active by default.
2005-10-25 Michael Natterer <mitch@gimp.org>
Let the data editors optionally follow the active brush, palette
and gradient. Still needs to be saved in sessionrc and probably
be enabled by default. Addresses bug #313547.
* app/widgets/gimpdataeditor.[ch]: added new functions
gimp_data_editor_set,get_edit_active().
Make it configurable from the palette and gradient editor menus:
* app/actions/gradient-editor-actions.c
* app/actions/palette-editor-actions.c: added actions...
* app/actions/data-editor-commands.[ch]: ...and callbacks...
(new file).
* app/widgets/gimphelp-ids.h: ...help IDs...
* menus/gradient-editor-menu.xml
* menus/palette-editor-menu.xml: ...and menu items.
Add menu to the brush editor and make it configurable there too:
* app/actions/Makefile.am
* app/actions/actions.c
* app/actions/brush-editor-actions.[ch]
* app/menus/menus.c
* menus/Makefile.am
* menus/brush-editor-menu.xml: added all the bits needed for
the new menu.
* app/widgets/gimpbrusheditor.[ch]: use the menu. Added menu_factory
paramater to the contstructor.
* app/dialogs/dialogs-constructors.c: changed accordingly.
2005-08-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdataeditor.c: made hitting Escape in the name
entry restore the data's original name. Enables undoing of
accidential editing. Addresses bug #169257.
2005-06-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpcursorview.c
* app/widgets/gimpdataeditor.c
* app/widgets/gimpeditor.c
* app/widgets/gimphistogrameditor.c
* app/widgets/gimppaletteeditor.c: peek at the default interface to
get the parent interface. Unconditionally chain up in get_aux_info()
and set_aux_info() methods.
2005-05-06 Michael Natterer <mitch@gimp.org>
* app/actions/gradient-editor-commands.h: added enum for the
"load_color" actions.
* app/actions/gradient-editor-actions.c
* app/actions/gradient-editor-commands.c: use the new enum instead
of magic values, cleanup.
* app/actions/palette-editor-commands.c: cleanup.
* app/widgets/gimpbrusheditor.c
* app/widgets/gimpdataeditor.c: cleanup.
* app/widgets/gimpgradienteditor.c: added GtkObject::destroy() and
GtkWidget::unmap() implementations which destroy the color dialog.
Destroy color dialogs by cancelling them via gtk_dialog_response(),
so temporarily changed colors are restored correctly. Refactored
my last commit below a bit. Various cleanups.
* app/widgets/gimppaletteeditor.[ch]: no need to remember the
buttons in the GimpPaletteEditor struct.
2005-04-16 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.c (gimp_context_real_set_brush)
(gimp_context_real_set_pattern): no need to get base_config twice
in the same function.
* app/widgets/gimpblobeditor.h: include the parent class.
* app/widgets/gimpdataeditor.c (gimp_data_editor_init): set the
name entry insensitive.
2005-04-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdataeditor.[ch]: implement
GimpDocked::get_title() and add "(read only)" to the dialog's
title if the data is not editable. Fixes bug #164003.
(gimp_data_editor_real_set_data): call gimp_docked_title_changed()
when the editable state changes.
(struct GimpDataEditorClass): added "const gchar *title" member.
* app/widgets/gimpbrusheditor.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimppaletteeditor.c (class_init): set titles.
2004-10-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpgradienteditor.[ch]
* app/widgets/gimppaletteeditor.[ch]: added public APIs for
zooming the editors. Use gimp_editor_add_action_button() to create
all buttons. Removed all button callbacks and all duplicated
button sensitivity logic.
* app/widgets/gimpdataeditor.c (gimp_data_editor_set_data): update
the editor's UI manager if it exists.
* app/actions/gradient-editor-actions.c
* app/actions/gradient-editor-commands.[ch]: added zoom actions
and callback and call gimp_gradient_editor_zoom(). Fixed
gradient_editor_actions_update() to actually set all items'
sensitivity (it was possible to modify read-only gradients and
even to crash GIMP).
* app/actions/palette-editor-actions.c
* app/actions/palette-editor-commands.[ch]: changed "new" and
"zoom" actions to actually do their job instead of calling
gtk_button_clicked(editor->foo_button).
2004-09-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdataeditor.[ch]: added "data" property.
* app/widgets/gimpbrusheditor.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimppaletteeditor.c: pass the current data to
g_object_new() so we never end up with initially empty editors.
2004-09-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.[ch]: added "name", "blurb",
"stock_id" and "help_id" to struct GimpDialogFactoryEntry and to
gimp_dialog_factory_dialog_register(). Added typedef
GimpDialogConstructor which takes a GimpDialogFactoryEntry in
addition to the parameters GimpDialogNewFunc takes. Added a
constructor function pointer to GimpDialogFactory which defaults
to a function that just returns entry->new_func(). Use that
constructor instead of entry->new_func() for creating
dialogs. Added public API gimp_dialog_factory_set_constructor().
* app/dialogs/dialogs.c: register name, blurb, stock_id and
help_id for all dockables so all the dialog info lives in one huge
ugly table now. For the global_toolbox_factory and the
global_dock_factory, set a constructor which creates a dockable
around the widget returned by entry->new_func().
* app/dialogs/dialogs-constructors.[ch]: don't create the dockable
in each dialog constructor. Removes tons of code and reduces most
constructors to a "return gimp_foo_new(...)" one-liner. Got rid of
all static variables, they were from a time when GimpDialogFactory
was unable to manage singletons.
* app/widgets/gimpbrusheditor.[ch]
* app/widgets/gimpgradienteditor.[ch]
* app/widgets/gimppaletteeditor.[ch]: return GtkWidget, not
GimpDataEditor from gimp_foo_editor_new().
* app/widgets/gimpdataeditor.c: minor cleanups.
2004-05-02 Michael Natterer <mitch@gimp.org>
* app/actions/*-actions.c: added help IDs to all actions
representing the toplevel popups and menus (as fallbacks for the
still-to-be-written help system intrgration of GimpUIManager).
* app/display/gimpdisplayshell.c (gimp_display_shell_new): removed
call to gtk_ui_manager_ensure_update() because that's done by
gimp_ui_manager_ui_get() now.
* app/widgets/gimpmenufactory.[ch]: removed API to register and
create item factories.
* app/gui/menus.c: changed accordingly.
* app/gui/dialogs.c
* app/actions/plug-in-commands.c
* app/gui/file-dialog-utils.c
* app/gui/file-save-dialog.c
* app/widgets/gimpdataeditor.c
* app/widgets/gimpdockable.c
* app/widgets/gimpdockbook.[ch]
* app/widgets/gimpimagedock.c
* app/widgets/gimpitemtreeview.c: removed leftover item factory
cruft.
* app/widgets/widgets-types.h: removed item factory typedefs...
* app/widgets/gimpitemfactory.h: ...and added them here.
* app/widgets/gimpactiongroup.[ch]: added new function
gimp_action_group_add_plug_in_actions().
* app/actions/plug-in-actions.c: use it here instead of adding
the actions manually.
* app/widgets/gimptoolbox.c: ported the code which dynamically
updates the tool button tooltips on accelerator changes to
GtkAction. Disabled the whole stuff because GTK+ lacks
gtk_action_get_accel_closure().
2004-04-21 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpuimanager.[ch]: new GtkUIManager subclass. Adds
API to update all action groups and knows which UIs it can create
from which XML files.
* app/widgets/gimpmenufactory.[ch]: register the XML file
basenames along with path of their toplevel menus. Create
GimpUIManagers instead of GtkUIManagers and register the
XML files and menu paths with them.
* app/gui/menus.c: register all XML files and their toplevel
menu paths.
* app/widgets/gimpeditor.[ch]: also create a GimpUIManager when
creating the GtkItemFactory. Added "const gchar *ui_identifier"
parameter to gimp_editor_create_menu().
* app/widgets/gimpcontainereditor.[ch]
* app/widgets/gimpdataeditor.[ch]
* app/widgets/gimpdatafactoryview.[ch]
* app/widgets/gimpitemtreeview.[ch]: added "ui_identifier"
parameters to all constructors.
* app/widgets/gimpbrusheditor.c
* app/widgets/gimpbrushfactoryview.c
* app/widgets/gimpbufferview.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainerpopup.c
* app/widgets/gimpdocumentview.c
* app/widgets/gimperrorconsole.c
* app/widgets/gimpfontview.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpimageview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimppatternfactoryview.c
* app/widgets/gimptemplateview.c
* app/widgets/gimptooloptionseditor.c
* app/gui/dialogs-constructors.c
* app/gui/gradient-select.c
* app/gui/palette-select.c
* app/gui/pattern-select.c: pass UI identifiers to the changed
functions above.
* app/display/gimpdisplayshell.[ch]: added a GimpUIManager for
the menubar (menubar creating code still commented out).
* app/display/gimpdisplay.c
* app/gui/gui-vtable.c: update the ui manager.
2004-02-13 Michael Natterer <mitch@gimp.org>
Fixed GimpData's default "writable" and "deletable" behaviour:
* app/core/gimpdata.c (gimp_data_init): default to writable and
deletable == TRUE (something that has no filename was never loaded
from disk and can't be undeletable or read-only).
Fixes bug #134274.
* app/core/gimpdata.[ch]: added new function
gimp_data_make_internal() which frees the filename and sets the
data's flags accordingly.
* app/core/gimp-gradients.c (gimp_gradients_add_gradient)
* app/core/gimpbrush.c (gimp_brush_get_standard)
* app/core/gimpgradient.c (gimp_gradient_get_standard)
* app/core/gimppalette.c (gimp_palette_get_standard)
* app/core/gimppattern.c (gimp_pattern_get_standard): use the
new function for internal data objects.
* app/core/gimpdata.c (gimp_data_save, gimp_data_delete_from_disk)
* app/core/gimpdatafactory.c (gimp_data_factory_save_single):
bail out with g_return_if_fail() is the data is not writable
or deletable.
* app/widgets/gimpdataeditor.c
* app/widgets/gimpdatafactoryview.c: changed accordingly.
2004-02-05 Michael Natterer <mitch@gimp.org>
Disallow editing of data objects which have no save functionality.
Also fixed the misassumption that "deletable" is always equal to
"writable". Fixes bug #133456.
* app/core/gimpdata.[ch]: added a "deletable" property which is
always equal to "writable" except when the data class does not
implement GimpData::save() (then deletable may be TRUE but
writable is always FALSE).
* app/gui/brushes-menu.c
* app/gui/gradients-menu.c
* app/gui/palettes-menu.c
* app/gui/patterns-menu.c
* app/widgets/gimpdatafactoryview.c: look at data->deletable when
setting the sensitivity of the "Delete" buttons and menu items.
* app/widgets/gimpdatafactoryview.c
(gimp_data_factory_view_tree_name_edited): rename the data
only if it's writable and restore the old name otherwise.
* app/widgets/gimpdataeditor.c: no need to look at data->internal
for figuring if the data is editable, data->editable is enough.
All files above: s/writeable/writable/g
* app/widgets/gimpbrusheditor.c (gimp_brush_editor_set_data):
simplified.
2004-01-28 Michael Natterer <mitch@gimp.org>
Added infrastructure to make sure we don't write to the global
brush, pattern etc. directories. Needed to make this configurable
because we can't rely on the global directories being read-only,
having certain names or being otherwise detectable at runtime in a
sane way. Fixes bug #132214.
* libgimpbase/gimpdatafiles.[ch]: added "const gchar *dirname" to
the GimpDataFileData struct so callbacks don't need to call
g_path_get_dirname() for each file.
* libgimpwidgets/gimpfileentry.c: made it work with non UTF-8
encoded filenames.
* libgimpwidgets/gimppatheditor.[ch]: ditto. Added GUI and API for
setting/getting a second "writable_path". The widget makes sure
that the writable_path is always a subset of the path.
* app/config/gimpconfig-utils.[ch]: added new function
gimp_config_build_writable_path().
* app/config/gimpcoreconfig.[ch]: added separate properties for
the writable brush, pattern, gradient, palette and font paths.
* app/config/gimprc-blurbs.h: added (still empty) blurbs for the
new properties.
* app/core/gimpdata.[ch] (gimp_data_set_filename): added parameter
"gboolean writable". Set data->writable to FALSE by default. If
"writable" is passed as TRUE, still check if we can write to the
file before setting data->writable to TRUE.
(gimp_data_create_filename): changed "data_path" parameter to
"dest_dir" and assume dest_dir is writable.
(gimp_data_duplicate): set data->dirty to TRUE to make sure
duplicated things will be saved.
* app/core/gimpbrush.c
* app/core/gimpbrushgenerated.c
* app/core/gimpbrushpipe.c
* app/core/gimpgradient.c
* app/core/gimppalette.c
* app/core/gimppattern.c: don't set the data's filename and don't
touch data->dirty in the _load() functions because that's done by
the data factory now. Don't touch data->dirty in the _duplicate()
functions because that's done by gimp_data_duplicate() itself now.
* app/core/gimpdatafactory.[ch] (gimp_data_factory_new): added
"writable_property_name" and remember it.
Added utility function gimp_data_factory_get_save_dir() which
determines the directory to save new datas to.
Added public function gimp_data_factory_data_save_single() which
saves a single data object.
Make sure new things get saved to the first writable directory
as specified in preferences.
* app/core/gimp.c (gimp_real_initialize): pass the writable_paths'
property names to gimp_data_factory_new().
* app/widgets/gimpdataeditor.c (gimp_data_editor_save_dirty): use
gimp_data_factory_data_save_single() instead of implementing
saving here.
* app/widgets/gimppropwidgets.[ch] (gimp_prop_path_editor_new):
added "const gchar *writable_property_name" parameter (can be
NULL).
Added the needed callbacks to handle the writable_path and made
the path_editor and file_entry code aware of non UTF-8 filename
encodings. Some general cleanup.
* app/gui/preferences-dialog.c: changed accordingly.
2003-10-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpitemtreeview.c
(gimp_item_tree_view_docked_iface_init): need to set
docked_iface->get_preview to NULL explicitly now that the
interface vtable inheriting is fixed (the layers, channels and
paths dialogs can't show preview tabs because they don't always
have a container).
* app/widgets/gimpimagedock.c (gimp_image_dock_get_aux_info):
fixed typo: s/auctive/active/. Added #defines for the magic
aux-info identifiers to avoid bugs like that.
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpdataeditor.c
* app/widgets/gimppaletteeditor.c. addef #defines for aux-info
identifiers here, too.
2003-10-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsessioninfo.[ch]: added utility function
gimp_session_info_aux_new().
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpdataeditor.c
* app/widgets/gimpimagedock.c (get_aux_info): use it.
2003-10-11 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-types.h
* app/widgets/gimpsessioninfo.[ch]: added new struct
GimpSessionInfoAux which contains "gchar *name" and "gchar *value".
Changed sessionrc "aux-info" format again to be really extendable
this time. Also breaks everybody's sessionrc again.
* app/widgets/gimpimagedock.c
* etc/sessionrc: changed accordingly.
Implemented the stuff suggested in bug #122964. Fixes bug #122964
and bug #52206:
* app/widgets/gimpdataeditor.[ch]: replaced the "Gimp" member by a
"GimpDataFactory" and changed gimp_data_editor_construct()
accordingly. Implement GimpDockedInterface::set_aux_info() and
get_aux_info() and remember the currently edited data across
sessions.
* app/gui/gradient-editor-commands.c
* app/gui/gradient-editor-menu.c
* app/widgets/gimpbrusheditor.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimppaletteeditor.c: changed accordingly.
* app/widgets/gimpcoloreditor.c: remember the active color
selector across sessions.