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 #ifdef __cplusplus
00033 extern "C" {
00034 #endif
00035 
00052 typedef void *stp_vars_t;
00054 typedef const void *stp_const_vars_t;
00055 
00061 typedef enum
00062 {
00063   STP_PARAMETER_TYPE_STRING_LIST, 
00064   STP_PARAMETER_TYPE_INT,       
00065   STP_PARAMETER_TYPE_BOOLEAN,   
00066   STP_PARAMETER_TYPE_DOUBLE,    
00067   STP_PARAMETER_TYPE_CURVE,     
00068   STP_PARAMETER_TYPE_FILE,      
00069   STP_PARAMETER_TYPE_RAW,       
00070   STP_PARAMETER_TYPE_ARRAY,     
00071   STP_PARAMETER_TYPE_INVALID    
00072 } stp_parameter_type_t;
00073 
00079 typedef enum
00080 {
00081   STP_PARAMETER_CLASS_FEATURE,  
00082   STP_PARAMETER_CLASS_OUTPUT,   
00083   STP_PARAMETER_CLASS_CORE,     
00084   STP_PARAMETER_CLASS_INVALID   
00085 } stp_parameter_class_t;
00086 
00091 typedef enum
00092 {
00093   STP_PARAMETER_LEVEL_BASIC,     
00094   STP_PARAMETER_LEVEL_ADVANCED,  
00095   STP_PARAMETER_LEVEL_ADVANCED1, 
00096   STP_PARAMETER_LEVEL_ADVANCED2, 
00097   STP_PARAMETER_LEVEL_ADVANCED3, 
00098   STP_PARAMETER_LEVEL_ADVANCED4, 
00099   STP_PARAMETER_LEVEL_INTERNAL,  
00100   STP_PARAMETER_LEVEL_EXTERNAL,  
00101   STP_PARAMETER_LEVEL_INVALID    
00102 } stp_parameter_level_t;
00103 
00110 typedef enum
00111 {
00112   STP_PARAMETER_INACTIVE,  
00113   STP_PARAMETER_DEFAULTED, 
00114   STP_PARAMETER_ACTIVE     
00115 } stp_parameter_activity_t;
00116 
00117 
00124 typedef struct
00125 {
00126   const char    *name,  
00127                 *text;  
00128 } stp_param_string_t;
00129 
00131 typedef void *stp_string_list_t;
00133 typedef const void *stp_const_string_list_t;
00134 
00135 /*
00136  * Other parameter types
00137  */
00138 
00140 typedef struct
00141 {
00142   size_t bytes;     
00143   const void *data; 
00144 } stp_raw_t;
00145 
00147 typedef struct
00148 {
00149   double lower; 
00150   double upper; 
00151 } stp_double_bound_t;
00152 
00154 typedef struct
00155 {
00156   int lower; 
00157   int upper; 
00158 } stp_int_bound_t;
00159 
00161 typedef struct
00162 {
00163   const char *name;              
00164   const char *text;              
00165   const char *category;          
00166   const char *help;              
00167   stp_parameter_type_t p_type;   
00168   stp_parameter_class_t p_class; 
00169   stp_parameter_level_t p_level; 
00170   unsigned char is_mandatory;    
00171   unsigned char is_active;       
00172   unsigned char channel;         
00173   unsigned char verify_this_parameter;   
00174   unsigned char read_only;
00175   union
00176   {
00177     stp_curve_t curve;       
00178     stp_double_bound_t dbl;  
00179     stp_int_bound_t integer; 
00180     stp_string_list_t str;   
00181     stp_array_t array;       
00182   } bounds; 
00183   union
00184   {
00185     stp_curve_t curve; 
00186     double dbl;        
00187     int integer;       
00188     int boolean;       
00189     const char *str;   
00190     stp_array_t array; 
00191   } deflt; 
00192 } stp_parameter_t;
00193 
00195 typedef void *stp_parameter_list_t;
00197 typedef const void *stp_const_parameter_list_t;
00198 
00208 typedef void (*stp_outfunc_t) (void *data, const char *buffer, size_t bytes);
00209 
00210 
00211 /****************************************************************
00212 *                                                               *
00213 * BASIC PRINTER SETTINGS                                        *
00214 *                                                               *
00215 ****************************************************************/
00216 
00221 extern stp_vars_t stp_vars_create(void);
00222 
00230 extern void stp_vars_copy(stp_vars_t dest, stp_const_vars_t source);
00231 
00239 extern stp_vars_t stp_vars_create_copy(stp_const_vars_t source);
00240 
00246 extern void stp_vars_destroy(stp_vars_t v);
00247 
00253 extern void stp_set_driver(stp_vars_t v, const char *val);
00254 
00261 extern void stp_set_driver_n(stp_vars_t v, const char *val, int bytes);
00262 
00267 extern const char *stp_get_driver(stp_const_vars_t v);
00268 
00274 extern void stp_set_color_conversion(stp_vars_t v, const char *val);
00275 
00282 extern void stp_set_color_conversion_n(stp_vars_t v, const char *val, int bytes);
00283 
00288 extern const char *stp_get_color_conversion(stp_const_vars_t v);
00289 
00290 /*
00291  * Set/get the position and size of the image
00292  */
00293 
00299 extern void stp_set_left(stp_vars_t v, int val);
00300 
00305 extern int stp_get_left(stp_const_vars_t v);
00306 
00312 extern void stp_set_top(stp_vars_t v, int val);
00313 
00318 extern int stp_get_top(stp_const_vars_t v);
00319 
00325 extern void stp_set_width(stp_vars_t v, int val);
00326 
00331 extern int stp_get_width(stp_const_vars_t v);
00332 
00338 extern void stp_set_height(stp_vars_t v, int val);
00339 
00344 extern int stp_get_height(stp_const_vars_t v);
00345 
00346 /*
00347  * For custom page widths, these functions may be used.
00348  */
00349 
00355 extern void stp_set_page_width(stp_vars_t v, int val);
00356 
00361 extern int stp_get_page_width(stp_const_vars_t v);
00362 
00368 extern void stp_set_page_height(stp_vars_t v, int val);
00369 
00374 extern int stp_get_page_height(stp_const_vars_t v);
00375 
00383 extern void stp_set_outfunc(stp_vars_t v, stp_outfunc_t val);
00384 
00390 extern stp_outfunc_t stp_get_outfunc(stp_const_vars_t v);
00391 
00399 extern void stp_set_errfunc(stp_vars_t v, stp_outfunc_t val);
00400 
00406 extern stp_outfunc_t stp_get_errfunc(stp_const_vars_t v);
00407 
00415 extern void stp_set_outdata(stp_vars_t v, void *val);
00416 
00422 extern void *stp_get_outdata(stp_const_vars_t v);
00423 
00431 extern void stp_set_errdata(stp_vars_t v, void *val);
00432 
00438 extern void *stp_get_errdata(stp_const_vars_t v);
00439 
00446 extern void stp_merge_printvars(stp_vars_t user, stp_const_vars_t print);
00447 
00448 
00449 /****************************************************************
00450 *                                                               *
00451 * PARAMETER MANAGEMENT                                          *
00452 *                                                               *
00453 ****************************************************************/
00454 
00464 extern stp_parameter_list_t stp_get_parameter_list(stp_const_vars_t v);
00465 
00472 extern size_t stp_parameter_list_count(stp_const_parameter_list_t list);
00473 
00481 extern const stp_parameter_t *
00482 stp_parameter_find(stp_const_parameter_list_t list, const char *name);
00483 
00492 extern const stp_parameter_t *
00493 stp_parameter_list_param(stp_const_parameter_list_t list, size_t item);
00494 
00500 extern void stp_parameter_list_destroy(stp_parameter_list_t list);
00501 
00506 extern stp_parameter_list_t stp_parameter_list_create(void);
00507 
00513 extern void stp_parameter_list_add_param(stp_parameter_list_t list,
00514                                          const stp_parameter_t *item);
00515 
00524 extern stp_parameter_list_t
00525 stp_parameter_list_copy(stp_const_parameter_list_t list);
00526 
00533 extern void
00534 stp_parameter_list_append(stp_parameter_list_t list,
00535                           stp_const_parameter_list_t append);
00536 
00545 extern void
00546 stp_describe_parameter(stp_const_vars_t v, const char *name,
00547                        stp_parameter_t *description);
00548 
00555 extern void stp_parameter_description_destroy(stp_parameter_t *description);
00556 
00564 extern const stp_parameter_t *
00565 stp_parameter_find_in_settings(stp_const_vars_t v, const char *name);
00566 
00573 extern void stp_set_string_parameter(stp_vars_t v, const char *parameter,
00574                                      const char *value);
00575 
00583 extern void stp_set_string_parameter_n(stp_vars_t v, const char *parameter,
00584                                        const char *value, size_t bytes);
00585 
00592 extern void stp_set_file_parameter(stp_vars_t v, const char *parameter,
00593                                    const char *value);
00594 
00602 extern void stp_set_file_parameter_n(stp_vars_t v, const char *parameter,
00603                                      const char *value, size_t bytes);
00604 
00611 extern void stp_set_float_parameter(stp_vars_t v, const char *parameter,
00612                                     double value);
00613 
00620 extern void stp_set_int_parameter(stp_vars_t v, const char *parameter,
00621                                   int value);
00622 
00629 extern void stp_set_boolean_parameter(stp_vars_t v, const char *parameter,
00630                                       int value);
00631 
00638 extern void stp_set_curve_parameter(stp_vars_t v, const char *parameter,
00639                                     stp_const_curve_t value);
00640 
00647 extern void stp_set_array_parameter(stp_vars_t v, const char *parameter,
00648                                     stp_const_array_t value);
00649 
00657 extern void stp_set_raw_parameter(stp_vars_t v, const char *parameter,
00658                                   const void *value, size_t bytes);
00659 
00666 extern void stp_scale_float_parameter(stp_vars_t v, const char *parameter,
00667                                       double scale);
00668 
00678 extern void stp_set_default_string_parameter(stp_vars_t v,
00679                                              const char *parameter,
00680                                              const char *value);
00681 
00692 extern void stp_set_default_string_parameter_n(stp_vars_t v,
00693                                                const char *parameter,
00694                                                const char *value, size_t bytes);
00695 
00705 extern void stp_set_default_file_parameter(stp_vars_t v,
00706                                            const char *parameter,
00707                                            const char *value);
00708 
00719 extern void stp_set_default_file_parameter_n(stp_vars_t v,
00720                                              const char *parameter,
00721                                              const char *value, size_t bytes);
00722 
00732 extern void stp_set_default_float_parameter(stp_vars_t v,
00733                                             const char *parameter,
00734                                             double value);
00735 
00745 extern void stp_set_default_int_parameter(stp_vars_t v,
00746                                           const char *parameter,
00747                                           int value);
00748 
00758 extern void stp_set_default_boolean_parameter(stp_vars_t v,
00759                                               const char *parameter,
00760                                               int value);
00761 
00771 extern void stp_set_default_curve_parameter(stp_vars_t v,
00772                                             const char *parameter,
00773                                             stp_const_curve_t value);
00774 
00784 extern void stp_set_default_array_parameter(stp_vars_t v,
00785                                             const char *parameter,
00786                                             stp_const_array_t value);
00787 
00798 extern void stp_set_default_raw_parameter(stp_vars_t v,
00799                                           const char *parameter,
00800                                           const void *value, size_t bytes);
00801 
00808 extern const char *stp_get_string_parameter(stp_const_vars_t v,
00809                                             const char *parameter);
00810 
00817 extern const char *stp_get_file_parameter(stp_const_vars_t v,
00818                                           const char *parameter);
00819 
00826 extern double stp_get_float_parameter(stp_const_vars_t v,
00827                                             const char *parameter);
00828 
00835 extern int stp_get_int_parameter(stp_const_vars_t v,
00836                                  const char *parameter);
00837 
00844 extern int stp_get_boolean_parameter(stp_const_vars_t v,
00845                                      const char *parameter);
00846 
00853 extern stp_const_curve_t stp_get_curve_parameter(stp_const_vars_t v,
00854                                                  const char *parameter);
00855 
00862 extern stp_const_array_t stp_get_array_parameter(stp_const_vars_t v,
00863                                                  const char *parameter);
00864 
00871 extern const stp_raw_t *stp_get_raw_parameter(stp_const_vars_t v,
00872                                               const char *parameter);
00873 
00880 extern void stp_clear_string_parameter(stp_vars_t v, const char *parameter);
00881 
00888 extern void stp_clear_file_parameter(stp_vars_t v, const char *parameter);
00889 
00895 extern void stp_clear_float_parameter(stp_vars_t v, const char *parameter);
00896 
00902 extern void stp_clear_int_parameter(stp_vars_t v, const char *parameter);
00903 
00909 extern void stp_clear_boolean_parameter(stp_vars_t v, const char *parameter);
00910 
00917 extern void stp_clear_curve_parameter(stp_vars_t v, const char *parameter);
00918 
00925 extern void stp_clear_array_parameter(stp_vars_t v, const char *parameter);
00926 
00933 extern void stp_clear_raw_parameter(stp_vars_t v, const char *parameter);
00934 
00942 extern void stp_set_string_parameter_active(stp_const_vars_t v,
00943                                             const char *parameter,
00944                                             stp_parameter_activity_t active);
00945 
00953 extern void stp_set_file_parameter_active(stp_const_vars_t v,
00954                                           const char *parameter,
00955                                           stp_parameter_activity_t active);
00956 
00964 extern void stp_set_float_parameter_active(stp_const_vars_t v,
00965                                          const char *parameter,
00966                                          stp_parameter_activity_t active);
00967 
00975 extern void stp_set_int_parameter_active(stp_const_vars_t v,
00976                                          const char *parameter,
00977                                          stp_parameter_activity_t active);
00978 
00986 extern void stp_set_boolean_parameter_active(stp_const_vars_t v,
00987                                              const char *parameter,
00988                                              stp_parameter_activity_t active);
00989 
00997 extern void stp_set_curve_parameter_active(stp_const_vars_t v,
00998                                            const char *parameter,
00999                                            stp_parameter_activity_t active);
01000 
01008 extern void stp_set_array_parameter_active(stp_const_vars_t v,
01009                                            const char *parameter,
01010                                            stp_parameter_activity_t active);
01011 
01019 extern void stp_set_raw_parameter_active(stp_const_vars_t v,
01020                                          const char *parameter,
01021                                          stp_parameter_activity_t active);
01022 
01029 extern int stp_check_string_parameter(stp_const_vars_t v, const char *parameter,
01030                                       stp_parameter_activity_t active);
01031 
01038 extern int stp_check_file_parameter(stp_const_vars_t v, const char *parameter,
01039                                     stp_parameter_activity_t active);
01040 
01047 extern int stp_check_float_parameter(stp_const_vars_t v, const char *parameter,
01048                                      stp_parameter_activity_t active);
01049 
01056 extern int stp_check_int_parameter(stp_const_vars_t v, const char *parameter,
01057                                    stp_parameter_activity_t active);
01058 
01065 extern int stp_check_boolean_parameter(stp_const_vars_t v, const char *parameter,
01066                                        stp_parameter_activity_t active);
01067 
01074 extern int stp_check_curve_parameter(stp_const_vars_t v, const char *parameter,
01075                                      stp_parameter_activity_t active);
01076 
01083 extern int stp_check_array_parameter(stp_const_vars_t v, const char *parameter,
01084                                      stp_parameter_activity_t active);
01085 
01092 extern int stp_check_raw_parameter(stp_const_vars_t v, const char *parameter,
01093                                    stp_parameter_activity_t active);
01094 
01101 extern stp_parameter_activity_t
01102 stp_get_string_parameter_active(stp_const_vars_t v, const char *parameter);
01103 
01110 extern stp_parameter_activity_t
01111 stp_get_file_parameter_active(stp_const_vars_t v, const char *parameter);
01112 
01119 extern stp_parameter_activity_t
01120 stp_get_float_parameter_active(stp_const_vars_t v, const char *parameter);
01121 
01128 extern stp_parameter_activity_t
01129 stp_get_int_parameter_active(stp_const_vars_t v, const char *parameter);
01130 
01137 extern stp_parameter_activity_t
01138 stp_get_boolean_parameter_active(stp_const_vars_t v, const char *parameter);
01139 
01146 extern stp_parameter_activity_t
01147 stp_get_curve_parameter_active(stp_const_vars_t v, const char *parameter);
01148 
01155 extern stp_parameter_activity_t
01156 stp_get_array_parameter_active(stp_const_vars_t v, const char *parameter);
01157 
01164 extern stp_parameter_activity_t
01165 stp_get_raw_parameter_active(stp_const_vars_t v, const char *parameter);
01166 
01167 
01168 
01169 /****************************************************************
01170 *                                                               *
01171 * INFORMATIONAL QUERIES                                         *
01172 *                                                               *
01173 ****************************************************************/
01174 
01187 extern void stp_get_media_size(stp_const_vars_t v, int *width, int *height);
01188 
01212 extern void stp_get_imageable_area(stp_const_vars_t v, int *left, int *right,
01213                                    int *bottom, int *top);
01214 
01225 extern void
01226 stp_get_size_limit(stp_const_vars_t v, int *max_width, int *max_height,
01227                    int *min_width, int *min_height);
01228 
01229 
01237 extern void stp_describe_resolution(stp_const_vars_t v, int *x, int *y);
01238 
01247 extern int stp_verify(stp_vars_t v);
01248 
01257 extern stp_const_vars_t stp_default_settings(void);
01258 
01261 #ifdef __cplusplus
01262   }
01263 #endif
01264 
01265 #endif /* __GIMP_PRINT_VARS_H__ */
01266 /*
01267  * End of "$Id: vars.h,v 1.10 2004/04/13 23:54:44 rlk Exp $".
01268  */

Generated on Sat Apr 17 15:42:11 2004 for libgimpprint API Reference by doxygen1.2.17