glutIdleFunc

I need to do some animation,the way I know
now is to use glutIdleFunc(Animation);
Is there any other methods to do animation or
how is glutIdleFunc implemented?
because I have to use GTK as well,glut and GTK
don’t seem to work well together.Can anyone
help me out,thanks a lot!