[gnome-mines] Fixed rough image rendering. https://bugzilla.gnome.org/show_bug.cgi?id=730056
- From: Robert Roth <robertroth src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-mines] Fixed rough image rendering. https://bugzilla.gnome.org/show_bug.cgi?id=730056
- Date: Tue, 1 Jul 2014 21:50:38 +0000 (UTC)
commit 9a887750fb286f8a55a0abf1f7072d9ff73bb032
Author: Robert Roth <robert roth off gmail com>
Date: Wed Jul 2 00:48:32 2014 +0300
Fixed rough image rendering.
https://bugzilla.gnome.org/show_bug.cgi?id=730056
Fixed rough image rendering by rescaling the SVG images on resize,
instead of rescaling the pixbuf rendered from the SVG at the initial size.
data/{1mine.svg => 1mines.svg} | 0
data/Makefile.am | 6 ++--
data/{bang.svg => exploded.svg} | 0
data/flag-symbolic.svg | 23 ++++++++--------
data/gnome-mines.css.in | 46 +--------------------------------
data/{flag-question.svg => maybe.svg} | 0
data/{warning.svg => overmine.svg} | 0
src/minefield-view.vala | 23 +++++++++++++++-
8 files changed, 38 insertions(+), 60 deletions(-)
---
diff --git a/data/1mine.svg b/data/1mines.svg
similarity index 100%
rename from data/1mine.svg
rename to data/1mines.svg
diff --git a/data/Makefile.am b/data/Makefile.am
index 3969212..7be8f41 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -6,10 +6,10 @@ gsettings_SCHEMAS = org.gnome.mines.gschema.xml
man_MANS = gnome-mines.6
pixmapdir = $(pkgdatadir)
-pixmap_DATA = mine.svg bang.svg warning.svg \
- 1mine.svg 2mines.svg 3mines.svg 4mines.svg \
+pixmap_DATA = mine.svg exploded.svg overmine.svg \
+ 1mines.svg 2mines.svg 3mines.svg 4mines.svg \
5mines.svg 6mines.svg 7mines.svg 8mines.svg \
- flag-symbolic.svg flag.svg flag-question.svg
+ flag-symbolic.svg flag.svg maybe.svg
gnome-mines.css: gnome-mines.css.in Makefile
$(AM_V_GEN) sed -e "s|\ pkgdatadir\@|$(pkgdatadir)|" $< > $@
diff --git a/data/bang.svg b/data/exploded.svg
similarity index 100%
rename from data/bang.svg
rename to data/exploded.svg
diff --git a/data/flag-symbolic.svg b/data/flag-symbolic.svg
index 8418ac5..4eca601 100644
--- a/data/flag-symbolic.svg
+++ b/data/flag-symbolic.svg
@@ -11,8 +11,8 @@
width="16"
height="16"
id="svg9373"
- inkscape:version="0.48.4 r9939"
- sodipodi:docname="flag-symbolic.svg">
+ inkscape:version="0.48+devel r"
+ sodipodi:docname="flag-symbolic-ltr.svg">
<metadata
id="metadata9418">
<rdf:RDF>
@@ -28,27 +28,28 @@
<defs
id="defs9416" />
<sodipodi:namedview
- pagecolor="#ffffff"
+ pagecolor="#666666"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
- inkscape:pageopacity="0"
+ inkscape:pageopacity="1"
inkscape:pageshadow="2"
- inkscape:window-width="1920"
- inkscape:window-height="1014"
+ inkscape:window-width="1052"
+ inkscape:window-height="537"
id="namedview9414"
showgrid="false"
inkscape:snap-nodes="true"
inkscape:snap-bbox="false"
inkscape:zoom="4"
- inkscape:cx="-7.077932"
+ inkscape:cx="-37.077932"
inkscape:cy="-2.8623575"
- inkscape:window-x="1280"
- inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="svg9373">
+ inkscape:window-x="331"
+ inkscape:window-y="409"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg9373"
+ showborder="false">
<inkscape:grid
type="xygrid"
id="grid9641"
diff --git a/data/gnome-mines.css.in b/data/gnome-mines.css.in
index 23a9c0b..9fbd361 100644
--- a/data/gnome-mines.css.in
+++ b/data/gnome-mines.css.in
@@ -18,6 +18,7 @@ Changes are applied instantly and globally, for the whole application.
font-weight: bold;
background-size: 60%;
background-position: 50%;
+ padding:0px;
background-repeat: no-repeat;
box-shadow:none;
border-width:2px;
@@ -45,55 +46,10 @@ Changes are applied instantly and globally, for the whole application.
background-color:#dededc;
}
-.flag {
- background-image:url('@pkgdatadir@/flag.svg');
-}
-
-.exploded {
- background-image:url('@pkgdatadir@/bang.svg');
-}
-
-.maybe {
- background-image:url('@pkgdatadir@/flag-question.svg');
-}
-
.mine {
- background-image:url('@pkgdatadir@/mine.svg');
background-color:#729fcf;
}
-.mines1 {
- background-image:url('@pkgdatadir@/1mine.svg');
-}
-
-.mines2 {
- background-image:url('@pkgdatadir@/2mines.svg');
-}
-
-.mines3 {
- background-image:url('@pkgdatadir@/3mines.svg');
-}
-
-.mines4 {
- background-image:url('@pkgdatadir@/4mines.svg');
-}
-
-.mines5 {
- background-image:url('@pkgdatadir@/5mines.svg');
-}
-
-.mines6 {
- background-image:url('@pkgdatadir@/6mines.svg');
-}
-
-.mines7 {
- background-image:url('@pkgdatadir@/7mines.svg');
-}
-
-.mines8 {
- background-image:url('@pkgdatadir@/8mines.svg');
-}
-
.cursor {
background-color:#e9b96e;
}
diff --git a/data/flag-question.svg b/data/maybe.svg
similarity index 100%
rename from data/flag-question.svg
rename to data/maybe.svg
diff --git a/data/warning.svg b/data/overmine.svg
similarity index 100%
rename from data/warning.svg
rename to data/overmine.svg
diff --git a/src/minefield-view.vala b/src/minefield-view.vala
index 989a3ba..e83bb9b 100644
--- a/src/minefield-view.vala
+++ b/src/minefield-view.vala
@@ -97,6 +97,11 @@ private class Tile : Gtk.Button
public signal void tile_mouse_over (int x, int y);
public signal void tile_pressed (int x, int y, Gdk.EventButton event);
public signal void tile_released (int x, int y, Gdk.EventButton event);
+ private static string[] IMAGE_CLASSES = {"mine", "flag", "maybe", "overmine",
+ "exploded", "1mines", "2mines",
+ "3mines", "4mines", "5mines",
+ "6mines", "7mines", "8mines"};
+ private Gtk.Image scaling_image;
public int row
{
@@ -111,13 +116,19 @@ private class Tile : Gtk.Button
{
_row = prow;
_column = pcol;
+ scaling_image = new Gtk.Image ();
can_focus = false;
add_class ("tile");
+ set_image (scaling_image);
enter_notify_event.connect ( (event) =>
{
tile_mouse_over (prow, pcol);
return false;
} );
+ size_allocate.connect ( (allocation) =>
+ {
+ scaling_image.set_pixel_size (allocation.height/3*2);
+ } );
button_press_event.connect ( (event) =>
{
tile_pressed (prow, pcol, event);
@@ -133,11 +144,19 @@ private class Tile : Gtk.Button
public void add_class (string style_class)
{
get_style_context ().add_class (style_class);
+ if (style_class in IMAGE_CLASSES) {
+ scaling_image.set_from_icon_name (style_class, Gtk.IconSize.DND);
+ scaling_image.set_pixel_size (get_allocated_height()/3*2);
+ }
}
public void remove_class (string style_class)
{
get_style_context ().remove_class (style_class);
+ if (style_class in IMAGE_CLASSES) {
+ scaling_image = new Gtk.Image ();
+ set_image (scaling_image);
+ }
}
}
@@ -429,7 +448,9 @@ public class MinefieldView : Gtk.Grid
mines[x,y].remove_class ("maybe");
mines[x,y].remove_class ("flag");
mines[x,y].add_class ("count");
- mines[x,y].add_class ("mines%u".printf (n));
+ if (n > 0) {
+ mines[x,y].add_class ("%umines".printf (n));
+ }
}
}
else
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]