看这个简单的例子:
#include
static gpointer
gen_slide (gpointer data)
{
return clutter_cairo_texture_new (800.0, 600.0);
}
static gboolean
on_stage_button_press (ClutterActor *stage, ClutterEvent *event, gpointer data)
{
g_thread_new ("test", gen_slide, NULL);
return TRUE;
}
int
main(int argc, char *argv[])
{
if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS)
return 1;
ClutterColor stage_color = { 0x21, 0x43, 0x5e, 0xff };
ClutterActor *stage = clutter_stage_get_default ();
clutter_stage_set_title (CLUTTER_STAGE (stage), "CairoTexture!");
clutter_actor_set_size (stage, 400, 400);
clutter_stage_set_color (CLUTTER_STAGE (stage), &stage_color);
clutter_stage_set_user_resizable (CLUTTER_STAGE (stage), TRUE);
clutter_actor_show_all (stage);
g_signal_connect (stage, "destroy", G_CALLBACK (clutter_main_quit), NULL);
g_signal_connect (stage, "button-press-event", G_CALLBACK (on_stage_button_press), NULL);
clutter_main ();
return 0;
}
编译它:
gcc `pkg-config --cflags --libs clutter-1.0` test.c
这个程序需要 >=glib-2.32 版本的支持。运行程序时,鼠标点一下窗口内部区域,在我这里程序便会崩溃。不知是不是只有我遇到这个问题。
这样子,Cikada 就没法实现单独加载 pdf 页面的线程了。