scrcpy-mask/src/components/Header.vue

74 lines
1.7 KiB
Vue
Raw Normal View History

2024-04-13 09:53:41 +08:00
<script setup lang="ts">
import { NButtonGroup, NButton, NIcon } from "naive-ui";
import { Close } from "@vicons/ionicons5";
import { Maximize16Regular, Subtract16Regular } from "@vicons/fluent";
import { getCurrent } from "@tauri-apps/api/window";
async function maximizeOrRestore() {
const appWindow = getCurrent();
appWindow.isMaximized().then((maximized) => {
maximized ? appWindow.unmaximize() : appWindow.maximize();
});
}
</script>
<template>
2024-05-23 18:59:53 +08:00
<div class="header">
<div data-tauri-drag-region class="drag"></div>
2024-04-13 09:53:41 +08:00
<NButtonGroup>
2024-04-14 17:15:39 +08:00
<NButton quaternary :focusable="false" @click="getCurrent().minimize()">
2024-04-13 09:53:41 +08:00
<template #icon>
<NIcon><Subtract16Regular /></NIcon>
</template>
</NButton>
<NButton quaternary :focusable="false" @click="maximizeOrRestore">
<template #icon>
<NIcon><Maximize16Regular /></NIcon>
</template>
</NButton>
<NButton
quaternary
:focusable="false"
class="close"
2024-04-13 10:05:53 +08:00
@click="getCurrent().close()"
2024-04-13 09:53:41 +08:00
>
<template #icon>
<NIcon><Close /></NIcon>
</template>
</NButton>
</NButtonGroup>
</div>
</template>
<style scoped lang="scss">
.header {
background-color: var(--bg-color);
color: var(--light-color);
grid-area: header;
display: flex;
justify-content: end;
align-items: center;
border-radius: 0 10px 0 0;
2024-05-24 11:31:21 +08:00
user-select: none;
2024-04-13 09:53:41 +08:00
2024-05-23 18:59:53 +08:00
.n-button-group{
flex-shrink: 0;
}
.drag{
flex-grow: 1;
height: 100%;
}
2024-04-13 09:53:41 +08:00
.close {
border-radius: 0 10px 0 0;
&:hover {
background-color: var(--red-color);
}
&:active {
background-color: var(--red-pressed-color);
}
}
}
</style>