Commit Graph

131 Commits

Author SHA1 Message Date
Jehan 20923260cf libgimpwidgets: new GimpLabelStringWidget and update GimpStringComboBox.
- GimpLabelStringWidget widget makes any widget with a "value" string property
  into a GimpLabeled.
- Add a "value" string property to GimpStringComboBox (which makes it usable by
  GimpLabelStringWidget).
2023-10-01 20:52:02 +02:00
Jehan 41201f0865 libgimpwidgets: new GimpIntRadioFrame object.
A proper class for a frame containing radio buttons. This object has a
"value" property and will therefore be very easy to use in various API
binding a config property to a widget property.

A GimpIntRadioFrame is also what gimp_prop_int_radio_frame_new() will
return now.

gimp_prop_int_radio_box_new() on the other hand is being removed. It is
used nowhere and is unneeded. If someone really needs a non-labelled
group of radio buttons, they can also create a GimpIntRadioFrame, remove
the label and hide the borders. At least they will still be able to
easily bind it to a config property.
2022-06-15 21:18:37 +02:00
Jehan d7fb0842a1 libgimpwidgets: new GimpLabelColor widget (color area with a label).
I tried to have a not too overwhelming API, so we just ask for the label
and initial color at construction. We keep sane defaults for the rest
and let people tweak the result by getting the color area widgets
themselves (if they need to force-showing flat colors or change the drag
buttons in particular).

Another thing I wondered about was the initial size of the color area.
Without a size request or being in some container expanding its
children (which may also be ugly), it ends up too small. I can imagine
such widget being used especially when you want to display several
color rectangles next to each other with a label each. So I just set it
this way. Anyone is free to request a resize after constructing the
object.

Last but not least, the position of the label was especially of interest
here. For my idea of a list of colors, I could definitely imagine color
blocks aligned with vertically-oriented labels above or below. It might
be worth adding an API for this later on.
2022-02-17 23:13:42 +01:00
Jehan 9357552059 libgimpwidgets: new GimpLabelEntry widget and associated prop API…
… gimp_prop_label_entry_new().
2022-02-17 23:13:42 +01:00
Jehan ab1fc79a07 app, libgimpwidgets: move GimpSpinScale to libgimpwidgets.
There is really nothing specific to the core application, it is quite a
generic widget, so it would be nice for plug-ins to be able to use this
widget.
2022-02-17 23:13:42 +01:00
Jehan 7b6f2e5c2b libgimp, libgimpwidgets, plug-ins: improved GimpProcedureDialog API.
- New GimpLabelIntWidget which is a label associated to any widget with
  an integer "value" property.
- New gimp_procedure_dialog_get_int_combo() which creates a labeled
  combo box from an integer property of the GimpProcedureConfig.
- Renamed gimp_procedure_dialog_populate*() with
  gimp_procedure_dialog_fill*(). Naming is hard! I hesitated using
  _pack() as well (similarly to GtkBox API).
- New gimp_procedure_dialog_fill_flowbox*() functions to create a
  GtkFlowBox filled with property widgets (or other container widgets as
  we can pack them one in another). This is an alternative way to build
  your GUI with sane defaults, with list of property names.
2020-11-13 21:27:56 +01:00
Jehan 4ea2b430be libgimpwidgets: new GimpLabeled class and GimpLabelSpin subclass.
There is currently no property widget which just creates a
GimpSpinButton with a label. Just as the GimpScaleEntry was needed, this
one is as well.
I am creating a GimpLabeled abstract class which will represent various
widgets with a label. While this may seem a bit over-engineered for such
a basic feature, this will actually bring some consistency and a common
parent. In particular this can be used to get the GtkLabel with a common
interface to add them all in a common GtkSizeGroup when generating
dialogs automatically, hence make dialogs with properly aligned labels
and edition widgets.
2020-11-05 18:06:52 +01:00
Jehan f27d172750 libgimpwidgets: new GimpColorScaleEntry class.
Similarly to GimpScaleEntry, this is meant to replace usage of
gimp_color_scale_entry_new() by having a proper widget. This is a child
class of GimpScaleEntry which simply replaces the GtkScale by a
GimpColorScale by adding a GimpScaleEntry class method to create the
scale widget (only restriction: it must be a GtkRange subtype).

This also triggers me to rename gimp_scale_entry_get_scale() into
gimp_scale_entry_get_range() (as well as the 2 plug-ins already using
this function).
2020-11-01 00:08:20 +01:00
Niels De Graef a8de828195 gimpwidget: Correct gtk-doc docs wrt GtkHBox
GtkHBox is a deprecated version of GtkBox, which we don't even use
anymore. It confuses the gtk-doc a build though, so let's fix it to get
rid of another warning.
2020-05-08 14:17:18 +02:00
Jehan ec9dbd8115 libgimpwidgets, app, plug-ins: fix last GIR warnings.
gimp_int_radio_group_new() was still complaining about the scope of
radio_button_callback(). Make it (scope notified) because it needs to
stay alive after the function returns and may be called multiple times.

Also adding a GDestroyNotify to free the callback data once the widget
is destroyed (additionally it will also serve as a notifier for bindings
to properly free the callback closure itself, not only it's data).

With this last one done, GObject Introspection generation now happens
without any warning output.
2020-01-15 14:00:19 +01:00
Michael Natterer 1f7c823a90 libgimpwidgets: remove the gimp_radio_group_*() functions
they are antique cruft and unused.
2019-09-25 23:37:03 +02:00
Michael Natterer ea4fe02a6d libgimpwidgets: some docs fixes 2019-08-18 14:07:17 +02:00
Ell 7ab9ee2686 libgimpwidgets: add GimpSpinButton
GimpSpinButton is a drop-in replacement for (and a subclass of)
GtkSpinButton.  Unlike GtkSpinButton, it avoids updating the
adjustment value when losing focus, unless the entry text has
changed.  This prevents accidental loss of precision, when the
adjustment value can't be accurately displayed in the entry.
2018-11-10 06:48:56 -05:00
Michael Natterer 5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
Ell 000fd8e69b libgimpwidgets: add GimpBusyBox
GimpBusyBox is used to show a message indicating an operation is in
progress.  It's basically just a spinner and a label, with some
styling.

We're going to use it both in app/ and in a plug-in.
2018-05-29 16:04:28 -04:00
Michael Natterer b55e481459 libgimpwidgets: remove gimp_spin_button_new() 2018-05-20 21:06:34 +02:00
Michael Natterer 37e24d0059 libgimpwidgets: remove gimp3migration.[ch] 2018-05-20 21:06:29 +02:00
Michael Natterer a562a0c798 libgimpwidgets: s/GtkObject/GtkAdjustment/ in gimpwidgets.[ch] 2018-05-20 21:06:26 +02:00
Michael Natterer dae87ee1c7 libgimpwidgets: remove deprecated files from the build 2018-05-20 21:06:26 +02:00
Michael Natterer 71894bd787 libgimpwidgets: rename gimpstock.[ch] to gimpicons.[ch]
because stock is on its way out, so we better start renaming and
deprecating stuff sooner than later.
2015-12-12 20:44:46 +01:00
Michael Natterer 6b0b774302 libgimpwidgets: add gimpwidgetsutils.[ch]
Move some functions from libgimpwidgets/gimpwidgets.[ch]
and from app/widgets/gimpwidgets-utils.[ch]. Newly add
gimp_widget_get_color_profile() which is extracted from
modules/display-filter-lcms.c.
2015-05-06 22:15:30 +02:00
Michael Natterer eaea58f5e3 libgimpwidgets: deprecate gimp_spin_button_new()
it should have never been added in the first place. Port all users
to using gtk_spin_button_new() directly.
2014-06-21 22:35:39 +02:00
Michael Natterer 76f47708fa libgimpwidgets: #include gimpimageprofileview.h from gimpwidgets.h 2014-03-16 18:36:12 +01:00
Michael Natterer 9c7cd2508f app, libgimpwidgets: move GimpProfileChooserDialog to libgimpwidgets
and call it GimpColorProfileChooserDialog. Make libgimpwidgets
depend on lcms and make it query the profile directly.
2014-03-14 22:03:08 +01: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 030413b9f6 libgimpwidgets: add gimp3migration.[ch] to help the gtk3-port branch
This is such a hack, but entirely safe when linking against GTK+ 2.x.
Please ignore the uglyness.
2011-09-30 10:45:00 +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 05cd8670c3 libgimpwidgets: deprecate gimp_toggle_button_sensitive_update()
Use g_object_bind_property() instead.
2011-05-11 22:13:33 +02:00
Michael Natterer 268930f489 libgimpwidgets: gimp_pixmap_button_new, gimp_unit_menu_update -> gimpoldwidgets
where they belog. gimp_unit_menu_update() is newly deprecated.
2011-04-28 14:53:49 +02:00
Michael Natterer 844df2b4df libgimp*: add guards that #error out if individual files are included
This only helps to maintain proper includes in app/ and shouldn't
affect plug-ins at all, because these are supposed to only include the
main headers from libgimp/ since the beginning of time.

The gimpfootypes.h files do not have these guards, so we can continue
to maintain app/'s include policy that is very likely to error out if
wrong things are included.
2011-04-28 14:30:41 +02:00
Michael Natterer 74458f46ee app/libgimpwidgets: move GimpUnitStore and GimpUnitComboBox to libgimpwidgets 2010-10-14 22:15:25 +02:00
Michael Natterer b3ee51794d libgimpwidgets: fix most gtk-doc warnings 2010-07-05 19:04:15 +02:00
Michael Natterer 1f7ff98c45 libgimpwidgets: move docs from template files to inline comments
but leave the template file for gimpstock there because its contents
would be too much for gimpstock.h.
2010-07-05 18:01:28 +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
Martin Nordholts 43f810870b Added 'Since: GIMP 2.8' to GIMP_WIDGETS_ERROR.
* libgimpwidgets/gimpwidgets-error.h: Added 'Since: GIMP 2.8' to
GIMP_WIDGETS_ERROR.

* libgimpwidgets/gimpwidgets.h: Added gimpwidgets-error.h.

svn path=/trunk/; revision=27743
2008-12-01 07:44:14 +00:00
Michael Natterer edcd1e7810 libgimpwidgets/Makefile.am libgimpwidgets/gimpwidgets.h
2008-08-29  Michael Natterer  <mitch@gimp.org>

	* libgimpwidgets/Makefile.am
	* libgimpwidgets/gimpwidgets.h
	* libgimpwidgets/gimphruler.[ch]
	* libgimpwidgets/gimpvruler.[ch]: remove separate H/VRuler classes.

	* libgimpwidgets/gimpruler.[ch]: add an "orientation" property
	instead. Add gimp_ruler_new().

	* libgimpwidgets/gimpwidgets.def: changed accordingly.

	* app/dialogs/resolution-calibrate-dialog.c
	* app/display/gimpdisplayshell.c
	* plug-ins/gfig/gfig-preview.c
	* plug-ins/imagemap/imap_preview.c: ditto.


svn path=/trunk/; revision=26810
2008-08-29 10:25:29 +00:00
Sven Neumann ae67f09ddd libgimpwidgets/Makefile.am libgimpwidgets/gimpwidgets.h
2008-05-26  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/Makefile.am
	* libgimpwidgets/gimpwidgets.h
	* libgimpwidgets/gimpwidgetstypes.h

	* libgimpwidgets/gimpruler.[ch]
	* libgimpwidgets/gimphruler.[ch]
	* libgimpwidgets/gimpvruler.[ch]: added ruler widgets. These are
	mostly copied from GTK+ and work as a drop-in replacement for
	GtkRuler and friends.

	* libgimpwidgets/gimpwidgets.def: updated.

	* app/display/gimpdisplayshell.c
	* app/display/gimpdisplayshell-scale.c
	* app/dialogs/resolution-calibrate-dialog.c
	* plug-ins/imagemap/imap_preview.c
	* plug-ins/gfig/gfig-preview.c: use the GimpRuler widgets.


svn path=/trunk/; revision=25820
2008-05-26 21:20:16 +00:00
William Skaggs 4397dc25bf Bill Skaggs <weskaggs@primate.ucdavis.edu>
Merged from weskaggs branch at Mitch's request.  Will
	need to update devel docs.
	
	Place scale entry code into separate files, no
	functional changes.

	* libgimpwidgets/gimpscaleentry.c
	* libgimpwidgets/gimpscaleentry.h: new files.
	
	* libgimpwidgets/gimpwidgets.h
	* libgimpwidgets/gimpwidgets.c
	* libgimpwidgets/gimpwidgets.h
	* libgimpwidgets/Makefile.am: changed accordingly.

svn path=/trunk/; revision=24887
2008-02-14 17:02:47 +00:00
Sven Neumann a44fa674f0 app/widgets/Makefile.am removed here...
2007-12-12  Sven Neumann  <sven@gimp.org>

	* app/widgets/Makefile.am
	* app/widgets/gimpcairo-utils.[ch]: removed here...

	* libgimpwidgets/Makefile.am
	* libgimpwidgets/gimpcairo-utils.[ch]: and added here after some
	cleanup.

	* libgimpwidgets/gimpwidgets.h: include gimpcairo-utils.h.

	* app/widgets/gimpviewrenderer.c
	* app/widgets/gimpviewrenderergradient.c
	* app/widgets/gimpviewrendererpalette.c: changed accordingly.

	* libgimpwidgets/gimpwidgets.def: updated for Cairo utils.

	* libgimp/gimp.def: added gimp_image_get_vectors_by_tattoo.


svn path=/trunk/; revision=24339
2007-12-12 14:17:19 +00:00
Sven Neumann f3675a45ad libgimpwidgets/Makefile.am libgimpwidgets/gimpwidgets.h
2007-08-14  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/Makefile.am
	* libgimpwidgets/gimpwidgets.h
	* libgimpwidgets/gimpwidgetstypes.h
	* libgimpwidgets/gimpcolorprofilecombobox.[ch]
	* libgimpwidgets/gimpcolorprofilestore.[ch]
	* libgimpwidgets/gimpcolorprofilestore-private.h: new widget to
	select color profiles.

	* libgimpwidgets/gimpwidgets.def: updated.

	* app/widgets/gimpprofilechooserdialog.[ch]: remember the name of
	the last previewed profile.

	* app/dialogs/preferences-dialog.c: use the new color profile
	combo-box.

	* plug-ins/common/lcms.c: use the new color profile combo-box.

svn path=/trunk/; revision=23253
2007-08-14 16:01:04 +00:00
Martin Nordholts 93d4dc68de Renamed GimpRatioEntry to GimpNumberPairEntry, and generalized the code a
2007-08-08  Martin Nordholts  <martinn@svn.gnome.org>

	Renamed GimpRatioEntry to GimpNumberPairEntry, and generalized the
	code a lot, so that it can be used both for 'Fixed: Aspect ratio'
	and 'Fixed: Size'. Support is also added for having default values
	and a 'user overrided' value mode.

	* libgimpwidgets/gimpnumberpairentry.[ch]: Now contains the
	rewrite and generalization of GimpRatioEntry.
	(gimp_number_pair_entry_get_type)
	(gimp_number_pair_entry_new)
        (gimp_number_pair_entry_set_default_values)
	(gimp_number_pair_entry_set_values)
        (gimp_number_pair_entry_get_values): New libgimpwidget API.

	* app/widgets/gimppropwidgets.[ch] (gimp_prop_size_2d_new): Added
	new helper widget for setting up a GimpNumberPairEntry for the
	Fixed: Size entry in the Rectangle Options.

	* app/tools/gimprectangleoptions.c (gimp_rectangle_options_gui):
	Use the new gimp_prop_size_2d_entry for the Fixed: Size entry.

	* libgimpwidgets/gimpwidgets.def: Removed gimp_ratio_entry_* and
	added gimp_number_pair_entry_*.

	* libgimpwidgets/gimpwidgets.h * libgimpwidgets/gimpwidgetstypes.h
	* libgimpwidgets/Makefile.am (libgimpwidgets_2_0_la_sources)
	(libgimpwidgetsinclude_HEADERS): Updated accordingly.

svn path=/trunk/; revision=23154
2007-08-08 18:08:24 +00:00
William Skaggs e78be6be72 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* libgimpwidgets/gimpresolutionentry.[ch]: removed
	* libgimpwidgets/gimpwidgets.h
	* libgimpwidgets/Makefile.am: changed accordingly

	* plug-ins/pygimp/gimpui.defs: resolution entry api removed

	* plug-ins/common/poppler.c: resolution entry code added
	here, with unused api removed.

	Addresses (maybe fixes) bug #351281.

svn path=/trunk/; revision=22394
2007-05-03 22:13:48 +00:00
Sven Neumann 0a203e30c4 libgimpwidgets/Makefile.am libgimpwidgets/gimpwidgetstypes.h
2007-02-12  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/Makefile.am
	* libgimpwidgets/gimpwidgetstypes.h
	* libgimpwidgets/gimpwidgets.h
	* libgimpwidgets/gimpstringcombobox.[ch]: added GimpStringComboBox.

	* libgimpwidgets/gimppropwidgets.[ch]: added a prop widget
	constructor that uses the new widget.

	* libgimpwidgets/gimpwidgets.def: updated.

	* app/widgets/gimpcontrollereditor.c: use a GimpStringComboBox if
	the module specifies a tree model with string values.

	* modules/gimpinputdevicestore.c: minor cleanup.

	* modules/controller_linux_input.c: keep a pointer to the input
	device store and unref it in the finalizer.


svn path=/trunk/; revision=21900
2007-02-12 15:29:45 +00:00
Simon Budig 7a3eb8dcd3 New files implementing a widget for entering ratios. Will be improved over
2006-12-30  Simon Budig  <simon@gimp.org>

	* libgimpwidgets/gimpratioentry.[ch]: New files implementing a widget
	for entering ratios. Will be improved over time...

	* libgimpwidgets/gimpwidgetstypes.h
	* libgimpwidgets/gimpwidgets.h
	* libgimpwidgets/Makefile.am: changed accordingly.

	* app/widgets/gimppropwidgets.c: use it for the crop/rectangle
	select tools.

svn path=/trunk/; revision=21613
2006-12-30 15:25:11 +00:00
Sven Neumann dea33cb255 libgimpwidgets/Makefile.am libgimpwidgets/gimpwidgets.h added simple
2006-09-05  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/Makefile.am
	* libgimpwidgets/gimpwidgets.h
	* libgimpwidgets/gimphintbox.[ch]: added simple widget to
display
	a user hint. Having this as a widget will allow us to change the
	look, perhaps even using style properties.

	* libgimpwidgets/gimpwidgets.def: added the new symbols.

	* app/dialogs/keyboard-shortcuts-dialog.c
	* plug-ins/common/colormap-remap.c
	* plug-ins/common/redeye.c: use the new widget instead of
	duplicating the code.
2006-09-05 21:43:07 +00:00
Sven Neumann f2df31a50e converted tabs to spaces.
2006-04-12  Sven Neumann  <sven@gimp.org>

	* libgimp*/gimp*.[ch]: converted tabs to spaces.
2006-04-12 10:53:28 +00:00
Sven Neumann aa94434f52 libgimp/gimpprocbrowserdialog.h libgimpwidgets/gimpbrowser.h
2005-09-27  Sven Neumann  <sven@gimp.org>

	* libgimp/gimpprocbrowserdialog.h
	* libgimpwidgets/gimpbrowser.h
	* libgimpwidgets/gimpdialog.h
	* libgimpwidgets/gimpintcombobox.h
	* libgimpwidgets/gimpoldwidgets.h
	* libgimpwidgets/gimpwidgets.h: use G_GNUC_NULL_TERMINATED where
	appropriate.

	* libgimp/gimpprocbrowserdialog.c
	* libgimpwidgets/gimpbrowser.c: added missing API docs.
2005-09-27 17:11:01 +00:00
David Odin 5b538db8e4 New object to handle zoom factor, and create widgets to control or view
* libgimpwidgets/gimpzoommodel.[ch]: New object to handle zoom
  factor, and create widgets to control or view this value.

* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgets.h: Added gimpzoommodel.[ch].

* libgimpwidgets/gimpwidgetsenums.h: new enum: GimpZoomWidgetType.
  This enumerate which knid of widget you can created from the zoom
  model.

* libgimpwidgets/gimpwidgetsenums.c
* libgimpwidgets/gimpwidgetstypes.h: regenerated.

* libgimpwidgets/gimppreview.c: move the update toggle to the bottom
  of the vbox.

* libgimp/Makefile.am
* libgimp/gimpui.h
* libgimp/gimpuitypes.h
* libgimp/gimpzoompreview.[ch]: New widget, derivated from
  GimpScrolledPreview, which offer the same functionnalities as the
  GimpAspectPreview widget plus zoom facilities.

* plug-ins/common/AlienMap2.c
* plug-ins/common/apply_lens.c
* plug-ins/common/blinds.c
* plug-ins/common/channel_mixer.c
* plug-ins/common/colorify.c
* plug-ins/common/flarefx.c
* plug-ins/common/illusion.c
* plug-ins/common/jigsaw.c
* plug-ins/common/mapcolor.c
* plug-ins/common/max_rgb.c
* plug-ins/common/nova.c
* plug-ins/common/polar.c
* plug-ins/common/retinex.c
* plug-ins/common/waves.c
* plug-ins/common/whirlpinch.c: use a GimpZoomPreview instead of a
  GimpAspectPreview.
2005-09-19 22:58:16 +00:00
Nate Summers 9b39668df6 spiffy new widget that given a physical size, displays that size in an
* libgimpwidgets/gimpresolutionentry.[ch]: spiffy new widget that given
	a physical size, displays that size in an arbitrary unit, and lets
	you select a resolution via changing either the corresponding width
	and height or specifying it directly in pixels per your chosen unit.

	* libgimpwidgets/Makefile.am
	* libgimpwidgets/gimpwidgets.def
	* libgimpwidgets/gimpwidgets.h
	* libgimpwidgets/gimpwidgetstypes.h: added appropriate files, function,
	headers, and types, respectively

	* devel-docs/libgimpwidgets/libgimpwidgets.types: added
	gimp_resolution_entry_get_type.  A section still needs to be created
	for it.

	* plug-ins/common/poppler.c (run): bugfix that accidentally wasn't
	merged in previous commit.

	* plug-ins/common/poppler.c (load_dialog): replaced resolution
	spinbutton with a GimpResolutionEntry.
2005-07-17 08:29:02 +00:00
Michael Natterer 35cd24bea0 include gimpscrolledpreview.h
2005-07-08  Michael Natterer  <mitch@gimp.org>

	* libgimpwidgets/gimpwidgets.h: include gimpscrolledpreview.h
2005-07-08 16:07:16 +00:00