mirror of
https://github.com/cazfi/meta-games.git
synced 2026-09-12 03:49:31 +02:00
freeciv: Update 2.5 version to 2.5.0-RC1
Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
This commit is contained in:
@@ -1,132 +0,0 @@
|
||||
diff -Nurd -X.diff_ignore freeciv/client/gui-gtk-3.0/gui_main.c freeciv/client/gui-gtk-3.0/gui_main.c
|
||||
--- freeciv/client/gui-gtk-3.0/gui_main.c 2014-09-16 23:53:39.830014392 +0300
|
||||
+++ freeciv/client/gui-gtk-3.0/gui_main.c 2014-11-23 01:32:49.707591376 +0200
|
||||
@@ -2218,3 +2218,31 @@
|
||||
{
|
||||
gui_gtk3_allied_chat_only = gtk_toggle_button_get_active(button);
|
||||
}
|
||||
+
|
||||
+/**************************************************************************
|
||||
+ Return width of the default screen
|
||||
+**************************************************************************/
|
||||
+int screen_width(void)
|
||||
+{
|
||||
+ GdkScreen *screen = gdk_screen_get_default();
|
||||
+
|
||||
+ if (screen == NULL) {
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ return gdk_screen_get_width(screen);
|
||||
+}
|
||||
+
|
||||
+/**************************************************************************
|
||||
+ Return height of the default screen
|
||||
+**************************************************************************/
|
||||
+int screen_height(void)
|
||||
+{
|
||||
+ GdkScreen *screen = gdk_screen_get_default();
|
||||
+
|
||||
+ if (screen == NULL) {
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ return gdk_screen_get_height(screen);
|
||||
+}
|
||||
diff -Nurd -X.diff_ignore freeciv/client/gui-gtk-3.0/gui_main.h freeciv/client/gui-gtk-3.0/gui_main.h
|
||||
--- freeciv/client/gui-gtk-3.0/gui_main.h 2014-03-22 13:45:17.773688733 +0200
|
||||
+++ freeciv/client/gui-gtk-3.0/gui_main.h 2014-11-23 01:32:49.719591376 +0200
|
||||
@@ -75,4 +75,7 @@
|
||||
void quit_gtk_main(void);
|
||||
void refresh_chat_buttons(void);
|
||||
|
||||
+int screen_width(void);
|
||||
+int screen_height(void);
|
||||
+
|
||||
#endif /* FC__GUI_MAIN_H */
|
||||
diff -Nurd -X.diff_ignore freeciv/client/gui-gtk-3.0/pages.c freeciv/client/gui-gtk-3.0/pages.c
|
||||
--- freeciv/client/gui-gtk-3.0/pages.c 2014-08-28 20:47:59.041650258 +0300
|
||||
+++ freeciv/client/gui-gtk-3.0/pages.c 2014-11-23 02:28:43.771583967 +0200
|
||||
@@ -153,12 +153,16 @@
|
||||
/**************************************************************************
|
||||
This is called whenever the intro graphic needs a graphics refresh.
|
||||
**************************************************************************/
|
||||
-static gboolean intro_expose(GtkWidget *w, cairo_t *cr)
|
||||
+static gboolean intro_expose(GtkWidget *w, cairo_t *cr, gpointer *data)
|
||||
{
|
||||
static PangoLayout *layout;
|
||||
static int width, height;
|
||||
static bool left = FALSE;
|
||||
GtkAllocation allocation;
|
||||
+ struct sprite *intro = (struct sprite *)data;
|
||||
+
|
||||
+ cairo_set_source_surface(cr, intro->surface, 0, 0);
|
||||
+ cairo_paint(cr);
|
||||
|
||||
if (!layout) {
|
||||
char msgbuf[128];
|
||||
@@ -193,7 +197,7 @@
|
||||
pango_layout_get_pixel_size(layout, &width, &height);
|
||||
}
|
||||
gtk_widget_get_allocation(w, &allocation);
|
||||
-
|
||||
+
|
||||
cairo_set_source_rgb(cr, 0, 0, 0);
|
||||
cairo_move_to(cr, left ? 4 : allocation.width - width - 3,
|
||||
allocation.height - height - 3);
|
||||
@@ -223,8 +227,12 @@
|
||||
**************************************************************************/
|
||||
GtkWidget *create_main_page(void)
|
||||
{
|
||||
- GtkWidget *widget, *vbox, *frame, *image, *button, *table;
|
||||
+ GtkWidget *widget, *vbox, *frame, *darea, *button, *table;
|
||||
GtkSizeGroup *size;
|
||||
+ struct sprite *intro_in, *intro;
|
||||
+ int width, height;
|
||||
+ int sh;
|
||||
+ int space_needed;
|
||||
|
||||
size = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
|
||||
|
||||
@@ -239,10 +247,37 @@
|
||||
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_OUT);
|
||||
gtk_container_add(GTK_CONTAINER(vbox), frame);
|
||||
|
||||
- image = gtk_image_new_from_file(tileset_main_intro_filename(tileset));
|
||||
- g_signal_connect_after(image, "draw",
|
||||
- G_CALLBACK(intro_expose), NULL);
|
||||
- gtk_container_add(GTK_CONTAINER(frame), image);
|
||||
+ intro_in = load_gfxfile(tileset_main_intro_filename(tileset));
|
||||
+ get_sprite_dimensions(intro_in, &width, &height);
|
||||
+ sh = screen_height();
|
||||
+
|
||||
+ space_needed = 250;
|
||||
+#if IS_BETA_VERSION
|
||||
+ /* Beta notice takes extra space */
|
||||
+ space_needed += 50;
|
||||
+#endif
|
||||
+
|
||||
+ if (sh - height < space_needed) {
|
||||
+ float scale;
|
||||
+
|
||||
+ if (sh < (space_needed + 0.2 * height)) {
|
||||
+ /* Screen is simply too small, use minimum scale */
|
||||
+ scale = 0.2;
|
||||
+ } else {
|
||||
+ scale = (double)(sh - space_needed) / height;
|
||||
+ }
|
||||
+ height *= scale;
|
||||
+ width *= scale;
|
||||
+ intro = sprite_scale(intro_in, width, height);
|
||||
+ free_sprite(intro_in);
|
||||
+ } else {
|
||||
+ intro = intro_in;
|
||||
+ }
|
||||
+ darea = gtk_drawing_area_new();
|
||||
+ gtk_widget_set_size_request(darea, width, height);
|
||||
+ g_signal_connect(darea, "draw",
|
||||
+ G_CALLBACK(intro_expose), intro);
|
||||
+ gtk_container_add(GTK_CONTAINER(frame), darea);
|
||||
|
||||
#if IS_BETA_VERSION
|
||||
{
|
||||
@@ -8,12 +8,8 @@ DEPENDS += "curl gtk+3 xz"
|
||||
|
||||
EXTRA_OECONF += "--disable-mapimg"
|
||||
|
||||
SRC_URI[md5sum] = "ab652fd019b9ab8081a92016388fe0d0"
|
||||
SRC_URI[sha256sum] = "9fa7d78ada7ff675ac249ab347a888dad62e49dbe4e2fc02b40c65a5169900e2"
|
||||
|
||||
SRC_URI += "\
|
||||
file://IntroScreenDimensionsGtk3-2.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "18679f3600b438480ac53c86bcf3ea39"
|
||||
SRC_URI[sha256sum] = "11c9c63b746ff83067e0194be49f4075eef0fe099ea9b53053ebe8a96e6d8616"
|
||||
|
||||
PACKAGES += "${PN}-gtk3"
|
||||
|
||||
Reference in New Issue
Block a user