Commit graph

5195 commits

Author SHA1 Message Date
Alexandre Prokoudine
7be0e1c747 Fix syntaxis in user-visible messages
Phrases starting with "When enabled" should have a comma.
2013-10-11 06:32:04 +04:00
Jehan
3e082b356c Bug 681709 - GimpContainer continuously scrolls on dnd failure on Windows.
The scroll timeout is looping forever if the drag ends by a failure
event. For instance when hitting the Esc button during scrolling.
2013-10-02 21:18:10 +13:00
Michael Natterer
462f61794e app: fix drawing of the empty canvas wilber 2013-09-28 18:00:31 +02:00
Michael Natterer
86b13ae8c4 app: handle changing buffers in GimpPickableButton
by emitting "notify::pickable" when the pickable's buffer changes, or
setting the pickable to NULL when its buffer disappears.
2013-09-15 20:03:31 +02:00
Michael Natterer
4e2868986a app: add new widget GimpPickableButton
Totally WIP and later supposed to give simple access to all sorts of
things that can provide a GeglBuffer via the GimpPickable
interface. Currently only dropping of drawables and images is
supported.
2013-09-15 00:30:14 +02:00
Jehan
c7aa623a55 app: clean out a big bunch of leading tabs.
For some unknown reason, most calls to gimp_message_literal() were
indented with tabs.
2013-09-15 04:59:20 +12:00
Jehan
338e0ddf8d Bug 707255 - Open preferences when quitting causes assertion failure
When removing the container of a GimpContainerView,
gimp_container_view_remove_container() must be the last call. It was
causing a `GIMP_IS_CONTAINER (container)' failure in subsequent
gimp_container_get_children_type().
For good practice, unsetting a container works now the exact reversed
order as the setting of a container.
2013-09-05 23:41:23 +12:00
Jehan
04a3c65aa1 Bug 707255 - Open preferences when quitting causes assertion failure.
Wrong order of destruction functions were causing critical warnings on
g_signal_handlers_disconnect_by_func() calls.
Also g_object_ref/unref() the container because the tree handler might
hold the last ref to the container, once it's disconnected the container
could be gone.
2013-09-05 23:23:24 +12:00
Michael Natterer
55a70729ae app: add some function stubs to GimpOverlayDialog
and move the TODO comments from GimpToolGui to the stubs.
2013-08-03 02:32:02 +02:00
Jehan
f0b3c76c9d app - fix crash of the language parser on OSX.
Stupid bug. I misused the GINT_TO_POINTER macro.
2013-07-29 02:12:17 +12:00
Michael Natterer
013c9d337b Bug 704896 - pop ups are annoying when opening multiple files from...
the command line on some platforms/window managers

Don't let the progress windows steal the focus, and always center
them.
2013-07-28 02:50:33 +02:00
Jehan
a129f84c68 Bug 704592 - only load language lists once at gui startup.
Improvements:
- setenv/getenv() are not thread-safe, hence they should be run only at
startup before any threading occurs.
- it is counter-productive to load the huge ISO-639 XML file each time
the user opens the Preferences dialog or the text tool options.
2013-07-28 04:46:52 +12:00
Michael Henning
175835fa2f app: #include <locale.h> where setlocale () is used. 2013-07-21 21:12:41 -04:00
Jehan
0e93e181a2 app: locales without ISO-639-1 codes should not be ignored
Some languages have no 2-letter ISO-639-1. This is the case in particular
for 3 languages we have translations for: ast (Asturian), csb (Kashubian)
and nds (Low German), which have only 3-letter ISO-639-2/3 codes.
They were not visible in the list of languages in the Preferences dialog
until now.
2013-07-20 15:08:49 +09:00
Jehan
2370670396 Bug 704510 - GIMP segfaults on OSX.
Forgot a setenv() with possible a NULL value.
2013-07-19 20:49:40 +09:00
Jehan
aa67bec9f0 Bug 704510 - GIMP segfaults on OSX.
setenv() does not behave well on some systems, in particular OSX (and
probably some BSDs), when the set value is NULL. In this case, let's
unsetenv() the environment variable instead.
2013-07-19 11:39:50 +09:00
Michael Natterer
37372555e5 Bug 704118 - crash on invalid number of PLTE entries
Make sure an indexed image always has a colormap. This was the case
before, except one could set a NULL colormap via the PDB.

Add gimp_image_unset_colormap(), and make gimp_image_set_colormap()
never set the colormap to NULL, even if NULL is passed. Change the
only places where actual unsetting makes sense to use unset().

Make some GUI places deal gracefully with palettes/colormaps with zero
entries.
2013-07-14 22:25:44 +02:00
Michael Natterer
a2334b0b15 Bug 703692 - Unable to Resize Large Left Dock Area
Small fix for the last commit: set a silly small initial size request
on the wrap_box so it doesn't initially request too much and breaks
dock layout deserialization.
2013-07-14 13:27:57 +02:00
Michael Natterer
6a5e37b68d Bug 703692 - Unable to Resize Large Left Dock Area
gimp_container_grid_view_viewport_resized(): set the wrap_box'
required width to just one cell_width, not cell_width * columns. This
way it can shrink also when attached to a toolbox dock. It remains
unclear why it could nicely shrink in all other dock columns.
2013-07-13 18:50:55 +02:00
Jehan
fc873cd6c3 Bug 576910: Show 'Language' setting languages in native language
Showing the current system locale between square brackets in the
"System Language" item was causing some issues on some systems (showing
some very weird and long value).
This was mostly a cosmetic change anyway with limited gain. Let's
just get rid of it. The main part of the feature (each language
displayed in itself) is still there.
2013-07-05 23:38:10 +09:00
Jehan
4eecd9b4ac Bug 576910: small fix on "Show 'Language' setting languages in native language"
glib's g_getenv() doc says: "The returned string may be overwritten by
the next call to g_getenv(), g_setenv() or g_unsetenv()". And I do
g_setenv() calls just after, while I wish to keep the value intact.

As a consequence, even though the previous commit seemed to work just fine,
I duplicate the return value of g_getenv(), just to be on the safe side.
2013-07-03 20:38:42 +09:00
Jehan
f6dcde1ee6 Bug 576910: Show 'Language' setting languages in native language
The trick works by temporarily resetting the current locale to localize
each language label in its own lang.
One exception is English that is equivalent to the "C" code, and we make
also some special exception for Chinese where there are very different
variant depending on the region.
I also ensure the "System Language" string is translated in whatever
language is the system actually set to.
2013-07-03 20:02:45 +09:00
Michael Natterer
b52beecc87 app: port GimpImagePropView's file size querying to GIO 2013-06-25 19:08:12 +02:00
Michael Natterer
caf73f5f35 Add support for both gamma-corrected and linear for all bit depths
- Add new enum GimpComponentType which contains u8, u16, u32 etc.
- Change GimpPrecision to be u8-linear, u8-gamma, u16-linear etc.
- Add all the needed formats to gimp-babl.c
- Bump the XCF version to 5 and make sure version 4 with the old
  GimpPrecision enum values is loaded correctly

This change blows up the precision enums in "New Image" and
Image->Precision so we can test all this stuff. It is undecided what
format will be user-visible options in 2.10.
2013-06-23 16:51:24 +02:00
Michael Natterer
94ec249e1e app: initialize variable in gimp_histogram_view_update_bins() 2013-06-18 00:10:57 +02:00
Michael Natterer
6280e4933a app: add gimp_handle_bar_connect_events()
to replace 3 completely ugly signal connections, repeated in 4 places.
2013-06-17 22:13:48 +02:00
Mikael Magnusson
cfd360aa03 app: g_return_if_fail (shell_selection) on the public API in gimpdisplayshell-selection.c, move free null check to gimpdisplayshell's dispose() 2013-06-16 20:21:32 +02:00
Mikael Magnusson
8115467b65 app: ! has higher precedence than ==, use != instead
Found by coverity
2013-06-16 01:34:23 +02:00
Mikael Magnusson
0091645129 app: remove pointless NULL checks 2013-06-16 01:31:13 +02:00
Michael Natterer
0a73a787ba app: remove GimpSpinScale's "factor" API again
The method of replacing the spinbutton's adjustment was just waiting
for some future bugs to appear.
2013-06-15 20:53:37 +02:00
Michael Natterer
3fb16c8849 app: GimpHistogramView: fix display when the number of bins changes
Also look at "bg_histogram", but only if "histogram" is not set. Fixes
curves tool display after changing image precision.
2013-06-15 20:29:42 +02:00
Michael Natterer
731360a8f7 app: add gimp_prop_widget_set_factor()
which allows adjustment-based prop widgets to display the property
value multiplied by factor. Remove gimp_prop_opacity_spin_scale_new()
because that's simply a factor of 100.0.
2013-06-15 01:28:54 +02:00
Michael Natterer
0046f0eed6 app: fix gimp_spin_scale_set_factor() to not break if called more than once 2013-06-14 02:22:57 +02:00
Michael Natterer
edca08e1c2 app: fix rendering glitches on changing the axis ranges in GimpCurveView
and honor the x-axis range when displaying the set "xpos".
2013-06-13 00:22:20 +02:00
Michael Natterer
945e57af1d app: GimpHistogramBox: map the range to 0..1 for != 8 bit histograms 2013-06-12 11:18:07 +02:00
Michael Natterer
9ba866dc38 app: a drawing off-by-one was corrected wrongly in GimpHandleBar
Wasn't noticable before because we didn't have handle bars
in the range of 0..1.
2013-06-12 11:16:33 +02:00
Michael Natterer
571350270b app: return 0.0..1.0 from gimp_histogram_get_mean(), median(), std_dev()
Display the float values in the histogram dockable and add a compat
hack to the gimp_histogram() PDB wrapper.
2013-06-12 02:01:24 +02:00
Michael Natterer
6c97908a9e app: add "gboolean gamma_corrected" to gimp_histogram_new()
so we can make histograms of the gamma-corrected image data. Pass
TRUE all over the place so the histogram works perceptually. This
needs more thinking...
2013-06-12 01:02:25 +02:00
Michael Natterer
96d1a9392e app: gimp_histogram_editor_info_update(): use the real number of bins
for displaying histogram info, not always 255.
2013-06-12 01:01:39 +02:00
Michael Natterer
d26cd268ba app: start using the new histogram property notifications in the widgets
This is only WIP, but it at least updates the selected range correctly
when the image precision changes.
2013-06-11 22:36:33 +02:00
Michael Natterer
a7f42de4c0 app: turn GimpHistorgram into a GimpObject, no other changes 2013-06-11 21:23:32 +02:00
Michael Natterer
88a971f6c9 app: port GimpHistogramView drawing to a flexible amount of bins 2013-06-11 08:48:25 +02:00
Michael Natterer
48d611b5c2 app: don't overallocate, a double is 64 bits not 64 bytes :) 2013-06-10 01:12:06 +02:00
Michael Natterer
a1e7591351 app: show the real pixel values in GimpColorFrame's "Pixel" mode
Rewrite gimp_color_frame_update() to use gimp_babl_print_pixel()
2013-06-10 00:30:18 +02:00
Michael Natterer
d2b254c4dc app: use GimpIntComboBox' label in generated GEGL op GUIs
Makes the property widget table less noisy.
2013-06-08 22:01:24 +02:00
Michael Natterer
ec786816bb */Makefile.am: merge INCLUDES into AM_CPPFLAGS
automake-1.13 finally warns about this anachronism.
2013-06-05 20:48:37 +02:00
Michael Natterer
7dcf5e9b04 app: make viewable boxes (preview+entry in tool options) more shrinkable
Additionally, change gradient viewable boxes to be narrower by
default.
2013-06-04 10:19:54 +02:00
Michael Natterer
38e9c79d1e app: experimental: use the new coordinate picking in property tables
If we add a chain button to link x/y or width/height properties, also
add a coordinate pick button for these properties. This looks totally
ugly and is broken for most cases where it happens, but it works
nicely for e.g. gegl:fractal-explorer or gegl:grid. This clearly needs
some metadata for operation properties to be useful.
2013-05-30 23:36:39 +02:00
Michael Natterer
033d4ad58a app: typo in gimp_prop_table_new()'s prototype: fnc -> func 2013-05-30 23:31:17 +02:00
Michael Natterer
73d7c28f76 app: add dedicated source files for gimp_prop_table_new() 2013-05-30 16:33:30 +02:00
Michael Natterer
766c4a026c app: add an optional "factor" to GimpSpinScale
which allows to display a value different from the original
adjustment's value.

This is sortof a hack but insanely useful to map normalized config
values to a nicer range (e.g. 0.0 -> 1.0 to 0 ->100).
2013-05-28 23:45:45 +02:00
Michael Natterer
bf3a1c89ef app: GimpSpinScale: the "none" keyval is GDK_KEY_VoidSymbol. not 0 2013-05-28 23:13:13 +02:00
Michael Natterer
4c0169aaaf app: add mnemonic support for GimpSpinScale's label 2013-05-28 22:46:22 +02:00
Michael Natterer
6940c00774 app: add gimp_spin_scale_set_label() and get_label() 2013-05-28 15:29:44 +02:00
Michael Natterer
fb6239320e app: reorder functions in GimpSpinScale so getter and setter are together 2013-05-28 15:19:04 +02:00
Michael Natterer
308431f7b6 Bug 701053 - Opening jpg files from Canon camera displays...
...PNG Description encoding error.

Don't unconditionally display all error messages from thumbnail saving.
Instead, return the error from gimp_imagefile_create_thumbnai()
and gimp_imagefile_save_thumbnail() and display it only if thumbnail
creation was the actual user-intended action (like clicking the preview
in a file dialog). Do not display the error when thumbnailing is just
a side effect of loading/saving an image.
2013-05-26 21:31:06 +02:00
Michael Muré
d6ed13ef6c GimpWarpTool: skeleton of the tool, with options 2013-05-21 23:28:40 +02:00
Michael Natterer
74b134d75b app: use the GEGL properties' ui_min and ui_max for step calculation 2013-05-19 23:23:32 +02:00
Michael Natterer
acf917fbb8 Bug 699278 - "GEGL Operation" parameter arrows should be more adapted
to the span of the parameter

Set step_size to 0.1 and page_size to 1.0 for floating point sliders
with a value range of < 10.0.
2013-05-19 19:05:25 +02:00
Michael Natterer
e1bfc0a362 Bug 688537 - Toolbox occasionally has spaces or tool names after the icons
Explicitly set the toolbox' style to GTK_TOOLBAR_ICONS to protect it
from user toolbar preferences.
2013-05-17 14:42:43 +02:00
Jehan
53d2059bd8 Bug 417704: font name for missing font is given in the font entry's help message.
When a font is missing, the name of the expected font will be displayed in the
help message through the text style editor with an explanatory message.
2013-05-17 20:59:46 +09:00
Barak Itkin
5fa0df17dd Add a skeleton for the seamless clone tool, based on the cage tool 2013-05-15 00:25:30 +02:00
Michael Natterer
ce8ae69440 Bug 695687 - GimpSpinScale's label is unreadable on dark themes
Draw the label like GtkEntry draws its text: with different colors
inside and outside the progress bar.
2013-05-14 02:00:20 +02:00
Jehan
64fe3af1a9 app: GimpContainerEntry's text is red when not a valid item.
If the selected item in a GimpContainerEntry is invalid, or else when the entry
is being updated, the text shows in red.
2013-04-29 08:45:41 +09:00
Michael Natterer
e19c7eb36c app: fix various artifacts of the cancas' overlay children
gimp_overlay_child_size_allocate(): invalidate the old and new
position of the child, and simplify the code by calling our own
invalidate() function instead of duplicating its code.

gimp_overlay_child_expose(): process pending updates on the overlay
child's offscreen window before getting its pixmap.
2013-04-28 04:05:52 +02:00
Michael Natterer
244439f35e app: some more precondition checks in gimpoverlaychild.c 2013-04-27 00:23:04 +02:00
Michael Natterer
24d150f537 app: handle canvas overlays better in gimp_window_key_press_event()
forward events first not only if a GimpCanvas has the focus, but also
it one of its children has.
2013-04-25 23:53:39 +02:00
Michael Natterer
bacc9c9635 Bug 688348 - Layer tab and Images tab: not updated on dropping...
...one image onto another

gimp_dock_window_display_changed(): make sure the "auto-follow-active"
logic works both ways: when the active image or display is changed in
a dockable, update the global context. Fixes multi-window mode.

gimp_context_real_set_display(): make sure a context's display and
image are always in a consistent state and never have a display that
is not display->image: when display is the same as context->display,
check that the context's image matches display->image, so that after a
gimp_context_set_display(), the context is consistent in all
cases. Fixes single-window mode.
2013-04-23 21:05:33 +02:00
Michael Natterer
076f375e78 app: make gimp_dock_window_constructed() more readable
by adding a local "factory_context" variable instead of calling
gimp_dialog_factory_get_context (dock_window->p->dialog_factory)
multiple times.
2013-04-23 21:05:33 +02:00
Massimo Valentini
65800af41d Bug 698426: ALL text disappears when changing font ...
of selected text in on-canvas editor

It is necessary to escape font names containing '&'
2013-04-21 18:00:12 +02:00
Michael Natterer
804313bbec Bug 694417 - GIMP Segmentation Faults (Segfault, Crash) after Changing Color...
Don't pass a NULL pointer to gimp_text_buffer_get_font_tag() because
it is dereferenced in a call to strcmp().

gimp_context_get_font_name() returns NULL when the selected text
includes spans with different fonts. Add the same special handling for
spans with inconsistent sizes too, and add comments that we should
have the same for the color.

Original patch from Massimo Valentini.
2013-04-21 17:51:08 +02:00
Michael Natterer
977a194923 app: add a rotate dialog to rotate to exact degrees 2013-04-20 23:22:14 +02:00
Michael Natterer
1a755b2dbe app: add a View -> Rotate menu
Which so far has "Reset", "90°", "-90°" and "180°" entries.
2013-04-20 22:16:50 +02:00
Michael Natterer
296284fe38 app: rotate cursors that indicate a direction with the view
- reorder enum GimpCursorType to be in angular order
- add gimp_cursor_rotate(cursor_type, angle)
- rotate the shell's cursors automatically in the setter
2013-04-20 17:21:01 +02:00
Nils Philippsen
b109e05806 app: let the tag popup own its tag objects
This should fix crashes in which tag objects got accessed after they
were disposed, because they still were stored with the popup object.
2013-04-16 11:16:41 +02:00
Michael Natterer
754e4eb919 app: allow to pass NULL to gimp_window_set_primary_focus_widget() 2013-04-10 19:28:49 +02:00
Michael Natterer
5880685472 Bug 675549 - image region does not have focus unless clicked on
We cannot simply randomy move the focus from e.g. a text entry back to
the canvas. Instead introduce global handling of "Escape" and a
"primary_focus_widget" that is always set the the image window's
active canvas. When Escape is pressed, move the focus to that primary
focus widget, or beep if it is already there. Text widgets still get
the key events before that logic and can consume the Escape.
2013-04-09 15:41:20 +02:00
Michael Natterer
236f9f91f9 Fix two warnings about possibly missing printf format attributes 2013-04-07 16:47:26 +02:00
Michael Natterer
ed2849cd52 Bug 696240 - Changing Gradient From Script-Fu Drop Down Causes GIMP to Crash
gimp_gradient_select_run_callback(): Don't free the color values array
twice.
2013-03-21 01:50:32 +01:00
Michael Natterer
b941986bbb app: GimpBrushEditor: fix display of spacing for normal brushes
it was doing *all* the UI settings only for generated brushes.
2013-03-14 22:52:34 +01:00
Michael Natterer
d837a6d7df app: fixed paned packing in GimpDeviceEditor
so the widgets don't become smaller than their requisition.
2013-03-13 22:06:42 +01:00
Michael Natterer
bc190a6bab Bug 397359 - Can't access color management parameters
Create all display filters with "color-config" and "color-managed"
parameters set, not only the automatically added color management
display filter. This way we don't only support removing and adding the
filter again, but also support potential other color management
modules.
2013-03-13 10:37:25 +01:00
Michael Natterer
792f85461b app: use gimp_button_menu_position() in GimpIconPicker
and some small cleanup.
2013-03-10 22:33:45 +01:00
Michael Natterer
49fdaac07f app: add GimpPrefsBox, a helper widget for preferences and similar dialogs
and use it in the preferences dialog. Removes quite some code from
that insane file.
2013-03-10 19:49:59 +01:00
Michael Natterer
c0c813d9f1 app: minor formatting cleanup in gimppropwidgets 2013-03-10 19:48:32 +01:00
Michael Natterer
e17971cc38 app: some formatting and translatable strings cleanup in GimpIconPicker 2013-03-10 19:46:20 +01:00
Daniel Sabo
2614404764 Add support for custom icons for tool presets
Adds an icon-pixbuf property to GimpViewable that is used for a default
implementation of new_pixbuf.

Extend gimp_icon_picker to allow the user to pick non-stock icons for tool
presets (or any other class derived from GimpViewable). Icons can come
from any file GdkPixbuf can load or from image data on the clipboard.
2013-03-08 08:19:54 -08:00
Michael Natterer
6f5b4ad1f4 Bug 694026 - "Button Bar" state not retained on brushes and dynamics editor
gimp_docked_iface_get_aux_info(): always save the button bar state,
not only if it is "false" because we cannot know the default value any
longer (the button bar visibility used to always default to "true", so
saving only a non-default "false" was fine).
2013-02-17 16:46:40 +01:00
Ville Skyttä
6b0d1038cc Bug 692641 - Various spelling fixes 2013-01-27 18:59:02 +01:00
Michael Natterer
7e273bc6d0 Bug 686929 - Newly created toolbox is too tall and too narrow
Set the dock window's geometry hints after the tool palette's style is
known, not after the toolbox' style is known, so we get the right tool
button dimensions for minimum size and size increments.
2013-01-17 19:37:03 +01:00
Michael Natterer
2fc0c768f1 app: don't leak references in gimp_session_info_restore_docks()
This should fix quite a bunch of memory leaks.
2013-01-14 01:36:08 +01:00
Michael Henning
4d36a1fdf8 app: fix memory leak in widgets/gimpgradientselect.c
Found using clang's scan-build.
2013-01-10 17:22:27 -05:00
Michael Natterer
454639f9d9 Bug 689087 - Drag-and-drop foo.jpg behaves different from 'gimp foo.jpg'...
Prefer text/uri-list over image/* to make dropping from file managers
always behave like opening the image directly.
2013-01-09 00:28:30 +01:00
Michael Natterer
af7916b3e6 Bug 689403 - GIMP saves files in strange directories when started from an...
If one single directory is passed on the command line, use it
as default folder for the open/save dialogs.
2012-12-15 00:36:19 +01:00
Michael Natterer
99ed568543 app: add parentheses to clarify things 2012-12-14 09:40:52 +01:00
Jehan
20c86f821d Bug 689523: data bootstrap initial values in the text style editor at construction.
This was causing first a visual issue where the style editor UI would
show no default font/size/style at instanciation, but even a crash
when the user would change the font size or style (bold, italic...)
from this UI before selecting a font or writing a text.
2012-12-12 12:36:24 +09:00
Michael Natterer
54618228e3 Bug 689572 - F1 appears remappable but isn't
Make any shortcut involving F1 unchangable in the shortcut editor.
2012-12-06 01:20:07 +01:00
Michael Natterer
d8a9804702 app: support GeglParamSpecSeed in generated operation UI
and add a "New Seed" button next to the random seed entry.
2012-11-30 02:58:48 +01:00
Jehan
5c6c55e50a Bug 685557 - fix closing and saving a new image.
Current implementation had 2 issues, fixed by this commit:
1/ after the file save dialog is closed, the image would not close.
2/ if you switched the visible tab before saving the new image, it
would save and close the visible tab, instead of the expected one.
2012-11-27 23:57:24 +09:00
Michael Natterer
4e340b613b Bug 688715 - Unconfigured eraser should be set to eraser tool
I don't know what I tested before, but it didn't work. This patch does
the magic in two places, one of which I missed.
2012-11-23 01:17:52 +01:00
Michael Natterer
512fbcbbb2 Bug 688715 - Unconfigured eraser should be set to eraser tool
If a device has no saved settings, and it is a GDK_SOURCE_ERASER, set
it to the eraser tool.
2012-11-22 23:43:41 +01:00
Michael Natterer
85a099f988 Bug 688305 - drag and drop for guides broken if 'gtk-enable-tooltips = 0' is set
Fix GimpSpinScale too: add the needed events ourselves, and handle
motion hints (which the parent classes add) in motion().
2012-11-18 20:02:51 +01:00
Michael Natterer
908f727f0a Chain up unconditionally in GObject::constructed()
It's supported since GLib 2.28.
2012-11-12 21:51:22 +01:00
Michael Natterer
3ef2baea67 Bug 676940 - Group children prevent droping layer at bottom of stack
...and don't forget to return the drop_path from
gimp_container_tree_view_drop_status().
2012-11-12 01:29:22 +01:00
Michael Natterer
05e12b88bc Bug 676940 - Group children prevent droping layer at bottom of stack
Treat dropping on the empty space at the bottom like dropping after
the last toplevel item.
2012-11-12 01:24:58 +01:00
Michael Natterer
f71afd245f app: remove redundant code from the last commit 2012-11-10 00:07:23 +01:00
Michael Natterer
abd2e78bdf Bug 683011 - Text tool discards text attributes in the on-canvas dialog...
When font, size or color were changed, set the text buffer's current
insert_tags just as we already do for the bold, italic etc. toggle
buttons.  Changed gimp_text_style_editor_list_tags() to also return
the tags for font, size or color.
2012-11-09 23:06:45 +01:00
Michael Natterer
d4933b3052 Bug 674160 - Redesign of "Lock panel"
Apply and heavily modify patch from remyDev which adds "lock position"
to GimpItem, similar to "lock content". Lock position disables all
sorts of translation and transform, from the GUI and the PDB.

Cleaned up some aspects of the lock content code as well because a
second instance of similar code always shows what went wrong the first
time.
2012-11-09 11:17:25 +01:00
Michael Natterer
e746fa51da app: make GimpContainerEntry robust against reordered parent class destruction
So it will not warn on GTK+ 3.x. One less patch to do in gtk3-port.
2012-11-05 19:56:40 +01:00
Michael Natterer
819ad3b4d9 app: use g_object_bind_property() to set widget visibility
instead of connecting to "notify::boolean-property" of something just
to set "widget::visible" in the callback.
2012-10-31 23:17:47 +01:00
Michael Natterer
90608d3a22 Bug 687256 - Please explain the terms wheel, curve, axis
Add translator comments to GimpDeviceInfoEditor.
2012-10-31 21:14:26 +01:00
Michael Natterer
9efda84818 app: add a translator comment for _("%s Message") 2012-10-31 16:07:33 +01:00
Michael Natterer
99dfc5930f Bug 687070 - Modifier+Space doesn't work as shortcut
Don't allow to assign Modifier+Space shortcuts, there is so much code
dealing with Space in canvas event handling, we can't have it invoke
arbitrary actions at the same time.
2012-10-28 23:33:31 +01:00
Michael Natterer
74bc070147 Bug 635303 - Can't attach a dialog at the bottom of a minimized toolbox
Ensure a minimum size of the drop area and make sure it stays visible
at the bottom of a minimized toolbox. This wastes a few pixels at the
bottom of a toolbox that contains no dockables.
2012-10-07 19:49:33 +02:00
Michael Natterer
2231f189fe app: use gimp_data_factory_get_data_type() in the data widgets
and make gimp_data_factory_view_constructed() more readable.
2012-10-07 00:17:48 +02:00
Michael Natterer
aa6151d1af Bug 684945 - Export can incorrectly default to changing format...
Fix default export extension to be as specified:

1. last export of this image
2. imported extension
3. last export of any image
4. png

2 and 3 were reversed in the code.
2012-10-02 23:07:11 +02:00
Michael Natterer
9d42df5fa2 app: don't crash when a color profile has no information 2012-09-25 20:56:54 +02:00
Michael Natterer
0ca03e8827 app: add a "Convert Precision" dialog for choosing dithering options
Does absolutely nothing yet.
2012-09-23 23:47:28 +02:00
Kevin Cozens
a2e037fb00 Corrected spelling errors spotted by Ari Pollak (Mostly fixes bug #683694)
Still need to address the "allows to" grammatical error.
2012-09-10 12:22:12 -04:00
Michael Natterer
c7b9728cc8 app: make handling of coordinates more robust against broken input drivers
Initialize the axes[] array with zeros and change pressure curve
mapping to not try to "interpolate" shit like NaN and crash.
2012-09-05 11:36:44 +02:00
Michael Natterer
14f6d5ee44 Bug 681699 - Inapplicable files are listed with 'All images' filter...
In order the fix the obvious confusion, add another file filter which
contains all the types that are savable with the dialog, name it
either "All XCF images" or "All export images", and make it the
default filter.
2012-09-02 23:22:21 +02:00
Michael Natterer
2fb7771035 app: simplify and clean up gimpcursor.c 2012-08-27 13:29:18 +02:00
Michael Natterer
85b1f16004 app,cursors: add side and corner cursors in 45° steps
So sides also for corners and corners also for sides, just to
confuse the reader.
2012-08-26 23:59:05 +02:00
Michael Natterer
c6ba0ffbdf app/cursors/libgimpwidgets: bye bye stone age B&W bitmap cursors 2012-08-26 22:53:04 +02:00
Mikael Magnusson
3e4f66c968 app: remove GIMP_TOOL_CURSOR_UNIFIED_TRANSFORM from GimpToolCursorType
It just made all tool cursors after it wrong since i never made an icon
2012-08-20 20:28:23 +02:00
Mikael Magnusson
99f9d4d219 transformtool: add old "new" unified transformation tool
This is the proof of concept code I wrote before gsoc, with very naive
behaviour and simple interface.
2012-08-20 15:22:21 +02:00
Michael Natterer
573faa39b0 Bug 669795 - Toolbox can't be shrinked to 1 or 2 columns
Reduce the requested width of the "You can drop foo here" label to 16
pixels, which makes is look a bit crappy, but at least the toolbox
becomes shrinkable to < 3 columns. Whoever keeps this empty space
around without using it shall henceforth be punished by having to see
that distorted and misplaced label.
2012-07-30 18:04:27 +02:00
Michael Henning
e060da8278 Bug 680795 - GIMP segfaults in gimp_clipboard_set_buffer when...
Fix segfault in gimp_clipboard_set_buffer when n_target_entries is 0.
2012-07-30 16:43:37 +02:00
Michael Natterer
decc03ae04 Bug 677987 - Don't allow to assign keybindings with arrow keys...
Disable assigning arrow-key bindings in gimpactionview.c
2012-07-26 18:33:05 +02:00
Michael Natterer
4fbf01baef app: get the help_id from the right action in gimp_editor_add_action_button() 2012-06-12 22:51:32 +02:00
Michael Natterer
67b5a509b6 Bug 677823 - Shift + mouse click to link all layers does not work
This got lost during layer group porting, reimplement it, but restrict
"all layers" to the clicked layer's branch in the tree.
2012-06-12 21:39:40 +02:00
Michael Natterer
63ff0fc77b app: set GimpHandleBar's lower and upper bounds in the adjustment callback
so it keeps working correctly when the adjustments get reconfigured.
2012-06-07 21:41:40 +02:00
Massimo Valentini
2667c2a34d app: remove a weak ptr when the object lives longer than the ptr
Closing the display filter editor with a filter selected
in the listview on the right, used to produce (quitting GIMP):

==32359== Invalid write of size 8
==32359==    at 0x8808DF5: g_nullify_pointer (glib/glib/gutils.c:2099)
==32359==    by 0x8358781: weak_refs_notify (glib/gobject/gobject.c:2469)
==32359==    by 0x4C3730A: gimp_color_display_dispose (gimp-2-8/libgimpwidgets/gimpcolordisplay.c:197)
==32359==    by 0x83596A7: g_object_unref (glib/gobject/gobject.c:2986)
==32359==    by 0x4C37EFA: gimp_color_display_stack_dispose (gimp-2-8/libgimpwidgets/gimpcolordisplaystack.c:150)
==32359==    by 0x83596A7: g_object_unref (glib/gobject/gobject.c:2986)
==32359==    by 0x53F1C3: gimp_display_shell_filter_set (gimp-2-8/app/display/gimpdisplayshell-filter.c:58)
==32359==    by 0x536A50: gimp_display_shell_dispose (gimp-2-8/app/display/gimpdisplayshell.c:765)
2012-06-04 19:32:31 +02:00
Michael Natterer
92a3944442 Bug 676821 - No drag layers in "window layers", after commit...
Remove the button_release handler again, setting dnd_widget to NULL on
container change is enough to fix the crash I've seen, I added the
other handler just out of paranoia and apparently didn't test it.
2012-05-25 21:25:29 +02:00
Michael Natterer
27a767ee54 app: set GimpContainerTreeView->dnd_renderer to NULL more reliably
specifically in button_release() and when the container changes, we
can badly crash in some situations otherwise.
2012-05-22 12:58:10 +02:00
Michael Natterer
076b5fa93a app: changed include guards to not clash with libgimpcolor/gimppixbuf.h 2012-05-22 02:17:11 +02:00
Michael Natterer
c0351f0706 app: connect x/y and width/height properties of GEGL ops with chain buttons
Add (too) simple heuristic that connects to subsequent numeric property
widgets with a chain button if their property names have the suffixes
"x" and "y", or "width" and "height".
2012-05-19 02:30:32 +02:00
Michael Natterer
39c18e9a48 app: make file_save() aware of the difference between overwrite and export
by having two booleans "export_backward" and "export_forward" in the
api instead of just an "export" one that would destroy the "imported
from" state. This change fixes the state of the "Overwrite" menu item,
so it stays visible until the file got either saved or exported to
another filename.

This also reverts commit a4beeecf2b, so
Ctrl-S is always invokable even if invisible.
2012-05-18 18:57:58 +02:00
Michael Natterer
ede421bd45 app: rename GimpBaseConfig to GimpGeglConfig
because that's its future purpose.
2012-05-14 22:57:58 +02:00
Michael Natterer
ab4c613a70 Bug 675994 - Opening image with a saved selection breaks histogram updating
In fact, it broke much more than that because the way XCF loading
replaced the image's mask prevented the image's "mask-changed" signal
from ever being emitted. Add private API gimp_image_take_mask() which
properly sets the mask and use it for image construction and the XCF
selection loading hack.
2012-05-14 01:44:41 +02:00
Michael Natterer
ffb559547c app: make the popup previews transient to their parent's toplevel
so they don't appear below the dock. Seems to happen on OSX only,
but is the right things to do on all platforms.
2012-05-10 19:43:48 +02:00
Michael Natterer
bd3f892f79 Bug 630173 - a dockable open from an existing one appears under it
Show the new dock with gtk_widget_show_now(), which waits until it's
mapped, then call gdk_window_raise() explicitly. How sick...
2012-05-09 00:21:22 +02:00
Michael Natterer
3545140ad8 app: make GimpContainerPopup transient to its parent toplevel
so it doesn't appear under the dock it's invoked from. Only
needed on OSX, but the right thing to do on all platforms.
2012-05-08 21:32:09 +02:00
Michael Natterer
20f3cba2b6 app: rename gimp_image_base_type() to gimp_image_get_base_type() 2012-05-07 21:57:33 +02:00
Øyvind Kolås
1319ad65ce update translations 2012-05-06 03:46:09 +02:00
Michael Natterer
30b4fe8510 app: fix UI tag matching to always work case-insensitively
Add gimp_tag_has_prefix() and use it in GimpTagEntry when completing
patrially entered tag names, and fix two uses of strcmp() in
GimpTagPopup to use gimp_tag_compare_with_string().
2012-05-05 18:58:04 +02:00
Michael Natterer
7610e299ae Use GimpValueArray and GimpParamSpecValueArray
instead of the deprecated stuff from GLib.
2012-05-04 00:51:50 +02:00
Michael Natterer
00b3a9c745 libgimpcolor: add Cairo <-> GEGL utility functions from app/ 2012-05-03 04:07:16 +02:00
Michael Natterer
3db9deed1c app: add color pickers to all GEGL tool color properties
The way to make gimp_prop_table_new() create tool pickers is
disgusting, but works.
2012-05-02 17:51:22 +02:00
Michael Natterer
ce33d2ed33 app: display the precision in the image properties dialog 2012-05-02 17:51:19 +02:00
Michael Natterer
1badcb7ce9 app: add GIMP_PRECISION_U32 and all its formats 2012-05-02 17:51:19 +02:00
Michael Natterer
2e7944cad0 app: add GIMP_PRECISION_HALF for 16 bit floating point
and use babl_format_get_palette() to simplify some code.
2012-05-02 17:51:18 +02:00
Michael Natterer
b4580e74e6 app: implement converting images between precisions, including menu items 2012-05-02 17:51:16 +02:00
Michael Natterer
2de801e1de app: enable the precision combo in GimpTemplateEditor 2012-05-02 17:51:14 +02:00
Michael Natterer
5e18004bff app: get rid of base-utils.[ch] and move its functions to gimp-utils.[ch] 2012-05-02 17:51:13 +02:00
Michael Natterer
1bbd3d40a8 app: make the GimpTempBuf struct private and add accessors 2012-05-02 17:51:12 +02:00
Michael Natterer
e285eb5daa app: hide GimpTemplateEditor's precision combo 2012-05-02 17:51:10 +02:00
Michael Natterer
d724aca1a3 app: add a precision combo to GimpTemplateEditor 2012-05-02 17:51:10 +02:00
Michael Natterer
4dee9fa672 app: rename GimpTemplate::image-type to ::base-type
but keep the "image-type" property name, it's stored in template files.
2012-05-02 17:51:09 +02:00
Michael Natterer
678255604d app: add a GimpPrecision enum that for now contains GIMP_PRECISION_U8
Add gimp_image_get_precision(), and a "precision" argument to
gimp_babl_format(). Change code accordingly and do some more format
related cleanups.
2012-05-02 17:51:09 +02:00
Michael Natterer
16635e5f0a app: gimp_drawable_preview_bytes() -> gimp_drawable_get_preview_format() 2012-05-02 17:51:08 +02:00
Michael Natterer
85bd6b0dd9 app: pass a format, not bpp, to gimp_viewable_get_dummy_pixbuf()
and add tons of <gegl.h> includes.
2012-05-02 17:51:08 +02:00
Michael Natterer
03da4fb280 app: make masks use linear, not gamma corrected formats 2012-05-02 17:51:08 +02:00
Michael Natterer
844a8a5ab7 app: more <gegl.h> includes 2012-05-02 17:51:04 +02:00
Michael Natterer
df5ab0f551 app: add gimp_histogram_clear_values() and use it
instead of abusing gimp_histogram_calculate() with a NULL region for
that purpose; calculate() is about to go away.
2012-05-02 17:51:04 +02:00
Michael Natterer
1bcab234ab app: explicitly pass around the offsets of the view renderer's temp_bufs
and don't use temp_buf->x and ->y.
2012-05-02 17:51:02 +02:00
Michael Natterer
b78d6c1d5d app: port preview rendering to GEGL/cairo
which gets rid of the render blend arrays in gimprender.[ch], and of
image preview demultiplication.
2012-05-02 17:51:02 +02:00
Michael Natterer
53cf2c657b app: move the GTK-free cairo utility functions to core/gimp-cairo.[ch] 2012-05-02 17:51:02 +02:00
Michael Natterer
bdf6b48138 app: move GimpTempBuf from base/ to core/
and forget about include policy in base/, it's scheduled for removal
anyway.
2012-05-02 17:51:01 +02:00
Michael Natterer
dccb909009 app: make GimpTempBuf reference counted
and remove the "take_ownership" parameter from
gimp_temp_buf_create_buffer(), simply always ref the buf.
2012-05-02 17:51:00 +02:00
Michael Natterer
d5d8e36d21 app: gimp_-namespace all GimpTempBuf functions 2012-05-02 17:51:00 +02:00
Michael Natterer
42a5f01be3 app: rename TempBuf to GimpTempBuf 2012-05-02 17:51:00 +02:00
Michael Natterer
7441a1f6f7 app: turn the TempBuf's "bytes" into "format" and port everything to it 2012-05-02 17:50:59 +02:00
Michael Natterer
ff86f85744 app: remove x, y and color parameters from temp_buf_new()
Fix the places that passed the color by either temp_buf_data_clear()
or memset(), and assign x and y manually, they are going to vanish
completely soon.
2012-05-02 17:50:58 +02:00
Michael Natterer
c14738806e app: use gimp_image_get_layer_format() instead of dealing with image_type 2012-05-02 17:50:57 +02:00
Michael Natterer
aa8e580381 app: make color buttons generated for GEGL tools continuously update the caller 2012-05-02 17:50:49 +02:00
Michael Natterer
96dbfc54b4 app: fix/enable continuous color updates in GimpColorPanel 2012-05-02 17:50:49 +02:00
Michael Natterer
f80b6a067a app: anal 2012-05-02 17:50:47 +02:00
Øyvind Kolås
8994acc6a8 app: handle negative fractions correctly in spinscale 2012-05-02 17:50:45 +02:00
Øyvind Kolås
d7e9c6b7fe app: git_spin_scale invoke value_changed when setting gamma 2012-05-02 17:50:44 +02:00
Øyvind Kolås
5666697362 app: initialize gamma of spin scale to 1.0 2012-05-02 17:50:44 +02:00
Øyvind Kolås
7181402a62 app: clean up warning in spinscale 2012-05-02 17:50:44 +02:00
Øyvind Kolås
b8e340b5bc app: update paramspec duplication with changes in gegl paramspecs 2012-05-02 17:50:44 +02:00
Øyvind Kolås
553b7c7c03 app: add configurable nonlinear mapping (gamma) to spinscale widget
The default value is 1.0 which is linear and the old behavior, values above
1.0 gives finer control in the lower portions of the range, the lower half of
the widget behaves like before doing small relative adjustments.
2012-05-02 17:50:44 +02:00
Øyvind Kolås
1cee8d79bf app: respect GEGLs ui-range hints for properties 2012-05-02 17:50:44 +02:00
Michael Natterer
3e119c5af7 libgimpcolor: add gimp_rgb[a]_set,get_pixel()
which converts from/to any pixel format using Babl. Added tons of
includes and CFLAGS now that libgimpcolor publically uses Babl.
2012-05-02 17:50:43 +02:00
Michael Natterer
28913496bb app: use a GimpSpinScale instead of a scale entry in the prop_table 2012-05-02 17:50:43 +02:00
Michael Natterer
867da8f293 app: add gimp_context_get_foreground,background_pixel()
which takes a Babl format to convert from/to.
Include <gegl.h> in a million places.
2012-05-02 17:50:41 +02:00
Michael Natterer
36e982e2ed app: port gimp_image_pick_color() to return a Babl format
instead of a GimpImageType.
2012-05-02 17:50:39 +02:00
Michael Natterer
8d5471502e app: move GimpHistogram from base/ to core/ 2012-05-02 17:46:13 +02:00
Michael Natterer
5a7b7d9a4b app: add gimp_gegl_buffer_get_tile_manager()
and ust it in some get_memsize() functions instead of having a
FIXME. So many files changed because they need to inlcude <gegl.h>
now.
2012-05-02 17:46:07 +02:00
Michael Natterer
765c2cfea2 app: replace GimpDraable's type by a Babl format
and change gimp_drawable_new() and all gimp_layer_new() variants to
take formats instead of types.
2012-05-02 17:46:06 +02:00
Michael Natterer
3ec245a991 app: add opacity and paint_mode to gimp_edit_fill[_full]()
and use it instead of bucket-fill in the non-seed-fill case.
2012-05-02 17:46:01 +02:00
Michael Natterer
ffeb3515db app: add gimp_edit_fill_full() which takes color and pattern
and use it for dropping colors and patterns on the display
and on the layers dialog, instead of using the overkill
gimp_drawable_bucket_fill_full().
2012-05-02 17:46:01 +02:00
Michael Natterer
fbf11ba84f app: don't call gimp_layer_get_edit_mask() when the layer has no mask 2012-05-02 17:45:57 +02:00
Michael Natterer
69b2aa880f app: add gimp_pattern_create_buffer() and use it in gimp_edit_fill_internal() 2012-05-02 17:45:56 +02:00
Michael Natterer
88388467cc app: move the layer mask show, edit, apply API from GimpLayerMask to GimpLayer
because it would require really evil hacks to honor these properties
in the gegl projection if they were on the mask, and because they
actually belong to the layer.
2012-05-02 17:45:56 +02:00
Michael Natterer
169221bc51 app: replace some color_region() and pattern_region() by GEGL code 2012-05-02 17:45:52 +02:00
Michael Natterer
d771249466 app: completely port GimpBuffer to using GeglBuffer not TileManager 2012-05-02 17:45:47 +02:00
Michael Natterer
90706f8427 app: make sure explicitly saved color tool settings don't end up in "recent"
reset the "time" property after applying the stored setting, otherwise
explicitly storing the config as setting will also copy the time, and
the stored object will be considered to be among the automatically
stored recently used settings
2012-04-02 11:50:47 +02:00
Michael Natterer
7cbd1c5739 app: don't dereference a NULL session_info->p->factory_entry 2012-03-30 09:55:45 +02:00
Massimo Valentini
a29c096614 app: initialize also GimpRGB's alpha component
Conditional jump or move depends on uninitialised value(s)
==29000==    at 0x4C33CBC: gimp_color_area_set_color (gimp/libgimpwidgets/gimpcolorarea.c:425)
==29000==    by 0x4C3505B: gimp_color_button_set_color (gimp/libgimpwidgets/gimpcolorbutton.c:642)
==29000==    by 0x5DA5BE: gimp_text_style_editor_set_color (gimp/app/widgets/gimptextstyleeditor.c:700)
==29000==    by 0x5DB0D4: gimp_text_style_editor_update_idle (gimp/app/widgets/gimptextstyleeditor.c:1090)
==29000==    by 0x57E9E95: gdk_threads_dispatch (gtk-2-24/gdk/gdk.c:512)

Steps to reproduce:

<Ctrl>N <Enter> T
click on canvas
type something

select the text entered and change its color using
the color button from the text style editor
2012-03-13 20:44:47 +01:00
Massimo Valentini
a80a63443d app: initialize a GtkTreeIter
Conditional jump or move depends on uninitialised value(s)
==28871==    at 0x4A09863: bcmp (/builddir/build/BUILD/valgrind-3.6.1/memcheck/mc_replace_strmem.c:692)
==28871==    by 0x4C487C7: gimp_int_store_row_inserted (gimp/libgimpwidgets/gimpintstore.c:220)
==28871==    by 0x8342B03: g_closure_invoke (glib/gobject/gclosure.c:774)
==28871==    by 0x8353129: signal_emit_unlocked_R (glib/gobject/gsignal.c:3232)
==28871==    by 0x835A72A: g_signal_emit_valist (glib/gobject/gsignal.c:3033)
==28871==    by 0x835A8F1: g_signal_emit (glib/gobject/gsignal.c:3090)
==28871==    by 0x529EF63: gtk_list_store_insert (gtk-2-24/gtk/gtkliststore.c:1039)
==28871==    by 0x5CEB6B: gimp_stroke_editor_constructed (gimp/app/widgets/gimpstrokeeditor.c:229)
==28871==    by 0x8348222: g_object_newv (glib/gobject/gobject.c:1731)
==28871==    by 0x8348565: g_object_new_valist (glib/gobject/gobject.c:1820)
==28871==    by 0x8348873: g_object_new (glib/gobject/gobject.c:1535)
==28871==    by 0x5CEE74: gimp_stroke_editor_new (gimp/app/widgets/gimpstrokeeditor.c:320)
==28871==    by 0x4C3842: stroke_dialog_new (gimp/app/dialogs/stroke-dialog.c:176)
==28871==    by 0x4A3B5C: select_stroke_cmd_callback (gimp/app/actions/select-commands.c:349)

Steps to reproduce:

On a 64 bits machine run gimp-2.7

<Ctrl>N <Enter> <Ctrl>A
and activate <Edit>/Stroke Selection... (<Alt>E S)
2012-03-13 20:44:47 +01:00
Michael Natterer
b1483144cf app: remove unused variable in GimpSpinScale 2012-02-22 23:38:35 +01:00
Michael Natterer
aadfc82f11 app: various GimpSpinScale fixes
- make it respect RTL mode better, something is still weird though
- don't fiddle with the entry's inner_border
- place label and number on the same line
- adjust size_request to respect the label's requisition
- set the label to ellipsize
2012-02-22 22:48:42 +01:00
Michael Natterer
fbd746f95a app: don't rely on gtk_container_remove() to always destroy the child
Instead, either destroy the child instead of removing it, or remove
*and* destroy it in cases where the remove() api on the "parent"
doesn't match GTK+'s parent/child relation (like with all our dock
widgets). We can't rely on remove() to implicitly detstroy, because
there might be arbitrary other code holding references, such as
accessibility modules and whatnot. Most likely fixes unclear crashes
in accessibility code and other crashes we blamed GTK+ for.
2012-02-21 00:36:18 +01:00
Christian Krippendorf
43b6d6922c Bug 615227 - Undo while scaling layer freezes GIMP
Don't run into an infinite loop when the undo editor is used
while we're in the middle of an undo group.
2012-02-13 08:17:47 +01:00
Michael Natterer
90065a517e app: try harder to show filename and file size in Image -> Properties
by using gimp_image_get_any_uri() instead of get_filename() or get_uri().
2012-02-11 22:54:06 +01:00
Michael Natterer
af6b840aaf Bug 666561 - Clicking on the expand icon next to a group expands the wrong group
gimp_item_tree_view_row_expanded(): only select the active item if its
immediate parent was expanded, not if *any* group was expanded.
2012-02-09 20:38:46 +01:00
Massimo Valentini
b994280473 Bug 668814: Cannot move cursor right in on canvas editor
One possible way to decrease the incompatibilities
between letter spacing in a tagged gtk_text_buffer
and in an equivalent pango_layout

Remove also a valgrind reported invalid write in
gimptextbuffer.c
2012-02-09 12:36:43 +01:00
Michael Natterer
2414301799 Review the last few commits and apply some style fanaticism
some completely unrelated,
2012-02-07 20:36:55 +01:00
Massimo Valentini
39368a410d plugged memory leaks 2012-02-07 17:32:02 +01:00
Michael Natterer
79d997457b app: set GimpToolPresetEditor insensitive for non-editable presets 2012-02-06 22:03:30 +01:00
Michael Natterer
f72806bbcd app: fix GimpContainerTreeView name editing so it always works the same
no matter how editing was started (double click, keyboard activate, F2).

Connect to "editing-started" of the name cell and set the object's
real name directly on the GtkCellEditable, instead of trying to hack
around in the tree store before the actual editing starts.
2012-02-06 19:28:37 +01:00
Michael Natterer
947ea55a07 app: chain up last in gimp_container_tree_view_set_context()
so all the view renderers already have the right context when the
parent interface code selects the right item, which in turn requires
the context to be already set on the renderers. Fixes warnings when
dragging dockables around.
2012-02-06 01:33:01 +01:00
Alexia Death
c585737f3a app: Add import type as third preference on Export 2012-02-02 21:17:35 +02:00
Michael Natterer
17f1f2a2fa app: use G_N_ELEMENTS() and remove GIMP_N_TAB_STYLE_CANDIDATES define 2012-02-01 20:38:10 +01:00
Michael Natterer
d11f9d7dbf Bug 664885 - Open 'Document History' --> always a additional history tab appears
Really find a *widget* in gimp_dialog_factory_find_widget(), don't
just return the first found session info's widget. It's perfectly fine
for a session info to have a NULL widget, if that dialog is not
currently open.
2012-01-31 22:00:17 +01:00
Michael Natterer
cac442c2df app: port dockable showing in widgets/ to GimpWindowStrategy 2012-01-30 23:52:59 +01:00
Michael Natterer
0a68527edc app: move the GimpWindowStrategy interface from display/ to widgets/ 2012-01-30 23:33:21 +01:00
Michael Natterer
92693f40b6 app: allow to pass an identifier list to gimp_dialog_factory_find_widget()
Which is right for all external users, GimpDialogFactory itself splits
the identifier list itself if needed before finding a specific dialog.
2012-01-30 22:51:51 +01:00
Michael Natterer
569b262e2d app: various tool options and tool preset fixes
- move the code that sets the tool options' "defined" and "serialize"
  properties from GimpToolInto to GimpToolOptions so they are always
  set correctly.
- make GimpToolOptions fix broken serialized NULL tools automatically.
- make sure a GimpToolPreset's tool options always has a tool set. If all
  fails, set a NULL tool explicitly and let the logic in GimpToolOptions
  find the right tool.
- set GimpToolPreset's "use" booleans to FALSE for context properties
  that have no effect on the tool.
- set GimpToolPresetEditor's toggle insensitive for these properties.
2012-01-23 22:40:49 +01:00
Michael Natterer
313430b738 app: move all GimpToolPresetEditor members to a private struct 2012-01-23 00:56:21 +01:00
Michael Natterer
f593175924 app: GimpCurveView: clean up code and better axis label positioning 2012-01-15 22:54:57 +01:00
Michael Natterer
c00457382e app: GimpColorFrame: no need to cairo_fill() after pango_cairo_show_layout() 2012-01-15 22:48:55 +01:00
Alexia Death
8d0016023b app: fix get/set mixup in curve view 2012-01-15 21:37:30 +02:00
Alexia Death
3f7ee00469 app: Add axis lables to dynamics curves and curveview 2012-01-15 02:56:35 +02:00
Martin Nordholts
4ac7bcc624 app: Add 'create_containers' to gimp_dialog_factory_dialog_new_internal()
Because to fix bug 664885 we will want to pass context = NULL while
still not having any containers created for us.
2012-01-10 21:13:08 +01:00
Martin Nordholts
40d98b79cb app: A '|' in identifiers is not a special case 2012-01-10 20:51:08 +01:00
Martin Nordholts
64d2dc122a app: Add and use gimp_dialog_factory_find_widget() 2012-01-10 19:47:52 +01:00
Michael Natterer
056e09a6cb Remove the makefile.msc build system, it is unmaintained since 2008 2011-12-16 15:53:56 +01:00
Michael Natterer
42a5f8f834 Bug 666065 - "you can drop dockable dialog" of the toolbox
Set the height request of the "You can drop dockable dialogs here"
label to 0, so the toolbox can be properly resized to its minimum
again.
2011-12-16 09:40:54 +01:00
Michael Natterer
a25bfabc43 app: properly memory manage GimpColorSelectorPalette's context
so we don't access garbage pointers when the widget is moved between
docks, like when toggling SWM.
2011-12-11 02:44:14 +01:00
Michael Natterer
180cb656ae Remove more gdk_pointer_grab() where they are not strictly needed
and replace them by gtk_grab_add()/remove().
2011-12-10 21:51:05 +01:00
Michael Natterer
01f92a3b48 app: get rid of server grabs for almost all canvas interaction
Because it's generally the right thing to do, and server grabs broke
badly with input devices / client side windows.

gimpdisplayshell-grab.c: change logic to only server-grab if an event
is passed to the pointer grab/ungrab functions, but always use
gtk_grab_add/remove() which is sufficient in most cases.

gimpdisplayshell-tool-events.c: have the grab functions grab the
server only for space-bar scrolling and do all tool interaction,
including ruler clicks, with gtk_grab_add/remove(). Refactor things
a bit to also use the grab API for button-2 scrolling.

gimpdeviceinfo-coords.c: transform the event's coords to the canvas'
coordinate system, they might come from a ruler now.

This fixes the following bugs:

Bug 645315 - gimp_display_shell_pointer_grab: gdk_pointer_grab failed...
Bug 644351 - Gimp misses some strokes especially when drawing fast
Bug 645747 - Gimp is now unusable on xfce4
2011-12-09 20:20:02 +01:00
Michael Natterer
dcf84f3910 app: set the correct resolution on the text style overlay's size entry 2011-12-03 23:56:51 +01:00
Michael Natterer
af0570372d app: GimpTagEntry formatting cleanup, no logic changes 2011-12-01 20:24:37 +01:00
Michael Natterer
1d9ca9cdca app: remove gtk_check_version(2,24,7) code from GimpActionGroup 2011-12-01 12:07:43 +01:00
Michael Natterer
9781aa65ea Bug 658467 - Replace g_format_size_for_display() by g_format_size()
Use g_format_size() instead of g_format_size_for_display() because
the latter is deprecated.
2011-11-30 23:37:55 +01:00
Michael Natterer
9cd3e005aa app: fix the PDB GimpBrushSelect dialog
It was warning like crazy and not showing opacity and paint mode
widgets.
2011-11-25 13:57:28 +01:00
Massimo Valentini
c34348a2cd app: silence a harmless Gimp-Core-CRITICAL
Dragging a channel preview (not RGBA) over a layer preview
GIMP used to print:

Gimp-Core-CRITICAL **: gimp_container_get_child_index: ...
           assertion `GIMP_IS_CONTAINER (container)' failed
2011-11-18 18:36:20 +01:00
Michael Natterer
ca17c91d9e app: don't unparent the menu_button in gimp_dockbook_dispose()
because we don't own it. GTK+ failing to destroy it is no reason, this
needs to be fixed in GtkNotebook.
2011-11-17 00:17:46 +01:00
Michael Natterer
a547cc0940 app: don't leak GimpViewRendererImagefile's GtkIconInfo 2011-11-04 01:32:50 +01:00
Michael Natterer
c166e494ce Bug 662948 - Wilber is squeezed
Separate Wilber sizing from GimpDock::set_host_geometry_hints()
because that method is never called in single-window mode.
2011-11-02 00:31:23 +01:00
Michael Natterer
16aae588b9 app: no need to move that assignment
and no need to initialize the entire struct explicitly.
2011-10-13 11:30:02 +02:00
Mukund Sivaraman
d047b1ca41 app (widgets): Init child_allocation, or garbage is added to action_allocation.y 2011-10-13 10:32:12 +05:30
Michael Natterer
846392b66c app: move the "exclusive visible" logic to the core
but don't fix it for item trees yet (refactoring only). Kill the
"exclusive liked" function which only existed because it was so easy
to have, but was always utterly useless. Prove me wrong and I will
revive it.
2011-10-12 16:05:57 +02:00
Michael Natterer
fffd1920e2 app: don't hardcode MOD2 in GimpContainerTreeView either
Add new utility function gimp_get_all_modifiers_mask() which returns
all modifiers used for "useful" things on the current platform, like
in the commit below.
2011-10-10 00:17:20 +02:00
Michael Natterer
6c660e7ad5 app: add property GimpDataFactoryView:action-group
and remove the public gimp_data_factory_view_construct().
2011-10-09 22:12:32 +02:00
Michael Natterer
b3db7e6c4e app: rename all tool-preset dialog related things to "tool presets"
not just "tool preset". It's also "brushes", "patterns" etc. and not
just "brush" or "pattern".
2011-10-09 21:55:58 +02:00
Michael Natterer
04e8ae8435 app: add menu-related properties to GimpContainerEditor
and remove the public gimp_container_editor_construct(), so this class
behaves like a proper object now.
2011-10-09 21:45:02 +02:00
Michael Natterer
4ba905052b app: remove most code from the public gimp_container_editor_construct()
and move it to GObject::constructed().
2011-10-09 21:19:14 +02:00
Michael Natterer
5f3b3dafb9 app: add view-size and view-border-width props to GimpContainerEditor
and remove them from the various public construct() functions.
2011-10-09 21:04:49 +02:00
Michael Natterer
bef55fbb66 app: add view-type, container and context props to GimpContainerEditor
and remove them from the various public construct() functions. Had to
change construction in GimpDataFactoryView slightly because of GObject
construct property constraints.
2011-10-09 20:40:56 +02:00
Michael Natterer
3bf3b55536 app: add property GimpDataFactoryView:data-factors
and remove it from the evil public construct() function.
2011-10-09 19:08:31 +02:00
Michael Natterer
11239c4b17 app: don't use g_list_length() to check if a list is empty 2011-10-09 00:27:53 +02:00
Michael Natterer
d310dacbb1 app: remove "foo && " from "foo && GTK_IS_FOO (foo)" 2011-10-09 00:18:56 +02:00
Michael Natterer
374f4e5628 app: let GimpContainerTreeView's parent class handle MOD2-click 2011-10-07 01:02:54 +02:00
Michael Natterer
e5edb1188d app: more s/GDK_CONTROL_MASK/gimp_get_toggle_behavior_mask()/ 2011-10-07 01:02:54 +02:00
Michael Natterer
e2feb0c16f app: use gtk_widget_get_modifier_mask() in GimpWindow
to figure the primary accel modifier, so this code is now generic.
2011-10-07 01:02:54 +02:00
Michael Natterer
efd9906e85 app: remove gimp_get_mod_separator(), it's unused now 2011-10-07 00:34:43 +02:00
Michael Natterer
a38faefba7 app: use toggle_behavior_mask not CONTROL to trigger zoom-on-scroll 2011-10-07 00:00:42 +02:00
Michael Natterer
1bff8224ad app: use the toggle_behavior_mask instead of CONTROL to pick BG
And don't use gimp_get_mod_separator().
2011-10-07 00:00:42 +02:00
Michael Natterer
2ee5dbb98c app: use toggle_behavior_mask instead of CONTROL in GimpThumbBox
Also, don't use gimp_get_mod_separator() but a translatable "-"
because the separator is empty on OSX.
2011-10-07 00:00:42 +02:00
Michael Natterer
c7d9988a7f app: make gimp_suggest_modifiers() work on OSX
by checking for gimp_get_toggle_behavior_mask() instead of
GDK_CONTROL_MASK. This is a total hack but happens to simply
do the right thing on all platforms.
2011-10-06 22:56:05 +02:00
Michael Natterer
6d1b5c4241 app: pull virtual modifier replacement into gimp_get_mod_string()
and remove it from all other places. We only want to have the virtual
modifiers when displaying a modifier string (and in some other cases,
but these are all handled internally by GTK+).
2011-10-06 22:56:05 +02:00
Michael Natterer
f4141d6942 app: add a utility function that returns the "constrain" modifier 2011-10-06 16:42:42 +02:00
Michael Natterer
c0610697cb app: remove widget parameter from gimp_modifiers_to_channel_op()
and simply use the default keymap.
2011-10-06 16:33:05 +02:00
Michael Natterer
10a9c660f8 app: add utility functions which return modifier masks
Simply get the masks from the default display's keymap, since
the widget makes absolutely no difference here.
2011-10-06 16:33:05 +02:00
Michael Natterer
4b3d3fe431 app: port the channels and paths dialog to portable selection modifiers
instead of hardcoding SHIFT and CONTROL.
2011-10-05 19:26:54 +02:00
Michael Natterer
f22d6b9d3b app: use the portable EXTEND_SELECTION modifier instead of SHIFT 2011-10-05 19:26:54 +02:00
Michael Natterer
16d4d6fa94 app: replace virtual modifiers before displaying them as GimpEditor tooltip 2011-10-05 19:26:53 +02:00
Michael Natterer
9e44a199e5 app: use gimp_modifiers_to_channel_op()
instead of replicating its logic in a non-portable way.
2011-10-05 19:26:53 +02:00
Michael Natterer
fdf103ce08 app: add more modifier utility functions to gimpwidgets-utils.[ch]
- gimp_modifiers_to_channel_op() translates a modifier state to REPLACE,
  ADD, SUBTRACT or INTERSECT.

- gimp_replace_virtual_modifiers() uses gdk_keymap_add_virtual_modifiers()
  to replace the physical bits in a modifier state to their virtual
  counterparts (and not just adds the virtual ones like the GDK
  function).
2011-10-05 19:26:53 +02:00
Michael Natterer
f45cccbc82 app: make gimp_get_mod_string() a bit nicer 2011-10-05 18:47:37 +02:00
Michael Natterer
3982ddc39b app: implement gimp_get_mod_string() using gtk_accelerator_get_label()
so it can handle all modifiers (also Mac ones).
Remove gimp_get_mod_name_shift,control,alt().
2011-10-05 01:30:59 +02:00
Michael Natterer
1459f5bb61 app: unparent GimpDockBook's menu button in dispose() not finalize()
because unparenting requires a fully functional object that can
be used as signal parameter. I have no clue why this doesn't
trigger criticals on X11.
2011-10-04 23:54:42 +02:00
Michael Natterer
f1d4dde36a libgimpwidgets: add gdk_event_triggers_context_menu() to gimp3migration.[ch]
and remove gimp_button_event_triggers_context_menu() again. Update
all callers to use the new function.
2011-10-02 16:23:59 +02:00
Michael Natterer
2c175b068d libgimpwidgets: add gtk_paned_new() to gimp3migration.[ch]
and use it all over the place.
2011-10-02 14:36:42 +02:00
Michael Natterer
16817c666f libgimpwidgets: add gtk_scrollbar_new() to gimp3migration.[ch]
and use it all over the place.
2011-10-02 14:36:41 +02:00
Michael Natterer
f342b50483 libgimpwidgets: add gtk_button_box_new() to gimp3migration.[ch]
and use it all over the place.
2011-09-30 15:44:33 +02:00
Michael Natterer
3e336199b9 app: use gtk_box_new() 2011-09-30 11:29:11 +02:00
Alexia Death
cd2a1a92fc app: Add configurable path for tool presets in preferences 2011-09-29 20:29:49 +03:00
Massimo Valentini
0f03ed9e05 Bug 616416: hidden layer groups appear again after an image change
Introduced two virtual functions to a GimpViewable

'set_expanded' and 'get_expanded'

and a PROP_GROUP_ITEM_FLAGS to load/save the expanded state
of layer_groups and use them.
2011-09-25 21:57:20 +02:00
Massimo Valentini
a67bb11cf5 Revert "Bug 616416: hidden layer groups appear again after an image change"
This reverts commit 359c9c22d9.
2011-09-25 21:49:36 +02:00
Massimo Valentini
359c9c22d9 Bug 616416: hidden layer groups appear again after an image change 2011-09-25 21:38:50 +02:00
Michael Natterer
c3c40fd45f Bug 545910 - crash when selecting a font after a search
Add an explicit search entry, so the treeview's automatic search
popup doesn't break our grab and closes the dialog in the middle
of setting up the serach popup.
2011-09-24 10:58:48 +02:00
Michael Natterer
69f55d0fb0 Bug 152259 - Revert button in GimpDataEditor is not implemented
Hide the button instead of only setting it insensitive.
2011-09-24 00:55:37 +02:00
Mikael Magnusson
fdb69d20d5 Revert accidental usage of gtk_box 2011-09-24 00:44:14 +02:00
Michael Natterer
4e3c308931 Bug 658902 - Show different icon for visible layer group members of...
Set the "eye" renderer to inconsistent state if the item is visible,
but not effectively viewable because one of its parents is invisible.
2011-09-23 23:45:10 +02:00
Michael Natterer
0e1d07d129 Bug 659446 - Missing plural handling for...
Use ngettext() instead of simply _().
2011-09-23 23:09:26 +02:00
Michael Natterer
d92cd2f6c8 Add gimp_button_event_triggers_context_menu() and use it
instead of checking for event->button == 3, so context menus
work correctly on the Mac. Didn't change the image menu yet
because thet requires some more refactoring.
2011-09-19 00:47:23 +02:00
Michael Natterer
f8a2644b13 app: sanitize event->button checking in GimpNavigationView
Use if() instead of switch() with one case:, and ignore
double and triple clicks.
2011-09-18 19:49:05 +02:00
Michael Natterer
7656e2bda1 app: make gimp_window_key_press_event() do the right thing on a Mac
which is look at the right modifier when checking if a key event
can invoke an accelerator. Also get the mnemonic modifier from
GTK instead of hardcoding it, and don't check for it if mnemonics
are disabled, which is the right thing to do on all platforms.
2011-09-17 23:26:58 +02:00
Michael Natterer
3066a8228a app: use <primary> instead of <control> in accelerator strings
but generically change it back to <control> for GTK+ < 2.24.7.
This enables using the Command modifier on OSX,
2011-09-16 22:59:58 +02:00
Mukund Sivaraman
6080c11161 Revert "Bug #658816 - Add a spellchecker to the comment editor"
This reverts commit 978c96bbc6, which is
probably not such a great idea.
2011-09-13 00:33:33 +05:30
Mukund Sivaraman
978c96bbc6 Bug #658816 - Add a spellchecker to the comment editor
This is an initial version and can be improved. Something is better
than nothing.  :)
2011-09-12 19:36:35 +05:30
Massimo Valentini
779756bc51 app: draw Wilber as in gimp-2.6
Apparently wilber_get_extents is called the first time
with a cairo_t with device_offset different than the other
times, since the path is copied the first time, afterwards
it appears offset.
2011-09-02 18:07:34 +02:00
Michael Natterer
4c9a2f1729 app: remove trailing whitespace in GimpToolPalette 2011-08-21 17:43:39 +02:00
Martin Nordholts
c0208e70c0 app: Resurrect "You can drop dockable dialogs here"
Resurrect the help string "You can drop dockable dialogs here" inside
GimpPanedBox. It got killed when we removed GimpDockSeparator.
2011-08-16 22:33:39 +02:00
Martin Nordholts
a5ef51137d Revert "app: #include "gimptoolpalette.h" in gimptoolpalette.c"
This reverts commit c19560b08c.
It was already included, don't know how I could miss that.
2011-08-09 19:52:35 +02:00
Martin Nordholts
2fd159ae06 app: Only initialize tools once 2011-08-07 20:49:49 +02:00
Martin Nordholts
1a8a806d43 app: Make GimpToolbox use parent UI manager
Make GimpToolbox and GimpToolPalette use the GimpUIManager and
GimpDialogFactory of the top container instead of holding references
on their own. If they hold references on their own, we need to update
these when we move e.g. GimpToolbox between different top level
containers such as GimpDockWindow and GimpImageWindow. Failure to do
this cased problems talked about in bug 646794 (case 2).
2011-08-07 20:00:28 +02:00
Martin Nordholts
77ac7ffa90 app: Add gimp_tool_palette_initialize_tools() 2011-08-07 20:00:05 +02:00
Martin Nordholts
c19560b08c app: #include "gimptoolpalette.h" in gimptoolpalette.c
It's just weird not to.
2011-08-07 20:00:05 +02:00
Martin Nordholts
a5029b8c4c app: Remove dead GimpToolPalette code 2011-08-07 18:02:55 +02:00
Martin Nordholts
f8e840d85b app: Document GimpUIManager a bit 2011-08-07 17:04:36 +02:00
Martin Nordholts
537dae8de7 app: Remove more gimp-remote stuff
It's enough to setup gimp_toolbox_drop_uri_list() on the vbox.
2011-08-04 21:09:50 +02:00
Michael Natterer
97c5a2817d app: s/GTK_IS_VBOX/GTK_IS_BOX/ to simplify the gtk3-port branch 2011-07-27 20:21:58 +02:00
Alexander Hämmerle
421ca4114e Bug 641187 - GIMP needs a left-handed cursor option
Add a cursor-handedness setting and flip the cursor when it's set to
left-handed.
2011-07-24 22:09:21 +02:00
Martin Nordholts
682eabfd5b app: Add gimp_dock_columns_create_dock_and_dockbook() 2011-07-03 21:20:34 +02:00
Martin Nordholts
91b7043aef app: Add gimp_dockbook_add_from_dialog_factory() 2011-07-03 21:20:20 +02:00
Alexia Death
e7ade3f8ec app: add an assert and dirty fix a segfault when starting with SWM
Somebody smarter than me needs to take  look why for some reason tool is
changed to null during SWM init.
2011-06-29 23:51:27 +03:00
Michael Natterer
ab607a0adc app: add gimp_imagegile_get_gicon() which uses async API and can't block
and use it in gimp_view_renderer_imagefile_get_icon().
2011-06-19 23:06:33 +02:00
Michael Natterer
276ceddec9 app: GimpViewRendererImagefile: don't call g_file_query_info ("standard::icon")
This is a quick fix because the call can block and needs to be ported
to the async API. I simply disabled the entire block that gets the
icon from GIO.
2011-06-19 22:20:50 +02:00
Martin Nordholts
e74d220930 app: Restore docks in an idle handler
In single-window mode, gimp_session_managed_set_aux_info() will set
the size of the dock areas at the sides. If we don't wait for those
areas to get their size-allocation, we can't properly restore the
docks inside them, so do that in an idle callback.

Also add a required call to gimp_test_run_mainloop_until_idle()
because of this in the 'automatic_tab_style' test.
2011-06-14 23:34:12 +02:00
Martin Nordholts
00d6f8e655 Move gimp_session_info_clear_info() into gimp_session_info_restore()
All callers of gimp_session_info_restore() call
gimp_session_info_clear_info() afterwards, so move that into the
function instead.
2011-06-14 23:34:12 +02:00
Michael Natterer
86e09e03d6 app: make sure GimpToolPresetEditor is in a sane state initially
even if an object got set on it at construction time.
2011-06-06 22:38:51 +02:00
Alexia Death
6b3c398f09 app: prevent segfault on startup when in swm and preset editor is active 2011-06-05 15:12:57 +03:00
Michael Natterer
ea27c7bc83 app: add the MIN4() and MAX4() macros to gimp-utils.h
instead of having them in 5 .c files.
2011-06-04 17:16:21 +02:00
Michael Natterer
1bff2c8df2 app: sprinkle const qualifiers in the tool event callback functions 2011-05-31 23:18:11 +02:00
Martin Nordholts
bed298be13 app: Remember column width in multi-column dock windows 2011-05-31 23:15:39 +02:00
Martin Nordholts
b4ed281f9a app: Call gimp_session_info_aux_set_list() generically
gimp_session_info_aux_set_list() is not a per-GimpDialogRestoreFunc
thing.
2011-05-31 23:15:38 +02:00
Martin Nordholts
6fc587c643 app: Add GimpSessionManaged
Add a GimpSessionManaged interface to generalize
gimp_session_info_aux_get_list() and gimp_session_info_aux_set_list().
2011-05-31 23:15:14 +02:00
Michael Natterer
edad544e73 app: don't redundantly check for (foo && GIMP_IS_FOO (foo)) in GimpSessionInfo 2011-05-30 23:39:39 +02:00
Martin Nordholts
10aa3921a0 app: Rememeber if image windows are opened
Rememeber if image windows are opened because we want the
gimp_session_info_restore() code to run for the single-image window
once that code is in place.
2011-05-28 16:18:34 +02:00
Martin Nordholts
93fd257c52 app: Give configure event info to gimp_session_info_read_geometry()
When we get to gimp_dialog_factory_dialog_configure() and do
gimp_session_info_read_geometry(), the window geometry has not yet
been updated, i.e. gimp_session_info_read_geometry() gives the session
info the size of the *previous* configure event.

Solve this by giving gimp_session_info_read_geometry() the configure
event so it can use that size when availble.

If we don't do this change, then we get bogus values of the size of
image window when repeatedly switching between single- and
multi-window mode.
2011-05-27 22:33:55 +02:00
Martin Nordholts
396d5fd5e8 app: Add a 'restore_func' to GimpDialogFactoryEntry
In gimp_session_info_restore() there is code to create a dialog from a
session info. GimpSessionInfo lives in the widgets module. Thus we
can't add restoration code that depends on a higher level module. In
particular, we can't add code to restore docks in an GimpImageWindow
since GimpImageWindow lives in the display module. And we need such
code to be able to restore a single-window mode session.

Since dialogs are defined in the dialogs module, it makes sense to
also have the code that restores a dialog in that module.

So, add a 'restore_func' member to GimpRestoreDialogFunc of type
GimpRestoreDialogFunc and move the code there.
2011-05-27 21:55:41 +02:00
Massimo Valentini
71bedb0ccd app: clear current path from the context after copying it
otherwise the first time it is drawn twice.
2011-05-26 20:17:21 +02:00
Martin Nordholts
2d5ffd4f2e app: Add the concept of 'side' of a dock
Add GimpDockContainer::get_dock_side() and write that info in the
sessionrc file. In single-window mode, a dock can be either on the
left or right side of the image window. In a dock window however, the
side concept doesn't apply ('side' has nothing to do with what column
a dock is in in a GimpDockColumns)
2011-05-19 20:57:40 +02:00
Michael Natterer
ab0b88b5db app: replace the last GtkObject members by GtkAdjustment
Also get rid of some unneeded GTK_ADJUSTMENT() casts and replace some
local GtkObject veriables by GtkAdjustment.
2011-05-15 17:00:41 +02:00
Martin Nordholts
cf4a4bf5a6 app: Make gimp_session_info_dock_restore() take a GimpDockContainer 2011-05-13 21:25:39 +02:00
Martin Nordholts
7edf717bae app: Add image_window boolean to GimpDialogFactoryEntry
Add image_window boolean to GimpDialogFactoryEntry and rename
FOREIGN_NOT_HIDEABLE() to IMAGE_WINDOW(). We need to treat image
windows a bit special when we restore a single-window mode session.
2011-05-13 21:25:39 +02:00
Martin Nordholts
0f19471e22 app: Make GimpDockContainer::get_docks() return a new list
Make GimpDockContainer::get_docks() return a new list and not just a
pointer to a list so that GimpImageWindow can implement it (who needs
to merge its two GimpDockColumns lists).
2011-05-13 21:04:23 +02:00
Martin Nordholts
00c2d15a3a app: Add GimpDockContainer::add_dock()
Add GimpDockContainer::add_dock() and use it in
gimp_session_info_dock_restore().
2011-05-13 21:04:23 +02:00
Martin Nordholts
ab1b50ad4a app: Add GimpDockContainer::get_ui_manager()
Add GimpDockContainer::get_ui_manager() and make GimpDockWindow
implement it. Primary client is session restoration code.
2011-05-13 18:56:41 +02:00
Michael Natterer
896e29c5f1 app: gimp_session_info_dock_restore(): remove empty dockbooks after restoring
so we don't end up with empty windows if restoring all dockables in
the dock failed.
2011-05-12 21:23:07 +02:00
Michael Natterer
6bf7f7e429 app: ref the session info in gimp_dialog_factory_add_session_info()
and unref it in the callers after adding it. That's the proper way of
doing it and fixes another warning when restoring a dock fails.
2011-05-12 21:23:07 +02:00
Michael Natterer
9e60dd547d app: keep a ref to the session info in gimp_session_info_restore()
because failing to restore a dock can destroy the newly created dock
and implicitly unref the session info.
2011-05-12 21:23:06 +02:00
Michael Natterer
68a56a861e app: gimp_session_info_book_restore(): don't set a non-existing current page
Don't set the first page of the restored dockbook active if there are
less than two pages. Also add a comment that explains why we return
the dockbook even though we know that all its dockables failed to
restore.
2011-05-12 21:23:06 +02:00
Michael Natterer
80cf95319e app: gimp_session_info_dockable_restore(): don't return existing singletons
Instead, return NULL. The singleton dockable can't be restored in this
dock because it's already open in another dock.
2011-05-12 21:23:06 +02:00
Martin Nordholts
c70dc8f86d app: Add NULL check in gimp_dock_container_get_docks() 2011-05-12 06:51:40 +02:00
Michael Natterer
3184c0f339 app: use g_object_bind_property() to set sensitivity here too 2011-05-11 11:43:19 +02:00
Martin Nordholts
6d421f9d4d app: Add and use gimp_session_info_get_info_with_widget()
Add and use helper function
gimp_session_info_get_info_with_widget(). Might need it for
GimpImageWindow later...
2011-05-09 19:55:51 +02:00
Martin Nordholts
4b9243fc60 app: Make GimpDockWindow implement GimpDockContainer
Make GimpDockWindow implement the GimpDockContainer interface. The
plan is to make GimpImageWindow also implement the GimpDockContainer
interface when we start to session manage docks in single-window mode.
2011-05-09 19:55:51 +02:00
Martin Nordholts
2287b6e008 app: Add a GimpDockContainer interface
We now have to classes that contain docks, GimpDockWindow and
GimpImageWindow (in single-window mode). Introduce a GimpDockContainer
interface so we can cope with these in an abstract way.
2011-05-09 19:43:28 +02:00
Martin Nordholts
1d12dc8e86 app: Sort widgets/widgets-types.h 2011-05-09 18:37:40 +02:00
Michael Natterer
85c0fd1166 app: replace gimp_dock_get_dock_columns() by gtk_widget_get_ancestor() 2011-05-04 22:41:40 +02:00
Michael Natterer
909e7833a3 app: remove some more -Wunused-but-set-variable 2011-05-02 13:53:58 +02:00
Michael Natterer
c35ff719a7 app/libgimp*: remove stuff found by -Wunused-but-set-variable 2011-05-01 23:23:19 +02:00
Michael Natterer
cc47b2a600 libgimpwidgets/color: move the cairo color utility functions to libgimpcolor
Add CAIRO_CFLAGS to a lot of Makefiles to make this possible, and
because they pull in cairo via the libgimp headers.
2011-04-28 15:50:39 +02:00
Michael Natterer
2af539020b app: don't include individual files from libgimp* 2011-04-28 14:23:33 +02:00
Martin Nordholts
4988a97257 app: Add gimp_dock_set_id() 2011-04-21 19:57:14 +02:00
Martin Nordholts
c84d26667b app: Add missing gimp_dock_get_id() implementation 2011-04-21 18:59:12 +02:00
Martin Nordholts
f75f61779c app: GimpSessionInfoDock::identifier -> dock_type
Rename GimpSessionInfoDock::identifier to dock_type, because it isn't
really an identifier; there might be several instance with dock_type
being "gimp-dock". This is a preparation for adding an actual
'identifier' member.
2011-04-21 18:59:12 +02:00
Michael Natterer
4a8fa1ab2a app: make GimpSpinScale RTL aware 2011-04-20 20:12:21 +02:00
Alexandre Prokoudine
ae2ab1ff3b Fixed a typo
The brush editor used to say "Spahe" instead of "Shape".
2011-04-20 13:20:42 +04:00
Michael Natterer
3edf0cb531 app: GimpSpinScale: don't create two cairo_t in expose() 2011-04-20 00:43:30 +02:00
Michael Natterer
3bf15d32e6 app: use GimpSpinScales in GimpBrushEditor 2011-04-18 22:27:43 +02:00
Michael Natterer
6dd463fb02 app: gimp_spin_scale_change_value(): remove "+ lower" from step calculation
It was never noticed because lower is 0.0 or 1.0 in all use cases.
2011-04-18 21:21:45 +02:00
Michael Natterer
bfcecd2ef0 app: GimpBrushFactoryView: use a GimpSpinScale for spacing
and use the new scale_limits API to restrict the scale to 1..200 while
the actual range is 1..5000.
2011-04-18 21:04:05 +02:00
Michael Natterer
d300ec6556 app: add a "scale_limit" API to GimpSpinScale
which allows to restrict the scale to a range that is smaller than
that of the model GtkAdjustment. This way we can enter large values in
the entry or by dragging beyond the end of the scale, but keep a
reasonably usable scale range for "normal" values.
2011-04-18 21:01:48 +02:00
Michael Natterer
bc56060148 app: GimpLayerTreeView: use a GimpSpinScale for opacity 2011-04-18 20:41:02 +02:00
Michael Natterer
26d50b533b app: gimp_item_tree_view_add_options(): allow NULL labels
and pack the options widget into the vbox directly.
2011-04-18 20:40:10 +02:00
Mikael Magnusson
854dd5b6ad app: correct cast for spinbutton 2011-04-16 11:52:49 +02:00
Michael Natterer
924d647284 app: set GimpSpinScale to numeric-only input
It's the right thing to do, but also works around focus issues in SWM,
at least while the widget has the focus.
2011-04-16 02:09:37 +02:00
Michael Natterer
7e6c026790 Globally use GDK_KEY_foo, remove the compat defines from widgets-enums.h 2011-04-11 23:43:03 +02:00
Martin Nordholts
27ac2a3c38 app: Make GimpEditor instance members private 2011-04-10 12:12:01 +02:00
Michael Natterer
d52157b565 Bug 647235 - app/widgets/gimpcairo-wilber.c parses path data every time
Applied patch from Juan Pablo Ugarte which keeps Wilber's cairo_path_t
around instead of parsing the SVG data each time.
2011-04-09 08:30:23 +02:00
Michael Natterer
5562f840b6 Bug 646718 - gimp_curve_set_curve: assertion `y >= 0 && y <= 1.0' failed
CLAMP(value, 0.0, 1.0) in one more place. The calculation does
look correct, but we are probably running into floating point
inaccuracies.
2011-04-08 20:53:17 +02:00
Michael Natterer
fcbc5eebeb app: add an edit button the the tool options' brush etc. selectors
which makes getting to the editor dialogs much easier.
2011-04-07 23:48:08 +02:00
Mikael Magnusson
b00cb3be79 Remove stray semicolon 2011-04-06 23:40:56 +02:00
Mikael Magnusson
ac403ce11d Add a controller for binding mouse buttons 2011-04-06 23:35:14 +02:00
Michael Natterer
24ee3370b8 Depend on GTK+ >= 2.24.3, cairo >= 1.20.1, gdk-pixbuf >= 2.22.1
and completely separate configure and sanity checks for gdk-pixbuf
from GTK+, because it's now distributed as a separate package. Remove
all sorts of conditional compiling based on GDK_CHECK_VERSION() and
CAIRO_VERSION.
2011-04-06 19:58:24 +02:00
Michael Natterer
054957a1ee app: s/nbrushes/n_brushes/ in GimpBrushPipe 2011-04-05 15:16:06 +02:00
Michael Natterer
39fa147c17 app: unset GimpSpinScale's context sensitive cursor when the pointer leaves 2011-04-04 01:10:44 +02:00
Michael Natterer
61025c6023 Bug 624824 - use gtk-image-menu-item-set-always-show-image on some menu items
Always show icons for:

- Fill FG/BG/Pattern
- Rotate
- Recently opened
- Open images
2011-04-02 15:38:55 +02:00
Michael Natterer
d92b22c567 app: #include "widgets-types.h" so the GDK_KEY_foo defines are there 2011-03-29 22:39:34 +02:00
Michael Natterer
1cdaa2846f app: some forgotten s/GDK_foo/GDK_KEY_foo/ 2011-03-29 18:53:02 +02:00
Michael Natterer
7c60bb5181 app: use more of the new GDK_KEY_foo key names
and move the compat defines from display-enums.h to widgets-enums.h
2011-03-29 17:24:08 +02:00
Michael Natterer
6c524ea1db app: GimpSessionInfo: use brute force to position dialogs
Window managers are such a crap. So on top of all friendly hinting and
geometry setting, simply use gtk_window_move() whenever a session
managed GtkDialog is shown. It should be very hard to ignore that, but
of course the WM has the last word no matter how hard we try.

Note: this code should be more complex and the signal connection
should happen in GimpDialogFactory. Left it in GimpSessionInfo for now
until it got a bit of testing.
2011-03-26 19:47:44 +01:00
Michael Natterer
c629cbeb89 app: some formatting cleanup in GimpDialogFactory 2011-03-26 19:32:59 +01:00
Michael Natterer
bc8d5f84d6 app: remove the "offset" API from TileManager
It made the transform code hard to read and never belonged into the
tile manager anyway. It's a simple pixel buffer that should not know
about any position in an image. Instead, pass around the offsets of
tile managers explicitly, so everything is less obscure for the price
of having more parameters. This will also help replacing TileManagers
with GeglBuffers.
2011-03-26 08:30:15 +01:00
Michael Natterer
aec66d0c26 app: make GimpTaggedContainer properly memory manage the filter list
instead of leaking it. Also make the fact that tags in the list can
validly be NULL obvious by adding utility functions
gimp_tag_or_null_ref/unref().
2011-03-24 12:28:45 +01:00
Michael Natterer
7eda388fec app: fix possible GimpTagEntry crash by keeping the query idle ID around
Remove it in gimp_tag_query_dispose().
2011-03-24 09:55:32 +01:00
Michael Natterer
014a333d27 app: fix GimpTaggedContainer's base class
And make it use the sort_func from the src_container which must
now be a GimpList (which is likely temporary).
2011-03-23 21:51:56 +01:00
Michael Natterer
91195e8593 app: remove the old tool presets system
Instead, keep around a GimpFilteredContainer in GimpToolInfo that
maintains a per-tool list of presets from the global preset factory.
Turn the tool options dialog's preset Save/Restore/Edit/Delete menus
and buttons into shortcuts for managing the active tool's presets.
2011-03-23 09:27:29 +01:00
Michael Natterer
051ef0ebcb app: add GimpTaggedContainer
which is a copy of GimpFilteredContainer with s/Filtered/Tagged/ and
no other change. #if 0 GimpFilteredContainer for now and use
GimpTaggedContainer instead all over the place.
2011-03-22 23:11:46 +01:00
Michael Natterer
7cf14bd390 app: allow to change GimpToolPreset's icon
Also add an image and label that show what tool the preset is for.
This clearly needs more work...
2011-03-22 22:09:03 +01:00
Michael Natterer
fa9453eea1 app: add gimp_prop_icon_picker_new()
and use it in GimpTemplateEditor instead of handling the icon picker
manually.
2011-03-22 15:20:03 +01:00
Michael Natterer
a90961ef4a app: make GimpTextStyleEditor look a bit nicer
Add some spacing and move the color button to the bottom.
2011-03-21 01:00:37 +01:00
Michael Natterer
1f5e180334 app: move GimpToolDialog from app/widgets/ to app/display/
Zero logic changes yet, just a rename.
2011-03-20 13:34:03 +01:00
Michael Natterer
c469dbb206 libgimpwidgets: turn GimpDialog's "parent" into a property
and remove the parent peoperty from GimpViewableDialog.
2011-03-20 12:44:03 +01:00
Michael Natterer
6d97fd3887 app: use a size entry instead of a spinbutton in GimpTextStyleEditor
so it's finally clear what unit the text size has.
2011-03-20 12:37:01 +01:00
Michael Natterer
0789ee2669 app: add a 1px FG border around overlay frames
so they work on any background. Also remove disabled bling code.
2011-03-18 22:57:13 +01:00
Michael Natterer
140c9aae91 Bug 625273 - Insert Font and font-size into the Texteditor's Menubar
If the cursor position (or the current selection), doesn't contain any
font, font-size or color tags, display the default values from the
GimpText object instead of "nothing". Still display nothing if the
selection contains different fonts, sizes or colors.
2011-03-18 22:13:34 +01:00
Michael Natterer
ecbfb4a9e8 app: add a GimpText property and construct param to GimpTextStyleEditor
which will be used to get default values from.
2011-03-18 21:16:53 +01:00
Michael Natterer
61aa1854fd app: make GimpSpinScale's slow part change the value 10x slower than the fast part 2011-03-18 15:42:50 +01:00
Michael Natterer
f1d1bb610d app: experimentally add fine-tuning to GimpSpinScale
by making the lower part change things in small steps.
2011-03-18 15:07:44 +01:00
Michael Natterer
df731912a5 app: add a GimpTextStyleEditor to the text tool's editor dialog
so it's an alternative to on-screen editing for esoteric use cases
that can do everything on-screen editing is capable of.
2011-03-18 12:58:32 +01:00
Michael Natterer
d7c66c66d0 Bug 142697 - Dock separators move between sessions
Removing my old and evil "fix" for the issue from 2004-06-01 seems
to make things work as they should.
2011-03-17 21:03:20 +01:00
Michael Natterer
075c7d4a4d app: avoid the deprecated gdk_drawable_get_size() on GTK+ >= 2.24
Use gdk_window_get_width/height() instead.
2011-03-17 15:10:17 +01:00
Michael Natterer
fdde231869 app: use gtk_widget_get_allocation() instead of gdk_drawable_get_size() 2011-03-17 15:09:19 +01:00
Michael Natterer
42b2498a06 app: add a cast when comparing GdkCursorType with GimpCursorType 2011-03-17 14:42:44 +01:00
Michael Natterer
90058cded7 app: add missing tooltips in the text style overlay widget 2011-03-14 13:05:30 +01:00
Michael Natterer
8184296b3c app: add gimp_container_get_neighbor_of() to GimpContainer
instead of gimp_container_get_neighbor_of_active() in gimp-utils.c.
Move the additional GimpContext logic of the old function into the
callers, but use the new function in more places.
2011-03-13 02:14:44 +01:00
Michael Natterer
b1d6f1b0fd app: lose "default" from protected GimpViewRenderer rendering API
and rename render_surface() to render_temp_buf().
2011-03-08 17:12:39 +01:00
Michael Natterer
a2d27983d6 app: remove widget parameter from gimp_view_renderer_default_render_surface() 2011-03-08 17:03:30 +01:00
Michael Natterer
e69ecba237 app: move all GimpSettingsBox members to private 2011-03-08 11:32:49 +01:00
Michael Natterer
b8d148283b app: move all GimpSettingsEditor members to private 2011-03-08 02:32:14 +01:00
Michael Natterer
fcfb7cf160 Use the new g_[s]list_free_full() instead of foreach() and free() 2011-03-07 17:11:28 +01:00
Michael Natterer
fc7bd98d92 app: move all GimpStrokeOptions members to private 2011-03-05 21:00:28 +01:00
Michael Natterer
c550eae5e1 app: move all GimpImagefile members to private 2011-03-02 12:26:04 +01:00
Michael Natterer
5b09e61c46 app: move all GimpTemplate members to private 2011-03-02 10:16:43 +01:00
Michael Natterer
0bb5a76405 app: fix wilber dawing offset on widgets that don't have a window 2011-03-01 17:11:22 +01:00
Michael Natterer
30e847c921 app: forgot to implement dragging from GimpContainerIconView 2011-03-01 15:32:08 +01:00
Michael Natterer
f45e171f09 app: place the gimpview-popup at the button event's root coordinates
instead of fiddling with the widget's and its window's positions.
2011-03-01 14:53:54 +01:00
Michael Natterer
f82daa557a app: pack stuff in boxes instead of tables in GimpDeviceStatus
Makes the widget work correctly in all allocation situations.
2011-03-01 13:28:58 +01:00
Michael Natterer
30100cf613 app: add new widget GimpIconPicker, ripped out of GimpTemplateEditor 2011-03-01 12:31:17 +01:00
Michael Natterer
f0f94ba6a1 app: move all GimpTemplateEditor members to private 2011-03-01 11:50:16 +01:00
Michael Natterer
d3a83c9940 app: fix export and delete sensitivity in GimpSettingsEditor
and make sure "select-item" is emitted also when NULL is selected,
so the sensitivity is set correctly.
2011-03-01 01:29:35 +01:00
Michael Natterer
9cac8e7b42 app: GimpDeviceStatus: don't call gdk_display_get_name() on a NULL display 2011-02-28 17:36:53 +01:00
Michael Natterer
3a767c0c15 app: get rid of the arrow in GimpDeviceStatus
Instead, use an event box and set its state to SELECTED when the
device is active. Also cleaned up spacings and general appearance a
bit. Still a mess.
2011-02-28 16:43:21 +01:00
Michael Natterer
a1712a0ec7 app: emit "changed" when GimpDeviceInfo's device gets (un)set 2011-02-28 16:08:12 +01:00
Michael Natterer
b21f5be73f app: use GimpDeviceInfo's accessors 2011-02-28 15:55:02 +01:00
Michael Natterer
c49a7113e5 app: set the device manager's sort_func via g_object_new()
Setting it in init() had it overwritten by NULL because it's a
construct property.
2011-02-28 15:48:13 +01:00
Michael Natterer
ee844c6395 app: GimpDeviceManager refactoring part two
- change gimp_devices_get_list() to gimp_devices_get_manager()
- remove gimp_devices_get_current()
- let GimpDeviceStatus connect to the manager's "notify::current-device"
  directly and remove device status updating code from gui.c
- cleanup in gimpdevices.c
2011-02-28 14:37:00 +01:00
Michael Natterer
21a0e55005 app: device manager refactoring part one
Add a GimpDeviceManager object and take over most code from
gimpdevices.c, but leave all functions in gimpdevices.c there as
wrappers in order to make rebasing in gtk3-port simpler.
2011-02-28 12:57:15 +01:00
Michael Natterer
c11b0d2a79 app: move tool event debug output to a utility function
to reduce clutter in gimp_display_shell_canvas_tool_events().
2011-02-24 12:34:57 +01:00
Michael Natterer
ac9ffde880 app: formatting and other minor cleanups 2011-02-22 16:27:18 +01:00
Michael Natterer
7a8600e6bd app: use gdk_flush() in gimp_widget_flush_expose()
instead of a completely bogus event processing loop which had no
effect but flushing the event queue implicitly.
2011-02-22 15:07:17 +01:00
Michael Natterer
8333dfde7b Add some #if GTK_CHECK_VERSION (2, 24, 0) for creating foreign window
so we don't use deprecated API and make the gtk3 port simpler.
2011-02-16 22:51:02 +01:00
Michael Natterer
31b4d3801e libgimpwidgets: add properties GimpColorButton:area-width and :area-height 2011-02-15 20:55:32 +01:00
Michael Natterer
95f14f5de8 app: add an "edit-name" binding signal and default to F2 2011-02-14 20:01:08 +01:00
Mikael Magnusson
8e49a5fafb app: fix a typo 2011-02-12 18:16:05 +01:00
Michael Natterer
ec196a8ac4 app: allow to set a color for GimpCurveView's primary curve
and redo how the curves tool sets its curves in order to support this
without code duplication. Also change the color of the yellow curve in
the dynamics output editor to orange because yellow is hardly visible.
2011-02-10 20:05:50 +01:00
Michael Natterer
3ba0554628 app: use proper vivid colors for the background curves
instead of dull ones. The curve view already displays them with 0.5
opacity, so there is no reason to make them even harder to distinguish.
2011-02-09 09:26:06 +01:00
Michael Natterer
aaee95d545 app: experimentally color the background curves 2011-02-09 01:07:48 +01:00
Michael Natterer
6c252921af app: handle the inputs generically in GimpDynamicsOutputEditor
instead of having explicit code for each input in all functions.
2011-02-09 00:27:25 +01:00
Michael Natterer
5a28791cfb app: connect to the background curves' "dirty" signal in GimpCurveView
and make sure curves are not added twice to the background list.
Also warn when trying to remove a non-existent background curve.
2011-02-09 00:24:43 +01:00
Michael Natterer
2ed861fb8d Bug 638795 - Brush Dynamics Curve editor stutters
Update the toggles in the treeview only if a boolean property of the
output changes, and not on *each* output change which includes each
tiny curve editing.

Also fix formatting in the whole file.
2011-02-08 22:09:52 +01:00
Michael Natterer
e3b5c55ca2 Bug 597117 - impossible to drop a group as a sibling inside a group
Properly distinguish between dropping after a group and into it, by
having three drop areas on a collapsed row. Still handle expanded rows
as before, but indicate dropping into visually just as on a collapsed
row.
2011-02-08 09:35:38 +01:00
Michael Natterer
92f130fbc3 app: also run device history coords through the axis mapping curve function 2011-02-06 13:26:25 +01:00
Michael Natterer
f4af9b549e Globally switch to saying "window_id" instead of just "window"
when dealing with native window handles. Also get rid of using
GdkNativeWindow and simply consistently use guint32 all over the
place. This is more obvious and consistent and keeps the diff to the
gtk3-port branch smaller.
2011-02-06 12:07:55 +01:00
Michael Natterer
012eb1dd93 app: zero the reallocated keys and axes arrays in GimpDeviceInfo 2011-02-06 11:20:07 +01:00
Michael Natterer
e309d3cdf8 app: check that the model is not NULL before using it in GimpContainerComboBox
to be safe against GimpContainerView API being called during widget
destruction.
2011-02-06 11:20:07 +01:00
Michael Natterer
11ac0296b9 app: ref/unref the context in gimp_image_editor_set_context() 2011-02-06 11:20:07 +01:00
Martin Nordholts
366cddc856 app: gimp_image_get/set_imported/exported/save_a_copy_uri()
Add more proper core API for GimpImage URI management.
2011-02-02 22:28:46 +01:00
Martin Nordholts
d449317501 app: Add and use gimp_image_get_string_untitled() 2011-02-02 22:28:46 +01:00
Alexia Death
60a77f6db2 app: Fix and enable duplicate for dynamics 2011-02-02 21:48:10 +02:00
Martin Nordholts
480d6e0cf2 app: Add and use gimp_image_get_uri() 2011-01-26 08:19:39 +01:00
Martin Nordholts
ac773489e4 app: gimp_image_get_uri() -> gimp_image_get_uri_or_untitled() 2011-01-26 07:55:14 +01:00
Michael Natterer
27179d6219 app: don't duplicate code when setting GimpSpinScale's cursor 2011-01-22 23:23:02 +01:00
Michael Natterer
e27b5f6da2 app: remove unused variable in gimp_channel_tree_view_constructed() 2011-01-20 20:26:35 +01:00
Michael Natterer
4186d0114f app: add comment to improve readability 2011-01-20 20:26:34 +01:00
Michael Natterer
550669962b 622863 - Input Devices list is not resizeable
Derive from GtkPaned instead of GtkBox, and change the handle size to
12px via gtkrc so spacing rules are followed.
2011-01-20 20:26:34 +01:00
Michael Natterer
202124c438 app: implement GObject::constructed() instead of ::constructor() 2011-01-14 09:38:46 +01:00
Michael Natterer
229007106e app: don't pass the GtkStyle to gimp_curve_view_draw_grid()
Instead, set the cairo color in expose() before calling
draw_grid(). Also move a few lines of code around to make
the GTK3 port simpler.
2011-01-11 15:38:23 +01:00
Michael Natterer
0f0da4c712 app: various gradient editor changes and fixes
- return TRUE from event handlers if we handled the event
- remove the "instant update" toggle and feature
- move the color area left of the labels now that the toggle is gone
2011-01-07 15:09:17 +01:00
Michael Natterer
5caee48645 app: run all input axes through gimp_device_info_map_axis()
and let that function alone worry about whether there actually is a
curve for that axis.
2010-12-20 20:00:47 +01:00
Michael Natterer
62b0e96609 app: add gimp_devices_add_widget()
which is supposed to set up a widget for tablet events and make sure
the context changes on device changes. "supposed" because everything
is currently horribly broken on GTK+ 2.x. Use the function for all
affected widgets except for the canvas.
2010-12-19 21:23:54 +01:00
Michael Natterer
1e013e774c app: some cleanup in gimp_paned_box_position_drop_indicator() 2010-12-18 23:28:20 +01:00
Michael Natterer
4609bab1dd app: use gtk_entry_set_width_chars() to override GtkEntry's default width 2010-12-09 23:45:00 +01:00
Michael Natterer
bb91ba9d01 app: update the device name's style when devices get added/removed
This can't happen on GTK+ 2.x but why should I keep this generic code
on a branch.
2010-12-09 22:56:58 +01:00
Michael Natterer
9c98b0b804 app: sort present devices to the beginning of the device list
and make sure the core pointer is always first in the list.
2010-12-09 22:02:24 +01:00
Michael Natterer
6e2d56a9b8 app: don't reverse the device list after loading, it's sorted by name 2010-12-09 21:46:01 +01:00
Michael Natterer
8bc0e569ec app: use gimp_object_name_collate() when sorting device names 2010-12-09 21:45:04 +01:00
Michael Natterer
d91a1d5b6c app: don't call g_object_set_data() on a NULL object 2010-12-09 20:55:53 +01:00
Mikael Magnusson
60242667be app: don't use -1 for geometry hints where not allowed 2010-12-08 10:18:09 +01:00
Michael Natterer
0ba0b637f2 app: add gimp_devices_check_callback() with the signature of an event callback
and use it in the toolbox. Will soon be used in more places.
2010-12-06 10:23:15 +01:00
Michael Natterer
e50f6aaf0f app: make gimp_devices_select_device() private 2010-12-06 10:18:32 +01:00
Michael Natterer
d6f28f2274 Bug 550662 - DND prefers text/plain over text/svg+xml, should be other way around
Move the call to gimp_dnd_uri_list_dest_add() to the end of the DND
setup code because it adds text/plain for legacy URI DND support,
which is way too generic to be handled first.
2010-11-29 22:04:56 +01:00
Michael Natterer
4b729086a9 app: cast GtkTargetEntry.target to gchar* when freeing it
because it was made const in GTK+.
2010-11-29 15:41:38 +01:00
Michael Natterer
c4ec18790c Bug 598253 - Bug when copying path from a document to another document
Don't scale the SVG to image size when pasting or importing. SVGs have
a size just as pixel images, and there is no reason not to use that
size as-is.
2010-11-27 22:28:34 +01:00
Michael Natterer
b1106845d4 app: the tool-list and tool-grid views are gone, don't try to open them 2010-11-26 10:44:46 +01:00
Michael Natterer
88f2af98aa app: clean up the dynamics editor
Also fix its sensitivity when a read-only data is set. Fixes bug
curves).
2010-11-24 23:01:50 +01:00
Michael Natterer
ef87b83ff0 app: change toolbox geometry hints to something that's closer to the docs
Feels more correct now when resizing, but not really.
2010-11-20 20:44:16 +01:00
Michael Natterer
a598b2d1be app: I don't know what I was thinking when changing these function names... 2010-11-20 20:37:15 +01:00
Michael Natterer
74a09704ba app: some toolbox cleanup
Add precondition checks and assertions for needed members and remove
unused API.
2010-11-20 15:19:48 +01:00
Michael Natterer
e4a96c738e app: factor out duplicated code to gimp_tool_palette_get_button_size()
and use that function in GimpToolPalette and GimpToolbox.
2010-11-20 10:20:52 +01:00
Michael Natterer
281969b45d app: add GimpToolPalette which derives from GtkToolPalette
and move all of GimpToolbox' tool button code there.
2010-11-19 23:52:09 +01:00
Michael Natterer
6960dda6f2 app: draw GimpSpinScale's label with style->text, not style->fg 2010-11-19 14:08:37 +01:00
Michael Natterer
dc564954d5 app: namespace the ink blob
Blob -> GimpBlob, blob_foo() -> gimp_blob_foo() etc.
2010-11-14 16:43:21 +01:00
Michael Natterer
c4cd420ef8 app: rename GIMP_INK_BLOB_TYPE_ELLIPSE to GIMP_INK_BLOB_TYPE_CIRCLE
- TYPE_SQUARE is also named SQUARE and not RECTANGLE
- serialization doesn't suffer from the changed name because it's the
  default value that never gets serialized
- a lot of messy code in the ink options can be replaced by a one-liner
  because the enum names now match their resp. stock items
2010-11-14 16:29:42 +01:00
Michael Natterer
1741d39d8b app: gimp_widget_flush_expose() return if the widget is not drawable 2010-11-10 00:13:07 +01:00
Michael Natterer
cacf8b550f app: add gimp_widget_flush_expose() utility function
which flushes all pending exposes for a widget without running the
main loop. Useful for updating progress bars without returning to the
main loop.
2010-11-09 19:33:15 +01:00
Michael Natterer
71de3d7bdf app: use "pixels/unit" as label for the resolution menu
instead of "pixels/abbreviated unit". This is soon going to be
supported generically by GimpUnitComboBox just as with the old unit
menu.
2010-11-05 16:24:37 +01:00
Alexia Death
dfd5470a2e Merge remote branch 'origin/master' into soc-2010-cage-2 2010-11-04 20:00:36 +02:00
Alexia Death
27c77e6a5e Merge branch 'master' into soc-2010-cage-2 2010-11-04 00:41:45 +02:00
Mikael Magnusson
90e525ca09 app: use a spin scale for the brush size (have to limit size to 1000 temporarily) 2010-11-02 14:41:21 +01:00
Michael Natterer
8f991c5950 app: make the brush, pattern etc selecing boxes more compact
by integrating their label instead of requiring one externally. This
way we get rid of some more labels in the tool options. Also clean up
tool options further (add more spin scales, and some general
reordering and spacing cleanup).
2010-11-02 14:05:47 +01:00
Michael Natterer
37038ab77f app: add an opacity prop scale 2010-11-01 22:07:39 +01:00
Michael Natterer
8bf497294e app: enable adjustment based prop widgets for all numeric param types 2010-11-01 21:48:19 +01:00
Michael Natterer
e84a0eebf9 app: fix gimp_prop_spin_scale_new() by setting the pspec on the right object 2010-11-01 20:54:43 +01:00
Michael Natterer
864e6bdfc0 app: don't show a text cursor when not over the editable text 2010-11-01 20:51:13 +01:00
Michael Natterer
01f4bad1f6 app: add gimp_prop_spin_scale_new() 2010-11-01 20:04:35 +01:00
Michael Natterer
ae3afca697 app: add new widget GimpSpinScale which is a combined spinbutton and scale 2010-11-01 20:03:39 +01:00
Martin Nordholts
48690d60e1 app: Add gimp_tools_get/set_tool_options_gui()
Add gimp_tools_get_tool_options_gui() and
gimp_tools_set_tool_options_gui() widgets utility functions.
2010-10-31 13:05:15 +01:00
Michael Natterer
b9a7c121a4 app: don't inherit from GtkHBox or GtkVBox
Instead, inherit from GtkBox directly and set the orientation in
init().  Replace more gtk_container_add() by gtk_box_pack_start() in
the reparented classes.
2010-10-30 15:44:46 +02:00
Michael Natterer
060a08da5a app: +1 2010-10-30 15:43:56 +02:00
Michael Natterer
56dee7245a app: and one more 2010-10-30 15:43:17 +02:00
Michael Natterer
ebc92dc5b4 app: more gtk_container_add -> gtk_box_pack_start 2010-10-30 15:42:25 +02:00
Michael Natterer
0829e5b028 app: simplify how the colormap editor sets FG/BG colors
Set the FG/BG on the widget's own context and remove the "selected"
signal and its callback in dialogs-constructors.c
2010-10-28 03:09:53 +02:00
Michael Natterer
112ca01064 app: bye bye deprecated GtkPreview
Use a GimpPaletteView for the colormap editor.
2010-10-28 02:16:52 +02:00
Michael Natterer
32d5d1681b app: don't crash if the palette is NULL 2010-10-28 02:16:52 +02:00
Michael Natterer
9dee789cfd app: emit "update" when the viewable goes away via the weak notify 2010-10-28 02:16:51 +02:00
Alexia Death
e8df164366 app: Add dynamics selector to the tool options 2010-10-27 21:49:24 +03:00
Michael Natterer
d1307a84a4 app: return TRUE from button_press() so the event doesn't get to the notebook 2010-10-27 15:39:52 +02:00
Michael Natterer
f46122b862 app: add lots of accessors to GimpPalette
and use them all over the place instead of directly accessing the struct.
2010-10-27 14:36:44 +02:00
Michael Natterer
6fc4c42298 Bug 348183 - palette editor doesn't show all palette colors
Remove a crack eventbox and a double crack alignment and suddenly the
widget behaves properly. I have no idea what "important" feature I
killed with that removal, but the whole palette editing code needs
some serious chopping soon.
2010-10-25 22:54:55 +02:00
Michael Natterer
71ab7f4291 app: cairo_translate() by allocation.x,y 2010-10-22 18:46:57 +02:00
Michael Natterer
8f8ea74d1f app: return TRUE from button and motion callbacks because we handled the events 2010-10-21 13:19:51 +02:00
Michael Natterer
199804bce5 app: fix alphabetic order 2010-10-21 12:02:49 +02:00
Michael Natterer
8a1517f18b app: properly select icon view items
so that they are visually selected also when the widget never got
focus.
2010-10-21 11:53:41 +02:00
Michael Natterer
c60e29254b app: don't try to set properties of a NULL icon view 2010-10-21 11:38:58 +02:00
Michael Natterer
7cfda8cc33 app: use pango_cairo_show_layout() instead of a GdkPangoRenderer 2010-10-20 19:25:03 +02:00
Michael Natterer
83407d230c app: build with GSEAL_ENABLE (don't access widget->requisition) 2010-10-20 19:09:54 +02:00
Michael Natterer
c8bef14682 app: fix Makefile.am formatting 2010-10-20 19:04:32 +02:00
Michael Natterer
090a465362 app: don't pass "GdkRectangle *draw_area" to gimp_view_renderer_draw()
Instead, handle the drawing offset generically by offsetting the
cairo_t in two places in the callers, and only pass the width and
height available for drawing.
2010-10-20 18:04:18 +02:00
Michael Natterer
7ab96f6b5c app: don't chain up in GtkWidget::size-request()
It's useless with GTK+ 2.x and entirely breaks the widget with GTK+ 3.x
2010-10-20 17:32:54 +02:00
Sven Neumann
1130e8c890 Bug 631728 - Crash or Gtk-CRITICAL on File->Open
Check return value of gtk_icon_theme_lookup_by_gicon() before using it.
2010-10-18 18:28:57 +02:00
Michael Natterer
0e9442b7c0 app: fix typo in comment 2010-10-18 12:44:58 +02:00
Michael Natterer
628439bc31 app: simplify toolbox wilber drawing a lot 2010-10-15 16:03:36 +02:00
Michael Natterer
37effb99a4 app: use the window's allocation instead of gdk_drawable_get_size() 2010-10-15 15:17:12 +02:00
Michael Natterer
5af8cc1d40 app: translate the cr by allocation.x,y instead of doing this while drawing 2010-10-15 15:06:43 +02:00
Michael Natterer
b69eea8cd6 app: implement GObject::dispose() instead of GtkObject::destroy() 2010-10-15 14:08:36 +02:00
Michael Natterer
3c18ba3497 app: implement GObject::dispose() instead of GtkWidget::destroy() 2010-10-15 13:48:36 +02:00
Michael Natterer
756b7310e7 app: cairo_translate() by allocation.x,y instead of doing that when drawing 2010-10-15 13:02:05 +02:00
Michael Natterer
1cc27bcef7 app: port gimp_view_renderer_draw() to take a cairo_t* instead of GdkWindow*
and pass in the cr with clipping set up from the callers instead.
2010-10-15 12:53:58 +02:00
Michael Natterer
dc39857238 app: add GimpSegment as replacement for GdkSegment 2010-10-15 12:37:36 +02:00
Michael Natterer
74458f46ee app/libgimpwidgets: move GimpUnitStore and GimpUnitComboBox to libgimpwidgets 2010-10-14 22:15:25 +02:00
Michael Natterer
b24c25d317 app: don't use GET_PRIVATE() before the precondition check 2010-10-14 17:33:07 +02:00
Christian Krippendorf
ff03681bdf Bug 627328 - GIMP 2.6.10 segfaults when CTRL-left click on a layer mask
Move the g_signal_emit() to the end, because the cell->renderer could
be changed and cause a segfault. Also check cell->renderer before
dereferencing it.
2010-10-10 22:32:22 +02:00
Martin Nordholts
cc7755f876 Port stuff to gimp_item_is_text_layer()
Port stuff to gimp_item_is_text_layer() instead of
gimp_drawable_is_text_layer(). Nevermind the previous commit, it
should never have been pushed...
2010-10-05 07:39:00 +02:00
Martin Nordholts
49a0be731e app: s/gimp_drawable_is_text_layer/gimp_item_is_text_layer/g 2010-10-05 07:12:30 +02:00
Michael Natterer
7dbaf348c5 app: fix gimp_text_buffer_get_color_tag()
Change the generated tag names to use #rrggbb notation and compare the
colors on an 8 bit basis to make sure the comparison and the tag names
exist in the same set of values (otherwise the text buffer gets into
an inconsistent state that can even lead to crashes).
2010-10-02 19:53:39 +02:00
Michael Natterer
68b380fa4e app: forgot to check for "color_differs" for breaking out of a loop
Shouldn't change anything, just be slightly faster in some cases.
2010-10-02 19:51:49 +02:00
Michael Natterer
6a2785173d app: port GimpSamplePointEditor to the "sample-point-moved" signal 2010-10-01 09:27:57 +02:00
Michael Natterer
81cfb44047 app: use a GimpColorPanel not a GimpColorButton in the text style editor
so we get proper color previews in the popup menu.
2010-09-29 21:14:51 +02:00
Michael Natterer
7ed79e9fe1 app: fix off-by-0.5 in boundary drawing
which doesn't seem to have any visual effect...
2010-09-26 23:00:23 +02:00
Michael Natterer
8f9ec0650f app: move code from GtkObject::destroy() to GObject::dispose() 2010-09-26 22:38:01 +02:00
Alexia Death
74e5864fa6 Merge branch 'master' into soc-2010-cage-2 2010-09-26 23:08:15 +03:00
Michael Natterer
74fe162f93 app: move adding an arc path out to a utility function 2010-09-24 13:12:34 +02:00
Michael Natterer
612aee9f33 app: change segment drawing to using pixel centers and CAP_SQUARE line ends
This looks exactly the same for the selection, but is needed like that
for segment drawing in tools.
2010-09-23 19:24:10 +02:00
Sven Neumann
5abae32923 app: cache bezier representation in GimpVectors object
Introduce gimp_vectors_get_bezier() which creates the bezier
representation on demand and then caches it for subsequent calls
until the vectors object is frozen.

At some point we should introduce GimpVectors::changed instead
of relying on the fact that a vectors object is always frozen
and thawn whenever it is changed...
2010-09-16 21:36:51 +02:00
Sven Neumann
81182d93f7 app: use gimp_label_set_attributes() instead of markup
Use our convenient label utility function for styling. Also correct
box packing (passing FALSE, TRUE to gtk_box_pack_start() is pointless).
2010-09-16 21:12:07 +02:00
Martin Nordholts
ec7fc273d8 Bug 629436 - the current tool is not shown in the tool options dialog 2010-09-16 17:46:10 +02:00
Michael Natterer
7f9a4d51f7 app: get rid of using gdk_draw to construct bitmap cursors
At the same time, get rid of bitmap cursors alltogether. Instead
(because it looks ugly to have GDK convert RGBA cursors into bitmaps
for old X servers), add the bitmaps as proper PNGs and simply use them
as RGBA cursors.
2010-09-10 19:12:52 +02:00
Michael Natterer
3b0c4e2e5e app: port a gdk_draw_rectangle() in GimpComboTagEntry to cairo 2010-09-10 13:47:04 +02:00
Alexia Death
6a22f17ab3 Merge branch 'master' into soc-2010-cage-2 2010-09-02 18:49:35 +03:00
Michael Natterer
bfce429d24 app: some minor fixes in GimpTextStyleEditor
- initialize all of the color strust in init().
- simplify font_changed().
2010-09-02 00:42:59 +02:00
Michael Natterer
ad819263af Bug 620674 - Adding support for multi-colored text layer
Apply slightly modified patch from Barak Itkin that adds colors for
text spans plus GUI to edit these colors.
2010-09-02 00:20:04 +02:00
Alexia Death
d98bd748e7 Merge branch 'master' into soc-2010-cage-2 2010-09-01 11:21:58 +03:00
Sven Neumann
813ee3de88 app: port layout drawing to cairo 2010-08-31 22:59:34 +02:00
Michael Natterer
02abdff8aa app: move the wilber drawing functions to gimpcairo.c 2010-08-28 15:30:02 +02:00
Sven Neumann
ac33ead19d app/widgets: plug memory leak 2010-08-27 15:13:49 +02:00
Michael Natterer
f260cd766e app: add gimp_cairo_add_segments()
which adds an array of GdkSegments to the current path, and use it in
gimpdisplayshell-draw.c instead of duplicating the code three times.
2010-08-27 14:58:43 +02:00
Michael Natterer
3e1b14fd1a app: add widgets/gimpcairo.[ch] for cairo utility functions
and move the stipple pattern creation function there.
2010-08-27 14:41:30 +02:00
Alexia Death
aee148a486 Merge branch 'master' into soc-2010-cage-2 2010-08-26 21:50:55 +03:00
Martin Nordholts
9bd423994d app: Make Alt-Click on layer thumbnail in Layers dockable discoverable
Make Alt-Click on layer thumbnail in Layers dockable discoverable, at
least in theory, by adding this info to the menu item tooltips.
2010-08-17 18:59:04 +02:00
Martin Nordholts
a0dc12a0f3 Remove "Text to Selection" actions
Remove "Text to Selection" actions. They were added to make the
feature more discoverable. But we should make the original "Alpha to
selection" feature more discoverable, not treating text layers in a
special way where it's not needed.
2010-08-17 18:59:04 +02:00
Michael Muré
f6316285be structure of the cage tool, with an options object 2010-08-08 13:17:10 +02:00
Michael Natterer
7df1a4f3df app: clean up GimpColorBar rendering and add cairo_surface_mark_dirty() 2010-07-30 16:25:08 +02:00
Michael Natterer
208096bc7c app: port GimpColorBar drawing to cairo 2010-07-30 14:58:55 +02:00
Michael Natterer
4466b3a35b app: remove code duplication in the histogram and curve views
by letting the histogram view always draw the background and the outer
borders. Also fix a lot of off-by-one problems in the curve view which
occur due to the 0.5,0.5 offset of cairo line drawing.
2010-07-30 12:51:03 +02:00
Michael Natterer
c548a593e5 app: port GimpHistogramView drawing to cairo 2010-07-30 12:18:08 +02:00
Michael Natterer
900fd00c00 app: port GimpTagPopup drawing to cairo 2010-07-29 14:41:50 +02:00
Michael Natterer
d28a04ac04 app: port GimpFgBgEditor drawing to cairo 2010-07-29 14:20:37 +02:00
Michael Natterer
c5951857e1 app: forgot cairo_destroy() 2010-07-29 14:10:01 +02:00
Michael Natterer
8d67b5b69b app: port GimpFgBgView rendering to cairo 2010-07-29 14:05:51 +02:00
Michael Natterer
06488d03fe app: draw the curve view's background with cairo
and fix focus line drawing by one pixel.
2010-07-28 16:15:54 +02:00
Michael Natterer
c3a4825a8a app: simplify GimpOverlayFrame drawing a lot
Thanks to Benjamin Otte for some tips.
2010-07-27 17:26:40 +02:00
Sven Neumann
8cf801c8e0 app: allow to delete curve points
Pressing Delete in the Curve view now deletes the selected point
on the curve.
2010-07-26 01:08:44 +02:00
Michael Natterer
4165dfb217 app: move the alt-click selection feature to GimpItemTreeView
so it works the same for layers, channels and vectors and remove the
separate (and different) implementations from all subclasses.
2010-07-20 23:36:16 +02:00
Michael Natterer
8b31211639 Fix the bulid after GtkNotebookPage got deprecated in gtk-2-22
In all GtkNotebook::switch_page() callbacks, simply replace
GtkNotebookPage* by gpointer.
2010-07-16 15:24:25 +02:00
Michael Natterer
314a6ab926 app: merge the layer, channel and vectors repositioning APIs
into an API based on GimpItem.
2010-07-08 18:08:13 +02:00
Michael Natterer
fad6053643 Make cairo code work with newer cairo backends that actually use caching
Call cairo_surface_flush() before reading or writing a surface's
pixels directly, and use cairo_surface_mark_dirty() after writing
pixels directly, so we don't read old pixels, and our written pixels
get actually used.
2010-06-28 12:23:31 +02:00
Michael Natterer
d2fd8a8dc8 app: don't call gimp_cell_renderer_viewable_pre_clicked() on a NULL cell 2010-06-28 00:13:19 +02:00
Martin Nordholts
706900c4f6 Bug 589010 - Don't make Alt-Clicked layers active
Add a "pre-clicked" signal to GimpCellRendererViewable that can
prevent a selection from happening. Move the Alt-Click code in
GimpLayerTreeView to this signal and if a layer is Alt-Clicked, don't
go ahead and make the layer active. Also add a test for this use case.
2010-06-27 21:46:53 +02:00
Martin Nordholts
4471f0ea4b Bug 622683 - file export defaults to the wrong directory / folder
We were not in sync with the spec:
http://gui.gimp.org/index.php/Save_%2B_export_specification#exporting_files
2010-06-27 14:11:13 +02:00
Martin Nordholts
0258461c9f app: Format widgets/gimpcellrendererviewable.h
Format widgets/gimpcellrendererviewable.h and make room for
gimp_cell_renderer_viewable_pre_select().
2010-06-27 11:51:44 +02:00
Martin Nordholts
3f0b473680 app: Don't use actions for Alt-Click on layer
Don't use an action based implementation of Alt-Click for "Layer to
selection" since the actions will always use the active drawable,
preventing us from solving bug 589010. Use the tree model and
gimp_channel_select_alpha() instead.
2010-06-27 10:40:56 +02:00
Martin Nordholts
aeed966943 app: Format widgets/gimplayertreeview.c function prototypes
Format widgets/gimplayertreeview.c function prototypes with
egtk-format-protos.
2010-06-27 10:40:56 +02:00
Michael Natterer
40423b26a8 app: free ui_manager_name in finalize() 2010-06-26 23:28:17 +02:00
Michael Natterer
79dbfb2b51 app: remove the docks manually in dispose() for the reason below 2010-06-26 23:27:17 +02:00
Michael Natterer
de3a5896f3 app: remove the children manually in dispose() for the reason below 2010-06-26 23:26:00 +02:00
Michael Natterer
0abe67389d app: remove the dockables manually in dispose()
using the proper API, so all stuff is properly disconnected and the
list items managing them are freed to. Also make removing robust
against dockbook->dock being NULL.
2010-06-26 23:23:50 +02:00
Martin Nordholts
ed630a1852 app: Remove unused variables and dead code 2010-06-24 22:46:20 +02:00
Michael Natterer
991210c0f9 Bug 622608 - GIMP crashes when clicking any scroll bar from combo boxes
Don't cancel the popup in grab_notify() if the popup's grab was
shadowed by one of the widgets in the popup, like the scrollbar.
2010-06-24 21:56:41 +02:00
Michael Natterer
c47edb5016 app: improve the g_warning() about undestroyed dialogs 2010-06-24 18:38:17 +02:00
Michael Natterer
403908829a app: add comment about why we can't use GimpContainerView API in init() 2010-06-24 18:38:17 +02:00
Michael Natterer
3c565a1736 app: unref context, dialog_factory and ui_manager in GObject::dispose()
The were not unrefed at all before
2010-06-24 18:38:16 +02:00
Michael Natterer
ad83462570 app: unref the filtered container in GObject::dispose()
It was simply never destroyed at all before.
2010-06-24 18:38:16 +02:00
Michael Natterer
b43be361ff app: add a forgotten g_object_unref()
so all dockables are destroyed when a dock is destroyed.
2010-06-23 22:50:45 +02:00
Michael Natterer
ea050b267e app: don't leak all cached GtkTreeIters in container views
This is evil: the hash table of "insert_data" is created on demand
when GimpContainerView API is used, using a value_free_func that is
set in the interface_init functions of its implementors. Therefore, no
GimpContainerView API must be called from any init() function, because
the interface_init() function of a subclass that sets the right
value_free_func might not have been called yet, leaving the
insert_data hash table without memory management.

Call GimpContainerView API from GObject::constructed() instead, which
runs after everything is set up correctly.
2010-06-23 00:20:21 +02:00
Michael Natterer
a60463cd8e app: free one more list returned by gtk_container_get_children() 2010-06-23 00:19:44 +02:00
Michael Natterer
46e1410213 app: free the list returned by gtk_container_get_children() 2010-06-22 23:06:35 +02:00
Michael Natterer
865a1f4896 app: free the string returned by gimp_dock_window_get_description() 2010-06-22 23:06:35 +02:00
Michael Natterer
2a984ef51f Bug 612618 - Font selection remains visible
Connect to "grab-notify" and "grab-broken-event" and close the popup
when the grab is lost.
2010-06-22 20:09:52 +02:00
Michael Natterer
ae0ae9fcb8 app: pass all construct params to g_object_new() 2010-06-21 21:08:13 +02:00
Michael Natterer
ac6ee07184 app: the tests should succeed, so should a normal gimp session
Don't divide by zero in gimp_session_info_class_apply_position_accuracy()
when klass->position_accuracy is 0, which happens on each exit in a normal
session.
2010-06-20 23:26:45 +02:00
Martin Nordholts
ce33255588 app/tests: Also add error margin to 'gimpsessioninfo-book.c'
Also add error margin to 'gimpsessioninfo-book.c' and update reference
files. This makes 'make distcheck' pass, and it passes more reliably.
2010-06-20 20:30:24 +02:00
Martin Nordholts
49d951d49e app: Introduce error margin in sessionrc in test cases
Introduce a few pixels of error margin in sessionrc, otherwise the
tests are too fragile, widgets have a tendency to change size a bit
and window managers have a tendency to move windows a bit.

Still needs more work, should probably do the same on book positions
too...
2010-06-19 23:55:35 +02:00
Martin Nordholts
b799a8bd03 app: Remove unnecessary gimp_dockbook_refresh_tab_layout_lut() calls
We don't need to call gimp_dockbook_refresh_tab_layout_lut() in
added() and removed() because we call
gimp_dockbook_update_auto_tab_style() in add() and remove().
2010-06-18 20:31:33 +02:00
Michael Natterer
8ab8a25c99 app: some disabled cairo bling code
that draws a gradient in the background of the frame. Not meant
seriously, just something to play with for everybody interested.
2010-06-18 13:51:49 +02:00
Michael Natterer
c1c715c2d1 app: don't draw any background if the overlay child is app-paintable
instead of never drawing a background. Doesn't make any difference,
but makes GimpOverlayBox a more general container. Also, the offscreen
GdkWindow doesn't need any event but GDK_EXPOSURE_MASK.
2010-06-18 13:46:39 +02:00
Michael Natterer
27ec3aa812 app: switch off double buffering on the entire offscreen widget tree
Also always return FALSE from the expose and damage event handlers.
2010-06-18 13:45:03 +02:00
Michael Natterer
30de295cf4 app: make the alpha channel work on canvas overlay widgets
* app/widgets/gimpoverlaychild.c: when creating offscreen windows, try
  to set an RGBA colormap on the offscreen window's widget and use the
  RGBA colormap to create the window. This has to be done here,
  because it's not possible to get to the right screen *inside* the
  offscreen widget before it's parented, and we need that screen
  before the widget is realized, and the widget can't be parented
  before it's realized or it will get the wrong parent window.
  Everything clear now?

* app/widgets/gimpoverlayframe.c: draw the round corners only if the
  screen has an RGBA colormap.
2010-06-12 23:48:29 +02:00
Michael Natterer
d3e7864b5c app: code cleanup 2010-06-12 19:37:03 +02:00
Michael Natterer
fc3a89ab0e app: make GimpOverlayFrame work as standalone container
Implement size_request() and size_allocate() so it can be used to pack
an arbitrary widget without the need for being subclassed.
2010-06-12 19:23:22 +02:00
Michael Natterer
cabc3aa67a app: split out the round corners code from GimpOverlayDialog
into a new GtkBin subclass called GimpOverlayFrame.
2010-06-12 19:02:51 +02:00
Michael Natterer
4da97f95c9 app: don't leak a string returned by g_object_get(), and some cleanup 2010-06-12 18:45:02 +02:00
Michael Natterer
c1f63290bc app: add back the code that aligns the menu with the menu button 2010-06-12 11:38:15 +02:00
Martin Nordholts
6812d5bdce Bug 346881 - Remove redundant title of tab and move menu button up
Remove the dockable drag handle and move the menu button it hosts up
to the GimpDockbook, with the gtk_notebook_set_action_widget() API.

This frees up quite a lot of screen estate which can be used for the
content of dockables instead.
2010-06-12 01:24:39 +02:00
Martin Nordholts
9b86acd16b Add 'Automatic' Tab Style support
Add support for a new type of Tab Style called 'Automatic'. This tab
style makes the GimpDockbook use the biggest actual tab style it can
for its auto tab style dockables, based on its widget allocation.

The tab style candidates for auto tab style are "Status + Blurb",
"Status + Text" and "Status". A docked widget can also say that it
wants to use "Icon" instead of "Status" for its auto tab style. The
'Tool Options' dockable does this. This is to be as backwards
compatible with the old tab style setup, we make 'automatic' the
default everywhere.

We have quite a bit of dependency to internal layout code in
GtkNotebook, but the current code should be pixel perfect and rather
complete.

Also add a basic regression test.
2010-06-12 01:23:42 +02:00
Martin Nordholts
501f97b54b Add gimp_preview_tab_style_to_icon() utility function
Also fix wrong conversion from PREVIEW_NAME to ICON_BLURB
2010-06-12 00:15:13 +02:00
Martin Nordholts
e8e469c53c app: Add gimp_dock_temp_add/remove()
In order to get accurate measurements of widgets that will be put in a
GimpDock, add gimp_dock_temp_add() and gimp_dock_temp_remove(). That
way we can add a widget temporarliy, measure it with the
GimpDock::font-scale property applied, then remove it when we're
done. We can't apply style properties on widget detached from a
GdkScreen hierarchy :(
2010-06-11 23:25:14 +02:00
Martin Nordholts
e827e7f1bf app: Add gimp_dockable_create_event_box_tab_widget() 2010-06-11 07:35:07 +02:00
Sven Neumann
85a24f0420 app: fix compiler warning and minor formatting issues 2010-06-09 22:57:53 +02:00
Michael Natterer
3e2714508f app: add log output of key event handling in GimpWindow
using the "key-events" debug key.
2010-06-09 18:55:48 +02:00
Michael Natterer
434bfbd6fa app: rename GimpToolOverlay to GimpOverlayDialog
because it's only used by tools currently, but not related to them in
any way.
2010-06-03 22:32:30 +02:00
Michael Natterer
e6983567f2 app: add GimpContainerIconView, a new GimpContainerView based on GtkIconView
This is supposed to finally replace GimpContainerGridView along with
GtkWrapBox. The code is experimental and currently even crashes
without a modified GTK+, so it's disabled. Keeping it in GIT makes
developing easier though.
2010-06-03 22:19:09 +02:00
Michael Natterer
15906be4d9 app: pull more code into GimpContainerTreeStore
Keep a list of GimpCellRendererViewable around and add API to add
them. When items are removed or the store is cleared, set the
renderers' "viewable" property to NULL so they don't keep refing the
viewable.

This is not really "model" code but needs to be done for all container
views that have viewable cell renderers.

GimpContainerComboBox and GimpContainerEntry lacked that clearing, so
this change might fix some cases where objects (even images) were
removed but still stuck in memory until the model changed again.
2010-06-03 22:09:02 +02:00
Michael Natterer
6571759c43 app: make sure tool overlay dialogs close on Escape when they are focussed 2010-06-03 22:04:54 +02:00
Martin Nordholts
7b4c731192 app: Add gimp_dockbook_get_tab_icon_size() 2010-06-02 07:56:25 +02:00
Michael Natterer
356d2fb88c app: remove #include "gimpcontainergridview.h" 2010-05-30 18:10:35 +02:00
Michael Natterer
7cdf66a9a1 app: remove GtkVWrapBox because it's unused 2010-05-30 17:22:30 +02:00
Michael Natterer
6429c3de1b app: #undef GSEAL_ENABLE to build against the gtk-2-22 branch
GDK structs and objects have been sealed in gtk-2-22, but we can't
use the newly introduced accessors yet.
2010-05-30 17:19:47 +02:00
Michael Natterer
3a1c319c91 app: disable double buffering on all offscreen widgets
They are rendered only after being completely drawn anyway, so there
is no use in wasting an additional buffer for them.
2010-05-26 11:47:52 +02:00
Martin Nordholts
064c3f661a app: Add gimp_dockable_convert_tab_style() 2010-05-22 20:11:43 +02:00
Martin Nordholts
6efcab2e51 app: Add gimp_dockbook_recreate_tab_widgets() 2010-05-22 19:31:27 +02:00
Michael Natterer
788ba611af app: base multiple selection API on the GtkSelectionMode enum
change get,set_multiple_selection(gboolean) to
get,set_selection_mode(GtkSelectionMode) so the APIs are consistent
with GTK+.
2010-05-19 20:07:31 +02:00
Michael Natterer
ae7449a81b app: use a GimpContainerTreeStore for GimpContainerEntry
again results in lots of removal of duplicated code.
2010-05-17 22:35:12 +02:00
Michael Natterer
0d659b0496 app: add "use-name" property and API to GimpContainerTreeStore
to allow using GimpObject::name instead of GimpViewable::description
2010-05-17 22:34:09 +02:00
Michael Natterer
998b906dcd app: use a GimpContainerTreeStore for GimpContainerComboBox
which results almost only in code removal :)
2010-05-17 22:05:08 +02:00
Michael Natterer
89f7500b79 app: add gimp_container_tree_store_columns_init()
which initializes the type array with the default columns.
2010-05-17 21:34:11 +02:00
Michael Natterer
e1a88379d0 app: remove the model column enum from gimpcontainertreeview.h
and use the right enum from gimpcontainertreestore.h all over the
place instead.
2010-05-17 21:28:17 +02:00
Michael Natterer
104d0ffb3e app: add gimp_container_tree_store_columns_add()
which adds a column to the GType array used for creating a
GimpContainerTreeStore.
2010-05-17 21:22:36 +02:00
Michael Natterer
82a5c62e54 app: add GimpContainerTreeStore which is a GtkTreeStore subclass
and pulls the store handling logic out of GimpContainerTreeView so
it can be reused.
2010-05-17 21:06:28 +02:00
Martin Nordholts
d7dc2dc1ab app: Make tooltips in the toolbox work again
We need to be able to pass a GimpUIManager to
gimp_dialog_factory_dialog_new(), so make that possible. Also make
sure to set ui_manager in gimp_dialog_factory_dialog_new_internal()
when we create both a dock window and a dock, so tooltips works in
toolboxes created from scratch.
2010-05-16 12:19:18 +02:00
Martin Nordholts
e3b0bda962 app: Use 'create' not 'new' in dockable instance creation methods
Use 'create' not 'new' in GimpDockable instance creation methods to be
consistent with the rest of the code base.
2010-05-15 20:21:55 +02:00
Michael Natterer
67ba62154e app: fix and improve text style overlay keyboard interaction
- app/widgets/gimptextstyleeditor.c: don't block all key events so
  they can reach the canvas.

- app/display/gimpdisplayshell-callbacks.c: instead, ignore canvas key
  events when the canvas has no focus.

This fixes navigating out of the text style editor with TAB, moving
focus to the canvas. I have no clue why navigating *between* the
widgets in the style editor doesn't work.
2010-05-12 19:00:18 +02:00
Michael Natterer
46ea197171 app: avoid the deprecated and sealed GTK_OBJECT_FLAGS() 2010-05-10 17:54:49 +02:00
Michael Natterer
7c042df739 app: use a GtkToolPalette for the grid of tools in the toolbox 2010-05-10 17:30:17 +02:00
Michael Natterer
1833a6eaa1 app: honor the exact region when drawing and invalidate overlay children
gimp_overlay_child_expose(): clip drawing to event->region.

gimp_overlay_child_damage(): transform and invalidate event->region's
rectangles individually to avoid redundant invalidations.
2010-05-01 17:45:31 +02:00
Michael Natterer
506469f9f9 app: minor formatting cleanup 2010-04-26 18:52:49 +02:00
Alexia Death
5e1c9d228c app: Fix tool preset editor init 2010-04-24 18:51:42 +03:00
Alexia Death
06c1b290d0 app: Add tool preset editor to controll what elements get applied
I had to remove the asserrt in tool preset constructor, because with it
it wasnt possible to initalize an empty model object for the editor.
At init time the gimp object passed to the constructor is not yet available.
2010-04-24 17:55:54 +03:00
Michael Natterer
a2c70822d4 Use accessors from GTK+ 2.20 instead of using sealed members directly 2010-04-19 19:21:07 +02:00
Martin Nordholts
39349e0658 app: Remove _for_style in gimp_dockable_new_tab_widget_for_style()
It became reduntant when 'get' was changed to 'new'.
2010-04-18 18:01:14 +02:00
Martin Nordholts
d35f4d5db4 app: Clarify GimpDockable tab widget interface
The function gimp_dockable_get_tab_widget() and
gimp_dockable_get_drag_widget are not getters, they create new
widgets. Furthermore, gimp_dockable_get_tab_widget() doesn't use the
instance tab style but takes a tab style paramter. Rename the
functions to gimp_dockable_new_tab_widget_for_style() and
gimp_dockable_new_drag_widget() to reflect this.
2010-04-18 17:42:26 +02:00
Michael Natterer
4c4c861aa1 app: make sure GimpToolPreset got the "gimp" construct property passed
and pass a Gimp when creating the preset editor's local model.
2010-04-11 16:18:21 +02:00
Michael Natterer
0f47beff78 app: turn "context" into a CONSTRUCT_ONLY property and assert it being set 2010-04-11 16:17:27 +02:00
Michael Natterer
1c786ae5d4 app: don't forget to free the models of the dynamics and preset editors 2010-04-11 15:54:09 +02:00
Michael Natterer
ccf8d1930d app: add missing bits so GimpToolPresetEditor doesn't warn and crash 2010-04-11 13:40:28 +02:00
Michael Natterer
430b0e5517 app: add a GimpContext parameter to all functions which create GimpData
and pass a context whereever needed. Fix up gimp_tool_preset_new()
to actually make a copy of the context's active tool's options.
2010-04-05 13:26:31 +02:00
Michael Natterer
c31ad02670 app: some cleanup in the tool preset editor 2010-04-04 15:01:32 +02:00
Michael Natterer
7ea16558b6 app: some cosmetic cleanup in the multiple selection code 2010-04-04 15:00:26 +02:00
Michael Natterer
21f1e882b2 app: fix warning when the data factory's container is empty
Don't append a NULL item to priv->selected_items; also do some cleanup.
2010-04-04 14:59:03 +02:00
Michael Natterer
efed2bf623 app: some cleanup and fixes in the tool preset infrastructure 2010-04-04 13:58:55 +02:00
Alexia Death
29f7fe87b0 Base infra for tool presets. 2010-04-03 21:06:15 +03:00
Michael Natterer
a6b2d102f3 app: add utility functions for getting GtkTextTag properties
and also #define the names of the properties we (ab)use, so we don't
have to use magic strings all over the place, and we don't have to use
g_object_get() either.
2010-04-03 18:04:50 +02:00
Michael Natterer
e856ca9552 app: handle kerning tags in the same way as baseline, size and font 2010-04-02 15:19:27 +02:00
Aurimas Juška
381088b4b8 app: Bug 614604 - Crash when selecting a gradient from tool dialog
Actually disable multiple selection in all views by default. (It is
enabled explicitly where needed).
2010-04-02 00:29:43 +03:00
Michael Natterer
2e1e5393fe app: make sure the baseline spinbutton always shows the right value 2010-03-31 19:13:46 +02:00
Michael Natterer
b4e86aa6ec app: make sure the "size" spinbutton shows the size used for inserting text 2010-03-28 21:52:10 +02:00
Michael Natterer
91cce1c81b app: add size control for text spans, does not work as expected yet 2010-03-28 21:38:31 +02:00
Michael Natterer
900a99ecb3 app: add binding signals for changing the text size (still unused) 2010-03-20 23:18:14 +01:00
Michael Natterer
28891670e8 app: implement deleting of devices (unplugged devices' settings only) 2010-03-20 22:56:56 +01:00
Michael Natterer
9565ef44a9 app: make sure the selected item's parent paths are all expanded 2010-03-14 22:59:29 +01:00
Martin Nordholts
520da707c1 app: Only show active dockables in dock window titles
Refactor stuff a bit so that the dock window description can be both
short and long. The short version only have the active dockables, and
the long version have all the dockables in the description string. We
use the short version for the window title and the long version for
the Recently Closed Docks menu items.
2010-03-13 20:02:55 +01:00
Martin Nordholts
a915132ee6 app: Don't call the dock title a title, but "description"
Don't call the dock title a title, but "description". Title is an old
name from when a GimpDock was a GtkWindow.
2010-03-13 17:18:47 +01:00
Martin Nordholts
3352b0485c app: Fix dockable separator translations
Continued fix of bug 554927. Also translate the " - " string in the
toolbox and add a "dock" translation context.
2010-03-13 12:17:46 +01:00
Aurimas Juška
b46a89a302 app: Add methods to enable multiple selection in GimpContainerView
Enable multiple selection in GimpDataFactoryView now. It remains
disabled everywhere else.
2010-03-11 18:24:56 +02:00
Aurimas Juška
9e2723d390 app: Revert add flags for multiple selection support
Don't add additional constructor argument.
2010-03-11 18:24:56 +02:00
Michael Natterer
7f8c5d5a35 app: make private functions static, I have no clue why they weren't 2010-03-10 20:17:13 +01:00
Alexia Death
5fda650281 app: Support for wheel input found in highend wacom tablets&tools 2010-03-09 22:23:44 +02:00
Martin Nordholts
fe6699cc1c app: Apply Windows→Hide docks on startup
Change GimpDialogFactory to apply Windows→Hide docks on startup. (We
already do this for docks in single-window mode.)
2010-03-09 08:03:23 +01:00
Martin Nordholts
c5c92e484c app: We don't need to show restored dialogs twice 2010-03-09 08:03:23 +01:00
Martin Nordholts
909acba11d app: Introduce GIMP_DIALOG_VISIBILITY_HIDDEN
Introduce GIMP_DIALOG_VISIBILITY_HIDDEN because it is a bit
counter-intuitive to call gtk_widget_hide() on a dialog and then set
GIMP_DIALOG_VISIBILITY_VISIBLE on it. No change in program flow has
been (deliberately) introduced.
2010-03-09 08:03:22 +01:00
Aurimas Juška
8fb846160a app: Fix crash when GimpContainerTreeView is used to activate items
Use old code path when multiselection is not needed. Rely on parent
class to handle multiselection when it is.
2010-03-09 01:19:50 +02:00
Michael Natterer
3e3613bef7 app: allow for more fine-grained baseline and kerning adjustments
In theory for now, by changing the parameters of
GimpTextProxy::change_baseline() and ::change_kerning()
from gint to gdouble.
2010-03-08 21:57:29 +01:00
Aurimas Juška
13b172b675 app: Add flags for multiple selection support
Multiple item selection is disabled by default and
currently enabled only for data views.
2010-03-07 18:59:28 +02:00
Aurimas Juška
8e87f06e20 app: Add support for tag assignment on multiple selected items
Tag assignment has been redesigned according to Peter Sikking's
recommendations. When multiple resources are selected, common tags
to all of them are listed in tag asignment widget. On assignment
it is detected which tags were added and removed from common tag set
and the selected resources are updated accordingly (instead of
replacing their previous tags).
2010-03-07 18:59:27 +02:00
Aurimas Juška
ebe9e51b62 app: Add support for multiple items selection
Implemented infrastructure for multiple selection support.
GimpContainerTreeView actually provides such functionality.
All other GimpContainerViews should work as before.
2010-03-07 18:59:27 +02:00
Martin Nordholts
ee1f0a8b00 app: Fix dock remove condition
Fix dock remove condition in
gimp_dock_columns_dock_book_removed(). Due to GimpPanedBox the parent
of a dock is not fixed, so just check for != NULL.
2010-03-07 12:59:21 +01:00
Martin Nordholts
35096957a9 Bug 554927 - The dock window titles uses a non localizable comma
Mark dockable separator characters used in the dock window title as
translatable so e.g. Arabic can use an arabic comma.
2010-03-07 12:51:34 +01:00
Martin Nordholts
15344ffd6d app: Add gimp_action_group_set_action_tooltip() 2010-03-07 11:15:16 +01:00
Martin Nordholts
33dbcf210e app: Move title invalidation from GimpMenuDock to GimpDock base class
Move title invalidation from GimpMenuDock to GimpDock base class so
that title invalidation works properly also for the GimpToolbox.
2010-03-07 10:25:24 +01:00
Martin Nordholts
ea666d178b app: Don't remove dock in destruction from dock column
Only remove a dock in the book-removed callback to dock columns if the
dock has the dock column as parent. It won't during destruction for
example. This fixes the test case
/gimp-ui/restore-recently-closed-multi-column-dock.
2010-03-07 09:35:15 +01:00
Martin Nordholts
beb8e450f0 app: Fix condition of what dock windows are added to recent-list
Add a helper function gimp_dock_window_should_add_to_recent() which
properly handles the toolbox with regards to what dock windows that
should be added to the list of recently closed docks.
2010-03-07 07:52:25 +01:00
Michael Natterer
1aeb315ecf undef GTK_DISABLE_DEPRECATED in many places which undef GSEAL_ENABLE
because the widget flag access macros (e.g. GTK_WIDGET_REALIZED) are
now deprecated in GTK+ master.
2010-03-06 23:14:29 +01:00
Michael Natterer
e003213784 app: move code for font entry and "size" label together 2010-03-06 22:54:12 +01:00
Martin Nordholts
1010b497c2 app: Update dock window title when docks re added/removed
Update dock window title when docks re added/removed. We can also
remove the code that explicitly updated the title when a dock is
added.
2010-03-05 21:31:07 +01:00
Martin Nordholts
0279daed28 app: Make Toolbox dock title complete
Make the Toolbox dock title complete, i.e. if the toolbox dock
contains Tool Options, the title will be "Toolbox - Tool Options".
2010-03-05 21:31:07 +01:00
Martin Nordholts
4cda04da5c app: Remove gimp_dock_window_get_dock()
Since the order of docks in a dock window is arbitrary, it can never
be correct to only care about the first dock. Remove
gimp_dock_window_get_dock() and correct that code that made use of
it. (The function itself was introduced when there could only be one
dock per dock window.)
2010-03-05 21:31:07 +01:00
Martin Nordholts
cecae71034 app: Include all docks in dock window title 2010-03-05 21:31:06 +01:00
Michael Natterer
6fcb5c137d app: block all unhandled key events in the text style editor
so they don't affect the on-canvas editor.
2010-03-04 18:53:53 +01:00
Michael Natterer
8434bf9276 app: reorganize widgets in two lines
this so needs a clear ui concept...
2010-03-04 14:33:19 +01:00
Michael Natterer
f766215548 app: add baseline and kerning controls to the style editor overlay
Involves adding GimpTextBuffer API to *set* baseline and kerning (as
opposed to changing it relatively from what it was).
2010-03-04 14:33:19 +01:00
Michael Natterer
9431376f55 app: cosmetic cleanup for readability 2010-03-03 10:53:01 +01:00
Michael Natterer
bbd2d521f1 app: rename "spacing" to "kerning" because that's what it does 2010-03-03 10:48:42 +01:00
Martin Nordholts
798e2e67e9 app: Move toolbox special casing into dialog factory
Move toolbox special casing into
gimp_dialog_factory_dialog_new_internal() and on the fly fix problems
with double toolboxes appearing and sometimes not appearing.
2010-03-02 22:38:15 +01:00
Martin Nordholts
e4dee4c559 app: Cleanup gimp_dialog_factory_dialog_new_internal() a bit
Cleanup gimp_dialog_factory_dialog_new_internal() a bit with regards
to how it presents toplevel windows.
2010-03-02 22:38:15 +01:00
Michael Natterer
9a9d7489d1 app: make undo compression in the text tool work again
- in GimpText, make "text" and "markup" mutually exclusive, so that
  whenever one is set to non-NULL, the other is cleared automatically.
- add gimp_text_buffer_has_markup() which returns TRUE if any char
  in the buffer is tagged.
- in the text tool, only set "markup" on the text proxy if there is
  actually markup in the buffer, and set "text" otherwise.

This way we don't push "text" *and* "markup" undos on each keystroke,
and undo compression works the way it did before.
2010-03-02 21:54:24 +01:00
Michael Natterer
842f1df2f2 Bug 611514 - Layers inside layer groups can't be dragged to layer dock buttons
In the drop callbacks, don't check if the GimpContainerView's container
contains the dropped item, it might be in a sub-container. Instead,
simply checking if the GimpContainerView knows the item is sufficient
(and also much simpler than a recursive container serach).
2010-03-02 17:54:29 +01:00
Michael Natterer
f230019f71 app: move updating the style editor to an idle function
so subsequent signals trigger only one update.
2010-03-02 11:46:58 +01:00
Michael Natterer
1ddef5d375 app: redo the buffer's tag-at-iter APIs and fix editor state update 2010-03-02 11:37:57 +01:00
Michael Natterer
bea0c7f3d4 app: allow to select fonts on text spans
A bit hackish, will cleanup...
2010-03-02 11:11:06 +01:00
Michael Natterer
aeac58089b app: add a font selector to the text style editor
Selects fonts just fine, but has no effect on the text yet.
2010-03-02 00:12:27 +01:00
Michael Natterer
dfc1671cb0 app: set a normal mouse cursor on all overlay children windows
so they don't show the parent's cursor (which is most likely
inappropriate on the canvas).
2010-03-01 23:45:16 +01:00
Michael Natterer
ffd6248a5e app: set has-window to TRUE in gimp_overlay_box_init()
Makes prelight work, and *should* fix tooltips, but doesn't...
2010-03-01 23:18:06 +01:00
Michael Natterer
b19db0dea9 app: don't remove all tags when toggling style buttons and then inserting
Instead, keep a list of tags to explicitely remove around (the list of
unchecked toggles), and remove only these tags, so the tags that have
no widget in the UI are not affected by the insert_tags logic.
2010-03-01 22:39:42 +01:00
Michael Natterer
b61dfff04c app: use U+2060 WORD JOINER for manual kerning
What we used before might interact badly with arabic shaping.
2010-03-01 22:12:57 +01:00
Michael Natterer
f7382bc33f app: argh, #define ENABLE_SPACING to actually enable spacing... 2010-03-01 19:57:28 +01:00
Michael Natterer
f8ac0c61ab app: make manual kerning / character spacing work
Add gimp_text_buffer_get_iter_at_index() which does the reverse thing
than the already existing function gimp_text_buffer_get_iter_index().
Use the new function when cursor-navigation lines. Add "gboolean
layout_index" to both functions, which if TRUE indicates that the
passed in/out index is an index into the PangoLayout's content rather
than the text buffer's. When dealing with layout indices, take into
account the additional characters we insert into the serialized markup
(and thus the layout) for each character that is tagged with spacing.
2010-03-01 16:27:34 +01:00
Michael Natterer
f519b90a2b app: call begin_user_action() and end_user_action() around removing tags 2010-03-01 16:09:50 +01:00
Martin Nordholts
11b1300b6f app: Introduce gimp_dialog_factory_get_singleton()
Instead of including dialogs/dialogs.h everywhere, introduce
gimp_dialog_factory_get_singleton(). The dialog factory singleton is
still initialized by dialogs.c though.

Right now the assumption is that we never will have another dialog
factory instance around. There were so many problems before when we
had four of them, so let's just keep one of them around.
2010-02-28 23:23:24 +01:00
Michael Natterer
67ccf8c21a app: implement proper manual kerning, but disable it for now
because it breaks the invariant that the pango layout used for
navigating in the on-canvas editor must be a 1:1 view on the text
buffer used for editing. Will have to fix that somehow...
2010-02-28 20:02:30 +01:00
Martin Nordholts
6d176f5a11 app: Remove GimpDialogFactoryClass::factories 2010-02-28 20:02:46 +01:00
Martin Nordholts
947e28596f app: Remove gimp_dialog_factory_from_name()
We only have one dialog factory now, and
gimp_dialog_factory_from_name() doesn't provide compile-time type
safety, so use global_dialog_factory directly instead.
2010-02-28 20:02:45 +01:00
Martin Nordholts
2a51c69e9b app: Set_busy() on individual dialog factories 2010-02-28 20:02:45 +01:00
Michael Natterer
f135ebb97f app: use a temporary GtkTextBuffer for (de)seriaizing markup
The copy doesn't do anything yet, but this will enable us to do
transformations on the buffer contents before turning them into
markup, and the other way around.
2010-02-28 19:04:00 +01:00
Michael Natterer
86ad0cc025 app: make sure (de)serialization handles register_buffer != content_buffer
because we will soon use temporary buffers to turn stuff into markup
and back, and these temporary buffers won't have their tags registered
like the original GimpTextBuffer does.
2010-02-28 19:04:00 +01:00
Martin Nordholts
6647c495f3 app: Store GimpDialogsState per dialog factory
Get rid of the file-static variable 'dialogs_state' from
gimpdialogfactory.c and move it into the GimpDialogFactory struct.
2010-02-28 18:48:39 +01:00
Alexia Death
9447b125e6 app: Remove obslete draw queueing 2010-02-28 19:42:32 +02:00
Michael Natterer
3f816cbc29 app: fix gimp_curve_view_remove_all_backgrounds() 2010-02-28 18:37:08 +01:00
Alexia Death
9e9ea6f33a app: improve dynamics editor behavior on switching 2010-02-28 19:01:43 +02:00
Michael Natterer
783e04013a app: make letter spacing work when there is no selection 2010-02-28 17:56:20 +01:00
Michael Natterer
65216b939d app: group text buffer changes by user actions
Use gtk_text_buffer_begin_user_action() and end_user_action() to group
all text buffer operations triggered by a single editing operation.
Connect to the buffer's "end-user-action" signal instead of to
"changed", "apply-tag" and "remove-tag" separately, so we only update
the text proxy once per user editing.
2010-02-28 17:15:06 +01:00
Martin Nordholts
87d89ce990 app: Save and restore dialog factories explicitly
With only one dialog factory around the for-each functions are not
needed any more. Remove them, starting with save and restore.
2010-02-28 16:23:32 +01:00
Martin Nordholts
144210031d app: Remove unused gimp_dialog_factories_session_clear()
Remove unused and unimplemented gimp_dialog_factories_session_clear().
2010-02-28 16:03:00 +01:00
Michael Natterer
e7a3938932 app: make toggle button updating a lot less complicated
by getting rid of the hash table and foreach() calls. Use some
readable for() loops over the list of toggles instead.
2010-02-28 15:31:35 +01:00
Michael Natterer
1c8b01f012 app: make the text style editor aware of the image's resolution
Needed for adding proper text size controls.
2010-02-28 14:20:56 +01:00
Michael Natterer
d074653c36 app: add letter spacing control using Alt+Left/Right
This is experimental and doesn't work as it should, will have to
change or entirely remove it again :(
2010-02-28 14:16:40 +01:00
Alexia Death
4ac06c04cd app: Make reset curve button work 2010-02-28 02:04:16 +02:00
Alexia Death
47ace57ce2 app: Working input selectors in the curve editors 2010-02-28 01:01:27 +02:00
Alexia Death
47ce3bef8f app: Small fixes dynamics output editor 2010-02-27 19:58:46 +02:00
Alexia Death
82837da1df app: Add background curves for dynamics 2010-02-27 19:22:48 +02:00
Alexia Death
45c835aaa2 app: Add API to remove all background curves from the curve view
Also, use this change in cuves tool.
2010-02-27 19:22:48 +02:00
Michael Natterer
1e26bb1348 app: support baseline changing via Alt+Up and Alt+Down
Add a list of available baseline tags to GimpTextBuffer and
automatically create baseline tags as needed. They get serialized as
<span rise="value">, so add attribute and value parameters to the
buffer's tag_to_name() and name_to_tag() functions. Properly managing
the rise's amount is a TODO, currently each keystroke changes the
baseline by 1024 pango units, which might be whatever depending on the
output grid.
2010-02-27 18:00:39 +01:00
Alexia Death
8b3592dc8f app: Beginnings of curve changing 2010-02-27 18:32:58 +02:00
Alexia Death
fea1690d40 app: Minor corrections to dynmics output editor
No more warning, but still no functionality.
2010-02-27 16:33:10 +02:00
Michael Natterer
4171d9c774 app: add signals bindings to change baseline and spacing
Bind them to Alt+up/down/left/right and connect to the signals in
the text tool editor. The callbacks do nothing yet.
2010-02-27 13:14:28 +01:00
Michael Natterer
9a53cc11ca app: allow to toggle tags and then write text with that style
instead of using the toggles only to change the style of selected text.

Introduces a list of "insert tags" in GimpTextBuffer that is applied
on newly inserted text if it exists. Clear the list on each content
or cursor/selection change, so we always display wthe style at the
cursor unless the buttons were clicked explicitely.
2010-02-26 19:56:54 +01:00
Michael Natterer
a4826176d8 app: make sure all markup tags are closed at the right point
When turning overlapping tags into a strictly nested markup structure,
make sure we don't treat tags that are ending at an iter like tags
that were only closed because overlapping spans don't exist in markup.
Chew on this sentence a bit, it took ages to write it.
2010-02-26 19:56:53 +01:00
Michael Natterer
11479d3abd app: use the tags left of the cursor when inserting
and make sure the style editor's buttons are correct at the beginning
and end of spans (take the tags toggled on/off at these positions into
account).
2010-02-26 03:05:57 +01:00
Michael Natterer
6c556698e5 app: add gimp_text_buffer_insert() and use it
Does nothing special yet, but will soon apply the currently active
tags to the inserted text.
2010-02-26 02:34:01 +01:00
Michael Natterer
360f5739da app: add infrastructure for editing pango markup based text styles
- keep around tags for styles in GimpTextBuffer. For now only bold,
  italic, underline and strikethrough.
- add GimpTextStyleEditor, a widget which allows setting tags on
  a GimpTextBuffer's selection.
- add serialize/deserialize code to/from pango markup using
  GtkTextBuffer's rich text (de)serialization infrastructure.
  Doesn't produce or handle <span> yet.
2010-02-26 01:27:05 +01:00
Alexia Death
3f4dafb07d app: Beginnings of input selector, does not do anything yet 2010-02-25 22:34:03 +02:00
Michael Natterer
0b4bdc5613 app: add GimpTextBuffer, a GtkTextBuffer subclass
Pull all text buffer utility functions as methods and use
GimpTextBuffer all over the place instead of GtkTextBuffer.
Some actually usefuly features coming soon...
2010-02-25 17:41:10 +01:00
Michael Natterer
650d635dfb app: move stuff to the local scope it belongs to 2010-02-24 01:37:15 +01:00
Michael Natterer
088368079c app: make the coordinates display in the curve view configurable
Add API for X and Y ranges, default to 0.0..1.0 and configure the view
for 0..255 in the curves tool.
2010-02-23 11:39:35 +01:00
Michael Natterer
86d417c6f7 app: fix curve focus drawing 2010-02-22 10:50:04 +01:00
Michael Natterer
ba6a7d33ff app: fix code formatting and UI packing 2010-02-22 10:35:43 +01:00
Alexandre Prokoudine
dd8c65aed3 Typo fixed 2010-02-22 10:52:06 +03:00
Alexia Death
6c383b87a7 app: Add he beginnings of output editor 2010-02-22 01:04:37 +02:00
Alexia Death
53dce99bfb app: Prepare dynamics editor for output curves 2010-02-22 01:04:16 +02:00
Michael Natterer
0908e53148 app: use the new unit conversion functions
and get rid of the brainfuck idea that app/ has to use _gimp_unit_foo()
functions, passing a gimp pointer. Instead, simply use the libgimpbase
API all over the place. Should we ever allow more than one gimp instance,
they will simply have to share one unit database.
2010-02-21 16:46:39 +01:00
Martin Nordholts
f9a2c5cfe1 app: Add Windows→Hide docks menu item
Add Windows→Hide docks menu item. We don't remove the hardcoding of
having Tab trigger it though, because gtk_accelerator_valid() returns
FALSE for GDK_tab. This means that if the user changes keyboard
shortcut for the menu item, both the user shortcut and the hardcoded
shortcut will work. We remove gimp_dialog_factories_toggle() and make
clients activate the action instead to toggle dock visibility.
2010-02-20 22:54:11 +01:00
Martin Nordholts
6d6a52b521 app: Make GimpDialogsState public in core 2010-02-20 22:54:11 +01:00
Michael Natterer
2352037dbd app: allow to show an arbitrary number of "background curves"
which are drawn with a configurable color at 50% opacity.
2010-02-20 20:31:22 +01:00
Martin Nordholts
1e9048ded9 app: Turn gimp_dialog_factory_dock_with_window_new() into util func
Turn gimp_dialog_factory_dock_with_window_new() into a utility
function, it doesn't make sense to let it be part of the generic
GimpDialogFactory.
2010-02-20 16:55:59 +01:00
Michael Natterer
d488cc650a app: allow to position overlay widgets absolutely 2010-02-20 15:15:53 +01:00
Michael Natterer
9bc0ea5466 app: don't leave artifacts on the box when a child changes its size
gimp_overlay_child_size_allocate(): invalidate the child's old area
before moving its window around.
2010-02-20 15:15:53 +01:00
Martin Nordholts
dec798e0df app: Serialize factory entry name along with GimpSessionInfo
Serialize factory entry name along with GimpSessionInfo so we can make
the Recently Closed Docks feature work across sessions in a natural
way.
2010-02-20 13:05:16 +01:00
Martin Nordholts
993d2df338 app: Make hideability a per entry rather than per dialog factory thing 2010-02-20 10:32:50 +01:00
Martin Nordholts
8b458fb591 app: Merge "toplevel" and "dock" dialog factories
Merge "toplevel" and "dock" dialog factories. The end goal is to have
only one dialog factory.
2010-02-20 09:28:26 +01:00
Michael Natterer
5f0255e269 Add GIMP_STOCK_INPUT_DEVICE icons and use them for the devices dialog
From icon masta Jimmac.
2010-02-19 21:25:24 +01:00
Michael Natterer
d967852cd7 app: turn the input devices dialog into a session managed toplevel
It works exactly as the keyboard shortcuts dialog now and has its own
menu entry: Edit -> Input Devices.
2010-02-19 20:13:26 +01:00
Michael Natterer
53ac78a4a0 app: register the pressure curve are sreialibable property
so it is actually saved to devicerc.
2010-02-18 21:35:45 +01:00
Martin Nordholts
45efd84079 Bug 608834 - Toolbox and docks move on desktop change
Make sure that after we have set GTK_WIN_POS_MOUSE on a dialog created
with the dialog factory, it is eventually reset. Also remove the only
occurance of the DEBUG_FACTORY define.
2010-02-18 07:25:07 +01:00
Sven Neumann
dbae9c58a0 Bug 610282 - GEGL Operation tool's help-id
Assign a help ID to the GEGL tool.
2010-02-17 19:23:10 +01:00
Michael Natterer
88e2b1aab3 app: add a focus rectangle to GimpCurveView 2010-02-16 20:08:03 +01:00
Michael Natterer
fdde593fc5 app: enable copy and paste for curves
Add GimpCurve support to the clipboard and handle ctrl-x, ctrl-c and
ctrl-v in GimpCurveView.
2010-02-16 19:58:51 +01:00
Michael Natterer
7a1b77fb07 app: gimp_device_info_map_axis(): "value" is a double, not a boolean 2010-02-16 19:29:37 +01:00
Michael Natterer
2a92f57577 app: actually use the device's pressure curve to map the pressure axis
unfortunately i have no way of testing this, so please test...
2010-02-16 13:27:46 +01:00
Michael Natterer
828e4d8452 app: some formatting before real changes happen 2010-02-16 13:05:17 +01:00
Michael Natterer
5af05cce0b app: move the entire get-coords API from GimpDisplayShell to GimpDeviceInfo
because GimpDeviceInfo will soon apply curves to the axes. Also change
everything to speak in terms of GimpDeviceInfo instead of GdkDevice.
2010-02-16 13:00:46 +01:00
Michael Natterer
6932a6d011 app: add gimp_device_info_has_cursor() as replacement for GdkDevice.has_cursor 2010-02-16 12:11:22 +01:00
Michael Natterer
a10b8421d9 app: select the first axis so the shown curve makes sense 2010-02-16 10:54:53 +01:00
Michael Natterer
1e26dbc22d app: add views for the axes' curves 2010-02-15 23:08:30 +01:00
Michael Natterer
2da0529ef4 app: add a pressure curve
but keep the API general so all axes can have curves.
2010-02-15 23:06:19 +01:00
Michael Natterer
3ff4a910a9 app: implement device removal in gimp_devices_device_removed() 2010-02-15 20:00:26 +01:00
Michael Natterer
0ce37c500e app: allow unplugging devices in GimpDeviceInfo
gimp_device_info_set_device(): support setting the device to NULL
and copy all settings to GimpDeviceInfo when it happens.
2010-02-15 19:58:02 +01:00
Michael Natterer
a023665a5d app: if there is no histogram set in the parent class, draw BG and borders here 2010-02-15 19:27:19 +01:00
Michael Natterer
00b1835f9e app: remove unused private member 2010-02-15 18:24:19 +01:00
Michael Natterer
240dae660d app : keep the axis mapping in a treeview
instead of in an ugly list of menus, so it looks better and can also
be used to select an axis to edit (like editing its curve).
2010-02-15 16:48:21 +01:00
Michael Natterer
f115a0bdfe app: add GimpFrames for axes and keys and remove useless treeview headers 2010-02-15 13:12:26 +01:00
Michael Natterer
55c8c86e49 app: oops, need to disconnect from the device list signals in dispose() 2010-02-15 13:11:58 +01:00
Michael Natterer
179ddd8a49 app: add a button to remove unplugged devices from the list 2010-02-15 12:59:29 +01:00
Michael Natterer
f0d4cf68c0 app: grey out the names of unplugged devices 2010-02-15 00:47:15 +01:00
Michael Natterer
3a0557afe8 app: add a boolean model column which sets the sensitivity of the text renderer
I'm not entirely happy with this, but it's just 4 lines of code and
is easily remove again.
2010-02-14 22:39:40 +01:00
Michael Natterer
3facba67d4 app: sort plugged devices to the start of the list
and sort plugged/unplugged devices alphabetically
2010-02-14 22:08:32 +01:00
Martin Nordholts
9bf0d80c9c app: Make Windows → Recently Closed Docks work again
Set a dialog factory entry on the session info object in
global_recent_docks so it can be properly restored.
2010-02-13 20:10:40 +01:00
Michael Natterer
1046e30724 app: add a little bling (a header that looks like the selected item) 2010-02-13 18:20:32 +01:00
Michael Natterer
1083313f48 app: don't warn when selecting a NULL device (when closing the dialog) 2010-02-13 17:39:41 +01:00
Michael Natterer
9617f42d13 app: add and use gimp_device_info_get_device() 2010-02-13 17:32:29 +01:00
Martin Nordholts
7e94bb3ef2 app: Avoid crash when using Windows -> Recently Closed Docks
This is not a proper fix for anything, it is just avoidance of a
crash.
2010-02-13 17:17:56 +01:00
Michael Natterer
fe58e525b8 app: s/device_info/info/ in local variable names 2010-02-13 16:24:01 +01:00
Michael Natterer
1cc77abdf9 app: try to guess a reasonable icon for devices 2010-02-13 16:21:26 +01:00
Michael Natterer
472597bba0 app: use a treeview for selecting which device to edit
and change the dialog from a editor of the display's devices to an
editor of all devices of all displays known to GIMP, regardless
whether currently plugged or just remembered in devicerc. will need to
distinguish them in the next step...
2010-02-13 15:54:55 +01:00
Michael Natterer
f1a9908191 app: add a USER_DATA column to GimpContainerTreeView's model
so users which don't subclass can attach their own per-row stuff
2010-02-13 15:46:34 +01:00
Michael Natterer
56fabf760e app: add "gimp" property needed for next step 2010-02-12 23:36:38 +01:00
Michael Natterer
fdd0b6d64d app: make the accel renderer editable 2010-02-12 21:57:58 +01:00
Alexia Death
cc21fd8a54 app: add missing parameter 2010-02-12 22:55:20 +02:00
Michael Natterer
327b242650 widgets: fix copy & paste error so it actually changes the device's keys now 2010-02-12 21:39:38 +01:00
Michael Natterer
8c1b5de637 widgets: use a treeview for the device's keys 2010-02-12 21:35:39 +01:00
Michael Natterer
20e4936d3e app: make device management more dynamic in preparation of XI2
Add functions that are similar to the "device-added" and
"device-removed" of GdkDeviceManager in the XI2 branch. Add "device"
and "display" properties to GimpDeviceInfp and distunguish between
creating device info objects from scratch for never-seen devices, and
setting a GdkDevice on them when a previously known device gets
plugged in.
2010-02-12 17:10:54 +01:00
Michael Natterer
c6bbeda444 app: get rid of GtkInputDialog, also brings us closer to XI2
Added two new widgets, GimpDeviceInfoEditor, which is an editor/view
widget for GimpDeviceInfo, and GimpDeviceEditor, which is an editor
widget for all devices. Both are pretty much ugly right now and look a
lot like the old GtkInputDialog, but are at least internally cleaned
up and easily changable code and ui wise. Consider this a completely
intermediate state.

Also cleaned up GimpDeviceInfo so it's possible to have a proper
view on it, and did the needed changes to the preferences dialog
to use the new stuff.
2010-02-12 15:46:07 +01:00
Michael Natterer
ba5e6d4ca2 widgets: use accessors instead of sealed GTK+ members 2010-02-11 13:02:30 +01:00
Michael Natterer
7d54c72cfe widgets: use gtk_widget_get_parent(menu) instead of menu->toplevel
because menu->toplevel is sealed. Should have the additional benefit
of also working if the menu is torn off (untested).
2010-02-11 10:34:48 +01:00
Michael Natterer
6e49a0fa5d Move gimp_edit_paste_as_new() to gimp_image_new_from_buffer()
because it better fits there, and it's never actually been a "paste"
from the implementation point of view.
2010-02-09 22:32:49 +01:00
Michael Natterer
903604113f Add utility function to create images to gimpimage-new.[ch]
Add gimp_image_new_from_drawable(), from_component() and from_pixbuf()
and remove that duplicated code from gimptoolbox-dnd.c and
gimpdisplayshell-dnd.c
2010-02-09 22:32:48 +01:00
Michael Natterer
9a561646c2 Move the undo disable/freeze APIs to gimpimage-undo.[ch] 2010-02-09 22:32:48 +01:00
Michael Natterer
b7d1be96e0 Get rid of the "New" in "New Layer", "New Channel" etc.
because they are "new" only once and then never again. Instead, simply
call new stuff "Layer", "Channel" and "Path", either by passing that
string explicitely, or by passing NULL so their class' default name
will be used.
2010-02-09 22:32:40 +01:00
Martin Nordholts
43c0cfedbd app: "Pixel dimensions" -> "Size in pixels" in Image Properties dialog
'Pixel dimensions' can be misinterpreted with the size of a pixel, so
use 'size in pixels' instead. This is consistent with e.g. the Image
Scale dialog which talks about 'image size'.
2010-02-04 21:25:17 +01:00
Michael Natterer
09c897262e Move all undo-related members to GimpImagePrivate
Also add some new API to access them.
2010-02-04 20:06:49 +01:00
Michael Natterer
32358615d4 Don't access image->colormap directly 2010-02-03 20:09:20 +01:00
Martin Nordholts
ed2d178da3 app: Get rid of config -> display module dependency
In order to make a clear separation between the core modules and the
UI modules, move the necessary enums from display-enums.h and
widgets-enums.h to config-enums.h and the files
gimpdisplayoptions.[ch] from the display to the config module. This
removes the config -> display dependency.

This change has three main benefits
 * It lets us remove includes of display files from the config module
 * We don't have to link gimp-console and test-config with a subset of
   object files from the display module
 * It is reflected in devel-docs/gimp-module-dependencies.svg that the
   application is made up of core modules and UI modules and that no
   core module depends on any UI module
2010-02-01 21:56:48 +01:00
Martin Nordholts
523c599baa app: Simplify gimp_dockbook_init() a bit 2010-01-31 20:22:24 +01:00
Martin Nordholts
02d3874eb7 app: Only add "gimp-toolbox" dock to "gimp-toolbox-window" 2010-01-31 20:21:17 +01:00
Martin Nordholts
bf92270051 app: Don't crash when the toolbox dock window don't have docks
Session files from GIMP 2.6 don't need to have docks in the toolbox
top-level. Don't crash on that, instead add a "gimp-toolbox" dock
during sessionrc parsing.
2010-01-31 19:04:51 +01:00
Martin Nordholts
c094736f83 app: Remove accidentally commited g_printerr() 2010-01-22 21:00:17 +01:00
Martin Nordholts
ba37aaa532 app: Support multi-column DnD in toolbox window
Add a drag handler to the toolbox so it's possible to create
multi-column docks in the toolbox dock window.
2010-01-22 20:48:34 +01:00
Martin Nordholts
613b330bc0 app: Clarify why we need URI drop target on toolbox 2010-01-21 21:00:31 +01:00
Martin Nordholts
1093462ae9 app: Merge 'global_toolbox_factory' into 'global_dock_factory'
Get rid of 'global_toolbox_factory' and manage everything dock-related
with 'global_dock_factory'. The whole of 'global_toolbox_factory' was
a big special-case and getting rid of it makes it easier to extend the
session management with e.g. single-window mode dock functionality.

To get rid of 'global_toolbox_factory' we, roughly, have to
 * Replace 'global_toolbox_factory' with 'global_dock_factory'
   everywhere. We can also get rid of lots of code that did special
   things for the "toolbox" factory.
 * Make the use or interaction with the toolbox explicit in some
   places. For example, a function gimp_dock_window_has_toolbox() has
   been introduced.
 * Make GimpSessionInfoDock have an 'identifier' parameter so we can
   differentiate between the "gimp-dock" and "gimp-toolbox" dock
   types.
2010-01-20 18:29:54 +01:00
Martin Nordholts
dd8b867852 app: Kill #if-zeroed GimpContext code that doesn't seem to be needed 2010-01-19 23:18:30 +01:00
Martin Nordholts
66197c5d11 app: global_dock_window_factory -> global_dock_factory
Rename back global_dock_window_factory to
global_dock_factory. Renaming to global_dock_window_factory was done
under the assumption that there would be a separate factory that would
create non-toplevel dockables, but I don't expect this to happen in
the forseeable future.
2010-01-19 22:40:06 +01:00
Martin Nordholts
56a8cb68a8 app: Have dialog factory entries for the dock windows
Let dock windows have proper GimpDialogFactory entries. This allows us
to get rid of a lot of ugly mostly duplicated code. This also makes us
ready the merge the dock window and toolbox factories which will soon
be done. A few things should be noted:

 * We adjust the wrap box aspect ratio in the toolbox to avoid having
   the toolbox dock window explode

 * We make sure that we still can handle sessionrc files from GIMP 2.6
   and older
2010-01-19 22:24:17 +01:00
Martin Nordholts
408c22b79e app: Use the dialog factory for creating docks
Instead of having one dock constructor per dialog factory, put entries
for the normal dock and the toolbox dock in the dock window
factory. To do this we also need to merge the dock and normal dialog
constructors into one function protptype.

This takes us one step closer to be able to merge the
global_dock_window_factory and the global_toolbox_factory into one.

The long term goal: Support multi-column dock windows with one of the
docks being the toolbox. In this situation we can't have the toolbox
dock created by a separate dialog factory, that is too messy.
2010-01-17 00:00:19 +01:00
Martin Nordholts
db2221c97d app: Fix gimp_dialog_factory_constructor()
Fix gimp_dialog_factory_constructor() so that non-dockables can be
created by the dialog factory.
2010-01-16 21:22:56 +01:00
Martin Nordholts
08078ca79c app: Remove gimp_dialog_factory_set_put_in_dockables()
Instead of having gimp_dialog_factory_set_put_in_dockables() with all
the cruft that leads to we can use the 'dockable' member on
GimpDialogFactoryEntry. This is a general strategy that the code base
is being moved in: try to keep information per-entry rather than
per-factory.
2010-01-16 19:43:33 +01:00
Martin Nordholts
2527955c21 app: Copy 'dockable' member in gimp_dialog_factory_register_entry()
Copying 'dockable' for a dialog factory entry was forgotten in
gimp_dialog_factory_register_entry().
2010-01-16 19:35:34 +01:00
Martin Nordholts
deb07e812d app: Introduce gimp_dialog_factory_set_put_in_dockables()
Change gimp_dialog_factory_set_constructor() to
gimp_dialog_factory_set_put_in_dockables() order to narrow the
interface a bit. We can make both
gimp_dialog_factory_set_put_in_dockables() and the
GimpDialogConstructor typedef internal this way.

The main reason we do this is because we want to get rid of a
dependency on factory->p->new_dock_func. Eventually we want to
construct docks just like we construct other widgets in the factory,
so new_dock_func will be removed.

Also improve readability of code such as making it explicit that
gimp_dialog_factory_put_in_dockable_constructor() is just an extended
version of gimp_dialog_factory_default_constructor().
2010-01-16 17:54:56 +01:00
Michael Natterer
73445668a6 app: remove #undef GSEAL_ENABLE, this file is completely ported 2010-01-16 15:12:50 +01:00
Michael Natterer
fa6fc65fbf app: port one more file to GSEAL_ENABLE
Use accessors instad of widget->parent and widget->allocation
2010-01-16 11:25:43 +01:00
Michael Natterer
7175f3e883 Some more changes to build with GSEAL_ENABLE
- use more GTK+ accessors instead of struct members
- remove quite some #undef GSEAL_ENABLE from completely ported files
2010-01-15 15:35:03 +01:00
Martin Nordholts
e87c77bcfc app: Allow tests to override the menus directory
In order to let tests run against the source dir, allow them to
override the menus directory. Add utility functions for this and
adjust gimpuimanager.c accordingly.
2010-01-08 15:05:15 +01:00
Martin Nordholts
5d79f664d3 app: Add "dialog-factory", "ui-manager" properties to GimpDockColumns
Add "dialog-factory", "ui-manager" properties to GimpDockColumns and
let GimpDock look for these before trying to look for a dock window
which does not exist in single-window mode.
2010-01-07 19:18:03 +01:00
Martin Nordholts
bc5da21ba2 app: Add gimp_dock_columns_new() and GimpContext property
Add and use gimp_dock_columns_new() and add a GimpContext property to
GimpDockColumns. Also move the widget construction from _init() to
_constructor() in GimpDockWindow so we have a context object to pass
to gimp_dock_columns_new().
2010-01-07 19:13:13 +01:00
Martin Nordholts
5c4154d438 app: Don't remove the toolbox dock from dock columns
The toolbox always wants to make trouble :( Don't remove the toolbox
dock, even if it's empty.
2010-01-06 15:10:32 +01:00
Martin Nordholts
3015b0d0d0 app: Update docks with new context when switching to window modes
When moving dockables from a dock window to an image window, they need
to start listening to the user context. So update the dockables with
the new context when we switch window mode.
2010-01-06 13:33:47 +01:00
Martin Nordholts
eae77112e1 app: Bail out, not fail, in gimp_view_render_to_surface() buffer test
Don't fail when checking for availability of buffers in
gimp_view_render_to_surface(). The buffers will be gone when quitting
GIMP while in s-w-m and we don't want to print a warning every time
that happens.
2010-01-06 11:35:37 +01:00
Martin Nordholts
7e5224f828 app: Add and use gimp_dock_window_new() 2010-01-06 11:35:25 +01:00
Sven Neumann
8f6fea7636 app: prepare another refactoring 2010-01-05 22:30:17 +01:00
Sven Neumann
50c2ba45ec app: add GimpTranslationStore class
Derive GimpTranslationStore from GimpLanguageStore. It lists the
installed GIMP translations. Also sort the list alphabetically
instead of relying on the XML file being sorted.
2010-01-05 22:30:16 +01:00
Sven Neumann
d2804b48fb app: add GimpLanguageComboBox and use it from the Preferences dialog 2010-01-05 22:30:16 +01:00
Martin Nordholts
b42a5a9967 app: Handle calls to gimp_view_render_to_surface() while GIMP exists 2010-01-05 13:21:09 +01:00
Martin Nordholts
87c25236b8 app: Don't try to create widgets that requires a context while detached
When quitting GIMP while in single-window mode and the widget
hierarchies are cleaned up, prevent a tab widget from being
constructed so we don't get any annoying warnings due to failing to
look up a context.
2010-01-05 11:31:21 +01:00
Martin Nordholts
4fcd3024f1 app: Set a GimpContext on GimpDockColumns
In order to make a GimpDock get hold of a GimpContext both in
single-window mode and in multi-window mode, don't make it look for a
GimpContext in a GimpDockWindow, put the context in GimpDockColumns
instead. GimpDockColumns exists both in s-w-m and m-w-m, contrary to
GimpDockWindow. Still use the GimpDockWindow as a backup though.
2010-01-05 11:31:15 +01:00
Martin Nordholts
64896eed7f app: Add run-time check to gimp_dock_columns_get_docks() 2010-01-05 10:37:03 +01:00
Martin Nordholts
1e62e58f61 app: gimp_dockable_set_dockbook() must be able to take NULL 2010-01-05 10:28:16 +01:00
Martin Nordholts
f8410035f1 app: Ref dockables in DnD signal code
Use g_signal_connect_object() instead of g_signal_connect() so that
the dockable is referenced and not destroyed before
_drag_end(). Prevents a crash, but DnD in single-window mode does not
work properly yet.
2010-01-05 10:26:07 +01:00
Martin Nordholts
be653a7110 app: Seal GimpDockable and add necessary getters and setters 2010-01-05 00:32:35 +01:00
Michael Natterer
bb852184e1 app: pass the drop_path to GimpContainerTreeView::drop_possible()
Together with some more refactoring, this will soon enable smarter
layer group dnd behavior.
2009-12-28 21:10:04 +01:00
Martin Nordholts
ad56949d5b app: Make gimp_tool_options_editor_new() use only g_object_new()
In preparation for cleaning up the dialog factory stuff, start making
dockable constructable with just g_object_new(). First out is
gimp_tool_options_editor_new(). Move code from that function into
gimp_tool_options_editor_constructor() and add the necessary "gimp"
GObject property. The regression test
"/gimp-ui/tool-options-editor-updates" still passes after the
refactoring, of course.
2009-12-24 17:50:39 +01:00
Martin Nordholts
0f7c373f3b app: Add gimp_tool_options_editor_get_tool_options()
Add gimp_tool_options_editor_get_tool_options() for unit testing
purposes.
2009-12-24 17:50:39 +01:00
Martin Nordholts
cf5d4953fd app: Add GimpToolOptionsEditorPrivate
Add GimpToolOptionsEditorPrivate and format static function
prototypes.
2009-12-23 22:39:47 +01:00
Martin Nordholts
90d7ffde1a app: Make all GimpDialogFactory members private
Add necessary trivial API that allows us to make remaining
GimpDialogFactory instance members private, and make them private.
2009-12-20 20:21:26 +01:00
Martin Nordholts
8699511bbd app: global_dock_window_factory -> global_dock_factory
With GimpDock not being a toplevel any longer, it makes more sense to
name global_dock_factory global_dock_window_factory. Do that.
2009-12-20 14:41:02 +01:00
Martin Nordholts
b8fe7278c8 app: Add GimpDialogFactoryPrivate
Add and use GimpDialogFactoryPrivate for the members that are not used
by clients. Remove initialiation in _init() for member put in the
private struct, the struct is zeroed for us.
2009-12-20 12:30:59 +01:00
Martin Nordholts
1ed1f5e31d app: Format static function prototypes in widgets/gimpdialogfactory.c 2009-12-20 12:28:12 +01:00
Martin Nordholts
2b7f8f7a7e app: Inline gimp_dialog_factory_show_toolbox()
Merge gimp_dialog_factory_show_toolbox() into the only caller
windows_show_toolbox() to get rid of one non-generic GimpDialogFactory
function.
2009-12-19 09:23:47 +01:00
Martin Nordholts
ef6bd20c3b app: When paned widget is removed, clear drag handler
When paned widget is removed, clear drag handler. Not clearing was a
copy and paste mistake.
2009-12-17 19:51:13 +01:00
Alexia Death
60705f79e9 app: Making spacing available as dynamic parameter
Spacing is now dynamically controllable. Unlike other parameters it
made little sense to scale down from default spacing so it scales between
current and maximum spacing.
2009-12-13 22:46:09 +02:00
Martin Nordholts
65c5541faf app: Don't crash when detaching dockables from image window
Don't crash when detaching dockables from the image window. This
scenario only occurs in single-window mode. We solve it by using
global variables and checking for NULL for src_dock_window; there is
no dock window when detaching from the image window.

The use of global variables is meant to be temporary.
2009-12-10 19:30:49 +01:00
Michael Natterer
c02d28643f app: fix gimp_button_menu_position() to not add the y position twice
Fixes commit 4822ca0d6d from ages ago,
does nobody around here actually *use* master?
2009-12-10 12:20:03 +01:00
Martin Nordholts
34ad9dad1a app: Session manage multi-column dock windows
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.
2009-12-06 14:49:53 +01:00
Martin Nordholts
bfd91ebdb7 app: Append in gimp_dock_columns_add_dock()
Append new docks to the GimpDockColumns list to preserve the order of
addition. This will become important when we serialize the docks into
sessionrc.
2009-12-06 14:36:57 +01:00
Martin Nordholts
482f31cd3f app: Add GimpMenuFactoryPrivate
Add GimpMenuFactoryPrivate. Note that we don't introduce a Gimp-getter
since the menu factory is globally accesible and we want to have as
much control as possible in who can get the Gimp instance.
2009-12-06 10:23:05 +01:00
Martin Nordholts
3bb15eac78 app: Move out dock window logic from gimp_session_info_dock_restore()
Move out dock window logic, most notably aux info, from
gimp_session_info_dock_restore() and put it in
gimp_session_info_restore() where it belongs.
2009-12-05 22:43:32 +01:00
Martin Nordholts
1bf84999e4 Move the Image Selection Menu to GimpDockWindow
Move the Image Selection Menu from GimpMenuDock to
GimpDockWindow. That is, if a dock window contains many docks then
they will share the same Image Selection Menu.

To do this we need to move around quite a bit of code. Move the
"context", "dialog-factory" and "ui-manager" properties from GimpDock
to GimpToolbox, GimpMenuDock doesn't need it any longer. Turn the
GimpDock getters for these properties into wrappers that go to the
GimpDockWindow properties. In some places, most notably GimpToolbox
construction, we use the GimpToolbox values of these properties, but
most of the time it works fine to just use the GimpDockWindow
properties. GimpDock::setup() and set/get_aux_info() have also been
moved to GimpDockWindow since the only aux info for docks was for the
image selection menu.

Also, we don't bother porting gimp_menu_dock_destroy() to
GimpDockWindow, but we leave the code around. If this is a problem, it
will show.
2009-12-05 21:21:24 +01:00
Martin Nordholts
cb854e6ad7 app: Only do necessary init in gimp_dock_window_init()
The private instance data struct is zeroed out for us so we don't need
to assign NULL, FALSE and 0 to private instance data members in
gimp_dock_window_init().
2009-12-05 12:38:55 +01:00
Martin Nordholts
df44751292 app: Add GimpMenuDockPrivate
Add GimpMenuDockPrivate which requires two new trivial getters.
2009-12-05 09:54:40 +01:00
Martin Nordholts
d33f643f6b app: Move GimpDockWindow::"font-scale" style property to GimpDock
To make the smaller font in docks also apply in single-window mode,
move the GimpDockWindow::font-scale style property to GimpDock. We use
the GimpDockWindow approach, so now each GimpDock has a name of the
form "gimp-internal-dock-<id>". We add "internal" to avoid clashing
with the GimpDockWindow legacy id "gimp-dock-<id>".
2009-12-03 23:08:30 +01:00
Martin Nordholts
5ae5ef0f9f app: dock_ID -> dock_window_ID in gimp_dock_window_init() 2009-12-03 21:51:56 +01:00
Martin Nordholts
4ccb650435 Exterminate GimpDockSeparator
Remove all GimpDockSeparator-related code. Seems pointless to keep
even the stuff in gtkrc.
2009-12-02 20:40:39 +01:00
Martin Nordholts
c08c6e21e0 app: Add gimp_dialog_factory_dock_new() 2009-12-01 22:18:04 +01:00
Martin Nordholts
95bab5da5f app: gimp_dialog_factory_dock_new() -> _dock_with_window_new() 2009-12-01 21:42:24 +01:00
Martin Nordholts
7b85cf4de8 app: Use a GdkWindow instead of GimpDockSeparators for dockable DND
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
2009-11-29 18:22:12 +01:00
Martin Nordholts
9ea1d490a4 app: Make gimp_paned_box_remove_widget() more destruction friendly
When closing a GimpDockWindow, the GtkBox code might already have
removed the widget. In that case we don't need to do anything.
2009-11-29 15:07:40 +01:00
Martin Nordholts
e4e7bf8471 app: Add and use gimp_highlight_widget()
Add gimp_highlight_widget() so we can simplify
gimp_dockbook_tab_drag_motion() a bit.
2009-11-28 19:12:39 +01:00
Michael Natterer
b45454bc6c Make the popup arrow look sane again
Render the arrow to a temp GdkPixmap, turn it into a GdkPixbuf and set
the pixbuf as icon on the GtkEntry.
2009-11-15 21:35:34 +01:00
Martin Nordholts
a685508713 app: Make GimpDockColumns listen to "dock-removed"
Make GimpDockColumns listen to "dock-removed", not "dockbook-removed",
when trying to figure out when to destroy itself. Fixes some crashes
when rearranging the UI, for example when doing this step-by-step:

1. Have two dock windows with one dockable each, say A and B
2. Move A to B's dock window and make it multi-column
3. Try to detach B, will result in a crash
2009-11-15 21:26:17 +01:00
Michael Natterer
79563b99c2 Use GtkEntry's icon feature instead of reimplementing our own popup arrow
Removes tons of code but looks ugly because it uses GTK_STOCK_GO_DOWN
currently, will fix that. Also did some random small cleanups and
removed unused members from the instance struct.
2009-11-15 20:30:57 +01:00
Martin Nordholts
b5eae26c4b app: gimp_dock_columns_dock_book_remove() -> _removed() 2009-11-15 19:51:15 +01:00
Martin Nordholts
13bac61020 app: Move g_list_copy() out from gimp_dock_columns_get_docks()
Move g_list_copy() out from gimp_dock_columns_get_docks(). Fixes at
least one memory leak (in gimp_dock_window_get_dock()) and feels nicer
and more flexible.
2009-11-15 19:21:57 +01:00
Martin Nordholts
8a473663d5 app: Fix gimp_dock_separator_get_insert_pos(), we must return an index
The insert position for new column in GimpDockColumns was sometimes
wrong, the problem was in gimp_dock_separator_get_insert_pos() not
return an index but a GtkAnchorType. Convert from GtkAnchorType to an
insert index.
2009-11-15 16:10:59 +01:00
Martin Nordholts
ae2f595f12 app: Remove empty GimpDocks from GimpDockColumns 2009-11-15 15:57:49 +01:00
Martin Nordholts
12530bfcf1 app: Add GimpDockColumns "dock-added" and "dock-removed" signals 2009-11-15 15:57:49 +01:00
Michael Natterer
0715c58c13 Fix the find_widget_under_pointer() code to build with GSEAL_ENABLE 2009-11-11 21:01:21 +01:00
Michael Natterer
e4d8a36080 Store the active dynamics with the input device
Also remove cruft #include <stdio.h>
2009-11-07 17:39:02 +01:00
Michael Natterer
2651c2517b Bail our from expose() when the event doesn't come from entry->text_area 2009-11-06 12:04:58 +01:00
Michael Natterer
dd3c1d5eb5 Use the standard system mouse cursor over the popup arrow 2009-11-05 22:48:11 +01:00
Martin Nordholts
397650bc46 app: Remove #include "gimpdockseparator.h" in gimpwidgets-utils.c 2009-10-31 20:56:28 +01:00
Michael Natterer
22767ca7b8 Seal GimpData completely and add the missing accessors 2009-10-31 18:48:38 +01:00
Michael Natterer
398607ee94 Bug 599765 - F1 key on gimp-tool-align in menu have wrong link and it open gimp-tool-move
Add help ID "gimp-tool-align" and use it for the align tool.
2009-10-27 18:54:34 +01:00
Martin Nordholts
624bb78c4c app: Move down gimp_dock_window_from_dock() in the file
Move down gimp_dock_window_from_dock() in the file as it is a special
kind of function.
2009-10-26 07:52:07 +01:00
Martin Nordholts
dd96705549 app: Allow multi-column dock windows by drag-and-drop
When dropping a dockable on a dock separator on the side of e.g. a
dock window, a new column of dockables will be created. This allows
multi-column dock window setups.
2009-10-25 23:34:43 +01:00
Martin Nordholts
d3bb3e7f99 app: Add and use gimp_dockbook_drag_source_to_dockable() 2009-10-25 23:02:05 +01:00
Martin Nordholts
2b622f99cd app: gimp_dock_separator_get_anchor() -> _get_insert_pos() 2009-10-25 22:25:06 +01:00
Martin Nordholts
be8e0045ac app: Add gimp_dock_window_get_docks()
Add gimp_dock_window_get_docks() and get rid of trailing whitespace.
2009-10-25 21:50:08 +01:00
Martin Nordholts
e81c4f44de app: Allow more than one dock inside a dock window
Put a GimpDockColumns inside GimpDockWindow so that there can be more
than one dock inside a dock window. For now,
gimp_dock_window_get_dock() returns the first dock. Eventually need to
return all docks and refactor the other code as needed.
2009-10-25 13:10:08 +01:00
Martin Nordholts
ff6a787757 app: Add gimp_dialog_factory_dock_window_new()
Add gimp_dialog_factory_dock_window_new() since we need to be able to
create only dock windows when going from single-window mode back to
multi-window.
2009-10-25 12:24:54 +01:00
Martin Nordholts
3934813dd1 app: Insert, not prepend, into GimpDock dockbooks list
Insert, not prepend, into GimpDock dockbooks list. Fixes failing test
'test-session-management.c'.
2009-10-25 11:49:54 +01:00
Martin Nordholts
43c000498b app: Format gimpdialogfactory.h 2009-10-25 10:53:00 +01:00
Martin Nordholts
9cbe0cafa8 app: Document GimpDialogFactory 2009-10-25 10:38:42 +01:00
Martin Nordholts
4bd2230a55 app: Chain up GimpPanedBox::finalize() 2009-10-24 20:33:09 +02:00
Martin Nordholts
6f95bc6888 app: Keep GimpDocks in GtkPaneds in GimpDockColumns
Use the new GimpPanedBox to make the space for GimpDocks in
GimpDockColumns manually distributable by the use of GtkPaneds.
2009-10-24 20:10:42 +02:00
Martin Nordholts
b700f219de app: Make created GtkPaned subclass depend on GimpPanedBox orientation 2009-10-24 20:08:08 +02:00
Martin Nordholts
eb9b365864 app: Add GimpPanedBox
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.
2009-10-24 18:53:46 +02:00
Martin Nordholts
69f17fdbf2 app: Add gimp_dock_separator_set_dropped_cb()
Allow to set the dropped callback after dock separator construction.
We need this in order to move the dock separators into a common widget
for which the callback to use is not known at construction time.
2009-10-24 18:43:35 +02:00
Michael Natterer
db896708f3 Disable RGBA colormaps in offscreen widgets for now because they crash 2009-10-19 11:03:23 +02:00
Michael Natterer
0c58ffe680 Use an RGBA colormap so rounded corners work 2009-10-18 22:53:26 +02:00
Michael Natterer
81786482ec Add GimpToolOverlay which displays tool dialogs directly on the canvas
The new widget has a GtkDialog-like API so tools which use either an
overlay or a real dialog are as obvious as possible.
2009-10-18 22:33:23 +02:00
Michael Natterer
3d354c9434 Add new widget GimpOverlayBox which is a GtkContainer subclass
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).
2009-10-18 21:57:34 +02:00
Michael Natterer
4822ca0d6d Make menu positioning also works for transformed offscreen widgets
(gimp_button_menu_position): reorder the code, use the new
gdk_window_get_root_coords() and pass it coordinates that include
the widget's offset within its parent gdk window.
2009-10-18 16:03:33 +02:00
Michael Natterer
0ce426cc79 Make the toggle grid insensitive when the dynamics are read-only 2009-10-18 13:24:59 +02:00
Michael Natterer
387ec40214 Remove useless frame and vbox that were copied over from the paint options 2009-10-18 13:10:58 +02:00
Michael Natterer
52dd01fdef Change user-visible strings from "Dynamics" to "Paint Dynamics"
Because "Dynamics" doesn't mean anything by itself. Didn't add the
"Paint" where the context is clear, like in the dynamics dialog
context menu.
2009-10-18 13:03:40 +02:00
Michael Natterer
e979da8b22 Minor formatting fixes 2009-10-18 13:03:01 +02:00
Michael Natterer
57915302f6 Build with GSEAL_ENABLE 2009-10-17 21:24:12 +02:00
Alexia Death
210a4b5044 Merge resolution 2009-10-17 21:42:02 +03:00
Michael Natterer
1a23b9ecf2 Build with GSEAL_ENABLE and #undef it where accessors are missing 2009-10-17 20:20:39 +02:00
Martin Nordholts
eb6bef33e4 Use gtk_widget_set_visible()
In places where the pattern

  if (show)
    gtk_widget_show (widget);
  else
    gtk_widget_hide (widget);

is used, change to

  gtk_widget_set_visible (widget, show);

Also do some other minor cleanups.
2009-10-17 15:07:34 +02:00
Michael Natterer
3b1f78d286 Reorder dynamics stuff 2009-10-13 21:19:40 +02:00
Michael Natterer
f264cb4908 Remove useless diff to master 2009-10-13 21:17:39 +02:00
Alexia Death
7bae9c0827 Merge commit 'origin/master' into soc-2009-dynamics 2009-10-13 20:23:34 +03:00
Michael Natterer
8fed74777d Rename boolean properties of GimpDynamicsOutput from "foo" to "use-foo" 2009-10-12 19:06:11 +02:00
Michael Natterer
824be894a1 Get rid of local unused variable "config" 2009-10-12 14:46:27 +02:00
Michael Natterer
77faffe4b7 Rename the output members of GimpDynamics from foo_dynamics to foo_output 2009-10-12 14:45:12 +02:00
Michael Natterer
db98f468cb Rename utility function 2009-10-11 22:43:46 +02:00
Michael Natterer
e23073a382 Clean up widget creation in gimp_dynamics_editor_init() 2009-10-11 22:32:14 +02:00
Michael Natterer
6a47c2a4b8 Get rid of unused cruft and reorder functions and includes 2009-10-11 22:06:54 +02:00
Michael Natterer
8df73b9323 Switch to using GimpDynamicsOutput's properties
* app/core/gimpdynamics.c: remove all boolean properties and add the
  outputs as properties instead. Make sure changes on the outputs get
  notified on the dynamics object.

* app/widgets/gimpdynamicseditor.c: change widget creation accordingly,
  also copy around the properties correctly when copying between
  dynamics objects (fixes NULL filenames on GimpData).
2009-10-11 21:25:28 +02:00
Martin Nordholts
21c037fdd6 app: Generalize gimp_dock_add/remove_book()
Move the GtkPaned management code into gimp_widgets_add_paned_widget()
and gimp_widgets_remove_paned_widget() in gimpwidgets-utils.[ch] so we
can share this code for GimpDockColumns later.
2009-10-11 16:58:59 +02:00
Martin Nordholts
423c9d8212 app: Always keep dock separators alive
Always keep dock separators alive and show/hide them instead. This is
to avoid having to constantly create new separators.
2009-10-11 15:20:55 +02:00
Martin Nordholts
3236b57a47 app: Generalize GimpDockSeparator
Add a callback to GimpDockSeparator to get rid of the GimpDock
dependency so that we can reuse it also for GimpDockColumns later.
2009-10-11 13:59:27 +02:00
Martin Nordholts
bdfb87ad19 app: Add GimpDockSeparatorPrivate 2009-10-11 11:31:18 +02:00
Michael Natterer
8e285ba014 Add prefs UI for "dynamics-path" and "global-dynamics" 2009-10-11 01:42:23 +02:00
Alexia Death
0ca81896e9 Merge commit 'origin/master' into soc-2009-dynamics 2009-10-11 01:05:40 +03:00
Michael Natterer
6409ecb389 Fix gimp_dynamics_editor_set_data() to really work this time 2009-10-10 23:02:18 +02:00
Martin Nordholts
677b977776 app: Make class documentation be picked up by gtk-doc 2009-10-10 22:01:06 +02:00
Michael Natterer
5bd751c2d2 Make model <-> data property copying work, and some cleanup 2009-10-10 21:48:17 +02:00
Alexia Death
0ffcad4688 Several small fixes. 2009-10-10 21:43:58 +03:00
Alexia Death
7f8b347677 Several small fixes. 2009-10-10 21:43:57 +03:00
Alexia Death
430a796904 Fixes 2009-10-10 20:22:31 +03:00
Alexia Death
cf3c9b230a some missing files 2009-10-10 11:23:40 +03:00
Alexia Death
23c07b9a8d fixes to actions setup 2009-10-10 11:20:57 +03:00