Beispiel #1
0
void setup_renderer_rrt_debug(Viewer *viewer, int priority) 
{
    RendererRrtDebug *self = 
        (RendererRrtDebug*) calloc(1, sizeof(RendererRrtDebug));    

    Renderer *renderer = &self->renderer;

    renderer->draw = my_draw;
    renderer->destroy = my_free;
    renderer->name = "RRT Debug";
    renderer->widget = gtk_vbox_new(FALSE, 0);
    renderer->enabled = 1;
    renderer->user = self;

    self->lc = globals_get_lcm();
    self->ctrans = globals_get_ctrans();
    self->viewer = viewer;
    self->data = NULL;
    self->min_node_id = 0;
    self->plot_ctrl = 0;
    self->plot_state = 1;

    self->pw = GTKU_PARAM_WIDGET(gtku_param_widget_new());
 
    gtk_box_pack_start(GTK_BOX(renderer->widget), GTK_WIDGET(self->pw), TRUE, TRUE, 0);

    gtku_param_widget_add_double (self->pw, PARAM_MIN0, 
            GTKU_PARAM_WIDGET_SLIDER, 0, 1e4, 1e2, 0);
    gtku_param_widget_add_int (self->pw, PARAM_MIN_PLOT, 
            GTKU_PARAM_WIDGET_SLIDER, 0, 5e2, 1, 0);
    gtku_param_widget_add_double (self->pw, PARAM_MAX0, 
            GTKU_PARAM_WIDGET_SLIDER, 0, MAX_ID_TO_PLOT, 1e2, MAX_ID_TO_PLOT);
    gtku_param_widget_add_int (self->pw, PARAM_MAX_PLOT, 
            GTKU_PARAM_WIDGET_SLIDER, 0, 5e2, 1, 5e2);
    gtku_param_widget_add_booleans (self->pw, 0,
            PARAM_NAME_RENDER_CTRL, self->plot_ctrl, 
            PARAM_NAME_RENDER_STATE, self->plot_state, NULL);
            
    gtk_widget_show_all(renderer->widget);
   
    g_signal_connect (G_OBJECT (self->pw), "changed", 
            G_CALLBACK (on_param_widget_changed), self);
            
    lcmtypes_rrt_debug_t_subscribe(self->lc, "RRT_DEBUG", on_rrt_debug, self);

    viewer_add_renderer(viewer, renderer, priority);
}
int main(int argc, char **argv)
{
    printf("param_widget_test\n");

    GtkWidget *window;
    GtkuParamWidget *pw;

    gtk_init( &argc, &argv );

    window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
    g_signal_connect( G_OBJECT(window), "delete_event", gtk_main_quit, NULL );
    g_signal_connect( G_OBJECT(window), "destroy", gtk_main_quit, NULL );
    gtk_container_set_border_width( GTK_CONTAINER(window), 10 );

    pw = GTKU_PARAM_WIDGET( gtku_param_widget_new() );
    gtk_container_add( GTK_CONTAINER(window), GTK_WIDGET( pw ) );

    gtku_param_widget_add_int( pw, "Integer 1", GTKU_PARAM_WIDGET_SPINBOX,
            INT_MIN, INT_MAX, 1, 10 );

    gtku_param_widget_add_int( pw, "Integer Slider", GTKU_PARAM_WIDGET_SLIDER,
            0, 100, 50, 1 );

    gtku_param_widget_add_double( pw, "Double Slider", GTKU_PARAM_WIDGET_SLIDER,
            0, 1, 0.01, 0.5 );

    gtku_param_widget_add_booleans( pw, GTKU_PARAM_WIDGET_CHECKBOX,
            "check1", 0, 
            "check2", 1, 
            "check3", 0, NULL );

    gtku_param_widget_add_enum( pw, "Menu", GTKU_PARAM_WIDGET_MENU,
            MENU_1,
            "entry 1", MENU_1,
            "entry 2", MENU_2,
            "entry 3", MENU_3,
            NULL );

    g_signal_connect( G_OBJECT( pw ), "changed", 
            G_CALLBACK( on_param_changed ), NULL );

    gtk_widget_show_all( window );
    gtk_main();

    return 0;
}