1999-11-20 Michael Natterer <mitch@gimp.org>
* app/preferences_dialog.c: new prefs. page "Help System" because
there will soon be more widgets there (browser selection etc.)
Cleaned up the "Display" and "Interface" pages a bit.
* app/menus.c
* plug-ins/common/plugindetails.c: add "...".
* libgimp/gimpfileselection.c
* libgimp/gimppatheditor.c: a widget shouldn't connect to it's own
"realize" signal. Set widget_class->realize = <widget>_realize
instead.
1999-11-20 Michael Natterer <mitch@gimp.org>
Reorganized the core menu items (everything except
<Image>/Filters). Everything is of course trivial to change again,
so please comment on the new "menu feeling" ;-)
* app/menus.[ch]:
- Applied the suggestions collected by Olof.
- Added "..." to all items which open a dialog.
- Introduced some additional separators (e.g. in "Dialogs").
- Reorder some plugins and the color correct tools after
initialisation.
- A menu entry to invoke the tooltips inspector.
- A debugging menu entry which dumps the menu paths and their help
pages (will of course go away when the help sys is consistent).
There are currently two identical "Help" menus because
<Toolbox>/Help trashes the menu bar if the toolbox is too narrow
(gtk doesn't seem to support multi-line menubars, any idea?)
* app/app_procs.c: call menus_reorder_plugins() after loading the
plugins to beautify the "Xtns" menu.
* app/commands.[ch]: reordered some functions to match the new
menu structure (for easier source navigation) and renamed some to
be consistent (e.g. all help functions are now called help_*).
Show/Hide the rulers with ordinary gtk_widget_[show|hide]()
commands. I've tested it several times and it looks exactly the
same as the old code which used internal gtk knowledge.
* app/gdisplay.c: applied the menu changes to
gdisplay_set_menu_sensitivity().
* app/gimphelp.[ch]: new public function gimp_context_help() which
invokes the tooltips inspector. Code cleanup.
* app/resize.c: changed the dialogs' titles to match the menu entries.
* app/session.c: renamed the gradient selection cmd callback to be
consistent with brushes/patterns.
* app/tools.c: added "..." to the menu paths of the tools which
have dialogs.
* app/fileops.c
* app/channels_dialog.c
* app/layers_dialog.c
* app/paths_dialog.c: added some "...".
* plug-ins/common/align_layers.c
* plug-ins/common/autostretch_hsv.c
* plug-ins/common/c_astretch.c
* plug-ins/common/color_enhance.c
* plug-ins/common/compose.c
* plug-ins/common/decompose.c
* plug-ins/common/mail.c
* plug-ins/common/normalize.c
* plug-ins/common/threshold_alpha.c
* plug-ins/dbbrowser/dbbrowser.c
* plug-ins/fp/fp.c
* plug-ins/print/print.c
* plug-ins/rcm/rcm.c: changed the menu paths and added "...".
1999-11-14 Michael Natterer <mitch@gimp.org>
* app/gimpdnd.c: special handling of a dropped "Standard"
brush/pattern/gradient because they are not part of their lists.
* app/pattern.c: fill the standard_pattern with a b/w grid.
1999-11-14 Michael Natterer <mitch@gimp.org>
* app/airbrush.c
* app/apptypes.h
* app/brushes_cmds.c
* tools/pdbgen/pdb/brushes.pdb
* app/bucket_fill.c
* app/clone.c
* app/gimpbrushpipe.c
* app/paint_core.c
* app/patterns.h
* app/patterns_cmds.c
* tools/pdbgen/pdb/patterns.pdb: removed the GimpBrushP and
GPatternP types and use ordinary pointers instead.
The following stuff makes the "no_data" behaviour consistent. As a
side-effect it should make the gimp work when there are _really_ no
brushes/patterns/gradients.
* app/brush_select.c
* app/pattern_select.c: set the initial brush/pattern name to "No
Brushes/Patterns available" instead of "Active".
* app/devices.c: set the device contexts' brush/pattern/gradient
names if we started with no_data, so we find them on refresh.
* app/gimpbrushlist.c: set the name of the standard_brush to
"Standard".
* app/gimpcontext.c: don't replace the current
brush/pattern/gradient's name if the new one to be set is the
standard one. Together with the change in devices.c, this ensures
that we get what is set in devicerc. Minor fixes.
* app/gradient.c: changed gradients_init() to work like the other
data init functions. Only insert a default gradient in the
gradients list when the editor is opened (this means that the
gradients now behave like brushes/patterns when we start with
"no_data").
New function gradient_update() avoids tons of useless redraws of
all clist gradient previews whenever the gradient editor wants to
update it's large preview.
* app/gradient_select.c: don't segfault when the user tries to
drag from an empty gradient list.
* app/patterns.c: set the index of the standard_pattern to -1 to
indicate that it's not part of the pattern list.
Sun Nov 7 18:59:22 GMT 1999 Austin Donnelly <austin@gimp.org>
* app/gimpcontextpreview.c: delay the showing of the full-size
pattern, brush or gradient by 150ms as the brush and pattern
selector dialogs currently do. Also, only generate a "click"
event if the user has clicked quickly, ie, the mouse up event
came before the timeout caused the popup to be displayed).
* app/gimprc.c: default image size now 983x857, in an attempt to
flush out problems to do with large images, images with
incomplete tiles around the edges, and images with
width != height. Non-square pixels and other resolution stuff
will come in at a later stage when we've got the first round
of problems fixed.
* app/gradient.c: don't allow two gradients with the same name -
replace the first. Mainly this stops us having two "Default"
gradients if you start up with --no-data.
* app/interface.c: can now create an indicator panel in the
toolbox even if we have --no-data, since we have built-in
defaults now.
* app/gdisplay_color_ui.c: fixed a crash on Cancel that occured
due to bad list handling
* app/module_db.c: indentation madness, no changes
* app/nav_window.c: set the zoom label and slider first, then
update the preview. Gives better user feedback. This is now what
bugreport #3354 suggest, but it comes close.
* plug-ins/common/plugindetails.c: tried to fix the strange resizing
of the dialog. Should fix bug #3352.
--Sven
1999-11-03 Michael Natterer <mitch@gimp.org>
* app/brush_select.[ch]
* app/gradient.c
* app/gradient_select.[ch]
* app/interface.[ch]
* app/palette.c
* app/pattern_select.[ch]: allow dragging a brush/pattern/... from
the selections with mouse2 without changing the active element in
the dialog.
* app/channels_dialog.c
* app/color_area.c
* app/color_panel.c
* app/color_select.c
* app/colormap_dialog.i.c
* app/devices.c
* app/gimpcontextpreview.[ch]
* app/gimphelp.[ch]
* app/gimpui.[ch]
* app/indicator_area.c
* app/interface.[ch]
* app/layers_dialog.c
* app/lc_dialog.c
* app/ops_buttons.[ch]
* app/paths_dialog.c
* app/preferences_dialog.c
* app/tools.[ch]: wrapped gtk_tooltips_set_tip() with
gimp_help_set_help_data() and moved it to gimphelp.[ch].
This should (hopefully) be the final state of the help system. The
New function allows a "private tip" to be set without a visible
tooltip. This way the tooltips inspector (shift+F1) can search for
help data in the parent containers of the clicked widget. E.g. the
ops buttons in the layers dialog have private tips like
"#new_layer" which gets composed with the help data of the layers
dialog notebook page resulting in a complete help path.
Allow mouse2 for all dnd operations. Mouse1 still works like before.
1999-10-30 Michael Natterer <mitch@gimp.org>
* app/gimpdnd.c
* app/undo_history.c: remove the remaining defines of
GRAD_CHECK_SIZE and include libgimp/gimplimits.h instead.
* app/undo_history.c: connect to the image's "rename" signal to
update the window title.
* app/disp_callbacks.c
* app/gdisplay.c
* app/info_window.[ch]: did the same for the info dialog.
The info window has to remember the gdisplay to disconnect from
the image's "rename" signal, so I removed the gdisplay parameter
from the update functions.
1999-10-30 Michael Natterer <mitch@gimp.org>
* app/gimpdnd.c: forgot to set "connected" flag after connecting
to the dnd signals of a specific widget, so the dnd stuff
connected to these signals for every dnd data type (resulting ie
in multiple bucket fills when dropping a color/pattern to the
canvas).
1999-10-30 Michael Natterer <mitch@gimp.org>
* app_procs.c
* app/commands.[ch]
* app/interface.c
* app/menus.c
* app/session.c
* app/tools.[ch]: namespace cleanups: changed the
"tools_options_*" functions to "tool_options_*" and prefixed all
dialog menu callbacks with "dialogs_*".
Allow dropping a tool to the tool options dialog.
* app/bezier_select.c: change the active tool using context
functions.
* app/dialog_handler.[ch]: replaced the uppercase datatype names
by standard mixed upper/lowercase ones. Provide a function to
register the fileload dialog instead of accessing it as global
variable.
* app/disp_callbacks.c: switch to the move tool using context
functions. Fixed the drop color/pattern functions to convert the
dropped thing to the dest. image's color space.
* app/fileops.c: don't export the fileload dialog as global
variable but register it with the dialog handler instead.
* app/paths_dialog.[ch]: replaced all the uppercase struct names
defined here by mixed upper/lowercase. Introduced a
"set_menu_sensitivity" function like in layers/channels instead of
calling single button on/off functions from various places.
Added a menu entry for "Selection to Path".
1999-10-29 Michael Natterer <mitch@gimp.org>
* app/brush_select.c
* app/gradient_select.c
* app/pattern_select.c: call the PDB callback from the context
callback because it gets called on every change.
* app/interface.c: the tool buttons had the wrong private tooltips
attached.
* app/gimphelp.c: call the help browser with plug_in_run() instead
of procedural_db_execute() to make it really ansynchronous.
Added a GtkTipsQuery tooltips inspector which gets invoked by
<Shift>+F1. Did some illegal juggling with the tips_query's
"parent" pointer which may cause problems, so I made the stuff
disable-able with #ifdef's.
Is there a proper way to create a tips_query widget without having
to show it somewhere??
1999-10-25 Tor Lillqvist <tml@iki.fi>
* app/cursorutil.h: Uncomment the inclusion of gdkcursor.h that
should happen only with GTk+ 1.3, anyway? Why was it commented
out?
* app/tile_swap.c: Close before unlinking on Win32, too.
* libgimp/gimp.def: Updates, sorted.
* plug-ins/makefile.{cygwin,msc}: Add the gap and imagemap
plug-ins. Remove palette plug-in (what happened to it?).
Portability fixes from Hans Breuer:
* plug-ins/FractalExplorer/Dialogs.c
* plug-ins/gap/*.c:
* plug-ins/gimpressionist/gimpressionist.c:
* plug-ins/common/spheredesigner.c: Ifdefify system-dependent includes.
* plug-ins/common/psp.c: Remove an unused variable.
* plug-ins/imagemap/{imap_csim.y,imap_csim_parse.c}: Use
<string.h>, not <strings.h>.
* plug-ins/imagemap/imap_rectangle.c (rectangle_near_sash): Use
the & operator for function names to return pointers to them.
* plug-ins/winsnap/winsnap.c (sendBMPToGimp):
gimp_drawable_flush() should be called before resizing the layer
and image. Now the snapshot of a window is returned the correct
size, it's not padded in width to a multiple of four pixels.
1999-10-19 Michael Natterer <mitch@gimp.org>
* gimpcontext.[ch]: changed the "parent context" implementation:
- Automatically connect/disconnect the "*_changed" signals when
changing the parent and when setting the "defined" flag of the
attributes.
- Store the former *_defined booleans in a single guint32.
- Added generic functions to set the "defined" flags of the
attributes and to copy attributes between contexts.
The contexts now correctly handle disappearing images and
displays, so we don't have to explicitly reset them any more.
* context_manager.[ch]: adopted to the changed context
implementation, connect to the user context's "tool_changed"
signal to switch the per-tool contexts, don't connect to the
"removed" signal of the image context.
* brush_select.c
* tool_options.c: use LayerModeEffects instead of int when calling
gimp_context_set_paint_mode().
* gdisplay.c: no need to reset the active display when deleting it
because the context connects to the "destroy" signal of the shell
now.
* menus.c: a shortcut for the navigation window. Moved
<Image>/Image/Colors/Desaturate before the separator.
* tools.c: tools_select(): set the active tool of the user context
instead of calling a special context manager function.
1999-10-17 Tomas Ogren <stric@ing.umu.se>
* plug-ins/common/compose.c
* plug-ins/gimpressionist/gimpressionist.c
* plug-ins/gimpressionist/preview.c
* plug-ins/gimpressionist/presets.c
* plug-ins/gimpressionist/repaint.c: i18n de-lamerism
Using _(" OK ") etc gives the translators much extra work...
* app/about_dialog.c: Fix my name
* app/menus.c: Change order of resize and scale in L&C&P to match the
normal image menu
* po/sv.po: Update
* po-plug-ins/sv.po: Update
1999-10-16 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/menus.c: made the "Dialogs" sub-menus of <Toolbox>/File and
<Image> consistent.
* app/nav_window.c: wheelmouse support as in the gdisplay shell.
Wed Oct 6 23:29:53 BST 1999 Andy Thomas <alt@gimp.org>
* app/palette.c
Another attemp at fixing the palette dialog.
The number of columns are now fixed at sixteen (which
means the nicely layed out palettes will be OK).
Expanding the dialog causes the width of the cells to change
where as the +/- buttons cause the height of the cells to change.
* libgimp/color_display.h
* app/gdisplay.c: add bpl param for convert func
* gdisplay_color.c: guard against head and tail cases in reorders
* app/gdisplay_color_ui.c: expose_full on all actions, so there is
immediate feedback. Check for no selection and do nothing on actions
* app/path_tool.c: #warning is not portable; change to /* XXX: */
* modules/cdisplay_gamma.c: make it so it actually works properly
-Yosh
* app/app_procs.c
* app/gdisplay_color.[ch]
* app/gdisplay_color_ui.c: make the ui usable
* app/gdisplay.c: enable cdisplay support
* modules/Makefile.am
* modules/cdisplay_gamma.c: moved gamma functionality to separate
-Yosh
1999-10-03 Michael Natterer <mitch@gimp.org>
* app/fileops.c
* app/menus.[ch]
* app/menus.h
* app/plug_in.c: show a help page for all menu entries registered
by plugins.
Changed menus_create() to menus_create_item_from_full_path() which
takes a single GimpItemFactoryEntry instead of an array as
parameter.
1999-10-03 Michael Natterer <mitch@gimp.org>
The GIMP Help System part II: press "F1" while browsing a menu
to show the help page for the menu entry you're currently over
with the mouse.
* app/color_notebook.c: all color selectors have to register with
a help page now.
* app/color_select.[ch]: register with a help string. Removed
the dialog part of the files because it's use was deprecated
anyway (use color notebooks instead).
* app/colormap_dialog.i.c
* app/colormap_dialog.p.h
* app/palette.c
* app/palette_select.c: use a color notebook instead of a color
selector.
* app/gimphelp.c
* app/gimpui.c: minor changes.
* app/gimprc.c: "use help" defaults to TRUE now.
* app/lc_dialog.c
* app/lc_dialogP.h: a special help function which shows the help
for the currently selected notebook page.
* app/menus.c: some weird code which catches "key_press_event"
in all menu shells and pops up the corresp. help page for the
selected item. Embedded the GtkItemFactoryEntry in a new
GimpItemFactoryEntry to allow a help path to be stored.
Will be partially exported and moved to gimphelp.[ch] later to
catch key_press for plug-in menu items (don't try this now ;-)
* app/app_procs.c
* app/brush_edit.c
* app/brush_select.c
* app/channel_ops.c
* app/channels_dialog.c
* app/commands.c
* app/convert.c
* app/devices.c
* app/file_new_dialog.c
* app/fileops.c
* app/gdisplay.c
* app/gdisplay_color.c
* app/gdisplay_color_ui.c
* app/gdisplay_ops.c
* app/global_edit.c
* app/gradient.c
* app/gradient_select.c
* app/interface.c
* app/layers_dialog.c
* app/module_db.c
* app/paths_dialog.c
* app/pattern_select.c
* app/preferences_dialog.c
* app/qmask.c
* app/resize.c
* app/undo_history.c: changed all dialog constructors to point
to the right place in the new help file structure.
* configure.in
* help/*: the basic new help file structure.
* modules/colorsel_gtk.c
* modules/colorsel_triangle.c
* modules/colorsel_water.c: register a help page.
* plug-ins/helpbrowser/helpbrowser.c: load the help files
according to the new help file structure.
1999-10-03 Tor Lillqvist <tml@iki.fi>
* app/cursorutil.h app/session.c app/text_tool.c: Change the
GDK_WINDOWING_* stuff to be buildable with current CVS gtk+ (not
recommended for X11, but necessary for Win32).
* libgimp/gimp.c: Undef RGB from <windows.h> on Win32.
* app/makefile.{cygwin,msc} libgimp/makefile.{cygwin,msc} *
plug-ins/makefile.{cygwin,msc}: Add new files. Small changes for
current gtk+.
* plug-ins/common/animationplay.c: Win32 kludges.
Wed Sep 29 21:56:52 BST 1999 Andy Thomas <alt@gimp.org>
* app/colourmap_dialog.i.c
* app/gdisplay_ops.c
* app/palette.c
1) Index palette dialog now registered so it gets hidden/shown when
the "TAB key" is pressed in the canvas window.
2) When the index palette is modified the changes are now shown
immediately in all views.
3) DND now works in the index palette.
4) OK button when modifying a colour in the index palette
dismisses the dialog correctly.
5) DND in the colour palette viewer does not crash when no colours
are selected.
6) Corrected a problem with "New View". If your canvas is zoomed in
and the image is offset in the display and a new view is requested
the Canvas in the new view is corrupted. This bug is also in
gimp 1.0.x
1999-09-27 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/gimphelp.[ch]
* app/gimpui.[ch]: new files
* app/interface.[ch]
* app/preferences_dialog.[ch]
The GIMP Help System part 1: Press "F1" in any dialog to pop up
the help page for this dialog.
Moved the widget constructors from preferences_dialog.[ch] and the
query boxes from interface.[ch] to gimpui.[ch].
The dialog constructors take a help_func and a help_data
parameter and install the "F1" accelerator which emits the new
"help" signal.
The "help" signal callback calls help_func(help_data) which finally
has to call gimp_help() which in turn invokes the help browser.
Still have to find a proper way to (1) prevent "F1" being assigned
to some menu item and (2) to catch "F1" while browsing the menu
trees in order to pop up the help for the selected item.
* app/menus.c: a <Toolbox>/File/Help... menu item.
* app/commands.[ch]: a command callback for the "Help..." menu item.
* app/gimprc.[ch]: new boolean gimprc variable "use_help".
* app/info_dialog.[ch]: pass a help function and data to the info
dialog constructor.
* app/tools.[ch]: store the tools help page names in the tool info
structure. Export a special tools_help_func() which shows the help
page for the active tool.
* app/[all files calling a dialog constructor]: pass the dialog's
help page to the constructor.
Most dialogs are now created by gimp_dialog_new() which also sets
up the action_area and the WM delete event callback, so I removed
the resp. code from these files.
Fixed some minor bugs and did some other stuff but didn't change
any logic except dialog creation.
* plug-ins/helpbrowser/helpbrowser.c: don't try to call a running
help browser and don't install any menu path (all done in
app/gimphelp.[ch] now).
Mon Sep 20 12:51:30 EDT 1999 Austin Donnelly <austin@gimp.org>
Honest, guv, it's not a feature - it's a tightly integrated
package of undo system cleanups and fixes.
NEW FILES:
* app/undo_history.c: window showing recent undo (and redo) steps
available.
* app/undo_types.h: broken out of undo.h to fix circular includes.
MODIFIED FILES:
* app/Makefile.am: compile undo_history.c
* app/channel.h: use enum for channel undo type, not just magic
numbers.
* app/layer.h: same for layer undos.
* app/commands.c: edit_show_undo_history_cmd_callback() function to
pull up undo history window.
* app/commands.h: prototype for above.
* app/gdisplay.c: make undo / redo menu items sensitive according
to whether they would do anything. Would be easy to change
the text to say what would be undone/redone, but I don't know
the GTK.
* app/gimpimage.c: new signal emitted by gimage:
UNDO_EVENT. gimp_image_undo_event() function to emit it.
* app/gimpimage.h: prototype for above.
* app/gimpimageP.h: pushing_undo_group member is now an undo_type,
not an int. Keep undo history widget here too (if created).
* app/menus.c: add "Edit/Undo history..." to image menu.
* app/undo.c: new types: enums undo_type and undo_state rather than
ints and magic numbers. All undo_pop_* and undo_free_*
functions made static. New static function
undo_type_to_name(). Issue undo event signals on various
important events (eg undo pushed, undo popped etc).
undo_push() now takes a "dirties_image" arg to say whether
image should be dirtied. Layer moves now dirty the image. A
couple of g_return_if_fails () on undo_pop and undo_redo to
assert we're not in the middle of an undo group.
undo_get_{undo,redo}_name() to peek at names of top items on
undo and redo stacks resp. undo_map_over_{undo,redo}_stack()
to run a function for each item or group on stack. Layer and
channel undos use symbolic names rather than 0 or 1. Array
mapping undo types to names.
* app/undo.h: split out undo types to undo_types.h. Prototypes
for functions described above. undo_event_t enum.
undo_history_new() prototype lives here too.
Random other fixes:
* app/gimpdrawable.c
* app/image_render.c: default labels in switches to keep egcs happy.
* app/nav_window.c: some fixes to (sort of) cope with image res !=
screen res. Still needs work to handle non-square pixels
properly.
* app/paths_dialog.c: bad idea to call gimp_image_dirty()
directly. Even though it's currently commented out.
* app/gtkvwrapbox.[ch]: new vwrapbox stuff
* app/Makefile.am: added new files
* app/interface.c: place the indicator areas in a vwrapbox. Still
kinda screwy tho.
-Yosh
* app/gtkhwrapbox.[ch]
* app/gtkwrapbox.[ch]: sync from gle
* app/inteface.c: set allow_shrink on the toolbox window, use
gtk_hwrap_box_new
* app/blend.c: use shift to constrain to 45 deg: XachCode (tm)
-Yosh
* libgimp/Makefile.am: add gimpmath.h
* app/gtkwrapbox.[ch]
* app/gtkhwrapbox.[ch]: wrapbox widget from gle
* app/Makefile.am: added those files
* app/interface.c: use an hwrapbox for the toolbar. Still not perfect
yet, working on it.
* app/gimpdrawable.c
* app/about_dialog.c
* app/airbrush.c
* app/blend.c: some minor code cleanup
-Yosh