Displaying intermediate button images.




Hi all,

Could somebody please tell me what I'm missing here?

Below I've included a small program that hopefully
replicates the problem I'm seeing. The real problem
is in a much larger program. I've just tried to isolate
it here, and to make it as simple as possible.

I have a button. When it's clicked, I want to toggle
the image that's displayed as the label on the button.
I want to toggle it four times, pausing for half a
second between each toggle. The trouble is only the
final image is being shown.

The example below is similar, except it's using text
labels instead of images. Hopefully it's a similar
problem.

What do I need to do to make the intermediate images
appear?

Thanks.

------CUT HERE------CUT HERE------

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <gtk/gtk.h>

void
reve_sleep(unsigned x)   /* Suspend execution for interval in microseconds. */
{
    struct timeval st_delay;

    st_delay.tv_usec = x;
    st_delay.tv_sec = 0;
    select(32, NULL, NULL, NULL, &st_delay);
}


void
on_click(GtkButton *button, gpointer user_data)
{
    gtk_button_set_label(button, "On");
    reve_sleep(500000);
    gtk_button_set_label(button, "Off");
    reve_sleep(500000);
    gtk_button_set_label(button, "On");
    reve_sleep(500000);
    gtk_button_set_label(button, "Off");
}


GtkWidget*
create_window (void)
{
    GtkWidget *window;
    GtkWidget *button;

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    button = gtk_button_new_with_mnemonic("Off");
    gtk_widget_show(button);
    gtk_container_add(GTK_CONTAINER(window), button);
    g_signal_connect((gpointer) button, "clicked", G_CALLBACK(on_click), NULL);

    return(window);
}


int
main(int argc, char *argv[])
{
    GtkWidget *window;

    gtk_set_locale();
    gtk_init(&argc, &argv);
    window = create_window();
    gtk_widget_show(window);

    gtk_main();

    return(0);
}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]