-
This commit is contained in:
31
gui.rkt
Normal file
31
gui.rkt
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
#lang racket
|
||||||
|
|
||||||
|
(require web-racket
|
||||||
|
racket/runtime-path
|
||||||
|
)
|
||||||
|
|
||||||
|
(provide
|
||||||
|
(all-from-out web-racket)
|
||||||
|
rktplayer%
|
||||||
|
)
|
||||||
|
|
||||||
|
(define-runtime-path rktplayer-start "rktplayer.html")
|
||||||
|
|
||||||
|
(define rktplayer%
|
||||||
|
(class ww-webview%
|
||||||
|
(inherit-field settings)
|
||||||
|
(super-new
|
||||||
|
[html-file rktplayer-start]
|
||||||
|
)
|
||||||
|
|
||||||
|
(define/override (html-loaded)
|
||||||
|
(super html-loaded)
|
||||||
|
)
|
||||||
|
|
||||||
|
(begin
|
||||||
|
(displayln "RktPlayer started")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
13
play.svg
Normal file
13
play.svg
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||||
|
<svg fill="#000000" height="800px" width="800px" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
viewBox="0 0 58.752 58.752" xml:space="preserve">
|
||||||
|
<g>
|
||||||
|
<path d="M52.524,23.925L12.507,0.824c-1.907-1.1-4.376-1.097-6.276,0C4.293,1.94,3.088,4.025,3.088,6.264v46.205
|
||||||
|
c0,2.24,1.204,4.325,3.131,5.435c0.953,0.555,2.042,0.848,3.149,0.848c1.104,0,2.192-0.292,3.141-0.843l40.017-23.103
|
||||||
|
c1.936-1.119,3.138-3.203,3.138-5.439C55.663,27.134,54.462,25.05,52.524,23.925z M49.524,29.612L9.504,52.716
|
||||||
|
c-0.082,0.047-0.18,0.052-0.279-0.005c-0.084-0.049-0.137-0.142-0.137-0.242V6.263c0-0.1,0.052-0.192,0.14-0.243
|
||||||
|
c0.042-0.025,0.09-0.038,0.139-0.038c0.051,0,0.099,0.013,0.142,0.038l40.01,23.098c0.089,0.052,0.145,0.147,0.145,0.249
|
||||||
|
C49.663,29.47,49.611,29.561,49.524,29.612z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 972 B |
35
rktplayer.html
Normal file
35
rktplayer.html
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" href="styles.css" />
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<title>RktPlayer - A music player</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="pane">
|
||||||
|
<div class="buttons">
|
||||||
|
<button id="prev" class="command"><img id="previous-img" src="previous.svg" /></button>
|
||||||
|
<button id="play" class="command"><img id="play-img" src="play.svg" /></button>
|
||||||
|
<button id="next" class="command"><img id="next-img" src="next.svg" /></button>
|
||||||
|
<span id="slider" class="h-slider"></span>
|
||||||
|
<span id="time" class="time">0:00</span>
|
||||||
|
<span id="totaltime" class="time">0:00</span>
|
||||||
|
<button id="repeat" class="command"><img id="repeat-img" src="repeat.svg" /></button>
|
||||||
|
<button id="volume" class="command"><img id="volume-img" src="repeat.svg" /></button>
|
||||||
|
</div>
|
||||||
|
<div class="left-panel">
|
||||||
|
<div class="music-library">
|
||||||
|
Library
|
||||||
|
</div>
|
||||||
|
<div class="album-art">
|
||||||
|
Album art
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="right-panel">
|
||||||
|
<div class="music-playing">
|
||||||
|
Music playing
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
14
rktplayer.rkt
Normal file
14
rktplayer.rkt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
#lang racket
|
||||||
|
|
||||||
|
(require "gui.rkt"
|
||||||
|
simple-ini/class
|
||||||
|
)
|
||||||
|
|
||||||
|
(define (run)
|
||||||
|
(let* ((ini (new ini% [file 'rktplayer]))
|
||||||
|
(settings (new ww-simple-ini% [ini ini] [section 'player]))
|
||||||
|
(window (new rktplayer% [settings settings]))
|
||||||
|
)
|
||||||
|
window)
|
||||||
|
)
|
||||||
|
|
||||||
41
styles.css
Normal file
41
styles.css
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
body {
|
||||||
|
font-family: Arial;
|
||||||
|
font-size: 11pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pane {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttons {
|
||||||
|
height: 40px;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.command {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.command img {
|
||||||
|
height: 32px;
|
||||||
|
width: 32px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.h-slider {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttons span.time {
|
||||||
|
width: 5em;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user