Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ================================================== //
- // @name "Spinning Disc Image Viewer (Jan 23, 2013)"
- // @author "eXtremeHunter"
- // ================================================== //
- window.DlgCode = 0x0001; // arrow keys for DUI
- var vinylImage = gdi.Image(fb.FoobarPath + "images\\vinyl.jpg");
- var margin = window.GetProperty("Margin", 50);
- var zoomStep = window.GetProperty("Zoom Step", 30);
- var angle = 0;
- var minSize = 20;
- function on_paint(gr) {
- gr.DrawImage(resizedVinylImage, vinylX, vinylY, vinylW, vinylH, 0, 0, resizedVinylImage.Width, resizedVinylImage.Height, angle);
- }
- function on_mouse_wheel(step) {
- if (utils.IsKeyPressed(16)) {
- if (step == -1 && vinylW <= minSize) return;
- var s = step * zoomStep;
- margin = margin -= s;
- window.SetProperty("Margin", margin);
- on_size();
- window.Repaint();
- }
- }
- function on_key_down(vkey) {
- if (vkey == 38) on_mouse_wheel(1) //UP ARROW
- if (vkey == 40) on_mouse_wheel(-1); //DOWN ARROW
- }
- function on_size() {
- ww = window.Width;
- wh = window.Height;
- vinylW = Math.max(minSize, ww - margin);
- vinylH = Math.max(minSize, wh - margin);
- if (vinylH < vinylW) vinylW = vinylH;
- else if (vinylW < vinylH) vinylH = vinylW;
- vinylX = ww / 2 - vinylW / 2;
- vinylY = wh / 2 - vinylH / 2;
- resizedVinylImage = vinylImage.resize(vinylW, vinylH);
- }
- var rotationInterval = 50;
- var rotationTimer;
- var rotationTimerStarted = false;
- (function onRotationTimer() {
- if (!rotationTimerStarted) {
- rotationTimer = window.SetInterval(function () {
- if (angle >= 360) angle = 0;
- angle += 10;
- (vinylW >= ww || vinylH >= wh) ? window.Repaint() : window.RepaintRect(vinylX, vinylY, vinylW, vinylH);
- }, rotationInterval);
- rotationTimerStarted = true;
- }
- })();
- function stopRotationTimer() {
- window.ClearInterval(rotationTimer);
- rotationTimerStarted = false;
- }
- function on_playback_stop(reason) {
- if (reason != 2) {
- stopRotationTimer();
- }
- }
- function on_playback_pause(state) {
- state ? stopRotationTimer() : onRotationTimer();
- }
- function on_playback_new_track() {
- onRotationTimer();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement