From 16f270467fc45d28bbc61741caf84fbeb094ebfe Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 19 Nov 2009 20:34:45 +0000 Subject: [PATCH] (svn r18192) -Codechange: make the music window RTL aware --- bin/data/openttdd.grf | Bin 460577 -> 460668 bytes bin/data/openttdw.grf | Bin 460774 -> 460865 bytes bin/data/orig_dos.obg | 2 +- bin/data/orig_dos_de.obg | 2 +- bin/data/orig_win.obg | 2 +- src/music_gui.cpp | 14 +++++++++++++- src/table/sprites.h | 3 ++- 7 files changed, 18 insertions(+), 5 deletions(-) diff --git a/bin/data/openttdd.grf b/bin/data/openttdd.grf index ceb965391b8687ad8d1bb22689c981038d0a40fe..71c217dc7530807a43679c1ff560a4ba0a579d43 100644 GIT binary patch delta 135 zcmZ43C-bLIhJ}UUe`zC2D+^;Q3sWl#b1MtWRuxt3x7&v+P7+8Q% zO^QK|L4`qw!HmI)A%G!)A&;Sop@pG`VG=_V&-LpqT-Sl1jpG3u%k}FWY!^6yR2Rzu kE+Eyzw1Edm^)W2q>yVpavBB>^!iBsC72BU=voXy90G#qLS^xk5 delta 44 zcmV+{0Mq}$kR0ZZ90UXa|8#)_g#-bG1OkNw1BCGetWidget(MW_PREV)->widget_data = _dynlang.text_dir == TD_RTL ? SPR_IMG_SKIP_TO_NEXT : SPR_IMG_SKIP_TO_PREV; break; + case MW_NEXT: this->GetWidget(MW_NEXT)->widget_data = _dynlang.text_dir == TD_RTL ? SPR_IMG_SKIP_TO_PREV : SPR_IMG_SKIP_TO_NEXT; break; + case MW_PLAY: this->GetWidget(MW_PLAY)->widget_data = _dynlang.text_dir == TD_RTL ? SPR_IMG_PLAY_MUSIC_RTL : SPR_IMG_PLAY_MUSIC; break; } } @@ -543,7 +549,12 @@ struct MusicWindow : public Window { DrawString(r.left, r.right, r.bottom - FONT_HEIGHT_SMALL, STR_MUSIC_MIN_MAX_RULER, TC_FROMSTRING, SA_CENTER); y = (r.top + r.bottom - slider_height) / 2; byte volume = (widget == MW_MUSIC_VOL) ? msf.music_vol : msf.effect_vol; - int x = r.left + (volume * (r.right - r.left) / 127); + int x = (volume * (r.right - r.left) / 127); + if (_dynlang.text_dir == TD_RTL) { + x = r.right - x; + } else { + x += r.left; + } DrawFrameRect(x, y, x + slider_width, y + slider_height, COLOUR_GREY, FR_NONE); } break; } @@ -591,6 +602,7 @@ struct MusicWindow : public Window { byte *vol = (widget == MW_MUSIC_VOL) ? &msf.music_vol : &msf.effect_vol; byte new_vol = x * 127 / this->GetWidget(widget)->current_x; + if (_dynlang.text_dir == TD_RTL) new_vol = 127 - new_vol; if (new_vol != *vol) { *vol = new_vol; if (widget == MW_MUSIC_VOL) MusicVolumeChanged(new_vol); diff --git a/src/table/sprites.h b/src/table/sprites.h index 4ac86fc9c4..3ffe4d1457 100644 --- a/src/table/sprites.h +++ b/src/table/sprites.h @@ -56,7 +56,7 @@ enum Sprites { /* Extra graphic spritenumbers */ SPR_OPENTTD_BASE = 4896, - OPENTTD_SPRITE_COUNT = 150, + OPENTTD_SPRITE_COUNT = 151, /* Halftile-selection sprites */ SPR_HALFTILE_SELECTION_FLAT = SPR_OPENTTD_BASE, @@ -71,6 +71,7 @@ enum Sprites { SPR_WARNING_SIGN = SPR_OPENTTD_BASE + 43, // warning sign (shown if there are any newgrf errors) SPR_WINDOW_RESIZE_RIGHT= SPR_OPENTTD_BASE + 44, // resize icon to the right SPR_WINDOW_RESIZE_LEFT = SPR_OPENTTD_BASE + 149, // resize icon to the left + SPR_IMG_PLAY_MUSIC_RTL = SPR_OPENTTD_BASE + 150, // play music button, but then for RTL users /* Arrow icons pointing in all 4 directions */ SPR_ARROW_DOWN = SPR_OPENTTD_BASE + 45, SPR_ARROW_UP = SPR_OPENTTD_BASE + 46,