* 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
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_object_ref(glk);
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");
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[])
{
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);
- 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();
chimara_glk_stop(CHIMARA_GLK(glk));
chimara_glk_wait(CHIMARA_GLK(glk));
+ g_object_unref(glk);
return 0;
}