Commit Graph

1761 Commits

Author SHA1 Message Date
Michael Natterer da5e72369e libgimpwidgets: make GimpColorScale more-or-less work fine
also derive it from GtkRange directly not from GtkScale.
2018-05-20 21:06:29 +02:00
Michael Natterer a5b5eaebd3 libgimpwidgets, app: use GdkRGBA instead of GdkColor for cell backgrounds 2018-05-20 21:06:29 +02:00
Michael Henning 2ef224237e libgimpwidgets: Separate ruler text layer from background.
Also fix failing to clear backing_store at the same time.
2018-05-20 21:06:29 +02:00
Michael Henning 69497c84a6 libgimpwidgets: Draw marker in correct position on ruler.
With gtk+3, the cairo context is offset by allocation.x/y for us,
so we no longer need to add that factor in while drawing.
2018-05-20 21:06:29 +02:00
Michael Natterer 6165ca7425 libgimpwidgets: #if 0 more stuff in gimp3migration 2018-05-20 21:06:29 +02:00
Michael Natterer cc010a4288 Incomplete notebook and tab theming commit, to be improved 2018-05-20 21:06:29 +02:00
Michael Natterer e8f0c14491 app: use gdk_device_get_position() inetad of gdk_display_get_pointer() 2018-05-20 21:06:29 +02:00
Michael Natterer 64d80e9aa4 Port cell renderers to gtk_cell_renderer_get_state() 2018-05-20 21:06:28 +02:00
Michael Natterer cc0b48d710 libgimpwidgets: move all GimpColorProfileStore members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer d9171ef627 libgimpwidgets: move all GimpMemsizeEntry members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer 6e84d584f4 libgimpwidgets: move all GimpEnumLabel members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer 86603f30b9 libgimpwidgets: move all GimpColorSelection members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer 7eac782a15 libgimpwidgets: move GimpColorProfileComboBox::dialog to private 2018-05-20 21:06:28 +02:00
Michael Natterer f20b2d1a43 libgimpwidgets: move all GimpColorScale members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer 0e35af2723 libgimpwidgets: move all GimpColorNotebook members to a private struct. 2018-05-20 21:06:28 +02:00
Michael Natterer 9c15020c41 libgimpwidgets: add padding 2018-05-20 21:06:28 +02:00
Michael Natterer 455f2e2e38 libgimpwidgets: move all GimpColorHexEntry members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer c32681f4c3 libgimpwidgets: move all GimpColorDisplayStack members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer 79dd44fb18 libgimpwidgets: move all GimpColorDisplay members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer db6c2ea658 libgimpwidgets: move all GimpBrowser members to a private struct
The newly added API is ugly and will change.
2018-05-20 21:06:28 +02:00
Michael Natterer fd45ea2051 libgimpwidgets: move all GimpChainButton members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer 482be36a00 libgimpwidgets: move all GimpCellRendererToggle members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer 651e313f49 libgimpwidgets: move all GimpColorButton members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer 281370dce2 libgimpwidgets: move all GimpCellRendererColor members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer 0318ea9dfe libgimpwidgets: move all GimpButton members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer 88ac850834 libgimpwidgets: move padding members from instance to class struct 2018-05-20 21:06:28 +02:00
Michael Natterer d2116f481b libgimpwidgets: move all GimpOffsetArea members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer 271f94928f libgimpwidgets: move all GimpColorArea members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer 3d4ef455d2 libgimpwidgets: move all GimpPickButton members to a private struct 2018-05-20 21:06:28 +02:00
Michael Natterer 6e982cd0a4 libgimpwidgets: use g_object_ref()/unref() for GdkCursors
The are GObjects now.
2018-05-20 21:06:28 +02:00
Michael Natterer f689ef7b16 libgimpwidgets: implement GtkWidget::style_updated() instead of style_set() 2018-05-20 21:06:28 +02:00
Michael Natterer 1264285cff libgimpwidgets: implement GtkWidget::state_flags_changed()
instead of GtkWidget::state_changed()
2018-05-20 21:06:28 +02:00
Michael Natterer 52af5f00c0 libgimpwidgets: port GimpNumberPairEntry to gtk_widget_override_font() 2018-05-20 21:06:28 +02:00
Michael Natterer 8c75151f39 llibgimpwidgets: port GimpScrolledPreview to GtkStyleContext 2018-05-20 21:06:27 +02:00
Michael Natterer 052ab454ae libgimpwidgets: port GimpRuler to GtkStyleContext 2018-05-20 21:06:27 +02:00
Michael Natterer 1cf85b9102 libgimpwidgets: port GimpOffsetArea to GtkStyleContext 2018-05-20 21:06:27 +02:00
Michael Natterer d9fac0ce6e libgimpwidgets: port GimpColorScale to GtkStyleContext 2018-05-20 21:06:27 +02:00
Michael Natterer 42252b3f6f libgimpwidgets: port GimpColorArea to GtkStyleContext 2018-05-20 21:06:27 +02:00
Michael Natterer c62075b4c0 libgimpwidgets: port GimpChainButton to GtkStyleContext 2018-05-20 21:06:27 +02:00
Michael Natterer 97da93d1ac libgimpwidgets: port GimpCellRendererToggle to GtkStyleContext 2018-05-20 21:06:27 +02:00
Michael Natterer b3ac92d0d6 libgimpwidgets: port to GtkStyleContext and gtk_render_foo() 2018-05-20 21:06:27 +02:00
Michael Natterer d9b56a5dbe Use gtk_widget_render_icon_pixbuf() instead of gtk_widget_render_icon()
because the latter is deprecated.
2018-05-20 21:06:27 +02:00
Michael Natterer 694e5ac9f6 libgimpwidgets: port to the new size request API 2018-05-20 21:06:27 +02:00
Michael Natterer 91d382608f libgimpwidgets: port to GtkWidget::draw() 2018-05-20 21:06:27 +02:00
Michael Natterer 4477ad84de libgimpwidgets: port to GtkWidget::draw() 2018-05-20 21:06:26 +02:00
Michael Natterer fa8c702229 libgimpwidgets: port to GtkWidget::draw() 2018-05-20 21:06:26 +02:00
Michael Natterer 60036c9385 libgimpwidgets: port the ruler to GTK+ 3.0 2018-05-20 21:06:26 +02:00
Michael Natterer 05e5a1d1cd libgimpwidgets: get rid of (GtkObject **) casts 2018-05-20 21:06:26 +02:00
Michael Natterer 566a71ba7d libgimpwidgets: port GimpFrame to GTK+ 3.0 2018-05-20 21:06:26 +02:00
Michael Natterer 4ae7d4c825 libgimpwidgets: remove deprecated files completely 2018-05-20 21:06:26 +02:00
Michael Natterer e4ae1faf06 libgimpwidgets: remove deprecated functions and s/GtkObject/GtkAdjustment/ 2018-05-20 21:06:26 +02:00
Michael Natterer fe2241ebde libgimpwidgets: port to GtkWidget::draw() 2018-05-20 21:06:26 +02:00
Michael Natterer 00a6597cd9 libgimpwidgets: s/GtkObject/GtkAdjustment/ 2018-05-20 21:06:26 +02:00
Michael Natterer 04c12550da libgimpwidgets: port to GtkWidget::draw() 2018-05-20 21:06:26 +02:00
Michael Natterer 5fb95d09a1 libgimpwidgets: port to GtkWidget::draw() 2018-05-20 21:06:26 +02:00
Michael Natterer 7e6a2d270e libgimpwidgets: port to GtkWidget::draw() 2018-05-20 21:06:26 +02:00
Michael Natterer d0db9ec24d libgimpwidgets: port virtual functions to GTK+ 3.0 2018-05-20 21:06:26 +02:00
Michael Natterer 91c0dea0af libgimpwidgets: port virtual functions to GTK+ 3.0 2018-05-20 21:06:26 +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 dbd9797a13 Switch to version 2.99/3.0 in a lot of places and depend on GTK+ 3.22
and lots of other newer libraries.
2018-05-20 21:06:26 +02:00
Michael Natterer fe06539873 libgimpwidgets: fix value names in docs of GimpColorSelectorModel 2018-05-18 19:32:51 +02:00
Jehan 6c9ba16e11 configure, libgimpwidgets: customizable default color profile directory
We have this problem with flatpak that the common directory
("/usr/share/color/icc") is not visible from inside the sandbox. With
proper permissions, it is actually accessible, yet the host's /usr is
mounted at /run/host/usr/.
Since sandbox systems are getting more common, we need to make this path
customizable. I am therefore adding a --with-icc-directory configure
option to change the default color profile folder at build time.
See: https://github.com/flathub/org.gimp.GIMP/issues/15
2018-05-18 09:08:51 +02:00
Michael Natterer a69b8a25df libgimpwidgets: in GimpEnumLabel use the value's nick if there is no desc 2018-05-16 21:12:20 +02:00
luz.paz 147c09f19e Bug 795161 - Misc. typo fixes in source comments and doxygen
Found via `codespell`
Follow-up to  commit 7fdb963e01
2018-04-18 21:06:57 +02:00
Michael Natterer ebb9d83d63 Bug 795230 - Rename Blend tool and provide PDB compatibility
Step 1: rename the icon to GIMP_ICON_TOOL_GRADIENT (gimp-tool-gradient)
2018-04-13 23:07:08 +02:00
Ell 6ebc3f1b09 Makefiles: don't use -xobjective-c when linking files on Mac
Last commit caused -xobjective-c to be passed during linking on
Mac, causing object files to be treated as source files.  Add a
-xnone flag to AM_LDFLAGS, canceling the effect of -xobjective-c.

Additinally, add a -xobjective-c++ flag to AM_CXXFLAGS, so that we
can use Objective-C in C++ files on Mac, if we ever need to.
2018-04-08 04:03:55 -04:00
Ell 06950be7f0 Makefiles: don't use -xobjective-c when compiling C++ files on Mac
On Mac, pass -xobjective-c to the compiler through AM_CFLAGS, not
AM_CPPFLAGS, so that it's only used for C sources, and not C++
sources.  In the latter case, it clashes with the -std=... flag,
spewing an error.  Thanks, Partha :)
2018-04-07 16:57:52 -04:00
Kristian Rietveld ce3899e722 libgimpwidgets: gimppickbutton-quartz: do not release color_space
The color_space reference should not be released because it was obtained
with a Get-function, which means we do not have ownership.
2018-03-26 22:59:01 +02:00
Kristian Rietveld 0e9e167da8 libgimpwidgets: make pick button quartz work on macOS < 10.12
The symbol CGColorSpaceCopyICCData() is only available on macOS 10.12
and higher. We want GIMP to run from 10.9 onwards, so use the older
symbol CGColorSpaceCopyICCProfile() even though this one is deprecated.
2018-03-26 22:59:01 +02:00
Michael Natterer 8447e775ab Bug 783680 - Allow to hide color models in GimpColorScales
Redo the entire thing again:

- Rename the values of enum GimpColorSelectorModel to include "MODEL"
- Change GimpColorSelector API from set_model() to set_model_visible()
  so visibility of each model can be toggled individually and is not
  exclusive any longer
- The GUI is back to what it was before, except that the "GIMP" page
  now honors the model visibility and has a resonable minimum height
2018-03-19 23:11:27 +01:00
Jehan 6c8300923d Bug 779942 - Make GimpPickButton honor monitor profile.
Quartz/macOS implementation for the color picker.
This is untested but I am trying to advance our 2.10 blockers by
implementing the base code for this feature. Please anyone with macOS
machine access, review and fix if needed!
2018-03-16 17:17:54 +01:00
Lionel N 827d747fae Bug 400448 - ruler subdivision is wrong for inches
Add ruler subdivisions for feet and yards, the code is still disabled.
2018-02-27 23:27:00 +01:00
Ell cd8ea6b3ca libgimpwidgets: in GimpNumberPairEntry, add clear icon
Since the entry behaves differently based on whether the user
provided an explicit input or not, it makes sense to have a button
for clearing the entry.
2018-02-27 03:55:34 -05:00
Ell 45bfa168bf libgimpwidgets: in GimpNumberPairEntry, update font when updating text
... in particular, so that the font is updated correctly when
reverting an invalid string.
2018-02-27 03:55:34 -05:00
Ell 8d2381f6e7 libgimpwidgets: in GimpNumberPairEntry, fix parsing
... to classify strings beginning with a non-digit character as
INVALID, rather than CLEAR.
2018-02-27 03:55:33 -05:00
Ell 0de25a145a libgimpwidgets: in GimpNumberEntryPair, properly set user-override ...
... when focus is lost/enter is pressed

When a GimpNumberPairEntry loses focus, or when enter is pressed,
set its user-override property by calling
gimp_number_pair_entry_set_user_override(), instead of setting the
corresponding member directly, so that the entry's font is updated
correctly.
2018-02-25 03:09:25 -05:00
Jehan 56d0998e74 icons, libgimpwidgets: fixing indentation and cleaning out tabs. 2018-02-24 15:58:26 +01:00
Jehan 6a9c4f8ef1 icons, libgimpwidgets: now with proper gimp-attach + gimp-detach icons.
"gimp-detach" does not just use "gtk-convert" anymore and has its own
design. As for "gimp-attach", this is not used anywhere (yet), but it
could be soon as reverse action of gimp-detach. For instance, this icon
can be used for bug 791859 when we implement re-attaching overlay
dialogs.
2018-02-24 01:27:56 +01:00
Michael Natterer e93f458026 libgimpwidgets: change disabled code in GimpRuler to avoid a warning 2018-02-22 09:48:03 +01:00
Michael Natterer fd37737fe4 Bug 400448 - ruler subdivision is wrong for inches
This commit changes nothing, but contains disabled proof-of-concept
code to use different ruler subdivisions depending on the ruler's
unit.
2018-02-12 12:20:32 +01:00
Michael Natterer cc97a87257 libgimpwidgets: propwidgets: don't g_object_set() the same value again
Normally, the model would try to avoid notifications when a set()
doesn't change anything, but with g_object_set() that's not possible.

Do the same in the propwidgets' callbacks and avoid potentially
expensive notifications at the cost of a cheap g_object_get().

Also fix the syntax of "Since:" and "Deprecated:" annotations.
2018-02-04 19:56:55 +01:00
Jehan de81e33340 libgimpwidgets: add missing gimp_color_selector_model_get_type in def...
... file.
2018-01-26 15:49:56 +01:00
Michael Natterer 13b640f84c libgimpwidgets: restore ABI of GimpColorSelectorClass
Public structs must not change, that's why we have padding at the
end for extension.
2018-01-22 13:04:54 +01:00
Jehan 54a1e8f2b1 libgimpwidgets: use g_return_if_reached() in unreachable code path.
This way, we get proper CRITICAL if ever there is a logic error (or in
this case, if we add new values to enums and forget to append them to
switch cases.
This will make these bugs much easier to debug if (when!) they happen.
2018-01-22 11:28:09 +01:00
Jehan 90037116e4 libgimpwidgets: oups, fix some stupid miswrite.
Unfortunately not very problematic, unless when setting alpha channel.
2018-01-22 01:08:32 +01:00
Jehan 4d84925db0 Bug 783680 - Allow to hide color models in GimpColorScales.
GimpColorSelect now using color models tabs too.
2018-01-21 19:00:20 +01:00
Jehan 37e9be3a4f libgimpwidgets: arrange color models in tabs in GimpColorScales.
This allows to have a smaller and cleaner color dock instead of just
listing all possible channels (which may only grow up as we may add more
color spaces).
The API gimp_color_scales_(set|get)_show_hsv() are removed in favor of
more generic gimp_color_selector_(set|get)_model(). I assume this is
ok since they have only been available in the dev version (commit
6258d525ae, a month ago).
2018-01-21 18:37:18 +01:00
Alexandre Prokoudine 940a5866a9 Add symbolic icons for linear/perceptual color spaces 2018-01-06 01:49:17 +03:00
Alexandre Prokoudine 78821b4cb9 Add icons for Shadows-Highlights 2018-01-05 21:03:42 +03:00
Michael Natterer 467a663f16 libgimpwidgets: return TRUE in GimpColorProfileChooserDialog's "delete-event"
Otherwise the dialog is automatically destroyed when e.g. pressing
Escape, which the code doesn't expect, leaving dangling (crashing)
ponters around.
2018-01-02 22:10:10 +01:00
Michael Natterer 6f7b1d6425 libgimpwidgets: add new GimpColorScales symbols to gimpwidgets.def 2018-01-02 03:59:28 +01:00
Michael Natterer 1e99b12aba libgimpwidgets: several GimpColorSelector cleanups / changes
- make RED the default channel and reorder RGB before LCH/HSV
- use more of the new getters
- also use more of the previously existing setters
2017-12-31 19:05:54 +01:00
Michael Natterer 6258d525ae Bug 770054 - High bit-depth color selection widgets
This is WIP in the middle of cleaning up GimpColorSelector subclasses:

Add the possibility to switch between LCH and LSV and between 0..100
and 0..255 RGB in to GimpColorScales. Works almost fine, but needs
different UI to change the options...
2017-12-31 17:53:13 +01:00
Michael Natterer 6263e25dd9 libgimpwidgets: don't add new stock IDs, they are all deprecated
Instead, add GIMP_ICON_* defines for new icons.
2017-12-31 16:10:14 +01:00
Michael Natterer dd06ebafa2 libgimpwidgets: add a getter for every setter of GimpColorSelector
Also add API docs, pretty basic ones.
2017-12-31 16:02:21 +01:00
Alexandre Prokoudine b7d2c5eab1 Add Exposure tool icon, remove erroneous stock entry for the colortemp icon 2017-12-28 04:11:55 +03:00
Alexandre Prokoudine c281fca1c0 Fix variables for the new icons 2017-12-27 07:49:52 +03:00
Alexandre Prokoudine 4d11e2b184 Add colortemp icons to the build 2017-12-27 07:49:52 +03:00
Ell 981e8dcdfe app, menus, icons: add dashboard dockable
The dashboard dockable shows the current GEGL cache and swap sizes,
and their recent history.  It has options to control the update
rate and history duration of the data, and an option to warn (by
raising/blinking the dialog) when the swap size approaches its
limit.
2017-12-18 19:42:23 -05:00