Commit graph

21 commits

Author SHA1 Message Date
Michael Natterer
82e4bf5792 app: fix "active" state management in GimpToggleAction
gimp_toggle_action_real_toggle(): set "active" before emitting
"change-state" so we don't infinitely try to set the state in case of
a recursion.

gimp_toggle_action_toggle(): add notify("active") because it wasn't
done anywhere.

Fixes #9392
2023-05-24 14:09:50 +02:00
Jehan
8a8914bc21 app: a bit of code cleanup.
Especially some remnants of when Gimp(Toggle|Radio)Action were not descendants
of GimpActionImpl and had to reimplement GimpAction interface.

Also fixing a few details here and there.
2023-04-20 15:36:11 +02:00
Jehan
89772351c9 Issue #9349: Add concept of "short" (contextual) vs "long" label for actions.
All Gimp*ActionEntry (except GimpProcedureActionEntry) now have a short_label
member.
This commit doesn't add any new short label yet. It just fixes the struct usage,
and fixes a few localization contexts here and there when I saw such broken
strings.

I also fixed a few gradient editor action strings which were not proper labels
(like "splitmidpoint" or "splituniform", or missing uppercase, etc.).
2023-04-14 17:48:57 +02:00
Jehan
9f1fd64a41 app: GimpRadioAction is now a subclass of GimpRadioAction.
We now completely got rid of all GtkToggleAction and GtkRadioAction code in the
whole of GIMP!
2023-04-12 22:07:08 +02:00
Jehan
a813f82252 app: GimpToggleAction is now a GimpActionImpl subclass. 2023-04-12 22:07:08 +02:00
Jehan
01a4feb784 app, libgimpwidgets: GimpAction proxy widgets will display the proper tooltip.
The tooltip contains the reason for action inactivity, if relevant. And in case
of a GtkMenuItem in particular, it will also contain the "Press F1 for more
help" text at the bottom.
2023-04-12 22:07:08 +02:00
Jehan
1b54616492 app: don't make "context" mandatory on a GimpAction.
Simply with a NULL context, we can't set or get accels from a GimpAction. Having
a mandatory context was a problem for GimpColorButton which could create a
GimpAction even though libgimpwidget has no knowledge of GimpContext.
2023-04-12 22:07:08 +02:00
Jehan
726e690d38 app: make the GimpContext a mandatory property for a Gimp*Action.
Making the action be context-awareness will be useful, in particular as we'll
have access to the GtkApplication.
2023-04-12 22:07:08 +02:00
Jehan
c8845c95ec app: move more of GimpActionImpl code into GimpAction. 2023-04-12 22:07:08 +02:00
Jehan
d735ba10ea app: GimpRadioAction and GimpToggleAction are now GAction-s.
Since these were not children of GimpActionImpl, I had to reimplement basically
the same code, which is kinda ugly. When we'll have finally gotten rid of any
dependency to Gtk*Action, these 2 classes should be re-parented under
GimpActionImpl, hence simplifying their code.
2023-04-12 22:07:07 +02:00
Ell
aab9f0ee10 app: fix a few compilation warnings 2019-09-04 20:51:43 +03:00
Michael Natterer
f7007d5161 app: get rid of a few more GtkAction warnings, and a little cleanup 2019-07-05 12:32:36 +02:00
Michael Natterer
3b6b3fc189 app: GtkAction -> GAction madness part two
Change all action callbacks so they can be invoked by a GAction:

- add GimpActionCallback typedef:
  void (* cb) (GimpAction*, GVariant*, gpointer)
- change all action callbacks to the GimpActionCallback signature
- add "gimp-activate" and "gimp-change-state" signals to GimpAction,
  with the same signature as the resp. GAction signals
- remove all other custom action signals and only use the new
  GimpAction signals
- pass around appropriate GVariants containing booleans, int32,
  strings
- badly hack around to force a GimpProcedure pointer into a
  uint64 variant
- remove all G_CALLBACK() casts from all action callbacks,
  they all have the same signature now
2019-07-04 01:11:48 +02:00
Michael Natterer
86e07c16b5 app: start porting away from GtkAction and friends
Step one: get rid of all those deprecation warnings that make
it hard to see any other warnings:

- add a lot of dummy API to GimpAction, GimpActionGroup, GimpUIManager
  etc. which simply forwards to the deprecated GTK functions, they
  will all go away again later
- rename GimpAction to GimpActionImpl
- add interface GimpAction that is implemented by all action classes,
  creates a common interface and allows to remove some duplicated
  logic from GimpToggleAction and GimpRadioAction, and at the same
  time adds more features
2019-07-02 14:21:32 +02:00
Michael Natterer
5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
Michael Natterer
9ed5b3f45e app: port GimpAction and friends to icon names 2014-05-06 23:47:38 +02:00
Michael Natterer
aea161c9a5 app: also include <gegl.h> when we include "libgimpwidgets/gimpwidgets.h" 2013-11-01 22:28:18 +01:00
Michael Natterer
c9674b4603 Use the new GtkAction accessors instead of g_object_get()/set() 2009-05-24 22:29:18 +02:00
Michael Natterer
d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
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
2009-01-17 22:28:01 +00:00
Sven Neumann
961683cc23 app/widgets/gimpaction.c app/widgets/gimpdockable.c
2008-08-22  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpaction.c
	* app/widgets/gimpdockable.c
	* app/widgets/gimpradioaction.c
	* app/widgets/gimpstringaction.c
	* app/widgets/gimptoggleaction.c: added basic support for icon
	names for actions and dockables. Uses the stock-id as icon name
	if the icon theme provides an icon under this name.

	* app/dialogs/dialogs.c
	* app/actions/documents-actions.c
	* app/actions/dialogs-actions.c: use the "document-open-recent"
	icon for the document history.


svn path=/trunk/; revision=26710
2008-08-22 08:57:11 +00:00
Sven Neumann
9a63a43566 app/widgets/Makefile.am app/widgets/gimptoggleaction.[ch] added new action
2008-05-20  Sven Neumann  <sven@gimp.org>

	* app/widgets/Makefile.am
	* app/widgets/gimptoggleaction.[ch]
	* app/widgets/gimpradioaction.[ch]: added new action types derived
	from GtkToggleAction and GtkRadioAction. These types override the
	"connect_proxy" method to enable tooltips in menus.

	* app/widgets/gimpactiongroup.c: use the new action types.

	* app/actions/dockable-actions.c: added a tooltip for the
	"dockable-lock-tab" action.

svn path=/trunk/; revision=25717
2008-05-20 09:51:04 +00:00