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 
00035 #ifdef __cplusplus
00036 extern "C" {
00037 #endif
00038 
00054 struct stp_vars;
00056 typedef struct stp_vars stp_vars_t;
00057 
00063 typedef enum
00064 {
00065   STP_PARAMETER_TYPE_STRING_LIST, 
00066   STP_PARAMETER_TYPE_INT,       
00067   STP_PARAMETER_TYPE_BOOLEAN,   
00068   STP_PARAMETER_TYPE_DOUBLE,    
00069   STP_PARAMETER_TYPE_CURVE,     
00070   STP_PARAMETER_TYPE_FILE,      
00071   STP_PARAMETER_TYPE_RAW,       
00072   STP_PARAMETER_TYPE_ARRAY,     
00073   STP_PARAMETER_TYPE_INVALID    
00074 } stp_parameter_type_t;
00075 
00081 typedef enum
00082 {
00083   STP_PARAMETER_CLASS_FEATURE,  
00084   STP_PARAMETER_CLASS_OUTPUT,   
00085   STP_PARAMETER_CLASS_CORE,     
00086   STP_PARAMETER_CLASS_INVALID   
00087 } stp_parameter_class_t;
00088 
00093 typedef enum
00094 {
00095   STP_PARAMETER_LEVEL_BASIC,     
00096   STP_PARAMETER_LEVEL_ADVANCED,  
00097   STP_PARAMETER_LEVEL_ADVANCED1, 
00098   STP_PARAMETER_LEVEL_ADVANCED2, 
00099   STP_PARAMETER_LEVEL_ADVANCED3, 
00100   STP_PARAMETER_LEVEL_ADVANCED4, 
00101   STP_PARAMETER_LEVEL_INTERNAL,  
00102   STP_PARAMETER_LEVEL_EXTERNAL,  
00103   STP_PARAMETER_LEVEL_INVALID    
00104 } stp_parameter_level_t;
00105 
00112 typedef enum
00113 {
00114   STP_PARAMETER_INACTIVE,  
00115   STP_PARAMETER_DEFAULTED, 
00116   STP_PARAMETER_ACTIVE     
00117 } stp_parameter_activity_t;
00118 
00119 
00126 typedef struct
00127 {
00128   const char    *name,  
00129                 *text;  
00130 } stp_param_string_t;
00131 
00133 typedef void *stp_string_list_t;
00135 typedef const void *stp_const_string_list_t;
00136 
00137 /*
00138  * Other parameter types
00139  */
00140 
00142 typedef struct
00143 {
00144   size_t bytes;     
00145   const void *data; 
00146 } stp_raw_t;
00147 
00149 typedef struct
00150 {
00151   double lower; 
00152   double upper; 
00153 } stp_double_bound_t;
00154 
00156 typedef struct
00157 {
00158   int lower; 
00159   int upper; 
00160 } stp_int_bound_t;
00161 
00163 typedef struct
00164 {
00165   const char *name;              
00166   const char *text;              
00167   const char *category;          
00168   const char *help;              
00169   stp_parameter_type_t p_type;   
00170   stp_parameter_class_t p_class; 
00171   stp_parameter_level_t p_level; 
00172   unsigned char is_mandatory;    
00173   unsigned char is_active;       
00174   unsigned char channel;         
00175   unsigned char verify_this_parameter;   
00176   unsigned char read_only;
00177   union
00178   {
00179     stp_curve_t *curve;       
00180     stp_double_bound_t dbl;  
00181     stp_int_bound_t integer; 
00182     stp_string_list_t str;   
00183     stp_array_t *array;      
00184   } bounds; 
00185   union
00186   {
00187     stp_curve_t *curve; 
00188     double dbl;         
00189     int integer;        
00190     int boolean;        
00191     const char *str;    
00192     stp_array_t *array; 
00193   } deflt; 
00194 } stp_parameter_t;
00195 
00197 typedef void *stp_parameter_list_t;
00199 typedef const void *stp_const_parameter_list_t;
00200 
00210 typedef void (*stp_outfunc_t) (void *data, const char *buffer, size_t bytes);
00211 
00212 
00213 /****************************************************************
00214 *                                                               *
00215 * BASIC PRINTER SETTINGS                                        *
00216 *                                                               *
00217 ****************************************************************/
00218 
00223 extern stp_vars_t *stp_vars_create(void);
00224 
00232 extern void stp_vars_copy(stp_vars_t *dest, const stp_vars_t *source);
00233 
00241 extern stp_vars_t *stp_vars_create_copy(const stp_vars_t *source);
00242 
00248 extern void stp_vars_destroy(stp_vars_t *v);
00249 
00255 extern void stp_set_driver(stp_vars_t *v, const char *val);
00256 
00263 extern void stp_set_driver_n(stp_vars_t *v, const char *val, int bytes);
00264 
00269 extern const char *stp_get_driver(const stp_vars_t *v);
00270 
00276 extern void stp_set_color_conversion(stp_vars_t *v, const char *val);
00277 
00284 extern void stp_set_color_conversion_n(stp_vars_t *v, const char *val, int bytes);
00285 
00290 extern const char *stp_get_color_conversion(const stp_vars_t *v);
00291 
00292 /*
00293  * Set/get the position and size of the image
00294  */
00295 
00301 extern void stp_set_left(stp_vars_t *v, int val);
00302 
00307 extern int stp_get_left(const stp_vars_t *v);
00308 
00314 extern void stp_set_top(stp_vars_t *v, int val);
00315 
00320 extern int stp_get_top(const stp_vars_t *v);
00321 
00327 extern void stp_set_width(stp_vars_t *v, int val);
00328 
00333 extern int stp_get_width(const stp_vars_t *v);
00334 
00340 extern void stp_set_height(stp_vars_t *v, int val);
00341 
00346 extern int stp_get_height(const stp_vars_t *v);
00347 
00348 /*
00349  * For custom page widths, these functions may be used.
00350  */
00351 
00357 extern void stp_set_page_width(stp_vars_t *v, int val);
00358 
00363 extern int stp_get_page_width(const stp_vars_t *v);
00364 
00370 extern void stp_set_page_height(stp_vars_t *v, int val);
00371 
00376 extern int stp_get_page_height(const stp_vars_t *v);
00377 
00385 extern void stp_set_outfunc(stp_vars_t *v, stp_outfunc_t val);
00386 
00392 extern stp_outfunc_t stp_get_outfunc(const stp_vars_t *v);
00393 
00401 extern void stp_set_errfunc(stp_vars_t *v, stp_outfunc_t val);
00402 
00408 extern stp_outfunc_t stp_get_errfunc(const stp_vars_t *v);
00409 
00417 extern void stp_set_outdata(stp_vars_t *v, void *val);
00418 
00424 extern void *stp_get_outdata(const stp_vars_t *v);
00425 
00433 extern void stp_set_errdata(stp_vars_t *v, void *val);
00434 
00440 extern void *stp_get_errdata(const stp_vars_t *v);
00441 
00448 extern void stp_merge_printvars(stp_vars_t *user, const stp_vars_t *print);
00449 
00450 
00451 /****************************************************************
00452 *                                                               *
00453 * PARAMETER MANAGEMENT                                          *
00454 *                                                               *
00455 ****************************************************************/
00456 
00466 extern stp_parameter_list_t stp_get_parameter_list(const stp_vars_t *v);
00467 
00474 extern size_t stp_parameter_list_count(stp_const_parameter_list_t list);
00475 
00483 extern const stp_parameter_t *
00484 stp_parameter_find(stp_const_parameter_list_t list, const char *name);
00485 
00494 extern const stp_parameter_t *
00495 stp_parameter_list_param(stp_const_parameter_list_t list, size_t item);
00496 
00502 extern void stp_parameter_list_destroy(stp_parameter_list_t list);
00503 
00508 extern stp_parameter_list_t stp_parameter_list_create(void);
00509 
00515 extern void stp_parameter_list_add_param(stp_parameter_list_t list,
00516                                          const stp_parameter_t *item);
00517 
00526 extern stp_parameter_list_t
00527 stp_parameter_list_copy(stp_const_parameter_list_t list);
00528 
00535 extern void
00536 stp_parameter_list_append(stp_parameter_list_t list,
00537                           stp_const_parameter_list_t append);
00538 
00547 extern void
00548 stp_describe_parameter(const stp_vars_t *v, const char *name,
00549                        stp_parameter_t *description);
00550 
00557 extern void stp_parameter_description_destroy(stp_parameter_t *description);
00558 
00566 extern const stp_parameter_t *
00567 stp_parameter_find_in_settings(const stp_vars_t *v, const char *name);
00568 
00575 extern void stp_set_string_parameter(stp_vars_t *v, const char *parameter,
00576                                      const char *value);
00577 
00585 extern void stp_set_string_parameter_n(stp_vars_t *v, const char *parameter,
00586                                        const char *value, size_t bytes);
00587 
00594 extern void stp_set_file_parameter(stp_vars_t *v, const char *parameter,
00595                                    const char *value);
00596 
00604 extern void stp_set_file_parameter_n(stp_vars_t *v, const char *parameter,
00605                                      const char *value, size_t bytes);
00606 
00613 extern void stp_set_float_parameter(stp_vars_t *v, const char *parameter,
00614                                     double value);
00615 
00622 extern void stp_set_int_parameter(stp_vars_t *v, const char *parameter,
00623                                   int value);
00624 
00631 extern void stp_set_boolean_parameter(stp_vars_t *v, const char *parameter,
00632                                       int value);
00633 
00640 extern void stp_set_curve_parameter(stp_vars_t *v, const char *parameter,
00641                                     const stp_curve_t *value);
00642 
00649 extern void stp_set_array_parameter(stp_vars_t *v, const char *parameter,
00650                                     const stp_array_t *value);
00651 
00659 extern void stp_set_raw_parameter(stp_vars_t *v, const char *parameter,
00660                                   const void *value, size_t bytes);
00661 
00668 extern void stp_scale_float_parameter(stp_vars_t *v, const char *parameter,
00669                                       double scale);
00670 
00680 extern void stp_set_default_string_parameter(stp_vars_t *v,
00681                                              const char *parameter,
00682                                              const char *value);
00683 
00694 extern void stp_set_default_string_parameter_n(stp_vars_t *v,
00695                                                const char *parameter,
00696                                                const char *value, size_t bytes);
00697 
00707 extern void stp_set_default_file_parameter(stp_vars_t *v,
00708                                            const char *parameter,
00709                                            const char *value);
00710 
00721 extern void stp_set_default_file_parameter_n(stp_vars_t *v,
00722                                              const char *parameter,
00723                                              const char *value, size_t bytes);
00724 
00734 extern void stp_set_default_float_parameter(stp_vars_t *v,
00735                                             const char *parameter,
00736                                             double value);
00737 
00747 extern void stp_set_default_int_parameter(stp_vars_t *v,
00748                                           const char *parameter,
00749                                           int value);
00750 
00760 extern void stp_set_default_boolean_parameter(stp_vars_t *v,
00761                                               const char *parameter,
00762                                               int value);
00763 
00773 extern void stp_set_default_curve_parameter(stp_vars_t *v,
00774                                             const char *parameter,
00775                                             const stp_curve_t *value);
00776 
00786 extern void stp_set_default_array_parameter(stp_vars_t *v,
00787                                             const char *parameter,
00788                                             const stp_array_t *value);
00789 
00800 extern void stp_set_default_raw_parameter(stp_vars_t *v,
00801                                           const char *parameter,
00802                                           const void *value, size_t bytes);
00803 
00810 extern const char *stp_get_string_parameter(const stp_vars_t *v,
00811                                             const char *parameter);
00812 
00819 extern const char *stp_get_file_parameter(const stp_vars_t *v,
00820                                           const char *parameter);
00821 
00828 extern double stp_get_float_parameter(const stp_vars_t *v,
00829                                             const char *parameter);
00830 
00837 extern int stp_get_int_parameter(const stp_vars_t *v,
00838                                  const char *parameter);
00839 
00846 extern int stp_get_boolean_parameter(const stp_vars_t *v,
00847                                      const char *parameter);
00848 
00855 extern const stp_curve_t *stp_get_curve_parameter(const stp_vars_t *v,
00856                                                   const char *parameter);
00857 
00864 extern const stp_array_t *stp_get_array_parameter(const stp_vars_t *v,
00865                                                   const char *parameter);
00866 
00873 extern const stp_raw_t *stp_get_raw_parameter(const stp_vars_t *v,
00874                                               const char *parameter);
00875 
00882 extern void stp_clear_string_parameter(stp_vars_t *v, const char *parameter);
00883 
00890 extern void stp_clear_file_parameter(stp_vars_t *v, const char *parameter);
00891 
00897 extern void stp_clear_float_parameter(stp_vars_t *v, const char *parameter);
00898 
00904 extern void stp_clear_int_parameter(stp_vars_t *v, const char *parameter);
00905 
00911 extern void stp_clear_boolean_parameter(stp_vars_t *v, const char *parameter);
00912 
00919 extern void stp_clear_curve_parameter(stp_vars_t *v, const char *parameter);
00920 
00927 extern void stp_clear_array_parameter(stp_vars_t *v, const char *parameter);
00928 
00935 extern void stp_clear_raw_parameter(stp_vars_t *v, const char *parameter);
00936 
00944 extern void stp_set_string_parameter_active(const stp_vars_t *v,
00945                                             const char *parameter,
00946                                             stp_parameter_activity_t active);
00947 
00955 extern void stp_set_file_parameter_active(const stp_vars_t *v,
00956                                           const char *parameter,
00957                                           stp_parameter_activity_t active);
00958 
00966 extern void stp_set_float_parameter_active(const stp_vars_t *v,
00967                                          const char *parameter,
00968                                          stp_parameter_activity_t active);
00969 
00977 extern void stp_set_int_parameter_active(const stp_vars_t *v,
00978                                          const char *parameter,
00979                                          stp_parameter_activity_t active);
00980 
00988 extern void stp_set_boolean_parameter_active(const stp_vars_t *v,
00989                                              const char *parameter,
00990                                              stp_parameter_activity_t active);
00991 
00999 extern void stp_set_curve_parameter_active(const stp_vars_t *v,
01000                                            const char *parameter,
01001                                            stp_parameter_activity_t active);
01002 
01010 extern void stp_set_array_parameter_active(const stp_vars_t *v,
01011                                            const char *parameter,
01012                                            stp_parameter_activity_t active);
01013 
01021 extern void stp_set_raw_parameter_active(const stp_vars_t *v,
01022                                          const char *parameter,
01023                                          stp_parameter_activity_t active);
01024 
01031 extern int stp_check_string_parameter(const stp_vars_t *v, const char *parameter,
01032                                       stp_parameter_activity_t active);
01033 
01040 extern int stp_check_file_parameter(const stp_vars_t *v, const char *parameter,
01041                                     stp_parameter_activity_t active);
01042 
01049 extern int stp_check_float_parameter(const stp_vars_t *v, const char *parameter,
01050                                      stp_parameter_activity_t active);
01051 
01058 extern int stp_check_int_parameter(const stp_vars_t *v, const char *parameter,
01059                                    stp_parameter_activity_t active);
01060 
01067 extern int stp_check_boolean_parameter(const stp_vars_t *v, const char *parameter,
01068                                        stp_parameter_activity_t active);
01069 
01076 extern int stp_check_curve_parameter(const stp_vars_t *v, const char *parameter,
01077                                      stp_parameter_activity_t active);
01078 
01085 extern int stp_check_array_parameter(const stp_vars_t *v, const char *parameter,
01086                                      stp_parameter_activity_t active);
01087 
01094 extern int stp_check_raw_parameter(const stp_vars_t *v, const char *parameter,
01095                                    stp_parameter_activity_t active);
01096 
01103 extern stp_parameter_activity_t
01104 stp_get_string_parameter_active(const stp_vars_t *v, const char *parameter);
01105 
01112 extern stp_parameter_activity_t
01113 stp_get_file_parameter_active(const stp_vars_t *v, const char *parameter);
01114 
01121 extern stp_parameter_activity_t
01122 stp_get_float_parameter_active(const stp_vars_t *v, const char *parameter);
01123 
01130 extern stp_parameter_activity_t
01131 stp_get_int_parameter_active(const stp_vars_t *v, const char *parameter);
01132 
01139 extern stp_parameter_activity_t
01140 stp_get_boolean_parameter_active(const stp_vars_t *v, const char *parameter);
01141 
01148 extern stp_parameter_activity_t
01149 stp_get_curve_parameter_active(const stp_vars_t *v, const char *parameter);
01150 
01157 extern stp_parameter_activity_t
01158 stp_get_array_parameter_active(const stp_vars_t *v, const char *parameter);
01159 
01166 extern stp_parameter_activity_t
01167 stp_get_raw_parameter_active(const stp_vars_t *v, const char *parameter);
01168 
01169 
01170 
01171 /****************************************************************
01172 *                                                               *
01173 * INFORMATIONAL QUERIES                                         *
01174 *                                                               *
01175 ****************************************************************/
01176 
01189 extern void stp_get_media_size(const stp_vars_t *v, int *width, int *height);
01190 
01214 extern void stp_get_imageable_area(const stp_vars_t *v, int *left, int *right,
01215                                    int *bottom, int *top);
01216 
01227 extern void
01228 stp_get_size_limit(const stp_vars_t *v, int *max_width, int *max_height,
01229                    int *min_width, int *min_height);
01230 
01231 
01239 extern void stp_describe_resolution(const stp_vars_t *v, int *x, int *y);
01240 
01249 extern int stp_verify(stp_vars_t *v);
01250 
01259 extern const stp_vars_t *stp_default_settings(void);
01260 
01261 typedef void *(*stp_copy_data_func_t)(void *);
01262 typedef void (*stp_free_data_func_t)(void *);
01263 
01264 typedef enum
01265 {
01266   PARAMETER_BAD,
01267   PARAMETER_OK,
01268   PARAMETER_INACTIVE
01269 } stp_parameter_verify_t;
01270 
01271 extern void stp_allocate_component_data(stp_vars_t *v,
01272                                         const char *name,
01273                                         stp_copy_data_func_t copyfunc,
01274                                         stp_free_data_func_t freefunc,
01275                                         void *data);
01276 extern void stp_destroy_component_data(stp_vars_t *v, const char *name);
01277 
01278 struct stp_compdata;
01279 typedef struct stp_compdata compdata_t;
01280 
01281 extern void *stp_get_component_data(const stp_vars_t *v, const char *name);
01282 
01283 extern stp_parameter_verify_t stp_verify_parameter(const stp_vars_t *v,
01284                                                    const char *parameter,
01285                                                    int quiet);
01286 extern int stp_get_verified(const stp_vars_t *v);
01287 extern void stp_set_verified(stp_vars_t *v, int value);
01288 
01289 extern void stp_copy_options(stp_vars_t *vd, const stp_vars_t *vs);
01290 
01291 extern void
01292 stp_fill_parameter_settings(stp_parameter_t *desc,
01293                             const stp_parameter_t *param);
01294 
01297 #ifdef __cplusplus
01298   }
01299 #endif
01300 
01301 #endif /* GIMP_PRINT_VARS_H */
01302 /*
01303  * End of "$Id: vars.h,v 1.13 2004/05/09 16:06:05 rleigh Exp $".
01304  */

Generated on Wed May 12 20:21:27 2004 for libgimpprint API Reference by doxygen1.2.17