Main Page   Modules   Alphabetical List   Data Structures   File List   Data Fields   Globals  

include/gimp-print/vars.h

Go to the documentation of this file.
00001 /*
00002  * "$id: vars.h,v 1.3.4.4 2004/03/09 03:00:25 rlk Exp $"
00003  *
00004  *   libgimpprint stp_vars_t core functions.
00005  *
00006  *   Copyright 1997-2000 Michael Sweet (mike@easysw.com) and
00007  *      Robert Krawitz (rlk@alum.mit.edu)
00008  *
00009  *   This program is free software; you can redistribute it and/or modify it
00010  *   under the terms of the GNU General Public License as published by the Free
00011  *   Software Foundation; either version 2 of the License, or (at your option)
00012  *   any later version.
00013  *
00014  *   This program is distributed in the hope that it will be useful, but
00015  *   WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
00016  *   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00017  *   for more details.
00018  *
00019  *   You should have received a copy of the GNU General Public License
00020  *   along with this program; if not, write to the Free Software
00021  *   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00022  */
00023 
00029 #ifndef GIMP_PRINT_VARS_H
00030 #define GIMP_PRINT_VARS_H
00031 
00032 #include <gimp-print/array.h>
00033 #include <gimp-print/curve.h>
00034 #include <gimp-print/string-list.h>
00035 
00036 #ifdef __cplusplus
00037 extern "C" {
00038 #endif
00039 
00055 struct stp_vars;
00057 typedef struct stp_vars stp_vars_t;
00058 
00064 typedef enum
00065 {
00066   STP_PARAMETER_TYPE_STRING_LIST, 
00067   STP_PARAMETER_TYPE_INT,       
00068   STP_PARAMETER_TYPE_BOOLEAN,   
00069   STP_PARAMETER_TYPE_DOUBLE,    
00070   STP_PARAMETER_TYPE_CURVE,     
00071   STP_PARAMETER_TYPE_FILE,      
00072   STP_PARAMETER_TYPE_RAW,       
00073   STP_PARAMETER_TYPE_ARRAY,     
00074   STP_PARAMETER_TYPE_INVALID    
00075 } stp_parameter_type_t;
00076 
00082 typedef enum
00083 {
00084   STP_PARAMETER_CLASS_FEATURE,  
00085   STP_PARAMETER_CLASS_OUTPUT,   
00086   STP_PARAMETER_CLASS_CORE,     
00087   STP_PARAMETER_CLASS_INVALID   
00088 } stp_parameter_class_t;
00089 
00094 typedef enum
00095 {
00096   STP_PARAMETER_LEVEL_BASIC,     
00097   STP_PARAMETER_LEVEL_ADVANCED,  
00098   STP_PARAMETER_LEVEL_ADVANCED1, 
00099   STP_PARAMETER_LEVEL_ADVANCED2, 
00100   STP_PARAMETER_LEVEL_ADVANCED3, 
00101   STP_PARAMETER_LEVEL_ADVANCED4, 
00102   STP_PARAMETER_LEVEL_INTERNAL,  
00103   STP_PARAMETER_LEVEL_EXTERNAL,  
00104   STP_PARAMETER_LEVEL_INVALID    
00105 } stp_parameter_level_t;
00106 
00113 typedef enum
00114 {
00115   STP_PARAMETER_INACTIVE,  
00116   STP_PARAMETER_DEFAULTED, 
00117   STP_PARAMETER_ACTIVE     
00118 } stp_parameter_activity_t;
00119 
00120 /*
00121  * Other parameter types
00122  */
00123 
00125 typedef struct
00126 {
00127   size_t bytes;     
00128   const void *data; 
00129 } stp_raw_t;
00130 
00132 typedef struct
00133 {
00134   double lower; 
00135   double upper; 
00136 } stp_double_bound_t;
00137 
00139 typedef struct
00140 {
00141   int lower; 
00142   int upper; 
00143 } stp_int_bound_t;
00144 
00146 typedef struct
00147 {
00148   const char *name;              
00149   const char *text;              
00150   const char *category;          
00151   const char *help;              
00152   stp_parameter_type_t p_type;   
00153   stp_parameter_class_t p_class; 
00154   stp_parameter_level_t p_level; 
00155   unsigned char is_mandatory;    
00156   unsigned char is_active;       
00157   unsigned char channel;         
00158   unsigned char verify_this_parameter;   
00159   unsigned char read_only;
00160   union
00161   {
00162     stp_curve_t *curve;       
00163     stp_double_bound_t dbl;  
00164     stp_int_bound_t integer; 
00165     stp_string_list_t *str;   
00166     stp_array_t *array;      
00167   } bounds; 
00168   union
00169   {
00170     stp_curve_t *curve; 
00171     double dbl;         
00172     int integer;        
00173     int boolean;        
00174     const char *str;    
00175     stp_array_t *array; 
00176   } deflt; 
00177 } stp_parameter_t;
00178 
00180 typedef void *stp_parameter_list_t;
00182 typedef const void *stp_const_parameter_list_t;
00183 
00193 typedef void (*stp_outfunc_t) (void *data, const char *buffer, size_t bytes);
00194 
00195 
00196 /****************************************************************
00197 *                                                               *
00198 * BASIC PRINTER SETTINGS                                        *
00199 *                                                               *
00200 ****************************************************************/
00201 
00206 extern stp_vars_t *stp_vars_create(void);
00207 
00215 extern void stp_vars_copy(stp_vars_t *dest, const stp_vars_t *source);
00216 
00224 extern stp_vars_t *stp_vars_create_copy(const stp_vars_t *source);
00225 
00231 extern void stp_vars_destroy(stp_vars_t *v);
00232 
00238 extern void stp_set_driver(stp_vars_t *v, const char *val);
00239 
00246 extern void stp_set_driver_n(stp_vars_t *v, const char *val, int bytes);
00247 
00252 extern const char *stp_get_driver(const stp_vars_t *v);
00253 
00259 extern void stp_set_color_conversion(stp_vars_t *v, const char *val);
00260 
00267 extern void stp_set_color_conversion_n(stp_vars_t *v, const char *val, int bytes);
00268 
00273 extern const char *stp_get_color_conversion(const stp_vars_t *v);
00274 
00275 /*
00276  * Set/get the position and size of the image
00277  */
00278 
00284 extern void stp_set_left(stp_vars_t *v, int val);
00285 
00290 extern int stp_get_left(const stp_vars_t *v);
00291 
00297 extern void stp_set_top(stp_vars_t *v, int val);
00298 
00303 extern int stp_get_top(const stp_vars_t *v);
00304 
00310 extern void stp_set_width(stp_vars_t *v, int val);
00311 
00316 extern int stp_get_width(const stp_vars_t *v);
00317 
00323 extern void stp_set_height(stp_vars_t *v, int val);
00324 
00329 extern int stp_get_height(const stp_vars_t *v);
00330 
00331 /*
00332  * For custom page widths, these functions may be used.
00333  */
00334 
00340 extern void stp_set_page_width(stp_vars_t *v, int val);
00341 
00346 extern int stp_get_page_width(const stp_vars_t *v);
00347 
00353 extern void stp_set_page_height(stp_vars_t *v, int val);
00354 
00359 extern int stp_get_page_height(const stp_vars_t *v);
00360 
00368 extern void stp_set_outfunc(stp_vars_t *v, stp_outfunc_t val);
00369 
00375 extern stp_outfunc_t stp_get_outfunc(const stp_vars_t *v);
00376 
00384 extern void stp_set_errfunc(stp_vars_t *v, stp_outfunc_t val);
00385 
00391 extern stp_outfunc_t stp_get_errfunc(const stp_vars_t *v);
00392 
00400 extern void stp_set_outdata(stp_vars_t *v, void *val);
00401 
00407 extern void *stp_get_outdata(const stp_vars_t *v);
00408 
00416 extern void stp_set_errdata(stp_vars_t *v, void *val);
00417 
00423 extern void *stp_get_errdata(const stp_vars_t *v);
00424 
00431 extern void stp_merge_printvars(stp_vars_t *user, const stp_vars_t *print);
00432 
00433 
00434 /****************************************************************
00435 *                                                               *
00436 * PARAMETER MANAGEMENT                                          *
00437 *                                                               *
00438 ****************************************************************/
00439 
00449 extern stp_parameter_list_t stp_get_parameter_list(const stp_vars_t *v);
00450 
00457 extern size_t stp_parameter_list_count(stp_const_parameter_list_t list);
00458 
00466 extern const stp_parameter_t *
00467 stp_parameter_find(stp_const_parameter_list_t list, const char *name);
00468 
00477 extern const stp_parameter_t *
00478 stp_parameter_list_param(stp_const_parameter_list_t list, size_t item);
00479 
00485 extern void stp_parameter_list_destroy(stp_parameter_list_t list);
00486 
00491 extern stp_parameter_list_t stp_parameter_list_create(void);
00492 
00498 extern void stp_parameter_list_add_param(stp_parameter_list_t list,
00499                                          const stp_parameter_t *item);
00500 
00509 extern stp_parameter_list_t
00510 stp_parameter_list_copy(stp_const_parameter_list_t list);
00511 
00518 extern void
00519 stp_parameter_list_append(stp_parameter_list_t list,
00520                           stp_const_parameter_list_t append);
00521 
00530 extern void
00531 stp_describe_parameter(const stp_vars_t *v, const char *name,
00532                        stp_parameter_t *description);
00533 
00540 extern void stp_parameter_description_destroy(stp_parameter_t *description);
00541 
00549 extern const stp_parameter_t *
00550 stp_parameter_find_in_settings(const stp_vars_t *v, const char *name);
00551 
00558 extern void stp_set_string_parameter(stp_vars_t *v, const char *parameter,
00559                                      const char *value);
00560 
00568 extern void stp_set_string_parameter_n(stp_vars_t *v, const char *parameter,
00569                                        const char *value, size_t bytes);
00570 
00577 extern void stp_set_file_parameter(stp_vars_t *v, const char *parameter,
00578                                    const char *value);
00579 
00587 extern void stp_set_file_parameter_n(stp_vars_t *v, const char *parameter,
00588                                      const char *value, size_t bytes);
00589 
00596 extern void stp_set_float_parameter(stp_vars_t *v, const char *parameter,
00597                                     double value);
00598 
00605 extern void stp_set_int_parameter(stp_vars_t *v, const char *parameter,
00606                                   int value);
00607 
00614 extern void stp_set_boolean_parameter(stp_vars_t *v, const char *parameter,
00615                                       int value);
00616 
00623 extern void stp_set_curve_parameter(stp_vars_t *v, const char *parameter,
00624                                     const stp_curve_t *value);
00625 
00632 extern void stp_set_array_parameter(stp_vars_t *v, const char *parameter,
00633                                     const stp_array_t *value);
00634 
00642 extern void stp_set_raw_parameter(stp_vars_t *v, const char *parameter,
00643                                   const void *value, size_t bytes);
00644 
00651 extern void stp_scale_float_parameter(stp_vars_t *v, const char *parameter,
00652                                       double scale);
00653 
00663 extern void stp_set_default_string_parameter(stp_vars_t *v,
00664                                              const char *parameter,
00665                                              const char *value);
00666 
00677 extern void stp_set_default_string_parameter_n(stp_vars_t *v,
00678                                                const char *parameter,
00679                                                const char *value, size_t bytes);
00680 
00690 extern void stp_set_default_file_parameter(stp_vars_t *v,
00691                                            const char *parameter,
00692                                            const char *value);
00693 
00704 extern void stp_set_default_file_parameter_n(stp_vars_t *v,
00705                                              const char *parameter,
00706                                              const char *value, size_t bytes);
00707 
00717 extern void stp_set_default_float_parameter(stp_vars_t *v,
00718                                             const char *parameter,
00719                                             double value);
00720 
00730 extern void stp_set_default_int_parameter(stp_vars_t *v,
00731                                           const char *parameter,
00732                                           int value);
00733 
00743 extern void stp_set_default_boolean_parameter(stp_vars_t *v,
00744                                               const char *parameter,
00745                                               int value);
00746 
00756 extern void stp_set_default_curve_parameter(stp_vars_t *v,
00757                                             const char *parameter,
00758                                             const stp_curve_t *value);
00759 
00769 extern void stp_set_default_array_parameter(stp_vars_t *v,
00770                                             const char *parameter,
00771                                             const stp_array_t *value);
00772 
00783 extern void stp_set_default_raw_parameter(stp_vars_t *v,
00784                                           const char *parameter,
00785                                           const void *value, size_t bytes);
00786 
00793 extern const char *stp_get_string_parameter(const stp_vars_t *v,
00794                                             const char *parameter);
00795 
00802 extern const char *stp_get_file_parameter(const stp_vars_t *v,
00803                                           const char *parameter);
00804 
00811 extern double stp_get_float_parameter(const stp_vars_t *v,
00812                                             const char *parameter);
00813 
00820 extern int stp_get_int_parameter(const stp_vars_t *v,
00821                                  const char *parameter);
00822 
00829 extern int stp_get_boolean_parameter(const stp_vars_t *v,
00830                                      const char *parameter);
00831 
00838 extern const stp_curve_t *stp_get_curve_parameter(const stp_vars_t *v,
00839                                                   const char *parameter);
00840 
00847 extern const stp_array_t *stp_get_array_parameter(const stp_vars_t *v,
00848                                                   const char *parameter);
00849 
00856 extern const stp_raw_t *stp_get_raw_parameter(const stp_vars_t *v,
00857                                               const char *parameter);
00858 
00865 extern void stp_clear_string_parameter(stp_vars_t *v, const char *parameter);
00866 
00873 extern void stp_clear_file_parameter(stp_vars_t *v, const char *parameter);
00874 
00880 extern void stp_clear_float_parameter(stp_vars_t *v, const char *parameter);
00881 
00887 extern void stp_clear_int_parameter(stp_vars_t *v, const char *parameter);
00888 
00894 extern void stp_clear_boolean_parameter(stp_vars_t *v, const char *parameter);
00895 
00902 extern void stp_clear_curve_parameter(stp_vars_t *v, const char *parameter);
00903 
00910 extern void stp_clear_array_parameter(stp_vars_t *v, const char *parameter);
00911 
00918 extern void stp_clear_raw_parameter(stp_vars_t *v, const char *parameter);
00919 
00927 extern void stp_set_string_parameter_active(const stp_vars_t *v,
00928                                             const char *parameter,
00929                                             stp_parameter_activity_t active);
00930 
00938 extern void stp_set_file_parameter_active(const stp_vars_t *v,
00939                                           const char *parameter,
00940                                           stp_parameter_activity_t active);
00941 
00949 extern void stp_set_float_parameter_active(const stp_vars_t *v,
00950                                          const char *parameter,
00951                                          stp_parameter_activity_t active);
00952 
00960 extern void stp_set_int_parameter_active(const stp_vars_t *v,
00961                                          const char *parameter,
00962                                          stp_parameter_activity_t active);
00963 
00971 extern void stp_set_boolean_parameter_active(const stp_vars_t *v,
00972                                              const char *parameter,
00973                                              stp_parameter_activity_t active);
00974 
00982 extern void stp_set_curve_parameter_active(const stp_vars_t *v,
00983                                            const char *parameter,
00984                                            stp_parameter_activity_t active);
00985 
00993 extern void stp_set_array_parameter_active(const stp_vars_t *v,
00994                                            const char *parameter,
00995                                            stp_parameter_activity_t active);
00996 
01004 extern void stp_set_raw_parameter_active(const stp_vars_t *v,
01005                                          const char *parameter,
01006                                          stp_parameter_activity_t active);
01007 
01014 extern int stp_check_string_parameter(const stp_vars_t *v, const char *parameter,
01015                                       stp_parameter_activity_t active);
01016 
01023 extern int stp_check_file_parameter(const stp_vars_t *v, const char *parameter,
01024                                     stp_parameter_activity_t active);
01025 
01032 extern int stp_check_float_parameter(const stp_vars_t *v, const char *parameter,
01033                                      stp_parameter_activity_t active);
01034 
01041 extern int stp_check_int_parameter(const stp_vars_t *v, const char *parameter,
01042                                    stp_parameter_activity_t active);
01043 
01050 extern int stp_check_boolean_parameter(const stp_vars_t *v, const char *parameter,
01051                                        stp_parameter_activity_t active);
01052 
01059 extern int stp_check_curve_parameter(const stp_vars_t *v, const char *parameter,
01060                                      stp_parameter_activity_t active);
01061 
01068 extern int stp_check_array_parameter(const stp_vars_t *v, const char *parameter,
01069                                      stp_parameter_activity_t active);
01070 
01077 extern int stp_check_raw_parameter(const stp_vars_t *v, const char *parameter,
01078                                    stp_parameter_activity_t active);
01079 
01086 extern stp_parameter_activity_t
01087 stp_get_string_parameter_active(const stp_vars_t *v, const char *parameter);
01088 
01095 extern stp_parameter_activity_t
01096 stp_get_file_parameter_active(const stp_vars_t *v, const char *parameter);
01097 
01104 extern stp_parameter_activity_t
01105 stp_get_float_parameter_active(const stp_vars_t *v, const char *parameter);
01106 
01113 extern stp_parameter_activity_t
01114 stp_get_int_parameter_active(const stp_vars_t *v, const char *parameter);
01115 
01122 extern stp_parameter_activity_t
01123 stp_get_boolean_parameter_active(const stp_vars_t *v, const char *parameter);
01124 
01131 extern stp_parameter_activity_t
01132 stp_get_curve_parameter_active(const stp_vars_t *v, const char *parameter);
01133 
01140 extern stp_parameter_activity_t
01141 stp_get_array_parameter_active(const stp_vars_t *v, const char *parameter);
01142 
01149 extern stp_parameter_activity_t
01150 stp_get_raw_parameter_active(const stp_vars_t *v, const char *parameter);
01151 
01152 
01153 
01154 /****************************************************************
01155 *                                                               *
01156 * INFORMATIONAL QUERIES                                         *
01157 *                                                               *
01158 ****************************************************************/
01159 
01172 extern void stp_get_media_size(const stp_vars_t *v, int *width, int *height);
01173 
01197 extern void stp_get_imageable_area(const stp_vars_t *v, int *left, int *right,
01198                                    int *bottom, int *top);
01199 
01210 extern void
01211 stp_get_size_limit(const stp_vars_t *v, int *max_width, int *max_height,
01212                    int *min_width, int *min_height);
01213 
01214 
01222 extern void stp_describe_resolution(const stp_vars_t *v, int *x, int *y);
01223 
01232 extern int stp_verify(stp_vars_t *v);
01233 
01242 extern const stp_vars_t *stp_default_settings(void);
01243 
01244 typedef void *(*stp_copy_data_func_t)(void *);
01245 typedef void (*stp_free_data_func_t)(void *);
01246 
01247 typedef enum
01248 {
01249   PARAMETER_BAD,
01250   PARAMETER_OK,
01251   PARAMETER_INACTIVE
01252 } stp_parameter_verify_t;
01253 
01254 extern void stp_allocate_component_data(stp_vars_t *v,
01255                                         const char *name,
01256                                         stp_copy_data_func_t copyfunc,
01257                                         stp_free_data_func_t freefunc,
01258                                         void *data);
01259 extern void stp_destroy_component_data(stp_vars_t *v, const char *name);
01260 
01261 struct stp_compdata;
01262 typedef struct stp_compdata compdata_t;
01263 
01264 extern void *stp_get_component_data(const stp_vars_t *v, const char *name);
01265 
01266 extern stp_parameter_verify_t stp_verify_parameter(const stp_vars_t *v,
01267                                                    const char *parameter,
01268                                                    int quiet);
01269 extern int stp_get_verified(const stp_vars_t *v);
01270 extern void stp_set_verified(stp_vars_t *v, int value);
01271 
01272 extern void stp_copy_options(stp_vars_t *vd, const stp_vars_t *vs);
01273 
01274 extern void
01275 stp_fill_parameter_settings(stp_parameter_t *desc,
01276                             const stp_parameter_t *param);
01277 
01280 #ifdef __cplusplus
01281   }
01282 #endif
01283 
01284 #endif /* GIMP_PRINT_VARS_H */
01285 /*
01286  * End of "$Id: vars.h,v 1.14 2004/05/23 23:40:23 rleigh Exp $".
01287  */

Generated on Sat Jun 26 10:11:51 2004 for libgimpprint API Reference by doxygen1.2.17