diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-05-29 23:13:39 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-05-29 23:13:39 +0900 |
| commit | ae9bfd69b030cef7e90befeb748f7897ef89bcbd (patch) | |
| tree | d08252d43533db67ec6bbe932adb67f3e4f82e44 /src/client/app/desktop | |
| parent | Fix (diff) | |
| download | misskey-ae9bfd69b030cef7e90befeb748f7897ef89bcbd.tar.gz misskey-ae9bfd69b030cef7e90befeb748f7897ef89bcbd.tar.bz2 misskey-ae9bfd69b030cef7e90befeb748f7897ef89bcbd.zip | |
Add analog clock widget
Diffstat (limited to 'src/client/app/desktop')
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> |