static void fail(const struct sol_flow_node *node) { mark_done(node); SOL_ERR("test/result node '%s' failed", sol_flow_node_get_id(node)); sol_quit_with_code(EXIT_FAILURE); }
static int slider_setup(struct gtk_common_data *data, const struct sol_flow_node_options *options) { int min = 0; int max = 100; int step = 1; struct gtk_common_data *mdata = (struct gtk_common_data *)data; const struct sol_flow_node_type_gtk_slider_options *opts = (const struct sol_flow_node_type_gtk_slider_options *)options; SOL_FLOW_NODE_OPTIONS_SUB_API_CHECK(options, SOL_FLOW_NODE_TYPE_GTK_SLIDER_OPTIONS_API_VERSION, -EINVAL); min = opts->range.min; max = opts->range.max; step = opts->range.step; if (min > max) { SOL_WRN("invalid range min=%d max=%d for slider id=%s\n", min, max, sol_flow_node_get_id(mdata->node)); return -EINVAL; } if (step <= 0) { SOL_WRN("invalid step=%d for slider id=%s\n", step, sol_flow_node_get_id(mdata->node)); return -EINVAL; } mdata->widget = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, min, max, step); g_signal_connect(mdata->widget, "value-changed", G_CALLBACK(on_slider_changed), mdata); g_object_set(mdata->widget, "hexpand", true, NULL); // GtkScale natural size is too small, give it a better default. gtk_widget_set_size_request(mdata->widget, 300, -1); return 0; }
static void inspector_show_node_id(const struct sol_flow_node *node) { const char *id = sol_flow_node_get_id(node); if (id && *id) fputs(id, stdout); else fprintf(stdout, "%p", node); }
static void mark_done(const struct sol_flow_node *node) { struct test_result_data *d = sol_flow_node_get_private_data(node); if (!d->done) { d->done = true; return; } SOL_WRN("test/result node '%s' got more results than expected", sol_flow_node_get_id(node)); }