2001-03-06 Michael Natterer <mitch@gimp.org>
* app/gimage.[ch]: removed the layer mask functions.
* app/gimpchannel.[ch]: added a boolean "dummy" parameter to
gimp_channel_copy() so it has the same signature as
gimp_layer_copy() and can be used by the GimpDrawableListView to
generically duplicate drawables.
* app/gimpcontainerview.c: call "select_item" with a NULL item
before changing the underlying GimpContainer so subclasses have
a chance to update (e.g. set button sensitivity).
* app/gimpdnd.c: folded all the GtkType comparing code into a
utility function (much more readable now).
* app/gimpdrawablelistview.[ch]: activated the "raise", "lower",
"duplicate" and "delete". I'm not really happy with all those
function pointers passed to the constructor (and the dummy
parameters I've added to some GimpChannel functions) -- OTOH the
generic view maybe worth the "gboolean dummy" cruft hanging around
in the channel class.
* app/gimplayer.[ch]: removed the "apply_mask", "edit_mask" and
"show_mask" booleans ...
* app/gimplayermask.[ch]: .. and added them here together with
proper accessors and "*_changed" signals.
This also makes the layer mask undo code much clearer as we don't
have to store the booleans separately.
* app/gimplayerlistitem.c: badly hacked to acheive the correct
indicator being drawn around the active drawable. This needs
a new GimpPreview function for setting the border color.
* app/gimplistitem.c: smaller horizontal spacing.
* app/gimppreview.[ch]: added the "border_width" parameter also to
gimp_preview_set_size() so we can modify all previews the same way
after creation.
* app/layers_dialog.c: no need to push an undo group around
the "duplicate layer" code. Was this an artefact or did I miss
something here ???
* app/channel_ops.c
* app/channels_dialog.c
* app/gimage_mask.c
* app/gimpcontainergridview.c
* app/gimpcontainerlistview.c
* app/gimpdrawablelistitem.c
* app/gimpimage.[ch]
* app/qmask.c
* app/test_commands.c
* app/undo.c
* app/xcf.c
* app/pdb/channel_cmds.c
* tools/pdbgen/pdb/channel.pdb
* app/pdb/selection_cmds.c
* tools/pdbgen/pdb/selection.pdb: changed accordingly.
* app/pdb/internal_procs.c
* app/pdb/layer_cmds.c
* libgimp/gimplayer_pdb.[ch]
* tools/pdbgen/pdb/layer.pdb: commented out the layer mask accessors
from the perl code, so the functions temporarily disappeared all
over the place.
* plug-ins/Makefile.am: don't build XJT until the layer mask stuff
is back.
* pixmaps/eye.xpm: cropped it to it's minimal size.
2001-03-04 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/apptypes.h
* app/gimpdrawablelistitem.[ch]
* app/gimplistitem.[ch]: new widgets capable of reordering
themselves using DND.
* app/gimpcontainerlistview.c: removed stuff which is now done
by the GimpListItem.
* app/gimpdnd.[ch]: new function gimp_dnd_get_drag_data(widget)
which returns a GimpViewable using the widget's drag callback.
* app/gimpdrawablelistview.c: implement GimpContainerView's
"insert_item" method and enable reordering for the created
GimpListItem.
2001-02-27 Michael Natterer <mitch@gimp.org>
* app/apptypes.h
* app/Makefile.am
* app/gimpdrawablelistview.[ch]: new widget. The upcoming replacement
for the layers and channels dialogs.
* app/test_commands.[ch]: put the test dialogs here...
* app/commands.[ch]: ... and made this one clean again.
* app/gimpcontainergridview.c
* app/gimpcontainerlistview.c
* app/gimpcontainerview.[ch]: some signal handling fine tuning.
* app/gimpimage.[ch]: emits "active_layer_changed" and
"active_channel_changed" signals now. The semantics of
gimage->active_layer and gimage->active_channel have changed a bit.
We now have either an active layer _or_ and active channel (there
is no active layer any more if a channel is active).
* app/channel_ops.c
* app/floating_sel.c
* app/gdisplay.c
* app/layers_dialog.c
* app/menus.c: changed accordingly.
* app/tools/gimpcolorpickertool.c: actually assign the draw_class
vraiable in the class_init function.
* app/tools/gimpdrawtool.[ch]
* app/tools/tool.c: removed the _new() functions because these
objects are abstract superclasses. Did some cleanup.
Nathan, please configure you editor to _not_ produce any tabs
in the source code.
* app/tools/gimppaintbrushtool.[ch]: "blurb" and "help" are tagged
with _(), not N_(). Put the register function to the header.
* po/POTFILES.in: made it compile again.
2001-02-19 Michael Natterer <mitch@gimp.org>
* app/commands.[ch]
* app/menus.c: first version of the new layers and channels dialogs.
* app/gimpcontainergridview.c
* app/gimpcontainerlistview.c: allow creation with a NULL container.
* app/gimpdnd.[ch]: added generic DND functions for all drawable
types (not just setting the DND icon). Started to remove code
duplication.
* app/gimpdrawablepreview.c: with some magic calculations and ugly
assumptions the drawable previews now look exactly like in the old
L&C dialog.
* app/gimpimagepreview.c: no need to say "return" at the end of a
void function.
* app/gimppreview.[ch]: added the "is_popup" boolean also to the
default constructor. Call gimp_preview_set_viewable() before
calculating the preview size.
2001-02-18 Michael Natterer <mitch@gimp.org>
* app/gimpdnd.[ch]: added DND source functions which work by
GtkType.
* app/commands.c
* app/brush_select.c
* app/gradient_select.[ch]
* app/pattern_select.c: removed the DND code here because it's all
done by the GimpContainerView now.
* app/gimpbrushpreview.c
* app/gimpgradientpreview.c
* app/gimppalettepreview.c
* app/gimppatternpreview.c: use the DND by-type connect functions.
* app/gimpbrushgenerated.c: implemented "duplicate", cleanup.
* app/gimpcontainergridview.c
* app/gimpcontainerlistview.c
* app/gimpcontainerview.[ch]: added a "activate_item" signal
method which is emitted by the subclasses to indicate double click.
* app/gimpdatafactoryview.c: connect to "activate_item" and show
the editor.
* app/convert.c
* app/gimppalette.[ch]
* app/palette.c
* app/paletteP.h
* app/palette_import.c
* app/palette_select.[ch]: major cleanup: Behaves like the other
datatypes now: DND, context stuff, GimpContainerListViews in
the dialogs etc. Mostly just removal of code.
* app/gradient_editor.c: fixed signal blocking/unblocking.
* plug-ins/script-fu/scripts/Makefile.am: install the "Test Sphere"
script again.
2001-02-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontainer.[ch]
* app/gimpcontainergridview.c
* app/gimpcontainerlistview.c
* app/gimpcontainerview.[ch]
* app/gimplist.c
* app/gimpmarshal.[ch]: the GimpContainer has a new virtual "reorder"
method which is much more eficient then the current remove/add
braindeadness when renaming data objects.
Changed the views to connect to "reorder" and call the
GimpContainerView's new "reorder_item" method which then does
the right thing in the view subclasses.
* app/gimpdatafactory.c
* app/gimpdatafactoryview.c
* app/gimpdatalist.[ch]: removed the data list loading and saving
stuff from GimpDataList because that's the job of the
GimpDataFactory.
* app/brush_edit.[ch]
* app/brush_select.c: cleanup.
* app/gradient_editor.[ch]: changed it to work like the brush
editor: return a GradientEditor pointer in the constructor
and statically store this pointer in the gradient selection file.
Removed the global "g_editor" variable and added tons of
GradientEditor* variables to function calls so they know their
context without the global variable.
* app/gradient_select.c: changed accordingly.
2001-02-13 Michael Natterer <mitch@gimp.org>
* app/gradient_editor.[ch]
* app/gradient_select.[ch]: use GimpContainerListView instead of
cooking an own list.
* app/gimpgradient.[ch]: removed the GdkPixmap from the gradient.
* app/gimpcontainerlistview.c: connect the viewable's "name_changed"
signal to the label.
* app/gimpmarshal.[ch]
* app/gimppreview.[ch]: new virtual function "get_size",
* app/gimpgradientpreview.c: implement "get_size" and return a 3:1
aspect ratio.
* app/gradients.c
* app/palette_select.[ch]
* app/palettes.c: removed the dialog freeze/thaw functions.
* app/brush_select.c
* app/pattern_select.c
* app/plug_in.c: stuff.
2001-02-10 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/gradientP.h
* app/gradient_header.h: removed.
* app/gimpgradient.[ch]: new object -- bye bye "gradient_t"
* app/gradients.[ch]: new files for managing the gradient list.
* app/gradient.[ch]: containes only the gradient editor now (which
still badly poked aroung in the GimpGradient structure).
* app/app_procs.c
* app/apptypes.h
* app/devices.c
* app/gimpcontainerlistview.c
* app/gimpcontext.[ch]
* app/gimpcontextpreview.[ch]
* app/gimpdnd.[ch]
* app/gradient_select.[ch]
* app/indicator_area.c
* app/palette_import.c
* app/pdb/gradient_select_cmds.c
* app/pdb/gradients_cmds.c
* app/tools/airbrush.c
* app/tools/blend.c
* app/tools/paint_core.c
* app/tools/paintbrush.c
* app/tools/pencil.c
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/gradients.pdb: changed accordingly, some
changes to the preview and view stuff.
* app/gimppreview.[ch]: removed the "context" attribute again
because it was overkill (a simple gtk_signal-connect_object does
the same as doing the autoconnection magic inside the GimpPreview
object).
* app/commands.[ch]
* app/menus.c: example views on the gradient container.
2001-02-09 Michael Natterer <mitch@gimp.org>
* app/gimpcontainergridview.[ch]
* app/gimpcontainerlistview.[ch]
* app/gimpcontainerview.[ch]: follow the GimpPreview API change
and take only "size" instead of "width" and "height" in the
constructor.
* app/gimpdnd.[ch]: first attempt to hack GtkType based DND which
speaks in terms of GimpViewable instead of Brush, Pattern, ...
Added functions to remove DND callbacks (used by the multi-views).
* app/gimppreview.[ch]: new function gimp_preview_set_size_full().
* app/commands.c: updated the example dialogs to be DND aware.
* app/gimpimage.c: fixed preview size calculation by ensuring a
minimal width/height of 1 pixel.
Reported by Dave Neary <dneary@eircom.net>
2001-02-09 Michael Natterer <mitch@gimp.org>
* app/gimppreview.[ch]: moved the constructor-parameter-overkill
to the new function gimp_preview_new_full() and made the
gimp_preview_new() interface simple.
* app/gimpbrushpreview.c
* app/gimppatternpreview.c: added DND support.
* app/gimpdnd.c: use the new preview system.
* app/gimpconstrainedhwrapbox.c: implement "size_allocate". Ok,
this is silly -- I will write an own widget which does the
"scrollable grid of whatever" stuff in one place...
* app/commands.c
* app/gimpcontainergridview.c
* app/gimpcontainerlistview.c
* app/gimpimagepreview.c: follow the GimpPreview constructor change.
2001-02-09 Michael Natterer <mitch@gimp.org>
* app/commands.c: changed the test dialogs a bit.
* app/gimpconstrainedhwrapbox.[ch]: should be called
GimpHackedWrapBoxForContainerView now ;-)
* app/gimpcontainergridview.[ch]
* app/gimpcontainerlistview.[ch]: fixed the minimal size setting
by getting the magic values from the relevan gtk widgets.
Scroll to the active item if it not visible.
2001-02-08 Michael Natterer <mitch@gimp.org>
* app/gimppreview.[ch]: added a "border" attribute. The border can
have any color (which has no sane API yet...). Added "width" and
"height" attributes and provide a "set_size" function.
* app/gimpbrushpreview.c
* app/gimpcontainergridview.c
* app/gimpcontainerlistview.c
* app/gimpimagepreview.c
* app/gimppatternpreview.c: changed accordingly, enabled
highlighting of the selected item in the grid views.
2001-02-07 Michael Natterer <mitch@gimp.org>
* app/gimppreview.[ch]
* app/gimpbrushpreview.c
* app/gimpcontainergridview.c
* app/gimpcontainerlistview.c
* app/gimpimagepreview.c
* app/gimppatternpreview.c: added an "is_popup" parameter to the
preview constructor so the subclasses can decide if to do special
stuff like pipe animation.
2001-02-07 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added "set_by_type", "get_by_type" and
"changed_by_type" methods which take a GtkType and decide from
that if to manipulate the Brush, Pattern etc.
* app/gimpcontainerview.[ch]
* app/gimpcontainergridview.[ch]
* app/gimpcontainerlistview.[ch]: added a GimpContext to the views
which is used to manage the active item.
* app/commands.c: pass the user_context to the test views.
* app/gimpbrushpreview.c
* app/gimppatternpreview.c
* app/gimppreview.[ch]: added a virtual "needs_popup" method which
returns a boolen indicating if the viewable is already fully
visible.
* app/gimage.[ch]: removed gimage_foreach() and some other
functions which can easily be done be gimp_container_foreach().
Removed gimage_delete().
* app/fileops.c
* app/gdisplay.c
* app/lc_dialog.c
* app/nav_window.c
* app/palette_import.c
* app/preferences_dialog.c
* app/xcf.c
* app/pdb/image_cmds.c
* tools/pdbgen/pdb/image.pdb: changed accordingly. Switched from
"disp_count" refcounting to real GtkObject refcounting for
GimpImages.
2001-02-06 Michael Natterer <mitch@gimp.org>
* app/gimpcontainergridview.[ch]
* app/gimpcontainerlistview.[ch]: added "min_items_x" and
"min_items_y" parameters to the constructors.
* app/gimppreview.[ch]: added event handling for "click" and
"popup", show a dummy popup for testing.
* app/commands.c: changed accordingly.
* app/menus.c: added a separator and removed N_() from the test stuff.
2001-02-06 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/gimpconstrainedhwrapbox.[ch]: A bad hack on top of another
hack: The GtkHWrapBox "size_request" method _always_ wants a
maximal requisition height, which it of course gets from a
container like the scrolled window, yielding in wrong vscrollbar
calculation.
* app/gimpbrush.c: create a nice preview with scale and pipe
indicators.
* app/gimpcontainergridview.[ch]: use the GimpConstrainderHWrapBox.
* app/commands.c
* app/gimpcontainerlistview.c
* app/gimppreview.c: cleanup, fixed a crash in the preview idle
rendering function.
2001-02-06 Michael Natterer <mitch@gimp.org>
* app/gimpcontainergridview.[ch]
* app/gimpcontainerlistview.[ch]
* app/gimpcontainerview.[ch]: implemented "set_preview_size".
* app/commands.c: added a preview size slider to the test dialogs.
2001-02-05 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/gimpcontainergridview.[ch]: new widget providing a grid view
in the style of the current brush and pattern selections.
* app/gimpcontainerlistview.[ch]
* app/gimppreview.[ch]: the constructors take "width" and "height"
parameters now.
* app/gimpviewable.c: if the viewable is not able to generate
a static (cached) preview, create a new one and cache it ourselves.
* app/gimppattern.c: produce a nice preview.
* app/temp_buf.[ch]: changed temp_buf_copy_area() to take a
destination offset instead of a border parameter. This function
was not used at all before.
* app/commands.[ch]
* app/menus.c: test dialogs for the grid view.
2001-02-05 Michael Natterer <mitch@gimp.org>
* app/gimpcontainerlistview.[ch]
* app/gimpcontainerview.[ch]
* app/gimpmarshal.[ch]: moved the signal connecting stuff to the
GimpContainerViewClass which has virtual functions for insert,
remove and clear now which are implemented by the
GimpContainerListViewClass.
2001-02-05 Michael Natterer <mitch@gimp.org>
* app/gimpcontainer.[ch]
* app/gimplist.[ch]: made the "get_by_name" and the "by_index"
access functions methods of the GimpContainerClass. The semantic
of this index is somewhat unclear if we have e.g. a hash table
implementation but the container needs to have an order for the
ContainerView. Finally, the ordering will be a feature of the
ContainerView.
* app/gimpmarshal.[ch]: marshallers needed for the new methods.
* app/brushes.[ch]
* app/patterns.[ch]: the public global brush and pattern lists
are GimpContainers now (they are really GimpLists of course).
* app/brush_select.c
* app/devices.c
* app/gimpcontainerlistview.c
* app/gimpcontext.c
* app/gimpdnd.c
* app/pattern_select.c
* app/pdb/brush_select_cmds.c
* app/pdb/brushes_cmds.c
* app/pdb/pattern_select_cmds.c
* app/pdb/patterns_cmds.c
* tools/pdbgen/pdb/brush_select.pdb
* tools/pdbgen/pdb/brushes.pdb
* tools/pdbgen/pdb/pattern_select.pdb
* tools/pdbgen/pdb/patterns.pdb: changed accordingly.
2001-02-05 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/apptypes.h: some new files and data types:
* app/gimppreview.[ch]: new widgets which provides a view
of a GimpViewable.
* app/gimpcontainerview.[ch]: new abstract widget base class for
views of GimpContainers of GimpViewables
* app/gimpcontainerlistview.[ch]: (still) simple implementation of
a list view of the container.
* app/gimpbrush.[ch]
* app/gimppattern.[ch]: provide dumb implementations of the
GimpViewable's "preview" method.
* app/image_render.c: quick bad hack to enable preview sizes which
are != "preview_size": Always allocate data chunks for previews up
to 256 pixels width.
* app/drawable.c: emit the "incalidate_preview" signal from
drawable_update(). This may cause useless updates at the moment
but as we want to move from explicit updates to signal-driven
model-view stuff it's the right thing (TM).
* app/commands.[ch]
* app/interface.c
* app/menus.c: Added a "Test dialogs" menu to the Toolbox.
* app/pdb/image_cmds.c
* libgimp/gimpenums.h
* plug-ins/script-fu/script-fu-constants.c
* tools/pdbgen/enums.pl: propagated the new alpha channel stuff
to the autogenerated files.