From: Philip Chimento Date: Sat, 16 Jul 2011 21:58:50 +0000 (+0200) Subject: Merge branch 'master' into browser X-Git-Url: https://git.stderr.nl/gitweb?a=commitdiff_plain;h=6fd0347f330cb24ef6145662023053a1c0f81a64;hp=-c;p=projects%2Fchimara%2Fchimara.git Merge branch 'master' into browser --- 6fd0347f330cb24ef6145662023053a1c0f81a64 diff --combined configure.ac index 1ae23b3,fa284e1..24cd3f8 --- a/configure.ac +++ b/configure.ac @@@ -85,6 -85,18 +85,6 @@@ AC_ARG_ENABLE([iliad] [enable_iliad=no]) AM_CONDITIONAL(TARGET_ILIAD, $TEST "x$enable_iliad" = xyes) -### BUILD WITHOUT RECENT FILES MANAGER ######################################### -# (to work around a bug on OS X) -AC_ARG_ENABLE([recent], - [AS_HELP_STRING([--disable-recent], - [Omit recent files menu (to work around a bug on OS X])], - [], - [enable_recent=yes]) -AS_IF([$TEST "x$enable_recent" = "xyes"], - [OPEN_RECENT_MENU_ITEM=""], - [OPEN_RECENT_MENU_ITEM=""]) -AC_SUBST(OPEN_RECENT_MENU_ITEM) - ### RPM CONFIGURATION ########################################################## # --enable-rpm requires rpm and rpmbuild AC_PATH_PROG([RPMBUILD], [rpmbuild], [notfound]) @@@ -121,6 -133,14 +121,14 @@@ PKG_CHECK_MODULES([CHIMARA], ]) CHIMARA_LIBS="$CHIMARA_LIBS -lm" AC_SUBST(CHIMARA_LIBS) + # Libraries needed to build Chimara player + PKG_CHECK_MODULES([PLAYER], [ + glib-2.0 >= $GLIB_REQUIRED_VERSION + gtk+-2.0 >= $GTK_REQUIRED_VERSION + gmodule-2.0 + libgda-4.0 + libsoup-2.4 + ]) # Libraries needed to build test programs PKG_CHECK_MODULES([TEST], [ gtk+-2.0 >= $GTK_REQUIRED_VERSION @@@ -170,11 -190,13 +178,12 @@@ interpreters/glulxe/Makefil interpreters/git/Makefile tests/Makefile player/Makefile -player/chimara.menus docs/Makefile docs/reference/Makefile docs/reference/version.xml docs/reference/build-selector-table.pl po/Makefile.in + babel/Makefile ]) # Do it diff --combined libchimara/chimara-glk.c index 49ef33f,1a8b224..6e1067e --- a/libchimara/chimara-glk.c +++ b/libchimara/chimara-glk.c @@@ -28,6 -28,27 +28,27 @@@ #define CHIMARA_GLK_MIN_WIDTH 0 #define CHIMARA_GLK_MIN_HEIGHT 0 + /* Substitute functions for compiling on iLiad */ + + #if !GTK_CHECK_VERSION(2, 18, 0) + #define gtk_widget_get_allocation(w, a) \ + G_STMT_START { \ + (a)->x = (w)->allocation.x; \ + (a)->y = (w)->allocation.y; \ + (a)->width = (w)->allocation.width; \ + (a)->height = (w)->allocation.height; \ + } G_STMT_END + #define gtk_widget_set_allocation(w, a) \ + G_STMT_START { (w)->allocation = *(a); } G_STMT_END + #define gtk_widget_set_has_window(w, f) \ + G_STMT_START { \ + if(f) \ + GTK_WIDGET_UNSET_FLAGS((w), GTK_NO_WINDOW); \ + else \ + GTK_WIDGET_SET_FLAGS((w), GTK_NO_WINDOW); \ + } G_STMT_END + #endif /* GTK 2.18 */ + /** * SECTION:chimara-glk * @short_description: Widget which executes a Glk program @@@ -149,7 -170,7 +170,7 @@@ G_DEFINE_TYPE(ChimaraGlk, chimara_glk, static void chimara_glk_init(ChimaraGlk *self) { - GTK_WIDGET_SET_FLAGS(GTK_WIDGET(self), GTK_NO_WINDOW); + gtk_widget_set_has_window(GTK_WIDGET(self), FALSE); ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(self); @@@ -392,17 -413,18 +413,18 @@@ chimara_glk_size_request(GtkWidget *wid ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(widget); + guint border_width = gtk_container_get_border_width(GTK_CONTAINER(widget)); /* For now, just pass the size request on to the root Glk window */ if(priv->root_window) { request_recurse(priv->root_window->data, requisition, priv->spacing); - requisition->width += 2 * GTK_CONTAINER(widget)->border_width; - requisition->height += 2 * GTK_CONTAINER(widget)->border_width; + requisition->width += 2 * border_width; + requisition->height += 2 * border_width; } else { - requisition->width = CHIMARA_GLK_MIN_WIDTH + 2 * GTK_CONTAINER(widget)->border_width; - requisition->height = CHIMARA_GLK_MIN_HEIGHT + 2 * GTK_CONTAINER(widget)->border_width; + requisition->width = CHIMARA_GLK_MIN_WIDTH + 2 * border_width; + requisition->height = CHIMARA_GLK_MIN_HEIGHT + 2 * border_width; } } @@@ -522,8 -544,10 +544,10 @@@ allocate_recurse(winid_t win, GtkAlloca /* It says in the spec that when a text grid window is resized smaller, the bottom or right area is thrown away; when it is resized larger, the bottom or right area is filled with blanks. */ - glui32 newwidth = (glui32)(win->widget->allocation.width / win->unit_width); - glui32 newheight = (glui32)(win->widget->allocation.height / win->unit_height); + GtkAllocation widget_allocation; + gtk_widget_get_allocation(win->widget, &widget_allocation); + glui32 newwidth = (glui32)(widget_allocation.width / win->unit_width); + glui32 newheight = (glui32)(widget_allocation.height / win->unit_height); gint line; GtkTextBuffer *textbuffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(win->widget) ); GtkTextIter start, end; @@@ -598,14 -622,15 +622,15 @@@ chimara_glk_size_allocate(GtkWidget *wi ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(widget); - widget->allocation = *allocation; + gtk_widget_set_allocation(widget, allocation); if(priv->root_window) { GtkAllocation child; - child.x = allocation->x + GTK_CONTAINER(widget)->border_width; - child.y = allocation->y + GTK_CONTAINER(widget)->border_width; - child.width = CLAMP(allocation->width - 2 * GTK_CONTAINER(widget)->border_width, 0, allocation->width); - child.height = CLAMP(allocation->height - 2 * GTK_CONTAINER(widget)->border_width, 0, allocation->height); + guint border_width = gtk_container_get_border_width(GTK_CONTAINER(widget)); + child.x = allocation->x + border_width; + child.y = allocation->y + border_width; + child.width = CLAMP(allocation->width - 2 * border_width, 0, allocation->width); + child.height = CLAMP(allocation->height - 2 * border_width, 0, allocation->height); winid_t arrange = allocate_recurse(priv->root_window->data, &child, priv->spacing); /* arrange points to a window that contains all text grid and graphics @@@ -1477,17 -1502,17 +1502,17 @@@ chimara_glk_get_tag(ChimaraGlk *glk, Ch /** * chimara_glk_get_tag_names: - * @glk: a #ChimaraGlk widget * @num_tags: Return location for the number of tag names retrieved. * - * Retrieves the possible tag names to use in chimara_glk_get_tag(). + * Class method. Retrieves the possible tag names to use in + * chimara_glk_get_tag(). * * Returns: (transfer none) (array length=num_tags) (element-type utf8): * Array of strings containing the tag names. This array is owned by Chimara, * do not free it. */ const gchar ** -chimara_glk_get_tag_names(ChimaraGlk *glk, unsigned int *num_tags) +chimara_glk_get_tag_names(unsigned int *num_tags) { g_return_val_if_fail(num_tags != NULL, NULL); diff --combined libchimara/chimara-if.c index 714eaef,3879a12..9b5d629 --- a/libchimara/chimara-if.c +++ b/libchimara/chimara-if.c @@@ -10,6 -10,10 +10,10 @@@ #include "chimara-marshallers.h" #include "init.h" + #ifndef PLUGINDIR + #define PLUGINDIR "." + #endif + /** * SECTION:chimara-if * @short_description: Widget which plays an interactive fiction game @@@ -570,7 -574,7 +574,7 @@@ chimara_if_get_preferred_interpreter(Ch * case @error is set. */ gboolean -chimara_if_run_game(ChimaraIF *self, gchar *gamefile, GError **error) +chimara_if_run_game(ChimaraIF *self, const char *gamefile, GError **error) { g_return_val_if_fail(self && CHIMARA_IS_IF(self), FALSE); g_return_val_if_fail(gamefile, FALSE); @@@ -675,7 -679,7 +679,7 @@@ } /* Game file and external blorb file */ - args = g_slist_prepend(args, gamefile); + args = g_slist_prepend(args, (gpointer)gamefile); if(priv->graphics_file && (interpreter == CHIMARA_IF_INTERPRETER_FROTZ || interpreter == CHIMARA_IF_INTERPRETER_NITFOL) && g_file_test(priv->graphics_file, G_FILE_TEST_EXISTS)) { diff --combined player/Makefile.am index 3964d25,588f183..f6379d6 --- a/player/Makefile.am +++ b/player/Makefile.am @@@ -13,22 -13,16 +13,22 @@@ bin_PROGRAMS = chimara_ilia else -dist_pkgdata_DATA = chimara.ui chimara.menus style.css +dist_pkgdata_DATA = chimara.ui browser.menus player.menus style.css bin_PROGRAMS = chimara -chimara_SOURCES = main.c callbacks.c preferences.c preferences.h error.c error.h +chimara_SOURCES = main.c \ + preferences.c preferences.h \ + error.c error.h \ + player.c player.h \ + app.c app.h \ + browser.c browser.h \ + util.c util.h chimara_CPPFLAGS = $(AM_CPPFLAGS) \ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \ -DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\" - chimara_CFLAGS = @TEST_CFLAGS@ $(AM_CFLAGS) - chimara_LDADD = @TEST_LIBS@ $(top_builddir)/libchimara/libchimara.la + chimara_CFLAGS = @PLAYER_CFLAGS@ $(AM_CFLAGS) + chimara_LDADD = @PLAYER_LIBS@ $(top_builddir)/libchimara/libchimara.la gsettings_SCHEMAS = org.chimara-if.gschema.xml @GSETTINGS_RULES@