2017-06-12 05:38:55 +08:00
|
|
|
/* GIMP - The GNU Image Manipulation Program
|
|
|
|
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
|
|
|
*
|
|
|
|
* gimptoolcompass.h
|
|
|
|
* Copyright (C) 2017 Michael Natterer <mitch@gimp.org>
|
|
|
|
*
|
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 3 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program 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 General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
2018-07-12 05:27:07 +08:00
|
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
2017-06-12 05:38:55 +08:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __GIMP_TOOL_COMPASS_H__
|
|
|
|
#define __GIMP_TOOL_COMPASS_H__
|
|
|
|
|
|
|
|
|
|
|
|
#include "gimptoolwidget.h"
|
|
|
|
|
|
|
|
|
|
|
|
#define GIMP_TYPE_TOOL_COMPASS (gimp_tool_compass_get_type ())
|
|
|
|
#define GIMP_TOOL_COMPASS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_TOOL_COMPASS, GimpToolCompass))
|
|
|
|
#define GIMP_TOOL_COMPASS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_TOOL_COMPASS, GimpToolCompassClass))
|
|
|
|
#define GIMP_IS_TOOL_COMPASS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_TOOL_COMPASS))
|
|
|
|
#define GIMP_IS_TOOL_COMPASS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_TOOL_COMPASS))
|
|
|
|
#define GIMP_TOOL_COMPASS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_TOOL_COMPASS, GimpToolCompassClass))
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct _GimpToolCompass GimpToolCompass;
|
|
|
|
typedef struct _GimpToolCompassPrivate GimpToolCompassPrivate;
|
|
|
|
typedef struct _GimpToolCompassClass GimpToolCompassClass;
|
|
|
|
|
|
|
|
struct _GimpToolCompass
|
|
|
|
{
|
|
|
|
GimpToolWidget parent_instance;
|
|
|
|
|
|
|
|
GimpToolCompassPrivate *private;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct _GimpToolCompassClass
|
|
|
|
{
|
|
|
|
GimpToolWidgetClass parent_class;
|
|
|
|
|
|
|
|
void (* create_guides) (GimpToolCompass *compass,
|
|
|
|
gint x,
|
|
|
|
gint y,
|
|
|
|
gboolean horizontal,
|
|
|
|
gboolean vertical);
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
GType gimp_tool_compass_get_type (void) G_GNUC_CONST;
|
|
|
|
|
app: add "orientation" property to GimpToolCompass + improvements
Add an "orientation" property to GimpToolCompass, which can be one
of "auto", "horizontal", or "vertical", and which controls the
orientation of the line against which the angle is measured, when
not in 3-point mode (previously, the line would always be
horizontal.) When "orientation" is "auto", the orientation is
automatically set to either horizontal or vertical, such that the
measured angle is <= 45 deg.
Keep the line horizontal, or vertical, in display-space, rather
than in image-space, so that the compass works correctly even when
the canvas is rotated and/or flipped.
Fix the compass's behavior when the image's horizontal and vertical
resolutions are different, both with and without dot-for-dot.
Add "pixel-angle" and "unit-angle" read-only properties, which
return the measured angle either with or without taking the image's
resolution into account, respectively. These properties will be
used by the measure tool in the next commit, instead of having it
implement its own angle calculation.
2018-07-16 06:07:54 +08:00
|
|
|
GimpToolWidget * gimp_tool_compass_new (GimpDisplayShell *shell,
|
|
|
|
GimpCompassOrientation orinetation,
|
|
|
|
gint n_points,
|
|
|
|
gint x1,
|
|
|
|
gint y1,
|
|
|
|
gint x2,
|
|
|
|
gint y2,
|
|
|
|
gint y3,
|
|
|
|
gint x3);
|
2017-06-12 05:38:55 +08:00
|
|
|
|
|
|
|
|
|
|
|
#endif /* __GIMP_TOOL_COMPASS_H__ */
|