From 5ffe5db1e9eddd155a7bf0763ff331dd3767ab66 Mon Sep 17 00:00:00 2001 From: Vadim Lopatin Date: Tue, 11 Oct 2016 11:04:16 +0300 Subject: [PATCH] implement feature for issue #294 - ProgressBarWidget --- src/dlangui/graphics/resources.d | 11 +++++++++-- src/dlangui/widgets/progressbar.d | 2 +- views/res/progress_bar_background_frame.9.png | Bin 0 -> 246 bytes views/res/theme_default.xml | 11 ++++++----- views/standard_resources.list | 1 + 5 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 views/res/progress_bar_background_frame.9.png diff --git a/src/dlangui/graphics/resources.d b/src/dlangui/graphics/resources.d index a7a18310..04cafa8a 100644 --- a/src/dlangui/graphics/resources.d +++ b/src/dlangui/graphics/resources.d @@ -791,8 +791,15 @@ class ImageDrawable : Drawable { for (int xx = xx0; xx < rc.right; xx += imgdx) { Rect dst = Rect(xx, yy, xx + imgdx, yy + imgdy); Rect src = Rect(0, 0, imgdx, imgdy); - if (dst.intersects(rc)) - buf.drawFragment(dst.left, dst.top, _image.get, src); + if (dst.intersects(rc)) { + Rect sr = src; + if (dst.right > rc.right) + sr.right -= dst.right - rc.right; + if (dst.bottom > rc.bottom) + sr.bottom -= dst.bottom - rc.bottom; + if (!sr.empty) + buf.drawFragment(dst.left, dst.top, _image.get, sr); + } } } } else { diff --git a/src/dlangui/widgets/progressbar.d b/src/dlangui/widgets/progressbar.d index d0a9a0b4..d1b9ff29 100644 --- a/src/dlangui/widgets/progressbar.d +++ b/src/dlangui/widgets/progressbar.d @@ -186,7 +186,7 @@ class ProgressBarWidget : AbstractProgressBar { int w = animDrawable.width; _animationPhase %= w * 1000; animDrawable.drawTo(buf, rc, 0, cast(int)(_animationPhase * _animationSpeedPixelsPerSecond / 1000), 0); - Log.d("progress animation draw ", _animationPhase, " rc=", rc); + //Log.d("progress animation draw ", _animationPhase, " rc=", rc); } } } diff --git a/views/res/progress_bar_background_frame.9.png b/views/res/progress_bar_background_frame.9.png new file mode 100644 index 0000000000000000000000000000000000000000..7c28adf8b43b89b4427e1a2e25c703634c144948 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~e!3HF=pW8M9DYhhUcNd0LAgE}ujsqydS>O>_ z%)r1c48n{Iv*t(u1=&kHeO=ifaB;I+sp=dyvIGjrW`;zRIOpf)rskCZxeN@>MX8A; zsVNHOnI#zt?w-B@DSD~wK=CL~7sn8d^Jgaoavd<>a2CEPx_61(rN50=iG}URH`PPLsl-1L2=f$IU-SsY8`EGKPGGEVeQ1!pW0q(!)i+9WaWoA@R>YF1m gZI;M1& literal 0 HcmV?d00001 diff --git a/views/res/theme_default.xml b/views/res/theme_default.xml index 2a2d7d0d..7385825e 100644 --- a/views/res/theme_default.xml +++ b/views/res/theme_default.xml @@ -507,13 +507,14 @@ diff --git a/views/standard_resources.list b/views/standard_resources.list index 9b3d4676..db71a0cc 100644 --- a/views/standard_resources.list +++ b/views/standard_resources.list @@ -56,6 +56,7 @@ res/group_box_frame_up_left_dark.9.png res/group_box_frame_up_right_dark.9.png res/slider_background_dark.9.png res/progress_bar_gauge_animation.png +res/progress_bar_background_frame.9.png res/i18n/std_en.ini res/i18n/std_ru.ini res/list_item_background.xml