Esempio n. 1
0
static void stpui_spin_changed(GtkWidget *w,gpointer *ud)
{
	stpui_Slider *s=STPUI_SLIDER(ud);
	double value;
	
	switch(s->type)
	{
		case STP_PARAMETER_TYPE_DOUBLE:
			value=gtk_spin_button_get_value(GTK_SPIN_BUTTON(s->spin));
			stp_set_float_parameter(s->vars,s->optionname,value);
			break;
		case STP_PARAMETER_TYPE_INT:
			value=gtk_spin_button_get_value(GTK_SPIN_BUTTON(s->spin));
			stp_set_int_parameter(s->vars,s->optionname,value);
			break;
		case STP_PARAMETER_TYPE_DIMENSION:
			value=dimension_get_pt(DIMENSION(s->spin));
			stp_set_dimension_parameter(s->vars,s->optionname,value);
			break;
		default:
			break;
	}	

	stpui_slider_refresh(s);

//	g_signal_emit(G_OBJECT (s),
//		stpui_slider_signals[CHANGED_SIGNAL], 0);
}
Esempio n. 2
0
static void stpui_slider_changed(GtkWidget *w,gpointer *ud)
{
	stpui_Slider *s=STPUI_SLIDER(ud);
	double value;
	
	if(s->checkbutton)
		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(s->checkbutton),TRUE);

	switch(s->type)
	{
		case STP_PARAMETER_TYPE_DOUBLE:
			value=gtk_range_get_value(GTK_RANGE(s->scale));
			stp_set_float_parameter(s->vars,s->optionname,value);
			break;
		case STP_PARAMETER_TYPE_INT:
			value=gtk_range_get_value(GTK_RANGE(s->scale));
			stp_set_int_parameter(s->vars,s->optionname,value);
			break;
		case STP_PARAMETER_TYPE_DIMENSION:
			value=gtk_range_get_value(GTK_RANGE(s->scale));
			stp_set_dimension_parameter(s->vars,s->optionname,value);
			break;
		default:
			break;
	}

	stpui_slider_refresh(s);

//	g_signal_emit(G_OBJECT (s),
//		stpui_slider_signals[CHANGED_SIGNAL], 0);
}
Esempio n. 3
0
static gboolean stpui_slider_released(GtkWidget *w,GdkEventButton *e,gpointer ud)
{
	stpui_Slider *s=STPUI_SLIDER(ud);
	double value;

	switch(s->type)
	{
		case STP_PARAMETER_TYPE_DOUBLE:
			value=gtk_range_get_value(GTK_RANGE(s->scale));
			stp_set_float_parameter(s->vars,s->optionname,value);
			break;
		case STP_PARAMETER_TYPE_INT:
			value=gtk_range_get_value(GTK_RANGE(s->scale));
			stp_set_int_parameter(s->vars,s->optionname,value);
			break;
		case STP_PARAMETER_TYPE_DIMENSION:
			value=gtk_range_get_value(GTK_RANGE(s->scale));
			stp_set_dimension_parameter(s->vars,s->optionname,value);
			break;
		default:
			break;
	}	

	stpui_slider_refresh(s);

	g_signal_emit(G_OBJECT (s),
		stpui_slider_signals[CHANGED_SIGNAL], 0);

	return(FALSE);
}
Esempio n. 4
0
static void stpui_toggle_changed(GtkWidget *w,gpointer *ud)
{
	stpui_Slider *s=STPUI_SLIDER(ud);

	gboolean enabled=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(s->checkbutton));
	if(enabled)
	{
		stp_parameter_t desc;
		stp_describe_parameter(s->vars,s->optionname,&desc);
		switch(desc.p_type)
		{
			case STP_PARAMETER_TYPE_DOUBLE:
				{
					double val=gtk_range_get_value(GTK_RANGE(s->scale));
					stp_set_float_parameter(s->vars,s->optionname,val);
				}
				break;
			case STP_PARAMETER_TYPE_INT:
				{
					double val=gtk_range_get_value(GTK_RANGE(s->scale));
					stp_set_int_parameter(s->vars,s->optionname,val);
				}
				break;
			case STP_PARAMETER_TYPE_DIMENSION:
				{
					double val=gtk_range_get_value(GTK_RANGE(s->scale));
					// Convert to correct unit here
					stp_set_dimension_parameter(s->vars,s->optionname,val);
				}
				break;
			default:
				break;	
		}
	}
	else
	{
		stp_parameter_t desc;
		stp_describe_parameter(s->vars,s->optionname,&desc);
		switch(desc.p_type)
		{
			case STP_PARAMETER_TYPE_DOUBLE:
				stp_clear_float_parameter(s->vars,s->optionname);
				break;
			case STP_PARAMETER_TYPE_INT:
				stp_clear_int_parameter(s->vars,s->optionname);
				break;
			case STP_PARAMETER_TYPE_DIMENSION:
				stp_clear_dimension_parameter(s->vars,s->optionname);
				break;
			default:
				break;	
		}		
	}
	
	stpui_slider_refresh(s);
}
void guten_set_user_parameters(struct stp_vars* gvars, char **params, unsigned int params_num) {
	int i;
	for(i=0; i<params_num; i++) {
		stp_parameter_t pardesc;
		char* name = params[2*i];
		char* value = params[2*i +1];
		stp_describe_parameter(gvars, name, &pardesc);
		switch(pardesc.p_type) {
			case STP_PARAMETER_TYPE_STRING_LIST: {
				stp_set_string_parameter(gvars, pardesc.name, value);
				break;
			}
			case STP_PARAMETER_TYPE_INT: {
			        int ival;
                                if(sscanf(value, "%d", &ival)) {
                                        stp_set_int_parameter(gvars, pardesc.name, ival);
                                } else {
                                        printf("Cannot parse gutenprint int parameter %s=%s - skipping\n", name, value);
                                }
                                break;
                        }
                        case STP_PARAMETER_TYPE_BOOLEAN: {
			        boolean bval;
			        boolean correct = FALSE;
			        if(strcasecmp(value, "true") == 0 || strcasecmp(value, "yes") == 0 || strcmp(value, "1") == 0) {
			                bval = TRUE;
			                correct = TRUE;
			        }
			        else if(strcasecmp(value, "false") == 0 || strcasecmp(value, "no") == 0 || strcmp(value, "0") == 0) {
			                bval = FALSE;
			                correct = TRUE;
			        }
                                if(correct) {
                                        stp_set_boolean_parameter(gvars, pardesc.name, bval);
                                } else {
                                        printf("Cannot parse gutenprint boolean parameter %s=%s - skipping\n", name, value);
                                }
				break;
			}
			case STP_PARAMETER_TYPE_DOUBLE: {
			        double dval;
                                if(sscanf(value, "%lf", &dval)) {
                                        stp_set_float_parameter(gvars, pardesc.name, dval);
                                } else {
                                        printf("Cannot parse gutenprint double parameter %s=%s - skipping\n", name, value);
                                }
				break;
			}
			case STP_PARAMETER_TYPE_CURVE: {
			        printf("Gutenprint curve parameter %s - skipping, freel free to write a curve parser for this tool\n", name);
				break;
			}
			case STP_PARAMETER_TYPE_FILE: {
				stp_set_file_parameter(gvars, pardesc.name, value);
				break;
			}
			case STP_PARAMETER_TYPE_RAW: {
			        printf("Gutenprint raw parameter %s - skipping, freel free to write an implementation to support raw parameter in this tool\n", name);
				break;
			}
			case STP_PARAMETER_TYPE_ARRAY: {
			        printf("Gutenprint array parameter %s - skipping, freel free to write an implementation to support arra parameter in this tool\n", name);
				break;
			}
			case STP_PARAMETER_TYPE_DIMENSION: {
			        int ival;
                                if(sscanf(value, "%d", &ival)) {
                                        stp_set_dimension_parameter(gvars, pardesc.name, ival);
                                } else {
                                        printf("Cannot parse gutenprint dimension parameter %s=%s - skipping\n", name, value);
                                }
                                break;
			}
			default: {
			        printf("Gutenprint parameter %s has unknown type - skippig\n", name);
			}
                }
	}
}
struct stp_vars *guten_prepare_printer(const stp_printer_t *printer) {
        const struct stp_vars *gvars_defaults;
        struct stp_vars *gvars;

	gvars_defaults = stp_printer_get_defaults(printer);
	gvars = stp_vars_create_copy(gvars_defaults);
	stp_set_outdata(gvars, stdout);
	stp_set_outfunc(gvars, gfunc_print);
	stp_set_errdata(gvars, stderr);
	stp_set_errfunc(gvars, gfunc_error);
	stp_parameter_list_t *list = stp_get_parameter_list(gvars);
	size_t count = stp_parameter_list_count(list);
	int i;
	for(i=0; i<count; i++) {
		const stp_parameter_t *par = stp_parameter_list_param(list, i);
		stp_parameter_t pardesc;
		stp_describe_parameter(gvars, par->name, &pardesc);
		if(pardesc.is_mandatory) {
			switch(pardesc.p_type) {
				case STP_PARAMETER_TYPE_STRING_LIST: {
					stp_set_string_parameter(gvars, pardesc.name, pardesc.deflt.str);
					break;
				}
				case STP_PARAMETER_TYPE_INT: {
					stp_set_int_parameter(gvars, pardesc.name, pardesc.deflt.integer);
					break;
				}
				case STP_PARAMETER_TYPE_BOOLEAN: {
					stp_set_boolean_parameter(gvars, pardesc.name, pardesc.deflt.boolean);
					break;
				}
				case STP_PARAMETER_TYPE_DOUBLE: {
					stp_set_float_parameter(gvars, pardesc.name, pardesc.deflt.dbl);
					break;
				}
				case STP_PARAMETER_TYPE_CURVE: {
					stp_set_curve_parameter(gvars, pardesc.name, pardesc.deflt.curve);
					break;
				}
				case STP_PARAMETER_TYPE_FILE: {
					stp_set_file_parameter(gvars, pardesc.name, pardesc.deflt.str);
					break;
				}
/*				case STP_PARAMETER_TYPE_RAW: {
					stp_set_raw_parameter(gvars, pardesc.name, pardesc.deflt.str);
					break;
				}
*/
				case STP_PARAMETER_TYPE_ARRAY: {
					stp_set_array_parameter(gvars, pardesc.name, pardesc.deflt.array);
					break;
				}
				case STP_PARAMETER_TYPE_DIMENSION: {
					stp_set_dimension_parameter(gvars, pardesc.name, pardesc.deflt.dimension);
					break;
				}
				default: {}
			}
		}
	}
	stp_parameter_list_destroy(list);
	return gvars;
}