Commit Graph

3474 Commits

Author SHA1 Message Date
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