summaryrefslogtreecommitdiff
path: root/src/client/app/desktop
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-05-29 23:13:39 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-05-29 23:13:39 +0900
commitae9bfd69b030cef7e90befeb748f7897ef89bcbd (patch)
treed08252d43533db67ec6bbe932adb67f3e4f82e44 /src/client/app/desktop
parentFix (diff)
downloadmisskey-ae9bfd69b030cef7e90befeb748f7897ef89bcbd.tar.gz
misskey-ae9bfd69b030cef7e90befeb748f7897ef89bcbd.tar.bz2
misskey-ae9bfd69b030cef7e90befeb748f7897ef89bcbd.zip
Add analog clock widget
Diffstat (limited to 'src/client/app/desktop')
-rw-r--r--src/client/app/desktop/views/components/analog-clock.vue120
-rw-r--r--src/client/app/desktop/views/components/home.vue1
-rw-r--r--src/client/app/desktop/views/components/index.ts2
-rw-r--r--src/client/app/desktop/views/components/ui.header.clock.vue2
4 files changed, 2 insertions, 123 deletions
diff --git a/src/client/app/desktop/views/components/analog-clock.vue b/src/client/app/desktop/views/components/analog-clock.vue
deleted file mode 100644
index 365a8cdaf5..0000000000
--- a/src/client/app/desktop/views/components/analog-clock.vue
+++ /dev/null
@@ -1,120 +0,0 @@
-<template>
-<svg class="mk-analog-clock" viewBox="0 0 10 10" preserveAspectRatio="none">
- <line v-for="angle, i in graduations"
- :x1="5 + (Math.sin(angle) * (5 - graduationsPadding))"
- :y1="5 - (Math.cos(angle) * (5 - graduationsPadding))"
- :x2="5 + (Math.sin(angle) * ((5 - graduationsPadding) - (i % 5 == 0 ? longGraduationLength : shortGraduationLength)))"
- :y2="5 - (Math.cos(angle) * ((5 - graduationsPadding) - (i % 5 == 0 ? longGraduationLength : shortGraduationLength)))"
- :stroke="i % 5 == 0 ? longGraduationColor : shortGraduationColor"
- stroke-width="0.05"/>
-
- <line
- :x1="5 - (Math.sin(sAngle) * (sHandLengthRatio * handsTailLength))"
- :y1="5 + (Math.cos(sAngle) * (sHandLengthRatio * handsTailLength))"
- :x2="5 + (Math.sin(sAngle) * ((sHandLengthRatio * 5) - handsPadding))"
- :y2="5 - (Math.cos(sAngle) * ((sHandLengthRatio * 5) - handsPadding))"
- :stroke="sHandColor"
- stroke-width="0.05"/>
- <line
- :x1="5 - (Math.sin(mAngle) * (mHandLengthRatio * handsTailLength))"
- :y1="5 + (Math.cos(mAngle) * (mHandLengthRatio * handsTailLength))"
- :x2="5 + (Math.sin(mAngle) * ((mHandLengthRatio * 5) - handsPadding))"
- :y2="5 - (Math.cos(mAngle) * ((mHandLengthRatio * 5) - handsPadding))"
- :stroke="mHandColor"
- stroke-width="0.1"/>
- <line
- :x1="5 - (Math.sin(hAngle) * (hHandLengthRatio * handsTailLength))"
- :y1="5 + (Math.cos(hAngle) * (hHandLengthRatio * handsTailLength))"
- :x2="5 + (Math.sin(hAngle) * ((hHandLengthRatio * 5) - handsPadding))"
- :y2="5 - (Math.cos(hAngle) * ((hHandLengthRatio * 5) - handsPadding))"
- :stroke="hHandColor"
- stroke-width="0.1"/>
-</svg>
-</template>
-
-<script lang="ts">
-import Vue from 'vue';
-import { themeColor } from '../../../config';
-
-export default Vue.extend({
- data() {
- return {
- now: new Date(),
- clock: null,
-
- graduationsPadding: 0.5,
- longGraduationLength: 0.3,
- shortGraduationLength: 0.15,
- handsPadding: 1,
- handsTailLength: 0.7,
- hHandLengthRatio: 0.75,
- mHandLengthRatio: 1,
- sHandLengthRatio: 1
- };
- },
- computed: {
- longGraduationColor(): string {
- return 'rgba(255, 255, 255, 0.3)';
- },
- shortGraduationColor(): string {
- return 'rgba(255, 255, 255, 0.2)';
- },
- sHandColor(): string {
- return 'rgba(255, 255, 255, 0.5)';
- },
- mHandColor(): string {
- return '#fff';
- },
- hHandColor(): string {
- return themeColor;
- },
-
- s(): number {
- return this.now.getSeconds();
- },
- m(): number {
- return this.now.getMinutes();
- },
- h(): number {
- return this.now.getHours();
- },
- hAngle(): number {
- return Math.PI * (this.h % 12 + this.m / 60) / 6;
- },
- mAngle(): number {
- return Math.PI * (this.m + this.s / 60) / 30;
- },
- sAngle(): number {
- return Math.PI * this.s / 30;
- },
-
- graduations(): any {
- const angles = [];
- for (let i = 0; i < 60; i++) {
- const angle = Math.PI * i / 30;
- angles.push(angle);
- }
-
- return angles;
- }
- },
- mounted() {
- this.clock = setInterval(this.tick, 1000);
- },
- beforeDestroy() {
- clearInterval(this.clock);
- },
- methods: {
- tick() {
- this.now = new Date();
- }
- }
-});
-</script>
-
-<style lang="stylus" scoped>
-.mk-analog-clock
- display block
- width 256px
- height 256px
-</style>
diff --git a/src/client/app/desktop/views/components/home.vue b/src/client/app/desktop/views/components/home.vue
index f51fed7454..9f6cf9614a 100644
--- a/src/client/app/desktop/views/components/home.vue
+++ b/src/client/app/desktop/views/components/home.vue
@@ -7,6 +7,7 @@
<p>%i18n:@add-widget%</p>
<select v-model="widgetAdderSelected">
<option value="profile">%i18n:common.widgets.profile%</option>
+ <option value="analog-clock">%i18n:common.widgets.analog-clock%</option>
<option value="calendar">%i18n:common.widgets.calendar%</option>
<option value="timemachine">%i18n:common.widgets.timemachine%</option>
<option value="activity">%i18n:common.widgets.activity%</option>
diff --git a/src/client/app/desktop/views/components/index.ts b/src/client/app/desktop/views/components/index.ts
index f58d0706df..7b7a38afa2 100644
--- a/src/client/app/desktop/views/components/index.ts
+++ b/src/client/app/desktop/views/components/index.ts
@@ -9,7 +9,6 @@ import subNoteContent from './sub-note-content.vue';
import window from './window.vue';
import noteFormWindow from './post-form-window.vue';
import renoteFormWindow from './renote-form-window.vue';
-import analogClock from './analog-clock.vue';
import ellipsisIcon from './ellipsis-icon.vue';
import mediaImage from './media-image.vue';
import mediaImageDialog from './media-image-dialog.vue';
@@ -40,7 +39,6 @@ Vue.component('mk-sub-note-content', subNoteContent);
Vue.component('mk-window', window);
Vue.component('mk-post-form-window', noteFormWindow);
Vue.component('mk-renote-form-window', renoteFormWindow);
-Vue.component('mk-analog-clock', analogClock);
Vue.component('mk-ellipsis-icon', ellipsisIcon);
Vue.component('mk-media-image', mediaImage);
Vue.component('mk-media-image-dialog', mediaImageDialog);
diff --git a/src/client/app/desktop/views/components/ui.header.clock.vue b/src/client/app/desktop/views/components/ui.header.clock.vue
index cd23a67506..1c3f12f2f2 100644
--- a/src/client/app/desktop/views/components/ui.header.clock.vue
+++ b/src/client/app/desktop/views/components/ui.header.clock.vue
@@ -8,7 +8,7 @@
</time>
</div>
<div class="content">
- <mk-analog-clock/>
+ <mk-analog-clock :dark="true"/>
</div>
</div>
</template>