2015-05-07 04:15:30 +08:00
|
|
|
/* LIBGIMP - The GIMP Library
|
|
|
|
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
|
|
|
*
|
|
|
|
* gimpwidgetsutils.h
|
|
|
|
*
|
|
|
|
* This library is free software: you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 3 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library. If not, see
|
2018-07-12 05:27:07 +08:00
|
|
|
* <https://www.gnu.org/licenses/>.
|
2015-05-07 04:15:30 +08:00
|
|
|
*/
|
|
|
|
|
|
|
|
#if !defined (__GIMP_WIDGETS_H_INSIDE__) && !defined (GIMP_WIDGETS_COMPILATION)
|
|
|
|
#error "Only <libgimpwidgets/gimpwidgets.h> can be included directly."
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __GIMP_WIDGETS_UTILS_H__
|
|
|
|
#define __GIMP_WIDGETS_UTILS_H__
|
|
|
|
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
|
|
|
|
/* For information look into the C source or the html documentation */
|
|
|
|
|
|
|
|
|
app, libgimpwidgets: new gimp_event_triggers_context_menu() and use it…
… for the container tree view contextual menu.
A very annoying point of contextual menus is that they happen on button
press whereas menu item selection happens on button release. When the
menu corner is positionned on the click position, nothing bad happens;
yet when place is missing on screen, the menu might get positionned over
the pointer position. And worse, the mouse position might be just over
an activatable menu item. So we end up in this weird situation where a
click implies: press, menu opens, release, random item (whatever is
below the pointer) is selected and menu closes.
To get rid of this weird case, let's have our contextual menu happen on
button release. In reality, I don't think anyone cares that it happens
on press or release, you just "click". But what you certainly don't want
is to click random menu items!
2021-06-19 06:31:40 +08:00
|
|
|
gboolean gimp_event_triggers_context_menu (const GdkEvent *event,
|
|
|
|
gboolean on_release);
|
|
|
|
|
2018-04-29 08:15:48 +08:00
|
|
|
GtkWidget * gimp_grid_attach_aligned (GtkGrid *grid,
|
|
|
|
gint left,
|
|
|
|
gint top,
|
|
|
|
const gchar *label_text,
|
2023-05-24 21:59:34 +08:00
|
|
|
gfloat label_xalign,
|
|
|
|
gfloat label_yalign,
|
2018-04-29 08:15:48 +08:00
|
|
|
GtkWidget *widget,
|
2023-05-24 21:59:34 +08:00
|
|
|
gint widget_columns);
|
2015-07-11 04:43:53 +08:00
|
|
|
|
|
|
|
void gimp_label_set_attributes (GtkLabel *label,
|
|
|
|
...);
|
|
|
|
|
2018-04-29 23:27:47 +08:00
|
|
|
GdkMonitor * gimp_widget_get_monitor (GtkWidget *widget);
|
|
|
|
GdkMonitor * gimp_get_monitor_at_pointer (void);
|
2015-07-11 04:43:53 +08:00
|
|
|
|
2016-06-02 02:39:03 +08:00
|
|
|
void gimp_widget_track_monitor (GtkWidget *widget,
|
|
|
|
GCallback monitor_changed_callback,
|
2019-08-08 05:44:18 +08:00
|
|
|
gpointer user_data,
|
|
|
|
GDestroyNotify user_data_destroy);
|
2016-06-02 02:39:03 +08:00
|
|
|
|
2018-04-29 23:27:47 +08:00
|
|
|
GimpColorProfile * gimp_monitor_get_color_profile (GdkMonitor *monitor);
|
2015-07-11 04:43:53 +08:00
|
|
|
GimpColorProfile * gimp_widget_get_color_profile (GtkWidget *widget);
|
|
|
|
|
2016-05-26 03:35:54 +08:00
|
|
|
GimpColorTransform * gimp_widget_get_color_transform (GtkWidget *widget,
|
2015-07-11 04:43:53 +08:00
|
|
|
GimpColorConfig *config,
|
2015-09-02 05:40:57 +08:00
|
|
|
GimpColorProfile *src_profile,
|
2016-05-26 03:35:54 +08:00
|
|
|
const Babl *src_format,
|
2022-06-01 04:59:31 +08:00
|
|
|
const Babl *dest_format,
|
2022-08-10 23:01:15 +08:00
|
|
|
GimpColorProfile *softproof_profile,
|
|
|
|
GimpColorRenderingIntent proof_intent,
|
|
|
|
gboolean proof_bpc);
|
2023-11-24 05:08:09 +08:00
|
|
|
const Babl * gimp_widget_get_render_space (GtkWidget *widget,
|
|
|
|
GimpColorConfig *config);
|
2015-05-07 04:15:30 +08:00
|
|
|
|
2023-11-24 05:08:09 +08:00
|
|
|
void gimp_widget_set_native_handle (GtkWidget *widget,
|
|
|
|
GBytes **handle);
|
2024-06-27 19:32:05 +08:00
|
|
|
void gimp_widget_free_native_handle (GtkWidget *widget,
|
|
|
|
GBytes **window_handle);
|
2015-05-07 04:15:30 +08:00
|
|
|
|
2024-06-10 21:47:25 +08:00
|
|
|
gboolean gimp_widget_animation_enabled (void);
|
|
|
|
|
2023-11-23 06:38:25 +08:00
|
|
|
/* Internal use */
|
|
|
|
|
2023-11-24 05:08:09 +08:00
|
|
|
G_GNUC_INTERNAL void _gimp_widget_get_profiles (GtkWidget *widget,
|
|
|
|
GimpColorConfig *config,
|
|
|
|
GimpColorProfile **proof_profile,
|
|
|
|
GimpColorProfile **dest_profile);
|
2023-11-23 06:38:25 +08:00
|
|
|
|
|
|
|
|
2015-05-07 04:15:30 +08:00
|
|
|
G_END_DECLS
|
|
|
|
|
|
|
|
#endif /* __GIMP_WIDGETS_UTILS_H__ */
|