Example #1
0
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);
}
Example #2
0
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;
}
Example #3
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);
}
Example #4
0
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));
}