kopia lustrzana https://gitlab.com/sane-project/frontends
Add gtk3ruler
rodzic
cfe5dfd732
commit
0ebc67ca5d
Plik diff jest za duży
Load Diff
|
@ -52,16 +52,16 @@ COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(GTK_CFLAGS)
|
|||
@SET_MAKE@
|
||||
|
||||
# LIBGTKSANE_OBJS = gtk3curve.o gtk3gamma.o gtkpreview.o Gtk3CurveResource.o gimpruler.o
|
||||
LIBGTKSANE_OBJS = gtk3curve.o gtk3gamma.o Gtk3CurveResource.o gimpruler.o
|
||||
LIBGTKSANE_OBJS = gtk3curve.o gtk3gamma.o Gtk3CurveResource.o gtk3ruler.o
|
||||
# LIBGTKSANE_LTOBJS = gtk3curve.lo gtk3gamma.lo gtkpreview.lo Gtk3CurveResource.lo gimpruler.lo
|
||||
LIBGTKSANE_LTOBJS = gtk3curve.lo gtk3gamma.lo Gtk3CurveResource.lo gimpruler.lo
|
||||
LIBGTKSANE_LTOBJS = gtk3curve.lo gtk3gamma.lo Gtk3CurveResource.lo gtk3ruler.lo
|
||||
|
||||
TARGETS = $(LIBGTKSANE_OBJS) $(GTK_LIBS)
|
||||
TARGETS = libgtksane.a
|
||||
|
||||
DISTFILES = Makefile.in gtk3curve.c gtk3curve.h Gtk3CurveResource.c \
|
||||
gtk3gamma.c gtk3gamma.h gimpruler.c \
|
||||
gimpruler.h images resource.xml
|
||||
gtk3gamma.c gtk3gamma.h gtk3ruler.c \
|
||||
gtk3ruler.h images resource.xml
|
||||
# gtk3gamma.c gtk3gamma.h gtkpreview.c gtkpreview.h gimpruler.c \
|
||||
|
||||
|
||||
|
|
1436
libgtk/gimpruler.c
1436
libgtk/gimpruler.c
Plik diff jest za duży
Load Diff
|
@ -1,89 +0,0 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* 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
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __GIMP_GTK3_RULER_H__
|
||||
#define __GIMP_GTK3_RULER_H__
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GIMP_GTK3_TYPE_RULER (gimp_gtk3_ruler_get_type ())
|
||||
#define GIMP_GTK3_RULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_GTK3_TYPE_RULER, GimpGtk3Ruler))
|
||||
#define GIMP_GTK3_RULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_GTK3_TYPE_RULER, GimpGtk3RulerClass))
|
||||
#define GIMP_GTK3_IS_RULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_GTK3_TYPE_RULER))
|
||||
#define GIMP_GTK3_IS_RULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_GTK3_TYPE_RULER))
|
||||
#define GIMP_GTK3_RULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_GTK3_TYPE_RULER, GimpGtk3RulerClass))
|
||||
|
||||
|
||||
typedef struct _GimpGtk3Ruler GimpGtk3Ruler;
|
||||
typedef struct _GimpGtk3RulerPrivate GimpGtk3RulerPrivate;
|
||||
typedef struct _GimpGtk3RulerClass GimpGtk3RulerClass;
|
||||
|
||||
struct _GimpGtk3Ruler
|
||||
{
|
||||
GtkWidget parent_instance;
|
||||
|
||||
GimpGtk3RulerPrivate *priv;
|
||||
};
|
||||
|
||||
struct _GimpGtk3RulerClass
|
||||
{
|
||||
GtkWidgetClass parent_class;
|
||||
|
||||
/* Padding for future expansion */
|
||||
void (*_gimp_reserved1) (void);
|
||||
void (*_gimp_reserved2) (void);
|
||||
void (*_gimp_reserved3) (void);
|
||||
void (*_gimp_reserved4) (void);
|
||||
void (*_gimp_reserved5) (void);
|
||||
void (*_gimp_reserved6) (void);
|
||||
void (*_gimp_reserved7) (void);
|
||||
void (*_gimp_reserved8) (void);
|
||||
};
|
||||
|
||||
GType gimp_gtk3_ruler_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GtkWidget * gimp_gtk3_ruler_new (GtkOrientation orientation);
|
||||
|
||||
void gimp_gtk3_ruler_add_track_widget (GimpGtk3Ruler *ruler,
|
||||
GtkWidget *widget);
|
||||
void gimp_gtk3_ruler_remove_track_widget (GimpGtk3Ruler *ruler,
|
||||
GtkWidget *widget);
|
||||
|
||||
void gimp_gtk3_ruler_set_position (GimpGtk3Ruler *ruler,
|
||||
gdouble position);
|
||||
gdouble gimp_gtk3_ruler_get_position (GimpGtk3Ruler *ruler);
|
||||
void gimp_gtk3_ruler_set_range (GimpGtk3Ruler *ruler,
|
||||
gdouble lower,
|
||||
gdouble upper,
|
||||
gdouble max_size);
|
||||
void gimp_gtk3_ruler_get_range (GimpGtk3Ruler *ruler,
|
||||
gdouble *lower,
|
||||
gdouble *upper,
|
||||
gdouble *max_size);
|
||||
|
||||
|
||||
gboolean gimp_gtk3_ruler_motion (GtkWidget *widget,
|
||||
GdkEventMotion *event,
|
||||
gpointer data);
|
||||
|
||||
void gimp_gtk3_ruler_set_unit_is_decimal (GimpGtk3Ruler *ruler,
|
||||
gboolean unit_is_decimal);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GIMP_GTK3_RULER_H__ */
|
Plik diff jest za duży
Load Diff
|
@ -0,0 +1,78 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#ifndef __GTK3_RULER_H__
|
||||
#define __GTK3_RULER_H__
|
||||
|
||||
/*
|
||||
* Customized ruler class for inkscape
|
||||
*
|
||||
* Authors:
|
||||
* Lauris Kaplinski <lauris@kaplinski.com>
|
||||
* Frank Felfe <innerspace@iname.com>
|
||||
*
|
||||
* Copyright (C) 1999-2002 authors
|
||||
*
|
||||
* Released under GNU GPL v2+, read the file 'COPYING' for more information.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#include <glib.h>
|
||||
|
||||
#define GTK3_TYPE_RULER (gtk3_ruler_get_type ())
|
||||
#define GTK3_RULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK3_TYPE_RULER, Gtk3Ruler))
|
||||
#define GTK3_RULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK3_TYPE_RULER, Gtk3RulerClass))
|
||||
#define GTK3_IS_RULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK3_TYPE_RULER))
|
||||
#define GTK3_IS_RULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK3_TYPE_RULER))
|
||||
#define GTK3_RULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK3_TYPE_RULER, Gtk3RulerClass))
|
||||
|
||||
typedef struct _Gtk3Ruler Gtk3Ruler;
|
||||
typedef struct _Gtk3RulerClass Gtk3RulerClass;
|
||||
typedef struct _Gtk3RulerPrivate Gtk3RulerPrivate;
|
||||
|
||||
struct _Gtk3Ruler
|
||||
{
|
||||
GtkWidget parent_instance;
|
||||
Gtk3RulerPrivate *priv;
|
||||
};
|
||||
|
||||
struct _Gtk3RulerClass
|
||||
{
|
||||
GtkWidgetClass parent_class;
|
||||
};
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GTK3_RULER_METRIC_DECIMAL = 0,
|
||||
GTK3_RULER_METRIC_INCHES,
|
||||
#if 0
|
||||
GTK3_RULER_METRIC_FEET,
|
||||
GTK3_RULER_METRIC_YARDS,
|
||||
#endif
|
||||
} Gtk3RulerMetricUnit;
|
||||
|
||||
GType gtk3_ruler_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GtkWidget* gtk3_ruler_new (GtkOrientation orientation);
|
||||
|
||||
void gtk3_ruler_add_track_widget (Gtk3Ruler *ruler,
|
||||
GtkWidget *widget);
|
||||
void gtk3_ruler_remove_track_widget (Gtk3Ruler *ruler,
|
||||
GtkWidget *widget);
|
||||
|
||||
void gtk3_ruler_set_unit (Gtk3Ruler *ruler,
|
||||
Gtk3RulerMetricUnit unit);
|
||||
Gtk3RulerMetricUnit gtk3_ruler_get_unit (Gtk3Ruler *ruler);
|
||||
void gtk3_ruler_set_position (Gtk3Ruler *ruler,
|
||||
gdouble set_position);
|
||||
gdouble gtk3_ruler_get_position (Gtk3Ruler *ruler);
|
||||
void gtk3_ruler_set_range (Gtk3Ruler *ruler,
|
||||
gdouble lower,
|
||||
gdouble upper,
|
||||
gdouble max_size);
|
||||
void gtk3_ruler_get_range (Gtk3Ruler *ruler,
|
||||
gdouble *lower,
|
||||
gdouble *upper,
|
||||
gdouble *max_size);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GTK3_RULER_H__ */
|
|
@ -407,7 +407,7 @@ preview_area_resize (GtkWidget * widget, GdkEvent *event, gpointer data)
|
|||
else
|
||||
f = 1.0;
|
||||
|
||||
gimp_gtk3_ruler_set_range (GIMP_GTK3_RULER (p->hruler),
|
||||
gtk3_ruler_set_range (GTK3_RULER (p->hruler),
|
||||
f * min_x,
|
||||
f * max_x,
|
||||
// f * min_x,
|
||||
|
@ -420,7 +420,7 @@ preview_area_resize (GtkWidget * widget, GdkEvent *event, gpointer data)
|
|||
else
|
||||
f = 1.0;
|
||||
|
||||
gimp_gtk3_ruler_set_range (GIMP_GTK3_RULER (p->vruler),
|
||||
gtk3_ruler_set_range (GTK3_RULER (p->vruler),
|
||||
f * min_y,
|
||||
f * max_y,
|
||||
// f * min_y,
|
||||
|
@ -1295,12 +1295,12 @@ preview_new (GSGDialog * dialog)
|
|||
gtk_grid_attach (GTK_GRID (table), frame, 0, 0, 1, 1);
|
||||
|
||||
/* the horizontal ruler */
|
||||
p->hruler = gimp_gtk3_ruler_new (GTK_ORIENTATION_HORIZONTAL);
|
||||
p->hruler = gtk3_ruler_new (GTK_ORIENTATION_HORIZONTAL);
|
||||
gtk_grid_attach (GTK_GRID (table), p->hruler, 1, 0, 1, 1);
|
||||
gsg_widget_placement(GTK_WIDGET (p->hruler), GTK_ALIGN_FILL, GTK_ALIGN_CENTER, 0, 0, 0, 0);
|
||||
|
||||
/* the vertical ruler */
|
||||
p->vruler = gimp_gtk3_ruler_new (GTK_ORIENTATION_VERTICAL);
|
||||
p->vruler = gtk3_ruler_new (GTK_ORIENTATION_VERTICAL);
|
||||
gtk_grid_attach (GTK_GRID (table), p->vruler, 0, 1, 1, 1);
|
||||
gsg_widget_placement(GTK_WIDGET (p->vruler), GTK_ALIGN_CENTER, GTK_ALIGN_FILL, 0, 0, 0, 0);
|
||||
|
||||
|
@ -1328,6 +1328,9 @@ preview_new (GSGDialog * dialog)
|
|||
g_signal_connect_after (G_OBJECT (p->window), "size_allocate",
|
||||
G_CALLBACK(preview_area_resize), p);
|
||||
|
||||
gtk3_ruler_add_track_widget (GTK3_RULER (p->hruler), p->window);
|
||||
gtk3_ruler_add_track_widget (GTK3_RULER (p->vruler), p->window);
|
||||
/*
|
||||
signal_func = G_CALLBACK (gimp_gtk3_ruler_motion);
|
||||
g_signal_connect (G_OBJECT (p->window), "motion_notify_event",
|
||||
signal_func, G_OBJECT (p->hruler));
|
||||
|
@ -1335,7 +1338,7 @@ preview_new (GSGDialog * dialog)
|
|||
signal_func = G_CALLBACK (gimp_gtk3_ruler_motion);
|
||||
g_signal_connect (G_OBJECT (p->window), "motion_notify_event",
|
||||
signal_func, G_OBJECT (p->vruler));
|
||||
|
||||
*/
|
||||
p->viewport = gtk_frame_new ( 0);
|
||||
gtk_frame_set_shadow_type (GTK_FRAME (p->viewport), GTK_SHADOW_IN);
|
||||
gtk_container_add (GTK_CONTAINER (p->viewport), p->window);
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#include <sys/types.h>
|
||||
|
||||
#include "../include/sane/config.h"
|
||||
#include "../libgtk/gimpruler.h"
|
||||
#include "../libgtk/gtk3ruler.h"
|
||||
#include <sane/sane.h>
|
||||
|
||||
/*
|
||||
|
|
|
@ -324,8 +324,10 @@ save_settings (const char *filename)
|
|||
gsg_error (buf);
|
||||
return;
|
||||
}
|
||||
write (fd, dialog->dev_name, strlen (dialog->dev_name));
|
||||
write (fd, "\n", 1);
|
||||
if (write (fd, dialog->dev_name, strlen (dialog->dev_name)) == -1)
|
||||
DBG (DBG_debug, "xcam: save_settings: error write line %d\n", __LINE__);
|
||||
if (write (fd, "\n", 1) == -1)
|
||||
DBG (DBG_debug, "xcam: save_settings: error write line %d\n", __LINE__);
|
||||
sanei_save_values (fd, dialog->dev);
|
||||
close (fd);
|
||||
DBG (DBG_debug, "xcam: save_settings: exit\n");
|
||||
|
@ -548,7 +550,8 @@ load_settings (const char *filename, int silent)
|
|||
}
|
||||
|
||||
/* first, read off the devicename that these settings are for: */
|
||||
read (fd, buf, sizeof (buf));
|
||||
if (read (fd, buf, sizeof (buf)) == -1)
|
||||
DBG (DBG_debug, "xcam: load_settings: error read\n");
|
||||
buf[sizeof (buf) - 1] = '\0';
|
||||
end = strchr (buf, '\n');
|
||||
if (!end)
|
||||
|
|
Ładowanie…
Reference in New Issue