classicy 0.5.4 → 0.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/dist/3c6dd90084fa516904c8.svg +0 -35
- package/dist/README.md +0 -211
- package/dist/SystemFolder/ControlPanels/AppManager/ClassicyAppManager.d.ts +0 -91
- package/dist/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerContext.d.ts +0 -11
- package/dist/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearance.d.ts +0 -111
- package/dist/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearanceManager.d.ts +0 -2
- package/dist/SystemFolder/ControlPanels/AppearanceManager/ClassicyColors.d.ts +0 -2
- package/dist/SystemFolder/ControlPanels/AppearanceManager/ClassicySize.d.ts +0 -4
- package/dist/SystemFolder/ControlPanels/ClassicyControlPanels.d.ts +0 -2
- package/dist/SystemFolder/ControlPanels/DateAndTimeManager/ClassicyDateAndTimeManager.d.ts +0 -4
- package/dist/SystemFolder/ControlPanels/SoundManager/ClassicySoundManager.d.ts +0 -3
- package/dist/SystemFolder/ControlPanels/SoundManager/ClassicySoundManagerContext.d.ts +0 -78
- package/dist/SystemFolder/Finder/Finder.d.ts +0 -2
- package/dist/SystemFolder/Finder/FinderContext.d.ts +0 -2
- package/dist/SystemFolder/QuickTime/MoviePlayer/MoviePlayer.d.ts +0 -15
- package/dist/SystemFolder/QuickTime/MoviePlayer/MoviePlayerContext.d.ts +0 -15
- package/dist/SystemFolder/QuickTime/PictureViewer/PictureViewer.d.ts +0 -12
- package/dist/SystemFolder/QuickTime/PictureViewer/PictureViewerContext.d.ts +0 -9
- package/dist/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindow.d.ts +0 -12
- package/dist/SystemFolder/SystemResources/App/ClassicyApp.d.ts +0 -13
- package/dist/SystemFolder/SystemResources/App/ClassicyAppUtils.d.ts +0 -20
- package/dist/SystemFolder/SystemResources/Boot/ClassicyBoot.d.ts +0 -3
- package/dist/SystemFolder/SystemResources/Button/ClassicyButton.d.ts +0 -12
- package/dist/SystemFolder/SystemResources/Checkbox/ClassicyCheckbox.d.ts +0 -12
- package/dist/SystemFolder/SystemResources/ContextualMenu/ClassicyContextualMenu.d.ts +0 -11
- package/dist/SystemFolder/SystemResources/ControlGroup/ClassicyControlGroup.d.ts +0 -9
- package/dist/SystemFolder/SystemResources/ControlLabel/ClassicyControlLabel.d.ts +0 -17
- package/dist/SystemFolder/SystemResources/DatePicker/ClassicyDatePicker.d.ts +0 -14
- package/dist/SystemFolder/SystemResources/DatePicker/ClassicyDatePickerUtils.d.ts +0 -2
- package/dist/SystemFolder/SystemResources/Desktop/ClassicyDesktop.d.ts +0 -8
- package/dist/SystemFolder/SystemResources/Desktop/ClassicyDesktopIcon.d.ts +0 -14
- package/dist/SystemFolder/SystemResources/Desktop/ClassicyDesktopIconContext.d.ts +0 -4
- package/dist/SystemFolder/SystemResources/Desktop/ClassicyDesktopManager.d.ts +0 -29
- package/dist/SystemFolder/SystemResources/Desktop/ClassicyDesktopWindowManagerContext.d.ts +0 -3
- package/dist/SystemFolder/SystemResources/Desktop/MenuBar/ClassicyDesktopMenuBar.d.ts +0 -4
- package/dist/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Sound/ClassicyDesktopMenuWidgetSound.d.ts +0 -8
- package/dist/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Time/ClassicyDesktopMenuWidgetTime.d.ts +0 -4
- package/dist/SystemFolder/SystemResources/Disclosure/ClassicyDisclosure.d.ts +0 -10
- package/dist/SystemFolder/SystemResources/File/ClassicyFileBrowser.d.ts +0 -12
- package/dist/SystemFolder/SystemResources/File/ClassicyFileBrowserUtils.d.ts +0 -6
- package/dist/SystemFolder/SystemResources/File/ClassicyFileBrowserViewIcons.d.ts +0 -11
- package/dist/SystemFolder/SystemResources/File/ClassicyFileBrowserViewTable.d.ts +0 -14
- package/dist/SystemFolder/SystemResources/File/ClassicyFileSystem.d.ts +0 -28
- package/dist/SystemFolder/SystemResources/File/ClassicyFileSystemModel.d.ts +0 -36
- package/dist/SystemFolder/SystemResources/File/DefaultClassicyFileSystem.d.ts +0 -93
- package/dist/SystemFolder/SystemResources/Icon/ClassicyIcon.d.ts +0 -14
- package/dist/SystemFolder/SystemResources/Input/ClassicyInput.d.ts +0 -15
- package/dist/SystemFolder/SystemResources/Menu/ClassicyMenu.d.ts +0 -29
- package/dist/SystemFolder/SystemResources/PopUpMenu/ClassicyPopUpMenu.d.ts +0 -18
- package/dist/SystemFolder/SystemResources/ProgressBar/ClassicyProgressBar.d.ts +0 -1
- package/dist/SystemFolder/SystemResources/QuickTime/QuickTimeMovieEmbed.d.ts +0 -16
- package/dist/SystemFolder/SystemResources/QuickTime/QuickTimeUtils.d.ts +0 -2
- package/dist/SystemFolder/SystemResources/RadioInput/ClassicyRadioInput.d.ts +0 -20
- package/dist/SystemFolder/SystemResources/RichTextEditor/ClassicyRichTextEditor.d.ts +0 -9
- package/dist/SystemFolder/SystemResources/Tabs/ClassicyTabs.d.ts +0 -11
- package/dist/SystemFolder/SystemResources/TextEditor/ClassicyTextEditor.d.ts +0 -1
- package/dist/SystemFolder/SystemResources/TimePicker/ClassicyTimePicker.d.ts +0 -15
- package/dist/SystemFolder/SystemResources/Window/ClassicyWindow.d.ts +0 -29
- package/dist/SystemFolder/SystemResources/Window/ClassicyWindowContext.d.ts +0 -18
- package/dist/assets/img/icons/control-panels/appearance-manager/app.png +0 -0
- package/dist/assets/img/icons/control-panels/appearance-manager/platinum.png +0 -0
- package/dist/assets/img/icons/control-panels/date-time-manager/date-time-manager.png +0 -0
- package/dist/assets/img/icons/control-panels/sound-manager/app.png +0 -0
- package/dist/assets/img/icons/control-panels/sound-manager/sound-33.png +0 -0
- package/dist/assets/img/icons/control-panels/sound-manager/sound-66.png +0 -0
- package/dist/assets/img/icons/control-panels/sound-manager/sound-off.png +0 -0
- package/dist/assets/img/icons/control-panels/sound-manager/sound-on.png +0 -0
- package/dist/assets/img/icons/system/apple.png +0 -0
- package/dist/assets/img/icons/system/drives/disk.png +0 -0
- package/dist/assets/img/icons/system/files/file.png +0 -0
- package/dist/assets/img/icons/system/folders/directory.png +0 -0
- package/dist/assets/img/icons/system/mac.png +0 -0
- package/dist/assets/img/icons/system/macos.png +0 -0
- package/dist/assets/img/icons/system/quicktime/cc.png +0 -0
- package/dist/assets/img/icons/system/quicktime/movie.png +0 -0
- package/dist/assets/img/icons/system/quicktime/player.png +0 -0
- package/dist/assets/img/wallpapers/azul_dark.png +0 -0
- package/dist/assets/img/wallpapers/azul_extra_light.png +0 -0
- package/dist/assets/img/wallpapers/azul_light.png +0 -0
- package/dist/assets/img/wallpapers/bondi.png +0 -0
- package/dist/assets/img/wallpapers/bondi_dark.png +0 -0
- package/dist/assets/img/wallpapers/bondi_extra_dark.png +0 -0
- package/dist/assets/img/wallpapers/bondi_light.png +0 -0
- package/dist/assets/img/wallpapers/bondi_medium.png +0 -0
- package/dist/assets/img/wallpapers/bossanova_bondi.png +0 -0
- package/dist/assets/img/wallpapers/bossanova_poppy.png +0 -0
- package/dist/assets/img/wallpapers/bossanova_poppy_2.png +0 -0
- package/dist/assets/img/wallpapers/bubbles_bondi.png +0 -0
- package/dist/assets/img/wallpapers/bubbles_poppy.png +0 -0
- package/dist/assets/img/wallpapers/candy_bar.png +0 -0
- package/dist/assets/img/wallpapers/candy_bar_azul.png +0 -0
- package/dist/assets/img/wallpapers/candy_bar_pistachio.png +0 -0
- package/dist/assets/img/wallpapers/candy_bar_sunny.png +0 -0
- package/dist/assets/img/wallpapers/default.png +0 -0
- package/dist/assets/img/wallpapers/diagonals_bondi.png +0 -0
- package/dist/assets/img/wallpapers/diagonals_bondi_dark.png +0 -0
- package/dist/assets/img/wallpapers/diagonals_poppy.png +0 -0
- package/dist/assets/img/wallpapers/flat_peanuts.png +0 -0
- package/dist/assets/img/wallpapers/flat_peanuts_poppy.png +0 -0
- package/dist/assets/img/wallpapers/french_blue_dark.png +0 -0
- package/dist/assets/img/wallpapers/french_blue_light.png +0 -0
- package/dist/assets/img/wallpapers/macos.png +0 -0
- package/dist/assets/img/wallpapers/peanuts_azul.png +0 -0
- package/dist/assets/img/wallpapers/peanuts_pistachio.png +0 -0
- package/dist/assets/img/wallpapers/pistachio_dark.png +0 -0
- package/dist/assets/img/wallpapers/pistachio_light.png +0 -0
- package/dist/assets/img/wallpapers/pistachio_medium.png +0 -0
- package/dist/assets/img/wallpapers/poppy.png +0 -0
- package/dist/assets/img/wallpapers/poppy_dark.png +0 -0
- package/dist/assets/img/wallpapers/poppy_light.png +0 -0
- package/dist/assets/img/wallpapers/poppy_medium.png +0 -0
- package/dist/assets/img/wallpapers/rio_azul.png +0 -0
- package/dist/assets/img/wallpapers/rio_pistachio.png +0 -0
- package/dist/assets/img/wallpapers/ripple_azul.png +0 -0
- package/dist/assets/img/wallpapers/ripple_bondi.png +0 -0
- package/dist/assets/img/wallpapers/ripple_poppy.png +0 -0
- package/dist/assets/img/wallpapers/sunny.png +0 -0
- package/dist/assets/img/wallpapers/sunny_dark.png +0 -0
- package/dist/assets/img/wallpapers/sunny_light.png +0 -0
- package/dist/assets/img/wallpapers/waves_azul.png +0 -0
- package/dist/assets/img/wallpapers/waves_bondi.png +0 -0
- package/dist/assets/img/wallpapers/waves_sunny.png +0 -0
- package/dist/assets/sounds/platinum/platinum.ac3 +0 -0
- package/dist/assets/sounds/platinum/platinum.json +0 -174
- package/dist/assets/sounds/platinum/platinum.m4a +0 -0
- package/dist/assets/sounds/platinum/platinum.mp3 +0 -0
- package/dist/assets/sounds/platinum/platinum.ogg +0 -0
- package/dist/e7dead02eb942a2c597f.svg +0 -49
- package/dist/index.d.ts +0 -57
- package/dist/index.js.LICENSE.txt +0 -75
- package/dist/package.json +0 -93
- package/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManager.ts +0 -327
- package/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerContext.tsx +0 -73
- package/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearance.ts +0 -165
- package/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearanceManager.tsx +0 -420
- package/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyColors.ts +0 -10
- package/src/SystemFolder/ControlPanels/AppearanceManager/ClassicySize.ts +0 -24
- package/src/SystemFolder/ControlPanels/AppearanceManager/styles/appearance.scss +0 -182
- package/src/SystemFolder/ControlPanels/AppearanceManager/styles/assets.scss +0 -13
- package/src/SystemFolder/ControlPanels/AppearanceManager/styles/fonts.scss +0 -90
- package/src/SystemFolder/ControlPanels/AppearanceManager/styles/scrollbars.scss +0 -296
- package/src/SystemFolder/ControlPanels/AppearanceManager/styles/themes.json +0 -1430
- package/src/SystemFolder/ControlPanels/ClassicyControlPanels.tsx +0 -16
- package/src/SystemFolder/ControlPanels/DateAndTimeManager/ClassicyDateAndTimeManager.tsx +0 -304
- package/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManager.scss +0 -18
- package/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManager.tsx +0 -159
- package/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManagerContext.tsx +0 -196
- package/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManagerLabels.json +0 -182
- package/src/SystemFolder/Finder/Finder.tsx +0 -232
- package/src/SystemFolder/Finder/FinderContext.tsx +0 -47
- package/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayer.tsx +0 -141
- package/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayerContext.tsx +0 -69
- package/src/SystemFolder/QuickTime/PictureViewer/PictureViewer.tsx +0 -130
- package/src/SystemFolder/QuickTime/PictureViewer/PictureViewerContext.tsx +0 -67
- package/src/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindow.scss +0 -10
- package/src/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindow.tsx +0 -56
- package/src/SystemFolder/SystemResources/App/ClassicyApp.tsx +0 -131
- package/src/SystemFolder/SystemResources/App/ClassicyAppUtils.tsx +0 -25
- package/src/SystemFolder/SystemResources/Boot/ClassicyBoot.scss +0 -9
- package/src/SystemFolder/SystemResources/Boot/ClassicyBoot.tsx +0 -11
- package/src/SystemFolder/SystemResources/Button/ClassicyButton.scss +0 -57
- package/src/SystemFolder/SystemResources/Button/ClassicyButton.tsx +0 -58
- package/src/SystemFolder/SystemResources/Checkbox/ClassicyCheckbox.scss +0 -90
- package/src/SystemFolder/SystemResources/Checkbox/ClassicyCheckbox.tsx +0 -58
- package/src/SystemFolder/SystemResources/ContextualMenu/ClassicyContextualMenu.scss +0 -11
- package/src/SystemFolder/SystemResources/ContextualMenu/ClassicyContextualMenu.tsx +0 -25
- package/src/SystemFolder/SystemResources/ControlGroup/ClassicyControlGroup.scss +0 -22
- package/src/SystemFolder/SystemResources/ControlGroup/ClassicyControlGroup.tsx +0 -28
- package/src/SystemFolder/SystemResources/ControlLabel/ClassicyControlLabel.scss +0 -28
- package/src/SystemFolder/SystemResources/ControlLabel/ClassicyControlLabel.tsx +0 -99
- package/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePicker.scss +0 -50
- package/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePicker.tsx +0 -191
- package/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePickerUtils.tsx +0 -22
- package/src/SystemFolder/SystemResources/Desktop/ClassicyDesktop.scss +0 -52
- package/src/SystemFolder/SystemResources/Desktop/ClassicyDesktop.tsx +0 -209
- package/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIcon.scss +0 -115
- package/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIcon.tsx +0 -185
- package/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIconContext.tsx +0 -178
- package/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopManager.tsx +0 -161
- package/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopWindowManagerContext.tsx +0 -211
- package/src/SystemFolder/SystemResources/Desktop/MenuBar/ClassicyDesktopMenuBar.scss +0 -76
- package/src/SystemFolder/SystemResources/Desktop/MenuBar/ClassicyDesktopMenuBar.tsx +0 -74
- package/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Sound/ClassicyDesktopMenuWidgetSound.scss +0 -16
- package/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Sound/ClassicyDesktopMenuWidgetSound.tsx +0 -60
- package/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Time/ClassicyDesktopMenuWidgetTime.scss +0 -27
- package/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Time/ClassicyDesktopMenuWidgetTime.tsx +0 -141
- package/src/SystemFolder/SystemResources/Disclosure/ClassicyDisclosure.scss +0 -88
- package/src/SystemFolder/SystemResources/Disclosure/ClassicyDisclosure.tsx +0 -88
- package/src/SystemFolder/SystemResources/File/ClassicyFileBrowser.tsx +0 -56
- package/src/SystemFolder/SystemResources/File/ClassicyFileBrowserUtils.ts +0 -47
- package/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewIcons.tsx +0 -90
- package/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewTable.scss +0 -92
- package/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewTable.tsx +0 -235
- package/src/SystemFolder/SystemResources/File/ClassicyFileSystem.ts +0 -338
- package/src/SystemFolder/SystemResources/File/ClassicyFileSystemModel.ts +0 -62
- package/src/SystemFolder/SystemResources/File/DefaultClassicyFileSystem.ts +0 -111
- package/src/SystemFolder/SystemResources/Icon/ClassicyIcon.scss +0 -119
- package/src/SystemFolder/SystemResources/Icon/ClassicyIcon.tsx +0 -115
- package/src/SystemFolder/SystemResources/Input/ClassicyInput.scss +0 -38
- package/src/SystemFolder/SystemResources/Input/ClassicyInput.tsx +0 -60
- package/src/SystemFolder/SystemResources/Menu/ClassicyMenu.scss +0 -187
- package/src/SystemFolder/SystemResources/Menu/ClassicyMenu.tsx +0 -127
- package/src/SystemFolder/SystemResources/PopUpMenu/ClassicyPopUpMenu.scss +0 -122
- package/src/SystemFolder/SystemResources/PopUpMenu/ClassicyPopUpMenu.tsx +0 -63
- package/src/SystemFolder/SystemResources/ProgressBar/ClassicyProgressBar.scss +0 -70
- package/src/SystemFolder/SystemResources/ProgressBar/ClassicyProgressBar.tsx +0 -29
- package/src/SystemFolder/SystemResources/QuickTime/QuickTimeMovieEmbed.scss +0 -217
- package/src/SystemFolder/SystemResources/QuickTime/QuickTimeMovieEmbed.tsx +0 -310
- package/src/SystemFolder/SystemResources/QuickTime/QuickTimeUtils.ts +0 -27
- package/src/SystemFolder/SystemResources/QuickTime/thumb-slider.svg +0 -1
- package/src/SystemFolder/SystemResources/QuickTime/volume-slider.svg +0 -8
- package/src/SystemFolder/SystemResources/RadioInput/ClassicyRadioInput.scss +0 -125
- package/src/SystemFolder/SystemResources/RadioInput/ClassicyRadioInput.tsx +0 -103
- package/src/SystemFolder/SystemResources/RichTextEditor/ClassicyRichTextEditor.scss +0 -52
- package/src/SystemFolder/SystemResources/RichTextEditor/ClassicyRichTextEditor.tsx +0 -52
- package/src/SystemFolder/SystemResources/Tabs/ClassicyTabs.scss +0 -59
- package/src/SystemFolder/SystemResources/Tabs/ClassicyTabs.tsx +0 -77
- package/src/SystemFolder/SystemResources/Tabs/tab.svg +0 -4
- package/src/SystemFolder/SystemResources/TextEditor/ClassicyTextEditor.scss +0 -18
- package/src/SystemFolder/SystemResources/TextEditor/ClassicyTextEditor.tsx +0 -14
- package/src/SystemFolder/SystemResources/TimePicker/ClassicyTimePicker.scss +0 -53
- package/src/SystemFolder/SystemResources/TimePicker/ClassicyTimePicker.tsx +0 -221
- package/src/SystemFolder/SystemResources/Window/ClassicyWindow.scss +0 -377
- package/src/SystemFolder/SystemResources/Window/ClassicyWindow.tsx +0 -535
- package/src/SystemFolder/SystemResources/Window/ClassicyWindowContext.ts +0 -19
- package/src/custom.d.ts +0 -90
- package/src/index.tsx +0 -57
- /package/{dist/index.js → index.js} +0 -0
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import {getAllThemes, getThemeVars} from '@/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearance'
|
|
2
|
-
import {useAppManager, useAppManagerDispatch} from '@/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerContext'
|
|
3
|
-
import {ClassicyControlPanels} from '@/SystemFolder/ControlPanels/ClassicyControlPanels'
|
|
4
|
-
import {Finder} from '@/SystemFolder/Finder/Finder'
|
|
5
|
-
import {getClassicyAboutWindow} from '@/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindow'
|
|
6
|
-
import {ClassicyContextualMenu} from '@/SystemFolder/SystemResources/ContextualMenu/ClassicyContextualMenu'
|
|
7
|
-
import './ClassicyDesktop.scss'
|
|
8
|
-
import {ClassicyDesktopIcon} from '@/SystemFolder/SystemResources/Desktop/ClassicyDesktopIcon'
|
|
9
|
-
import {ClassicyDesktopMenuBar} from '@/SystemFolder/SystemResources/Desktop/MenuBar/ClassicyDesktopMenuBar'
|
|
10
|
-
import {ClassicyMenuItem} from '@/SystemFolder/SystemResources/Menu/ClassicyMenu'
|
|
11
|
-
import classNames from 'classnames'
|
|
12
|
-
import macosIcon from 'img/icons/system/macos.png'
|
|
13
|
-
import React, {CSSProperties, useState} from 'react'
|
|
14
|
-
import '../../ControlPanels/AppearanceManager/styles/fonts.scss'
|
|
15
|
-
|
|
16
|
-
interface ClassicyDesktopProps {
|
|
17
|
-
children?: any
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export const ClassicyDesktop: React.FC<ClassicyDesktopProps> = ({children}) => {
|
|
21
|
-
const [contextMenu, setContextMenu] = useState(false)
|
|
22
|
-
const [contextMenuLocation, setContextMenuLocation] = useState([0, 0])
|
|
23
|
-
const [showAbout, setShowAbout] = useState(false)
|
|
24
|
-
|
|
25
|
-
const [selectBoxStart, setSelectBoxStart] = useState([0, 0])
|
|
26
|
-
const [selectBoxSize, setSelectBoxSize] = useState([0, 0])
|
|
27
|
-
const [selectBox, setSelectBox] = useState(false)
|
|
28
|
-
|
|
29
|
-
const clickOffset = [10, 10]
|
|
30
|
-
|
|
31
|
-
const desktopState = useAppManager()
|
|
32
|
-
const desktopEventDispatch = useAppManagerDispatch()
|
|
33
|
-
|
|
34
|
-
if (desktopState.System.Manager.Appearance.availableThemes &&
|
|
35
|
-
desktopState.System.Manager.Appearance.availableThemes.length <= 0) {
|
|
36
|
-
desktopEventDispatch({
|
|
37
|
-
type: 'ClassicyDesktopLoadThemes',
|
|
38
|
-
availableThemes: getAllThemes(),
|
|
39
|
-
})
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const startSelectBox = (e: React.MouseEvent<HTMLDivElement>) => {
|
|
43
|
-
if ('id' in e.target && e.target.id == 'classicyDesktop') {
|
|
44
|
-
if (e.button > 1) {
|
|
45
|
-
toggleDesktopContextMenu(e)
|
|
46
|
-
} else {
|
|
47
|
-
clearActives(e)
|
|
48
|
-
setSelectBox(true)
|
|
49
|
-
setSelectBoxStart([e.clientX, e.clientY])
|
|
50
|
-
setSelectBoxSize([0, 0])
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
const resizeSelectBox = (e: React.MouseEvent<HTMLDivElement>) => {
|
|
56
|
-
setSelectBoxSize([e.clientX - selectBoxStart[0], e.clientY - selectBoxStart[1]])
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const clearSelectBox = () => {
|
|
60
|
-
clearSelectedIcons()
|
|
61
|
-
setSelectBoxSize([0, 0])
|
|
62
|
-
setSelectBoxStart([0, 0])
|
|
63
|
-
setSelectBox(false)
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const clearActives = (e: React.MouseEvent<HTMLDivElement>) => {
|
|
67
|
-
setContextMenu(false)
|
|
68
|
-
clearSelectedIcons()
|
|
69
|
-
desktopEventDispatch({
|
|
70
|
-
type: 'ClassicyDesktopFocus',
|
|
71
|
-
e: e,
|
|
72
|
-
menuBar: defaultMenuItems,
|
|
73
|
-
})
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const clearSelectedIcons = () => {
|
|
77
|
-
desktopEventDispatch({type: 'ClassicyDesktopIconClearFocus'})
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
const toggleDesktopContextMenu = (e: React.MouseEvent<HTMLDivElement>) => {
|
|
81
|
-
e.preventDefault()
|
|
82
|
-
if (e.currentTarget.id === 'classicyDesktop') {
|
|
83
|
-
setContextMenuLocation([e.clientX - clickOffset[0], e.clientY - clickOffset[1]])
|
|
84
|
-
setContextMenu(!contextMenu)
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
const defaultMenuItems: ClassicyMenuItem[] = [
|
|
89
|
-
{
|
|
90
|
-
id: 'finder_file',
|
|
91
|
-
title: 'File',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
id: 'finder_edit',
|
|
95
|
-
title: 'Edit',
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
id: 'finder_view',
|
|
99
|
-
title: 'View',
|
|
100
|
-
menuChildren: [
|
|
101
|
-
{
|
|
102
|
-
id: 'finder.app_CleanupDesktopIcons',
|
|
103
|
-
title: 'Clean up',
|
|
104
|
-
onClickFunc: () => {
|
|
105
|
-
desktopEventDispatch({
|
|
106
|
-
type: 'ClassicyDesktopIconCleanup',
|
|
107
|
-
})
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
id: 'finder.app_ArrangeDesktopIconsName',
|
|
112
|
-
title: 'Arrange By Name',
|
|
113
|
-
onClickFunc: () => {
|
|
114
|
-
desktopEventDispatch({
|
|
115
|
-
type: 'ClassicyDesktopIconSort',
|
|
116
|
-
sortBy: 'name',
|
|
117
|
-
})
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
id: 'finder.app_ArrangeDesktopIconsKind',
|
|
122
|
-
title: 'Arrange By Type',
|
|
123
|
-
onClickFunc: () => {
|
|
124
|
-
desktopEventDispatch({
|
|
125
|
-
type: 'ClassicyDesktopIconSort',
|
|
126
|
-
sortBy: 'kind',
|
|
127
|
-
})
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
],
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
id: 'finder_special',
|
|
134
|
-
title: 'Special',
|
|
135
|
-
},
|
|
136
|
-
|
|
137
|
-
{
|
|
138
|
-
id: 'finder_help',
|
|
139
|
-
title: 'Help',
|
|
140
|
-
menuChildren: [
|
|
141
|
-
{
|
|
142
|
-
id: 'finder_help_about',
|
|
143
|
-
title: 'About',
|
|
144
|
-
onClickFunc: () => {
|
|
145
|
-
setShowAbout(true)
|
|
146
|
-
},
|
|
147
|
-
},
|
|
148
|
-
],
|
|
149
|
-
},
|
|
150
|
-
]
|
|
151
|
-
|
|
152
|
-
const currentTheme = getThemeVars(desktopState.System.Manager.Appearance.activeTheme)
|
|
153
|
-
|
|
154
|
-
return (
|
|
155
|
-
<>
|
|
156
|
-
<div
|
|
157
|
-
id={'classicyDesktop'}
|
|
158
|
-
style={currentTheme as CSSProperties}
|
|
159
|
-
className={classNames("classicyDesktop")}
|
|
160
|
-
onMouseMove={resizeSelectBox}
|
|
161
|
-
onContextMenu={toggleDesktopContextMenu}
|
|
162
|
-
onMouseUp={clearSelectBox}
|
|
163
|
-
onMouseDown={startSelectBox}
|
|
164
|
-
>
|
|
165
|
-
{selectBox && (
|
|
166
|
-
<div
|
|
167
|
-
className={"classicyDesktopSelect"}
|
|
168
|
-
style={{
|
|
169
|
-
left: selectBoxStart[0],
|
|
170
|
-
top: selectBoxStart[1],
|
|
171
|
-
width: selectBoxSize[0],
|
|
172
|
-
height: selectBoxSize[1],
|
|
173
|
-
}}
|
|
174
|
-
/>
|
|
175
|
-
)}
|
|
176
|
-
<ClassicyDesktopMenuBar/>
|
|
177
|
-
{contextMenu && (
|
|
178
|
-
<ClassicyContextualMenu
|
|
179
|
-
name={'desktopContextMenu'}
|
|
180
|
-
menuItems={defaultMenuItems}
|
|
181
|
-
position={contextMenuLocation}
|
|
182
|
-
/>
|
|
183
|
-
)}
|
|
184
|
-
<Finder/>
|
|
185
|
-
<ClassicyControlPanels/>
|
|
186
|
-
{showAbout &&
|
|
187
|
-
getClassicyAboutWindow({
|
|
188
|
-
appId: 'Finder.app',
|
|
189
|
-
appName: 'Finder',
|
|
190
|
-
appIcon: macosIcon,
|
|
191
|
-
hideFunc: () => setShowAbout(false),
|
|
192
|
-
})}
|
|
193
|
-
{desktopState.System.Manager.Desktop.icons.map((i) => (
|
|
194
|
-
<ClassicyDesktopIcon
|
|
195
|
-
appId={i.appId}
|
|
196
|
-
appName={i.appName}
|
|
197
|
-
icon={i.icon}
|
|
198
|
-
label={i.label}
|
|
199
|
-
kind={i.kind}
|
|
200
|
-
key={i.appId}
|
|
201
|
-
event={i.event}
|
|
202
|
-
eventData={i.eventData}
|
|
203
|
-
/>
|
|
204
|
-
))}
|
|
205
|
-
{children}
|
|
206
|
-
</div>
|
|
207
|
-
</>
|
|
208
|
-
)
|
|
209
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
@use '../../ControlPanels/AppearanceManager/styles/appearance';
|
|
2
|
-
@use '../../ControlPanels/AppearanceManager/styles/assets';
|
|
3
|
-
@use 'sass:list';
|
|
4
|
-
|
|
5
|
-
.classicyDesktopIcon {
|
|
6
|
-
position: absolute;
|
|
7
|
-
z-index: 10 !important;
|
|
8
|
-
display: flex;
|
|
9
|
-
align-items: center;
|
|
10
|
-
flex-direction: column;
|
|
11
|
-
width: calc(var(--desktop-icon-size) * 2);
|
|
12
|
-
height: calc(var(--desktop-icon-size) * 2);
|
|
13
|
-
user-select: none;
|
|
14
|
-
text-align: center;
|
|
15
|
-
image-rendering: pixelated;
|
|
16
|
-
image-rendering: -moz-crisp-edges;
|
|
17
|
-
image-rendering: crisp-edges;
|
|
18
|
-
|
|
19
|
-
img {
|
|
20
|
-
width: var(--desktop-icon-size);
|
|
21
|
-
height: var(--desktop-icon-size);
|
|
22
|
-
margin: auto;
|
|
23
|
-
user-select: none;
|
|
24
|
-
user-drag: none;
|
|
25
|
-
-webkit-user-drag: none;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
p {
|
|
29
|
-
font-family: var(--body-font), serif;
|
|
30
|
-
font-size: var(--desktop-icon-font-size);
|
|
31
|
-
width: fit-content;
|
|
32
|
-
margin-top: calc(var(--desktop-icon-font-size) / 2);
|
|
33
|
-
padding: calc(var(--desktop-icon-font-size) / 4);
|
|
34
|
-
color: black;
|
|
35
|
-
background: rgba(255, 255, 255, 0.5);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.classicyDesktopIconDragging {
|
|
40
|
-
z-index: 500 !important;
|
|
41
|
-
margin: calc(var(--desktop-icon-size) * -4);
|
|
42
|
-
padding: calc(var(--desktop-icon-size) * 4);
|
|
43
|
-
user-select: none;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.classicyDesktopIconMask {
|
|
47
|
-
width: calc(var(--desktop-icon-size) - var(--window-border-size) * 2);
|
|
48
|
-
height: calc(var(--desktop-icon-size) - var(--window-border-size) * 2);
|
|
49
|
-
margin: 0 auto;
|
|
50
|
-
mask-mode: alpha !important;
|
|
51
|
-
mask-size: calc(100% - var(--window-border-size)) !important;
|
|
52
|
-
mask-repeat: no-repeat !important;
|
|
53
|
-
@include appearance.theme-halftone(#000000, 7%);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.classicyDesktopIconMaskOuter {
|
|
57
|
-
width: calc(var(--desktop-icon-size) + var(--window-border-size));
|
|
58
|
-
height: calc(var(--desktop-icon-size) + var(--window-border-size));
|
|
59
|
-
margin: 0 auto;
|
|
60
|
-
background: black !important;
|
|
61
|
-
mask-mode: alpha !important;
|
|
62
|
-
mask-size: cover !important;
|
|
63
|
-
mask-repeat: no-repeat !important;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.classicyDesktopIconOpen {
|
|
67
|
-
z-index: 99;
|
|
68
|
-
|
|
69
|
-
.classicyDesktopIconMaskOuter {
|
|
70
|
-
.classicyDesktopIconMask {
|
|
71
|
-
backdrop-filter: grayscale(1) invert(1) brightness(1) !important;
|
|
72
|
-
background-blend-mode: overlay;
|
|
73
|
-
|
|
74
|
-
* {
|
|
75
|
-
opacity: 0;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.classicyDesktopIconActive {
|
|
82
|
-
.classicyDesktopIconMaskOuter {
|
|
83
|
-
img {
|
|
84
|
-
filter: brightness(50%);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
p {
|
|
89
|
-
color: white;
|
|
90
|
-
background: rgba(0, 0, 0, 0.5);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.classicyDesktopIconActiveAndOpen {
|
|
95
|
-
z-index: 99;
|
|
96
|
-
|
|
97
|
-
.classicyDesktopIconMaskOuter {
|
|
98
|
-
background: black;
|
|
99
|
-
filter: brightness(-5);
|
|
100
|
-
|
|
101
|
-
.classicyDesktopIconMask {
|
|
102
|
-
filter: brightness(50%);
|
|
103
|
-
backdrop-filter: grayscale(1) invert(1) brightness(1) !important;
|
|
104
|
-
|
|
105
|
-
* {
|
|
106
|
-
opacity: 0;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
p {
|
|
112
|
-
color: white;
|
|
113
|
-
background: rgba(0, 0, 0, 0.5);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import { useAppManager, useAppManagerDispatch } from '@/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerContext'
|
|
2
|
-
import { useAnalytics } from 'use-analytics'
|
|
3
|
-
|
|
4
|
-
import './ClassicyDesktopIcon.scss'
|
|
5
|
-
import classNames from 'classnames'
|
|
6
|
-
import React, { useRef, useState } from 'react'
|
|
7
|
-
|
|
8
|
-
interface ClassicyDesktopIconProps {
|
|
9
|
-
appId: string
|
|
10
|
-
appName: string
|
|
11
|
-
icon: string
|
|
12
|
-
label?: string
|
|
13
|
-
kind: string
|
|
14
|
-
onClickFunc?: any
|
|
15
|
-
event?: string
|
|
16
|
-
eventData?: any
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export const ClassicyDesktopIcon: React.FC<ClassicyDesktopIconProps> = ({
|
|
20
|
-
appId,
|
|
21
|
-
appName,
|
|
22
|
-
icon,
|
|
23
|
-
label,
|
|
24
|
-
kind = 'app_shortcut',
|
|
25
|
-
onClickFunc,
|
|
26
|
-
event,
|
|
27
|
-
eventData,
|
|
28
|
-
}) => {
|
|
29
|
-
const [clickPosition, setClickPosition] = useState<[number, number]>([0, 0])
|
|
30
|
-
const [dragging, setDragging] = useState<boolean>(false)
|
|
31
|
-
|
|
32
|
-
const desktopContext = useAppManager()
|
|
33
|
-
const desktopEventDispatch = useAppManagerDispatch()
|
|
34
|
-
|
|
35
|
-
const iconRef = useRef<HTMLDivElement>(null)
|
|
36
|
-
|
|
37
|
-
const id = appId + '.shortcut'
|
|
38
|
-
const { track } = useAnalytics()
|
|
39
|
-
const analyticsArgs = {appId, appName, icon, label, kind}
|
|
40
|
-
|
|
41
|
-
const clickFocus = (e: React.MouseEvent<HTMLDivElement>) => {
|
|
42
|
-
e.stopPropagation()
|
|
43
|
-
track('focus', { type: "ClassicyDesktopIcon", ...analyticsArgs })
|
|
44
|
-
desktopEventDispatch({
|
|
45
|
-
type: 'ClassicyDesktopIconFocus',
|
|
46
|
-
iconId: appId,
|
|
47
|
-
})
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const changeIcon = (e: React.MouseEvent<HTMLDivElement>) => {
|
|
51
|
-
if (dragging) {
|
|
52
|
-
clickFocus(e)
|
|
53
|
-
|
|
54
|
-
desktopEventDispatch({
|
|
55
|
-
type: 'ClassicyDesktopIconMove',
|
|
56
|
-
app: {
|
|
57
|
-
id: appId,
|
|
58
|
-
},
|
|
59
|
-
location: [e.clientX - clickPosition[0], e.clientY - clickPosition[1]],
|
|
60
|
-
})
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
const isActive = (i: string) => {
|
|
65
|
-
const idx = desktopContext.System.Manager.Desktop.selectedIcons?.findIndex((o) => o === i)
|
|
66
|
-
return idx != undefined && idx > -1
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const launchIcon = () => {
|
|
70
|
-
if (onClickFunc) {
|
|
71
|
-
onClickFunc()
|
|
72
|
-
}
|
|
73
|
-
if (event && eventData) {
|
|
74
|
-
desktopEventDispatch({
|
|
75
|
-
type: event,
|
|
76
|
-
...eventData,
|
|
77
|
-
})
|
|
78
|
-
}
|
|
79
|
-
track('open', { type: "ClassicyDesktopIcon", ...analyticsArgs })
|
|
80
|
-
desktopEventDispatch({
|
|
81
|
-
type: 'ClassicyDesktopIconOpen',
|
|
82
|
-
iconId: id,
|
|
83
|
-
app: {
|
|
84
|
-
id: appId,
|
|
85
|
-
name: appName,
|
|
86
|
-
icon: icon,
|
|
87
|
-
},
|
|
88
|
-
})
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
const getIconLocation = () => {
|
|
92
|
-
let iconIdx = desktopContext.System.Manager.Desktop.icons.findIndex((i) => i.appId === appId)
|
|
93
|
-
|
|
94
|
-
if (!desktopContext.System.Manager.Desktop.icons[iconIdx].location) {
|
|
95
|
-
return [0, 0]
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
let leftValue: number = 0
|
|
99
|
-
let topValue: number = 0
|
|
100
|
-
if (iconIdx > -1) {
|
|
101
|
-
leftValue = desktopContext.System.Manager.Desktop.icons[iconIdx].location[0]
|
|
102
|
-
topValue = desktopContext.System.Manager.Desktop.icons[iconIdx].location[1]
|
|
103
|
-
}
|
|
104
|
-
return [topValue, leftValue]
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
let thisLocation = getIconLocation()
|
|
108
|
-
|
|
109
|
-
const isLaunched = () => {
|
|
110
|
-
// Check if a Finder window is open
|
|
111
|
-
if (appId.startsWith('Finder.app')) {
|
|
112
|
-
const pathCount = desktopContext.System.Manager.App.apps['Finder.app'].windows.findIndex(
|
|
113
|
-
(w) => w.id === eventData.path && !w.closed
|
|
114
|
-
)
|
|
115
|
-
return pathCount >= 0
|
|
116
|
-
}
|
|
117
|
-
return desktopContext.System.Manager.App.apps[appId]?.open
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
const stopChangeIcon = () => {
|
|
121
|
-
track('halt', { type: "ClassicyDesktopIcon", ...analyticsArgs })
|
|
122
|
-
setDragging(false)
|
|
123
|
-
setClickPosition([0, 0])
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
const startDrag = (e: React.MouseEvent<HTMLDivElement>) => {
|
|
127
|
-
if (iconRef.current == null) {
|
|
128
|
-
return
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
track('move', { type: "ClassicyDesktopIcon", ...analyticsArgs })
|
|
132
|
-
|
|
133
|
-
setClickPosition([
|
|
134
|
-
e.clientX - iconRef.current.getBoundingClientRect().left,
|
|
135
|
-
e.clientY - iconRef.current.getBoundingClientRect().top,
|
|
136
|
-
])
|
|
137
|
-
|
|
138
|
-
setDragging(true)
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const getClass = (i: string) => {
|
|
142
|
-
if (isActive(i) && isLaunched()) {
|
|
143
|
-
return "classicyDesktopIconActiveAndOpen"
|
|
144
|
-
} else if (isActive(i)) {
|
|
145
|
-
return "classicyDesktopIconActive"
|
|
146
|
-
} else if (isLaunched()) {
|
|
147
|
-
return "classicyDesktopIconOpen"
|
|
148
|
-
} else {
|
|
149
|
-
return ''
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return (
|
|
154
|
-
<div
|
|
155
|
-
ref={iconRef}
|
|
156
|
-
id={`${id}`}
|
|
157
|
-
onMouseDown={startDrag}
|
|
158
|
-
onMouseMove={changeIcon}
|
|
159
|
-
onMouseUp={stopChangeIcon}
|
|
160
|
-
onDoubleClick={launchIcon}
|
|
161
|
-
draggable={false}
|
|
162
|
-
onClick={clickFocus}
|
|
163
|
-
onContextMenu={(e: React.MouseEvent<HTMLDivElement>) => {
|
|
164
|
-
clickFocus(e)
|
|
165
|
-
alert('clicked')
|
|
166
|
-
}} // TODO: Add Context Menu on Desktop Icons
|
|
167
|
-
className={classNames(
|
|
168
|
-
"classicyDesktopIcon",
|
|
169
|
-
dragging ? "classicyDesktopIconDragging" : '',
|
|
170
|
-
getClass(appId)
|
|
171
|
-
)}
|
|
172
|
-
style={{ top: thisLocation[0], left: thisLocation[1] }}
|
|
173
|
-
>
|
|
174
|
-
<div
|
|
175
|
-
className={"classicyDesktopIconMaskOuter"}
|
|
176
|
-
style={{ maskImage: `url(${icon})` }}
|
|
177
|
-
>
|
|
178
|
-
<div className={"classicyDesktopIconMask"} style={{ mask: `url(${icon})` }}>
|
|
179
|
-
<img src={icon} alt={appName} />
|
|
180
|
-
</div>
|
|
181
|
-
</div>
|
|
182
|
-
<p>{label ? label : appName}</p>
|
|
183
|
-
</div>
|
|
184
|
-
)
|
|
185
|
-
}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import { ClassicyTheme } from '@/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearance'
|
|
2
|
-
import {
|
|
3
|
-
ActionMessage,
|
|
4
|
-
classicyDesktopStateEventReducer,
|
|
5
|
-
ClassicyStore,
|
|
6
|
-
} from '@/SystemFolder/ControlPanels/AppManager/ClassicyAppManager'
|
|
7
|
-
import { ClassicyStoreSystemDesktopManagerIcon } from '@/SystemFolder/SystemResources/Desktop/ClassicyDesktopManager'
|
|
8
|
-
import {ClassicyMenuItem} from "@/SystemFolder/SystemResources/Menu/ClassicyMenu";
|
|
9
|
-
|
|
10
|
-
const createGrid = (iconSize: number, iconPadding: number) => {
|
|
11
|
-
return [
|
|
12
|
-
Math.floor(window.innerWidth / (iconSize + iconPadding)),
|
|
13
|
-
Math.floor(window.innerHeight / (iconSize * 2 + iconPadding)),
|
|
14
|
-
]
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const getGridPosition = (iconSize: number, iconPadding: number, x: number, y: number):[number, number] => {
|
|
18
|
-
let defaultPadding = iconPadding * 4
|
|
19
|
-
return [
|
|
20
|
-
Math.floor(window.innerWidth - (iconSize * 2 + iconPadding) * x),
|
|
21
|
-
Math.floor((iconSize * 2 + iconPadding) * y) + defaultPadding,
|
|
22
|
-
]
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const getGridPositionByCount = (count: number, theme: ClassicyTheme) => {
|
|
26
|
-
const [iconSize, iconPadding] = getIconSize(theme)
|
|
27
|
-
const grid = createGrid(iconSize, iconPadding)
|
|
28
|
-
|
|
29
|
-
if (count < grid[0]) {
|
|
30
|
-
return getGridPosition(iconSize, iconPadding, 1, count)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (count > grid[0] * grid[1]) {
|
|
34
|
-
return getGridPosition(iconSize, iconPadding, 1, 1)
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return getGridPosition(iconSize, iconPadding, 1, 1)
|
|
38
|
-
|
|
39
|
-
// TODO: We return the first column if the total count is less, and we return 1,1 if more than we can hold
|
|
40
|
-
// We need to do an offset on the max number of icons, but use the same positions.
|
|
41
|
-
// For the middle part, we need to figure out how to convert a column count (e.g. the 35th box)
|
|
42
|
-
// to our matrix with an x/y coordinate.
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export const getIconSize = (theme: ClassicyTheme) => {
|
|
46
|
-
return [theme.desktop.iconSize, theme.desktop.iconSize / 4]
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const sortDesktopIcons = (icons: ClassicyStoreSystemDesktopManagerIcon[], sortType: 'name' | 'kind' | 'label') => {
|
|
50
|
-
switch (sortType) {
|
|
51
|
-
case 'name':
|
|
52
|
-
return icons.sort(function (a, b) {
|
|
53
|
-
if (a.appName.toLowerCase() > b.appName.toLowerCase()) {
|
|
54
|
-
return 1
|
|
55
|
-
}
|
|
56
|
-
if (a.appName.toLowerCase() < b.appName.toLowerCase()) {
|
|
57
|
-
return -1
|
|
58
|
-
}
|
|
59
|
-
return 0
|
|
60
|
-
})
|
|
61
|
-
case 'kind':
|
|
62
|
-
default:
|
|
63
|
-
return icons.sort(function (a, b) {
|
|
64
|
-
if (a.kind?.toLowerCase() > b.kind?.toLowerCase()) {
|
|
65
|
-
return 1
|
|
66
|
-
}
|
|
67
|
-
if (a.kind?.toLowerCase() < b.kind?.toLowerCase()) {
|
|
68
|
-
return -1
|
|
69
|
-
}
|
|
70
|
-
return 0
|
|
71
|
-
})
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const cleanupDesktopIcons = (theme: ClassicyTheme, icons: ClassicyStoreSystemDesktopManagerIcon[]) => {
|
|
76
|
-
let newDesktopIcons: ClassicyStoreSystemDesktopManagerIcon[] = []
|
|
77
|
-
let startX: number = 1
|
|
78
|
-
let startY: number = 0
|
|
79
|
-
const [iconSize, iconPadding] = getIconSize(theme)
|
|
80
|
-
|
|
81
|
-
let grid = createGrid(iconSize, iconPadding)
|
|
82
|
-
|
|
83
|
-
icons.forEach((icon) => {
|
|
84
|
-
if (startY >= grid[1]) {
|
|
85
|
-
startY = 0
|
|
86
|
-
startX += 1
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
if (startX >= grid[0]) {
|
|
90
|
-
startX = 1
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
icon.location = getGridPosition(iconSize, iconPadding, startX, startY)
|
|
94
|
-
newDesktopIcons.push(icon)
|
|
95
|
-
startY += 1
|
|
96
|
-
})
|
|
97
|
-
|
|
98
|
-
return newDesktopIcons
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export const classicyDesktopIconEventHandler = (ds: ClassicyStore, action: ActionMessage) => {
|
|
102
|
-
switch (action.type) {
|
|
103
|
-
case 'ClassicyDesktopIconCleanup': {
|
|
104
|
-
ds.System.Manager.Desktop.icons = cleanupDesktopIcons(
|
|
105
|
-
ds.System.Manager.Appearance.activeTheme,
|
|
106
|
-
ds.System.Manager.Desktop.icons
|
|
107
|
-
)
|
|
108
|
-
break
|
|
109
|
-
}
|
|
110
|
-
case 'ClassicyDesktopIconSort': {
|
|
111
|
-
ds.System.Manager.Desktop.icons = cleanupDesktopIcons(
|
|
112
|
-
ds.System.Manager.Appearance.activeTheme,
|
|
113
|
-
sortDesktopIcons(ds.System.Manager.Desktop.icons, action.sortBy || 'name')
|
|
114
|
-
)
|
|
115
|
-
break
|
|
116
|
-
}
|
|
117
|
-
case 'ClassicyDesktopIconFocus': {
|
|
118
|
-
ds.System.Manager.Desktop.selectedIcons = [action.iconId]
|
|
119
|
-
break
|
|
120
|
-
}
|
|
121
|
-
case 'ClassicyDesktopIconClearFocus': {
|
|
122
|
-
ds.System.Manager.Desktop.selectedIcons = []
|
|
123
|
-
break
|
|
124
|
-
}
|
|
125
|
-
case 'ClassicyDesktopIconOpen': {
|
|
126
|
-
ds.System.Manager.Desktop.selectedIcons = [action.iconId]
|
|
127
|
-
ds = classicyDesktopStateEventReducer(ds, {
|
|
128
|
-
type: 'ClassicyAppOpen',
|
|
129
|
-
app: action.app,
|
|
130
|
-
})
|
|
131
|
-
break
|
|
132
|
-
}
|
|
133
|
-
case 'ClassicyDesktopIconAdd': {
|
|
134
|
-
// TODO: We need to separate onClickFunc from here; it's being stored in the localstorage cache which
|
|
135
|
-
// means it gets blown out after every session clear. An Event name and payload here would be better.
|
|
136
|
-
let icon = ds.System.Manager.Desktop.icons.filter((i) => i.appId === action.app.id)
|
|
137
|
-
|
|
138
|
-
if (icon.length === 0) {
|
|
139
|
-
let newLocation = action.location
|
|
140
|
-
if (!newLocation) {
|
|
141
|
-
action.location = getGridPositionByCount(
|
|
142
|
-
ds.System.Manager.Desktop.icons.length,
|
|
143
|
-
ds.System.Manager.Appearance.activeTheme
|
|
144
|
-
)
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
ds.System.Manager.Desktop.icons.push({
|
|
148
|
-
icon: action.app.icon,
|
|
149
|
-
appId: action.app.id,
|
|
150
|
-
appName: action.app.name,
|
|
151
|
-
location: action.location,
|
|
152
|
-
label: action.label,
|
|
153
|
-
kind: action.kind || 'icon',
|
|
154
|
-
onClickFunc: action.onClickFunc,
|
|
155
|
-
event: action.event,
|
|
156
|
-
eventData: action.eventData,
|
|
157
|
-
})
|
|
158
|
-
}
|
|
159
|
-
break
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
case 'ClassicyDesktopIconRemove': {
|
|
163
|
-
let iconIdx = ds.System.Manager.Desktop.icons.findIndex((icon) => icon.appId === action.app.id)
|
|
164
|
-
if (iconIdx > -1) {
|
|
165
|
-
ds.System.Manager.Desktop.icons.slice(iconIdx, 1)
|
|
166
|
-
}
|
|
167
|
-
break
|
|
168
|
-
}
|
|
169
|
-
case 'ClassicyDesktopIconMove': {
|
|
170
|
-
let iconIdx = ds.System.Manager.Desktop.icons.findIndex((icon) => icon.appId === action.app.id)
|
|
171
|
-
if (iconIdx > -1) {
|
|
172
|
-
ds.System.Manager.Desktop.icons[iconIdx].location = action.location
|
|
173
|
-
}
|
|
174
|
-
break
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
return ds
|
|
178
|
-
}
|