X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=tests%2Fplugin-loader.c;h=296a58f658ce5f741fbc1e9a4bf4f8d7abc40f29;hb=a03ca60f975be1f4636e42ca19f9e6eafc3fad12;hp=767be6cd4ff7fb4d2d44902b3ecc19748b44ee2d;hpb=392b9fc59a687a42128cf1fc5864a4bbaec495fe;p=projects%2Fchimara%2Fchimara.git diff --git a/tests/plugin-loader.c b/tests/plugin-loader.c index 767be6c..296a58f 100644 --- a/tests/plugin-loader.c +++ b/tests/plugin-loader.c @@ -17,7 +17,7 @@ * contributor may be used to endorse or promote products derived * from this software without specific prior written permission. * - * main.c IS PROVIDED BY Philip en Marijn ``AS IS'' AND ANY EXPRESS + * plugin-loader.c IS PROVIDED BY Philip en Marijn ``AS IS'' AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL Philip en Marijn OR ANY OTHER CONTRIBUTORS @@ -60,16 +60,23 @@ create_window(void) gtk_widget_set_size_request(window, 400, 400); g_signal_connect(window, "delete-event", G_CALLBACK(quit), NULL); glk = chimara_glk_new(); - g_object_set(glk, - "border-width", 6, - "spacing", 6, - NULL); - g_signal_connect(glk, "stopped", G_CALLBACK(gtk_main_quit), NULL); - chimara_glk_set_default_font_string(CHIMARA_GLK(glk), "Serif 12"); - chimara_glk_set_monospace_font_string(CHIMARA_GLK(glk), "Monospace 12"); + g_object_ref(glk); gtk_container_add(GTK_CONTAINER(window), glk); } +static gchar * +resource_load(ChimaraResourceType usage, guint32 resnum) +{ + char *resstr; + if(usage == CHIMARA_RESOURCE_IMAGE) + resstr = "PIC"; + else if(usage == CHIMARA_RESOURCE_SOUND) + resstr = "SND"; + else + resstr = "FCK"; + return g_strdup_printf("%s%d", resstr, resnum); +} + int main(int argc, char *argv[]) { @@ -81,23 +88,19 @@ main(int argc, char *argv[]) textdomain(GETTEXT_PACKAGE); #endif - if( !g_thread_supported() ) - g_thread_init(NULL); gdk_threads_init(); gtk_init(&argc, &argv); create_window(); gtk_widget_show_all(window); - if(argc < 2) { - g_printerr("Must provide a plugin\n"); - return 1; - } + if(argc < 2) + g_error("Must provide a plugin\n"); + + chimara_glk_set_resource_load_callback(CHIMARA_GLK(glk), (ChimaraResourceLoadFunc)resource_load, NULL, NULL); - if( !chimara_glk_run(CHIMARA_GLK(glk), argv[1], argc - 1, argv + 1, &error) ) { - g_printerr("Error starting Glk library: %s\n", error->message); - return 1; - } + if( !chimara_glk_run(CHIMARA_GLK(glk), argv[1], argc - 1, argv + 1, &error) ) + g_error("Error starting Glk library: %s\n", error->message); gdk_threads_enter(); gtk_main(); @@ -105,6 +108,7 @@ main(int argc, char *argv[]) chimara_glk_stop(CHIMARA_GLK(glk)); chimara_glk_wait(CHIMARA_GLK(glk)); + g_object_unref(glk); return 0; }