1 /* LIBGTK - The GTK Library 2 * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball 3 * 4 * gimpunit.h 5 * Copyright (C) 1999-2003 Michael Natterer <mitch@gimp.org> 6 * 7 * This library is free software: you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public 9 * License as published by the Free Software Foundation; either 10 * version 3 of the License, or (at your option) any later version. 11 * 12 * This library is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this library. If not, see 19 * <http://www.gnu.org/licenses/>. 20 */ 21 22 #ifndef __CM_UNIT_H__ 23 #define __CM_UNIT_H__ 24 25 #include <glib-object.h> 26 27 typedef enum /*< skip >*/ 28 { 29 CM_UNIT_PIXEL = 0, 30 31 CM_UNIT_INCH = 1, 32 CM_UNIT_MM = 2, 33 CM_UNIT_POINT = 3, 34 CM_UNIT_PICA = 4, 35 36 CM_UNIT_END = 5, 37 38 CM_UNIT_PERCENT = 65536 /*< pdb-skip >*/ 39 } GtkCMUnit; 40 41 typedef struct _GtkCMUnitVtable GtkCMUnitVtable; 42 43 struct _GtkCMUnitVtable 44 { 45 gint (* unit_get_number_of_units) (void); 46 gint (* unit_get_number_of_built_in_units) (void); 47 48 GtkCMUnit (* unit_new) (gchar *identifier, 49 gdouble factor, 50 gint digits, 51 gchar *symbol, 52 gchar *abbreviation, 53 gchar *singular, 54 gchar *plural); 55 gboolean (* unit_get_deletion_flag) (GtkCMUnit unit); 56 void (* unit_set_deletion_flag) (GtkCMUnit unit, 57 gboolean deletion_flag); 58 59 gdouble (* unit_get_factor) (GtkCMUnit unit); 60 gint (* unit_get_digits) (GtkCMUnit unit); 61 const gchar * (* unit_get_identifier) (GtkCMUnit unit); 62 const gchar * (* unit_get_symbol) (GtkCMUnit unit); 63 const gchar * (* unit_get_abbreviation) (GtkCMUnit unit); 64 const gchar * (* unit_get_singular) (GtkCMUnit unit); 65 const gchar * (* unit_get_plural) (GtkCMUnit unit); 66 67 void (* _reserved_1) (void); 68 void (* _reserved_2) (void); 69 void (* _reserved_3) (void); 70 void (* _reserved_4) (void); 71 }; 72 73 74 extern GtkCMUnitVtable _gimp_unit_vtable; 75 76 77 G_BEGIN_DECLS 78 79 void gimp_base_init (GtkCMUnitVtable *vtable); 80 81 82 /* For information look into the C source or the html documentation */ 83 84 /** 85 * GTK_TYPE_UNIT: 86 * 87 * #GTK_TYPE_UNIT is a #GType derived from #G_TYPE_INT. 88 **/ 89 90 #define GTK_TYPE_UNIT (gtk_unit_get_type ()) 91 #define GTK_VALUE_HOLDS_UNIT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), GTK_TYPE_UNIT)) 92 93 94 GType gtk_unit_get_type (void) G_GNUC_CONST; 95 96 97 /* 98 * GTK_TYPE_PARAM_UNIT 99 */ 100 101 #define GTK_TYPE_PARAM_UNIT (gtk_param_unit_get_type ()) 102 #define GTK_IS_PARAM_SPEC_UNIT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), GTK_TYPE_PARAM_UNIT)) 103 104 GType gtk_param_unit_get_type (void) G_GNUC_CONST; 105 106 GParamSpec * gtk_param_spec_unit (const gchar *name, 107 const gchar *nick, 108 const gchar *blurb, 109 gboolean allow_pixels, 110 gboolean allow_percent, 111 GtkCMUnit default_value, 112 GParamFlags flags); 113 114 115 116 gint gtk_unit_get_number_of_units (void); 117 gint gtk_unit_get_number_of_built_in_units (void) G_GNUC_CONST; 118 119 GtkCMUnit gtk_unit_new (gchar *identifier, 120 gdouble factor, 121 gint digits, 122 gchar *symbol, 123 gchar *abbreviation, 124 gchar *singular, 125 gchar *plural); 126 127 gboolean gtk_unit_get_deletion_flag (GtkCMUnit unit); 128 void gtk_unit_set_deletion_flag (GtkCMUnit unit, 129 gboolean deletion_flag); 130 131 gdouble gtk_unit_get_factor (GtkCMUnit unit); 132 133 gint gtk_unit_get_digits (GtkCMUnit unit); 134 135 const gchar * gtk_unit_get_identifier (GtkCMUnit unit); 136 137 const gchar * gtk_unit_get_symbol (GtkCMUnit unit); 138 const gchar * gtk_unit_get_abbreviation (GtkCMUnit unit); 139 const gchar * gtk_unit_get_singular (GtkCMUnit unit); 140 const gchar * gtk_unit_get_plural (GtkCMUnit unit); 141 142 gchar * gtk_unit_format_string (const gchar *format, 143 GtkCMUnit unit); 144 145 gdouble gtk_pixels_to_units (gdouble pixels, 146 GtkCMUnit unit, 147 gdouble resolution); 148 gdouble gtk_units_to_pixels (gdouble value, 149 GtkCMUnit unit, 150 gdouble resolution); 151 gdouble gtk_units_to_points (gdouble value, 152 GtkCMUnit unit, 153 gdouble resolution); 154 155 156 G_END_DECLS 157 158 #endif /* __CM_UNIT_H__ */ 159