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.
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+).
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.
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-01-17 Michael Natterer <mitch@gimp.org>
* all files with a GPL header and all COPYING files:
Change licence to GPLv3 (and to LGPLv3 for libgimp).
Cleaned up some copyright headers and regenerated the parsers in
the ImageMap plugin.
svn path=/trunk/; revision=27913
2007-11-22 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimphelpui.[ch]: use
gtk_widget_set_tooltip_text() from gimp_help_set_help() and added
gimp_help_set_help_data_with_markup() for the cases where markup
is needed.
* libgimpwidgets/gimpwidgets.def: updated.
* app/tools/gimpselectionoptions.c
* app/widgets/gimpeditor.c
* app/widgets/gimpwidgets-utils.c: use the new function where markup
in tooltips is being used.
* app/widgets/gimptoolbox-color-area.c: no need to escape the
ampersand any longer.
svn path=/trunk/; revision=24217
2007-11-09 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimphelpui.[ch]: use the new tooltip API instead
of the old deprecated one. Removed _gimp_help_init(). Remember
whether tooltips are enabled or not in a local variable that can
only be altered at startup time and not after. The API now expects
markup instead of plain text which might cause warnings and
perhaps needs to be changed.
* libgimpwidgets/gimpwidgets-private.c: don't call _gimp_help_init().
* app/config/gimpguiconfig.c: made show-tooltips a
GIMP_CONFIG_PARAM_RESTART property.
* app/widgets/gimptoolbox-color-area.c: don't add the tooltip here...
* app/widgets/gimptoolbox.c: ...but here (as for all other
indicators). Also escape '&' properly because we now use markup.
* app/tools/gimpselectionoptions.c
* app/widgets/gimpeditor.c
* app/widgets/gimpwidgets-utils.c: print modifiers and
shortcuts in bold instead of in ().
* app/widgets/gimpcontainertreeview.c: show tooltips on rows if
gimp_viewable_get_description() returns a tip.
* app/dialogs/preferences-dialog.c
* plug-ins/jpeg/jpeg-save.c
* plug-ins/MapObject/mapobject_ui.c
* plug-ins/Lighting/lighting_ui.c
* plug-ins/common/animationplay.c
* plug-ins/common/warp.c: no need to add event boxes just to have
tooltips, the new ones work on all widgets.
svn path=/trunk/; revision=24093
2006-06-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpeditor.c (gimp_editor_add_action_button): simply
use gimp_button_new() instead of g_object_new(). Don't set the
"use-stock" property and reordered some code. Keeps GtkButton from
thinking that is has constructed the button's child itself and
thus makes the function more rubust against changes in GtkButton.
2006-01-18 Michael Natterer <mitch@gimp.org>
* app/config/config-types.c: define GIMP_PARAM_STATIC_STRINGS
which is G_PARAM_STATIC_NAME|NICK|BLURB. Also define
GIMP_PARAM_READABLE, _WRITABLE and _READWRITE which include
GIMP_PARAM_STATIC_STRINGS.
* app/*/*.c: use them for all object properties so their
strings are not copied.
2005-11-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpeditor.c (gimp_editor_add_button)
(gimp_editor_add_action_button): set the "use-stock" property on
the created buttons so changes of the underlying action's name
don't affect change the button's icon to a string.
2005-06-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpcursorview.c
* app/widgets/gimpdataeditor.c
* app/widgets/gimpeditor.c
* app/widgets/gimphistogrameditor.c
* app/widgets/gimppaletteeditor.c: peek at the default interface to
get the parent interface. Unconditionally chain up in get_aux_info()
and set_aux_info() methods.
2005-06-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdocked.[ch]
* app/widgets/gimpeditor.[ch]: moved button-bar API to the
GimpDocked interface.
* app/widgets/gimpcontainereditor.c: implement the new interface
methods and proxy them to the embedded docked.
* app/actions/dockable-actions.c
* app/actions/dockable-commands.c: changed accordingly.
2005-06-04 Sven Neumann <sven@gimp.org>
* app/actions/dockable-actions.c
* app/actions/dockable-commands.[ch]
* app/widgets/gimpeditor.[ch]
* app/widgets/gimphelp-ids.h
* menus/dockable-menu.xml.in: allow to show/hide the button-bar in
GimpEditor. Should be merged into the GimpDocked interface.
2005-05-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimpeditor.[ch]: added a name label (with properties
to show/hide and to set it).
* app/widgets/gimpcontainergridview.[ch]
* app/widgets/gimphistogrameditor.[ch]: removed the label here and
use the functionality now provided by GimpEditor instead.
* app/widgets/gimpcontainerpopup.c: changed accordingly.
2004-10-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpeditor.c (gimp_editor_ensure_button_box): make
sure the button_box is always interted at the very bottom of the
editor.
* app/widgets/gimpviewabledialog.c: changed the "description"
property from CONSTRUCT_ONLY to CONSTRUCT.
* app/widgets/gimpcolormapeditor.c: show the index of the edited
color in the color dialog and use the correct icon. Replaced label
"Hex triplet" by "HTML notation" to be consistent with the color
dialog. Removed wrong 2 pixel border around the table below the
preview.
2004-10-16 Michael Natterer <mitch@gimp.org>
* app/actions/channels-actions.c
* app/actions/colormap-editor-actions.c
* app/actions/documents-actions.c
* app/actions/tool-options-actions.c
* app/actions/vectors-actions.c: added more tooltips for actions
which are used as extended dialog button callbacks.
* app/widgets/gimpeditor.c (gimp_editor_add_action_button): keep
the list of extended actions in reverse order.
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpdocumentview.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimptooloptionseditor.c
* app/widgets/gimpvectorstreeview.c: don't set the tooltips
manually. Removes another bunch of insane translatable multiline
format strings. Pass the extended actions in the right order
to gimp_editor_add_action_button().
2004-10-16 Michael Natterer <mitch@gimp.org>
Ported the layers, channels and paths dialogs from
gimp_editor_add_button() to gimp_editor_add_action_button(),
removing a massive amount of duplicated code, sensitivity logic
and confusing utility functions.
* app/actions/channels-actions.c
* app/actions/channels-commands.[ch]
* app/actions/layers-actions.c
* app/actions/layers-commands.[ch]
* app/actions/vectors-actions.c
* app/actions/vectors-commands.[ch]: added "foo-new-default"
actions and callbacks which create items without a dialog,
optionally using default values from a passed template. Removed
all public utility function that were passed as function pointers
to widget construtors. Added tooltips to all actions which are now
used for dialog buttons.
* app/widgets/gimpeditor.c (gimp_editor_add_action_button):
automatically create multi-line tooltips showing the modifiers for
extended action buttons. Removes the need for lots of insane
format strings that need to be translated correctly.
* app/widgets/gimpitemtreeview.[ch] (struct GimpItemTreeViewClass):
replaced tooltip and help_id strings by action names.
(struct GimpItemTreeView)
(gimp_item_tree_view_new): removed "edit", "new" and "activate"
function pointers.
(gimp_item_tree_view_constructor): create all buttons
with gimp_editor_add_action_button(), using the action names
from GimpItemTreeViewClass.
Removed tons of "clicked" callbacks and all code which sets the
buttons' sensitivity. They are not needed any longer.
Require all subclasses to implement GimpItemTreeView::new_item(),
a new virtual function which creates a plain new item without
showing a dialog.
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpvectorstreeview.c: fill in the action names and
implement GimpItemTreeView::new_item(). Removed all button
sensitivity logic.
* app/dialogs/dialogs-constructors.c: changed accordingly. Doesn't
include anything from actions/ any more.
2004-09-26 Michael Natterer <mitch@gimp.org>
Ported GimpNavigationView to use actions for its buttons:
* app/menus/menus.c (menus_init): register a <GimpNaviagaionEditor>
UI manager containing the "view" action group.
* app/actions/actions.c (action_data_get_foo): handle "data" being
a GimpNavigationEditor.
* app/actions/view-actions.c (view_actions): added tooltips for
the actions used in the editor.
(view_actions_update): use action_data_get_display() instead of
checking the type of "data" manually.
* app/widgets/gimpeditor.c (gimp_editor_add_action_button): use
a GtkToggleButton instead of GimpButton for GtkToggleActions.
* app/display/gimpnavigationeditor.[ch]: added a GimpMenuFactory
parameter to the public constructor and removed all other
parameters. Simplified gimp_navigation_editor_new_private() and
use gimp_editor_add_action_button() instead of just add_button()
for creating the buttons. Made gimp_navigation_view_set_shell()
private. Update the UI manager when the shell zooms or scrolls.
* app/dialogs/dialogs-constructors.c (dialogs_navigation_view_new):
pass the menu_factory to gimp_navigation_editor_new().
Removed #includes which are not needed any more.
2004-05-17 Michael Natterer <mitch@gimp.org>
* menus/menus.xsl: put the image popup menu into a dummy menubar
to work around the silly GtkUIManager restriction that popup menus
can't have tearoff items.
* app/menus/menus.c
* app/menus/image-menu.c
* app/display/gimpdisplayshell-callbacks.c
* app/gui/gui-vtable.c
* app/menus/plug-in-menus.c: changed accordingly.
* app/gui/gui.c (gui_restore_after_callback): connect to
"notify::tearoff-menus" of GimpGuiConfig and reconfigure the
global image UI manager accordingly.
* app/config/gimpguiconfig.c: removed GIMP_PARAM_RESTART from the
"tearoff-menus" property because GtkUIManager can change this on
the fly.
* app/display/gimpdisplayshell.[ch]: added the menubar to the
GimpDisplayShell struct. Some cleanup in gimp_display_shell_new().
* app/display/gimpdisplayshell-appearance.c
(gimp_display_shell_set_show_menubar): use shell->menubar instead
of asking the UI manager.
* app/widgets/gimpuimanager.[ch]: changed gimp_ui_manager_ui_get()
to transparently load the XML files even if a sub-widget was
requested. Reordered parameters of gimp_ui_manager_ui_popup().
Lots of internal cleanups.
* app/widgets/gimpdockable.c
* app/widgets/gimptooloptionseditor.c: simplified accordingly.
* app/widgets/gimpeditor.[ch]: added new function
gimp_editor_popup_menu() which takes a GimpMenuPositionFunc and
updates/shows the editor's menu.
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimperrorconsole.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c: use gimp_editor_popup_menu().
* app/widgets/gimptoolbox.c: moved all code from
gimp_toolbox_new() to GObject::constructor().
2004-05-12 Michael Natterer <mitch@gimp.org>
* app/actions/documents-actions.c
* app/actions/documents-commands.c
* app/actions/edit-actions.c
* app/actions/edit-commands.[ch]
* app/actions/layers-actions.c
* app/actions/layers-commands.c
* app/actions/select-actions.c
* app/actions/select-commands.[ch]
* app/actions/vectors-actions.c
* app/actions/vectors-commands.[ch]: added tooltips for actions
which are now used for dialog buttons, added callback
implementations which formerly lived in various widgets, moved
some actions around and did some general cleanups.
* menus/image-menu.xml.in: s/edit-stroke/select-stroke/
* menus/Makefile.am
* menus/selection-editor-menu.xml: new popup menu.
* app/menus/menus.c: register <SelectionEditor> and <UndoEditor>
UI managers.
* app/widgets/gimpeditor.[ch]: added construct properties
"menu-factory", "menu-identifier", "ui-path" and "popup-data".
Implement GObject::constructor() and create the UI manager
if all needed properties were set. Enables creating action
buttons at widget construction time because they need a
UI manager.
(gimp_editor_add_action_button): changed to take a va_list of
"extended" actions which are invoked if the resp. button emits
"extended_clicked". Store the actions and their modifier masks in
a list attached to the button.
* app/widgets/gimpcontainerview.c
(gimp_container_view_item_selected): if the view has container
*and* context, simply change the context and return.
(gimp_container_view_context_changed): don't emit "select_item"
manually but simply call gimp_container_view_select_item().
(gimp_container_view_viewable_dropped): use
gimp_container_view_item_selected() instead of changing the
context directly.
* app/widgets/gimpcontainereditor.c
(gimp_container_editor_select_item): update the UI manager.
* app/widgets/gimpdockable.c: don't try to fiddle with the
dialog's menu if it doesn't have a ui_path (happens if the UI
manager is just a collection of actions for the dialog buttons and
has no menu registered).
* app/widgets/gimpimageeditor.c: connect to the image's "flush"
signal and update the UI manager in the callback.
* app/widgets/gimpitemtreeview.c: use GimpEditor's construct
properties to create the UI manager so GimpItemTreeView subclasses
can have action buttons. Update the UI manager in
gimp_item_tree_view_select_item().
* app/widgets/gimpbufferview.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpfontview.c
* app/widgets/gimpimageview.c
* app/widgets/gimptemplateview.c
* app/widgets/gimptoolview.c: changed calls to
gimp_editor_add_action_button() accordingly and removed some
unneeded select_item() implementations.
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpvectorstreeview.[ch]
* app/widgets/gimpdocumentview.[ch]
* app/widgets/gimplayertreeview.c
* app/widgets/gimpselectioneditor.[ch]
* app/widgets/gimpundoeditor.[ch]: use action buttons and removed
lots of callbacks which went to the resp. action callbacks.
* app/widgets/widgets-types.h: removed some now unneeded function
prototypes.
* app/gui/dialogs-constructors.c: changed (simplified) many dialog
constructors accordingly.