- gimp_container_tree_view_prepend_toggle_cell_renderer() to
gimp_container_tree_view_add_toggle_cell()
- gimp_container_tree_view_prepend_cell_renderer() to
gimp_container_tree_view_add_renderer_cell()
because "prepend" is an implementation detail, "renderer" is obsolete,
and in the second case it's not "cell renderer" but really a "renderer
cell".
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
* app/widgets/gimpcontainertreeview.[ch]
* app/widgets/gimpcontainertreeview-private.h: Make the
renderer_cells and toggle_cells members private.
(gimp_container_tree_view_set_main_column_title)
(gimp_container_tree_view_prepend_toggle_cell_renderer)
(gimp_container_tree_view_prepend_cell_renderer): New interface.
* app/widgets/gimptoolview.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpcontrollerlist.c: Use new interface.
svn path=/trunk/; revision=27675
* app/widgets/gimpcontainertreeview.[ch]: Move container tree view
model column enums here and call the last enum _N_COLUMNS.
* app/widgets/widgets-enums.h: Remove the enum. It was meant only
for the container tree view class hierarchy anyway.
svn path=/trunk/; revision=27672
* app/widgets/gimpcontainertreeview.[ch]
(gimp_container_tree_view_set_dnd_drop_to_empty): New setter
function so that we can make the "gboolean dnd_drop_to_empty"
class instance member private.
* app/widgets/gimpcontainertreeview-private.h: Move member here.
* app/widgets/gimpcontainertreeview-dnd.c: Go through priv pointer.
* app/widgets/gimpitemtreeview.c (gimp_item_tree_view_init): Use
the new function.
svn path=/trunk/; revision=27671
* app/widgets/gimpcontainertreeview.[ch]: Don't expose class
instance struct members that is currently only used within the
GimpContainerTreeView implementation.
* app/widgets/gimpcontainertreeview-private.h: New file containing
the definition of the private struct.
* app/widgets/gimpcontainertreeview-dnd.c: Change accordingly.
* app/widgets/Makefile.am: Add new file.
svn path=/trunk/; revision=27662
2008-06-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.[ch]: add new function
gimp_container_tree_view_connect_name_edited() which makes the
name cell editable and connects a passed "edited" callback.
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimpsettingseditor.c
* app/widgets/gimptemplateview.c: use it instead of having the
same code four times.
svn path=/trunk/; revision=26009
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.
2005-04-09 Michael Natterer <mitch@gimp.org>
Implement dragging and dropping in any GdkPixbuf supported
format. Fixes bug #172794 and bug #172795.
* app/core/gimplayer.[ch] (gimp_layer_new_from_region): new
function which contains all stuff that was in
gimp_layer_new_from_tiles().
(gimp_layer_new_from_tiles): use above function.
(gimp_layer_new_from_pixbuf): new function.
* app/widgets/Makefile.am
* app/widgets/gimppixbuf.[ch]: new files containing GdkPixbuf
utility functions for clipboard and DnD.
* app/widgets/gimpselectiondata.[ch]: removed
gimp_selection_data_set,get_pixbuf(), GTK+ provides the same API.
Also removed GdkAtom parameters all over the place because it's
always the same as selection_data->target.
* app/widgets/gimpclipboard.c: use the new pixbuf utility
functions and gtk_selection_data_set,get_pixbuf().
* app/widgets/widgets-enums.h
* app/widgets/gimpdnd.[ch]: removed never-implemented
GIMP_DND_TYPE_PNG and added a generic GIMP_DND_TYPE_PIXBUF
instead. Added API to drag and drop GdkPixbufs which transparently
converts from/to and GdkPixbuf-supported image format. Removed
passing around of GdkAtoms, since they were always the same
as selection_data->target.
* app/widgets/gimpdnd-xds.[ch]: follow GdkAtom parameter removal.
* app/widgets/gimpcontainertreeview.[ch]: added virtual function
GimpContainerTreeView::drop_pixbuf().
* app/widgets/gimpcontainertreeview-dnd.c: dispatch drop_pixbuf().
* app/widgets/gimplayertreeview.c: implement drop_pixbuf().
* app/widgets/gimpdrawabletreeview.c: allow to drag all drawables
as pixbufs.
* app/display/gimpdisplayshell-dnd.c: allow dropping of pixbufs.
2005-01-17 Michael Natterer <mitch@gimp.org>
Allow to drop stuff onto empty layers, channels and paths dialogs
to create new items:
* app/widgets/gimpcontainertreeview.h (struct GimpContainerTreeView):
added "gboolean dnd_drop_to_empty".
* app/widgets/gimpcontainertreeview-dnd.c: if "dnd_drop_to_empty"
is TRUE, dispatch drops to empty views and to the empty area below
all items.
* app/widgets/gimpitemtreeview.c (gimp_item_tree_view_init): set
"dnd_drop_to_empty" to TRUE.
* app/widgets/gimpitemtreeview.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpvectorstreeview.c: made all drop functions work
with "dest_viewable" being NULL and changed drop_possible()
implementations accordingly. Cleaned up the whole DND code a bit.
* app/widgets/gimplayertreeview.c: removed color and pattern
drop code...
* app/widgets/gimpdrawabletreeview.c: and added it here so colors
and patterns can be dropped to the channels dialog too.
2005-01-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.[ch]: added virtual function
GimpContainerTreeView::drop_component(). Added EEKy "dnd_gimp"
needed for gimp_selection_data_get_component().
* app/widgets/gimpitemtreeview.c (gimp_item_tree_view_set_context):
set the "dnd_gimp" pointer if it is NULL.
* app/widgets/gimpcontainertreeview-dnd.c: handle component drops
and dispatch ::drop_component() accordingly.
* app/widgets/gimplayertreeview.c: implement dropping of
components as new layers. Addresses bugs #158483 and #158133.
2004-06-30 Sven Neumann <sven@gimp.org>
* app/widgets/gimpselectiondata.[ch]: renamed the SVG related
functions so that they deal with an anonymous data stream that
could as well be a PNG image.
* app/widgets/gimpdnd.[ch]
* app/widgets/gimpcontainertreeview-dnd.c: changed accordingly.
* app/display/gimpdisplayshell-dnd.[ch]
* app/vectors/gimpvectors-import.[ch]
* app/widgets/gimpcontainertreeview-dnd.c
* app/widgets/gimpvectorstreeview.c: use gsize for the length of
the buffer.
* app/widgets/gimpdnd.[ch]
* app/widgets/widgets-enums.[ch]: added GIMP_DND_TYPE_PNG which isn't
used yet.
2004-06-28 Michael Natterer <mitch@gimp.org>
Allow all sorts of things to be dropped on or in between the
items of a GimpContainerTreeView:
* app/widgets/gimpcontainertreeview.[ch]: added more parameters to
GimpContainerTreeView::drop_possible() to specify where ecactly
the drop should take place (between or into items) and to support
dropping all sorts of things.
Renamed ::drop() to ::drop_viewable() and added ::drop_color(),
::drop_files() and ::drop_svg(), which cover all possible drop
types.
* app/widgets/gimpcontainertreeview-dnd.[ch]: changed accordingly.
Dispatch all kinds of drops to the resp. virtual functions.
* app/widgets/gimpitemtreeview.c: changed accordingly.
* app/widgets/gimplayertreeview.c: allow to drop URIs, colors
and patterns to the layers dialog. Fixes bugs #119506 and #139246.
2004-05-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainergridview.[ch]
* app/widgets/gimpcontainertreeview.[ch]: removed "reorderable"
from gimp_container_foo_view_new().
* app/widgets/gimpcontainereditor.[ch]: removed "reorderable" from
gimp_container_editor_construct(). Automatically set the view to
reorderable if the viewed container has no sort_func.
* app/widgets/gimpbufferview.c
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpdocumentview.c
* app/widgets/gimpimageview.c
* app/widgets/gimptemplateview.c
* app/widgets/gimptoolview.c
* app/widgets/gimpundoeditor.c: removed reoderable stuff because
GimpContainerEditor does this generically now.
* app/widgets/gimpcontainerpopup.c
* app/widgets/gimpfontview.c: set reorderable to FALSE because
they should not be reodered even if they don't have a sort_func.
* app/gui/font-select.c: removed reorderable stuff. Some cleanup.
* app/gui/brush-select.c
* app/gui/gradient-select.c
* app/gui/palette-select.c
* app/gui/pattern-select.c: same cleanups as in font-select.c
2004-05-10 Michael Natterer <mitch@gimp.org>
Prepare for making an interface out of GimpContainerView:
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontainerbox.[ch]: new GimpContainerView
subclass which implements GimpDocked interface and contains the
vbox-with-scrolled-window stuff common to GimpContainerGridView
and GimpContainerTreeView.
* app/widgets/gimpcontainerview.[ch]: removed that functionality
here.
* app/widgets/gimpcontainergridview.[ch]
* app/widgets/gimpcontainertreeview.[ch]: derive them from
GimpContainerBox.
* app/gui/brush-select.c
* app/gui/font-select.c
* app/gui/gradient-select.c
* app/gui/palette-select.c
* app/gui/pattern-select.c
* app/widgets/gimpcontainerpopup.c: changed accordingly.
2004-01-29 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.[ch]: removed the last artefact of context
signal handling from 1.2:
GimpContext used to connect to e.g. the current brush's
"invalidate_preview" and "name_changed" signals and emitted
"brush_changed" when the callback was invoked. This was needed to
make 1.2 work, but is conceptually broken with the real model <->
view approach implemented in the current code.
This change also optimizes things quite a bit because lots of
signal emissions are saved.
Added utility function which finds a container's current object
after a freeze/thaw.
* app/widgets/gimpcontainerview.[ch]: added new virtual function
GimpContainerView::rename_item(). Connect to "name_changed" of the
corrent container's children and invoke rename_item() accordingly.
* app/widgets/gimpcontainertreeview.[ch]: removed name_changed
handler and implement GimpContainerView::rename_item().
* app/widgets/gimpcontainergridview.c: ditto. the grid view was
still relying on the removed GimpContext behaviour for updating
the label showing the sleected item's name.
2003-10-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview-dnd.c: added auto-scrolling
when DND-hovering close to the widget's top or bottom border.
Fixes bug #124231.
* app/widgets/gimpcontainertreeview.h: added some auto-scroll state
to the GimpContainerTreeView struct.
* app/widgets/gimpcontainertreeview.c: remove the auto-scroll
timeout in GtkWidget::unmap().
2003-05-21 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch]: added GimpDrawable::alpha_changed()
signal.
* app/core/gimpimage-undo-push.c
* app/core/gimplayer.c: emit it when alpha is removed from or
added to a layer.
* app/widgets/gimpcontainertreeview.[ch]: added a
"name_attributes" column to the list store which provides a
PangoAttrList for the name column.
* app/widgets/gimplayertreeview.[ch]: connect to all layers'
"alpha_changed" and set the BG layer's name to bold.
* app/widgets/gimpdrawabletreeview.c: removed redundant assertions.
2003-04-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.[ch]: removed
tree_view->preview_border_width.
* app/widgets/gimpcontainermenu.[ch]
* app/widgets/gimpcontainerview.[ch]: and added it here so it is
configurable in all views. Synced the changes in both classes.
* app/widgets/gimpcontainermenuimpl.[ch]
* app/widgets/gimpmenuitem.[ch]: made preview_border_size
configurable here, too.
* app/widgets/gimplayertreeview.c
* app/widgets/gimpimagedock.c
* app/gui/palette-import-dialog.c: changed accordingly.
* app/gui/file-new-dialog.c: Removed the border from the template
menu previews.
2003-03-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerview.[ch]: added the scrolled_win
to the GimpContainerView struct. Create it in init().
Added gimp_container_view_set_size_request() which adds the
scrolled_window's scrollbar and frames sizes correctly.
* app/widgets/gimpcontainergridview.[ch]
* app/widgets/gimpcontainertreeview.[ch]: removed scrolled windows
here and use the one from the parent_instance. Use the new utility
function.
* app/widgets/gimpcontainertreeview.c: enable searching in the
name column. Grab the focus in button_press.
* app/widgets/gimpcontainerpopup.[ch]: added a button_box containing
zoom in/out, view as list/grid and a button to show the permanently
open dialog. Added more parameters to gimp_container_popup_new().
* app/tools/gimpblendoptions.c
* app/tools/gimpbucketfilloptions.c
* app/tools/gimptextoptions.c
* app/tools/paint_options.c: changed accordingly.
2003-03-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainereditor.c: allow to create a
GimpContainerEditor without a popup menu.
* app/widgets/gimpcellrendererviewable.c: free the event we
got from gdk_get_current_event().
* app/widgets/gimpcontainerview.c: check view->hash_table for
being non-NULL before using it. Be prepared to be destroyed by as
a result of calling gimp_context_set_foo(view->context, foo).
* app/widgets/gimpcontainertreeview.[ch]: added
tree_view->editable_cells and handle *all* mouse clicks in
gimp_container_tree_view_button_press() (by returning TRUE). Start
editing on double-click only. Use gtk_tree_view_set_cursor()
instead of gtk_tree_selection_select_path() to avoid
selected/focus confusion when the focus enters the widget. Be
prepeared to be destroyed as a result of item selection.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontainerpopup.[ch]: new GtkWindow derived
widget which pops up a selection of any GimpContainer/GimpContext
combo.
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpitemtreeview.c: add the name cell to
tree_view->editable_cells so it becomes editable.
* app/tools/gimpblendoptions.c
* app/tools/paint_options.c: use the new container popup for
selecting brushes and gradients.
2003-03-19 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcellrenderertoggle.[ch]
* app/widgets/gimpcellrendererviewable.[ch]: added public
functions to emit the "clicked" signal.
* app/widgets/gimpcontainertreeview.c: use them instead of
g_signal_emit_by_name().
* app/widgets/Makefile.am
* app/widgets/gimpcontainertreeview-dnd.[ch]: new files
implementing DND for tree views.
* app/widgets/gimpcontainertreeview.[ch]: added virtual
functions drop_possible() and drop().
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c: implement drop_possible()
and drop().
2003-03-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.[ch]: added utility function
gimp_container_tree_view_find_click_cell(). Don't select the
row if one of tree_view->toggle_cells was clicked. Removed
"GList *toggle_columns" from the struct.
* app/widgets/gimpdrawabletreeview.[ch]: added a
GtkTreeSelectionFunc which ensures that nothing but the floating
selection can be selected. Removed the "eye_column" from the
struct.
* app/widgets/gimpitemtreeview.[ch]: added virtual function
rename_item() and a default implementation.
* app/widgets/gimplayertreeview.[ch]: implement rename_item() and
special case floating selections. Added
gimp_layer_tree_view_mask_update() utility function to factor out
duplicated code. Removed "chain_column" from the struct. Cleanup.
2003-03-16 Michael Natterer <mitch@gimp.org>
Added GtkTreeView versions of layers/channels/vectors:
* app/core/core-enums.[ch]: renamed GIMP_UNDO_GROUP_LAYER_PROPERTIES
to GIMP_UNDO_GROUP_ITEM_PROPERTIES.
* app/core/gimpcontainer.c (gimp_container_reorder): don't try
to reorder containers with num_children == 1.
* app/core/gimpmarshal.list: added VOID: STRING, UINT marshaller.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpchanneltreeview.[ch]
* app/widgets/gimpdrawabletreeview.[ch]
* app/widgets/gimpitemtreeview.[ch]
* app/widgets/gimplayertreeview.[ch]
* app/widgets/gimpvectorstreeview.[ch]: new widgets.
* app/widgets/gimpcellrenderertoggle.c: draw the frame only if the
cell is prelit.
* app/widgets/gimpcellrendererviewable.[ch]: added "clicked"
signal, unref the renderer in finalize(). Set the renderer's
border color to black if the cell is not selected (a hack that
saves tons of code in GimpLayerTreeView).
* app/widgets/gimpcomponenteditor.c: no need to gtk_list_store_set()
stuff we just got from the store.
* app/widgets/gimpcontainertreeview.[ch]: added lots of state used
by the new subclasses to the GimpContainerTreeView struct. Create
the GtkListStore/GtkTreeView in GObject::constructor() and only
collect parameters in init() so subclasses can modify store/view
creation. Do most of the button_press_event stuff manually and
return TRUE from the handler.
* app/widgets/gimpcontainerview.c: cleanup.
* app/widgets/gimpitemlistview.h
* app/widgets/gimpvectorslistview.h: temp hacks before they die.
* app/widgets/gimppreviewrenderer.[ch]: added
gimp_preview_renderer_update_idle() which idle-emits "update"
without invalidating.
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs.c: added constructors for the new dialogs.
* app/gui/channels-commands.c
* app/gui/channels-menu.c
* app/gui/layers-commands.c
* app/gui/layers-menu.c
* app/gui/vectors-commands.c
* app/gui/vectors-menu.c: accept tree views as callback data.
2003-03-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcomponenteditor.c: disable expensive column
auto-resizing and call gtk_tree_view_columns_autosize() in
gimp_component_editor_set_preview_size().
* app/widgets/gimpcontainertreeview.[ch]: ditto. Changed the
GtkListStore pointer in the GimpContainerTreeView struct to
GtkTreeModel.
2003-02-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerview.[ch]: added "GDestroyNotify
insert_data_free" to the GimpContainerViewClass struct. Pass it as
"value_destroy_func" to g_hash_table_new_full().
* app/widgets/gimpcontainertreeview.[ch]: set g_free() as
insert_data_free, so we don't leak the GtkTreeIters used as
insert_data. Added DND stuff (you can drag any item without
selecting it using mouse button 2). Cleanup.
* app/widgets/gimpcontainereditor.c: cosmetic.