Update Wintergreen theme to use new API
This commit is contained in:
parent
9e2d1ecf01
commit
908dbd0bad
Binary file not shown.
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 8.3 KiB |
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 6.9 KiB |
Binary file not shown.
BIN
internal/theme/default/assets/old/icons-large.png
Normal file
BIN
internal/theme/default/assets/old/icons-large.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.5 KiB |
BIN
internal/theme/default/assets/old/icons-large.xcf
Normal file
BIN
internal/theme/default/assets/old/icons-large.xcf
Normal file
Binary file not shown.
BIN
internal/theme/default/assets/old/icons-small.png
Normal file
BIN
internal/theme/default/assets/old/icons-small.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.3 KiB |
BIN
internal/theme/default/assets/old/icons-small.xcf
Normal file
BIN
internal/theme/default/assets/old/icons-small.xcf
Normal file
Binary file not shown.
@ -1,19 +1,19 @@
|
||||
package defaultTheme
|
||||
|
||||
import "image/color"
|
||||
import "git.tebibyte.media/tomo/tomo/theme"
|
||||
import "git.tebibyte.media/tomo/tomo"
|
||||
import dataTheme "git.tebibyte.media/tomo/nasin/internal/theme"
|
||||
|
||||
// Theme returns Wintergreen, the default Tomo theme. It is neutral-gray with
|
||||
// Theme returns Wintergreen, the default Tomo tomo. It is neutral-gray with
|
||||
// green and turquoise accents.
|
||||
func Theme () theme.Theme {
|
||||
func Theme () tomo.Theme {
|
||||
return &dataTheme.Theme {
|
||||
Colors: map[theme.Color] color.Color {
|
||||
theme.ColorBackground: colorBackground,
|
||||
theme.ColorForeground: colorForeground,
|
||||
theme.ColorRaised: colorCarved,
|
||||
theme.ColorSunken: colorCarved,
|
||||
theme.ColorAccent: colorFocus,
|
||||
Colors: map[tomo.Color] color.Color {
|
||||
tomo.ColorBackground: colorBackground,
|
||||
tomo.ColorForeground: colorForeground,
|
||||
tomo.ColorRaised: colorCarved,
|
||||
tomo.ColorSunken: colorCarved,
|
||||
tomo.ColorAccent: colorFocus,
|
||||
},
|
||||
Rules: rules,
|
||||
IconTheme: &iconTheme { },
|
||||
|
@ -6,7 +6,6 @@ import _ "embed"
|
||||
import _ "image/png"
|
||||
import "git.tebibyte.media/tomo/tomo"
|
||||
import "git.tebibyte.media/tomo/tomo/data"
|
||||
import "git.tebibyte.media/tomo/tomo/theme"
|
||||
import "git.tebibyte.media/tomo/tomo/canvas"
|
||||
|
||||
//go:embed assets/icons-small.png
|
||||
@ -14,12 +13,12 @@ var atlasSmallBytes []byte
|
||||
//go:embed assets/icons-large.png
|
||||
var atlasLargeBytes []byte
|
||||
|
||||
func generateSource (data []byte, width int) map[theme.Icon] canvas.Texture {
|
||||
func generateSource (data []byte, width int) map[tomo.Icon] canvas.Texture {
|
||||
atlasImage, _, err := image.Decode(bytes.NewReader(data))
|
||||
if err != nil { panic(err) }
|
||||
atlasTexture := tomo.NewTexture(atlasImage)
|
||||
|
||||
source := make(map[theme.Icon] canvas.Texture)
|
||||
source := make(map[tomo.Icon] canvas.Texture)
|
||||
x := 0
|
||||
y := 0
|
||||
|
||||
@ -27,8 +26,8 @@ func generateSource (data []byte, width int) map[theme.Icon] canvas.Texture {
|
||||
x = 0
|
||||
y ++
|
||||
}
|
||||
col := func (id theme.Icon) {
|
||||
source[id] = atlasTexture.Clip(image.Rect (
|
||||
col := func (id tomo.Icon) {
|
||||
source[id] = atlasTexture.SubTexture(image.Rect (
|
||||
x * width,
|
||||
y * width,
|
||||
(x + 1) * width,
|
||||
@ -36,162 +35,385 @@ func generateSource (data []byte, width int) map[theme.Icon] canvas.Texture {
|
||||
x++
|
||||
}
|
||||
|
||||
// objects
|
||||
col(theme.IconUnknown)
|
||||
col(theme.IconFile)
|
||||
col(theme.IconDirectory)
|
||||
col(theme.IconStorage)
|
||||
col(theme.IconApplication)
|
||||
col(theme.IconNetwork)
|
||||
col(theme.IconDevice)
|
||||
col(theme.IconPeripheral)
|
||||
col(theme.IconPort)
|
||||
col(tomo.IconUnknown)
|
||||
col(tomo.Icon("File"))
|
||||
|
||||
// actions: files
|
||||
row()
|
||||
col(theme.IconActionOpen)
|
||||
col(theme.IconActionOpenIn)
|
||||
col(theme.IconActionSave)
|
||||
col(theme.IconActionSaveAs)
|
||||
col(theme.IconActionPrint)
|
||||
col(theme.IconActionNew)
|
||||
col(theme.IconActionNewDirectory)
|
||||
col(theme.IconActionDelete)
|
||||
col(theme.IconActionRename)
|
||||
col(theme.IconActionGetInformation)
|
||||
col(theme.IconActionChangePermissions)
|
||||
col(theme.IconActionRevert)
|
||||
// actions
|
||||
col(tomo.IconAddressBookNew)
|
||||
col(tomo.IconApplicationExit)
|
||||
col(tomo.IconAppointmentNew)
|
||||
col(tomo.IconCallStart)
|
||||
col(tomo.IconCallStop)
|
||||
col(tomo.IconContactNew)
|
||||
// actions: dialog
|
||||
col(tomo.IconDialogOkay)
|
||||
col(tomo.IconDialogCancel)
|
||||
// actions: edit
|
||||
col(tomo.IconEditClear)
|
||||
col(tomo.IconEditCopy)
|
||||
col(tomo.IconEditCut)
|
||||
col(tomo.IconEditDelete)
|
||||
col(tomo.IconEditFind)
|
||||
col(tomo.IconEditFindReplace)
|
||||
col(tomo.IconEditPaste)
|
||||
col(tomo.IconEditRedo)
|
||||
col(tomo.IconEditSelectAll)
|
||||
col(tomo.IconEditUndo)
|
||||
// actions: file
|
||||
col(tomo.IconFileNew)
|
||||
col(tomo.IconDirectoryNew)
|
||||
col(tomo.IconFileOpen)
|
||||
col(tomo.IconFileOpenRecent)
|
||||
col(tomo.IconFilePageSetup)
|
||||
col(tomo.IconFilePrint)
|
||||
col(tomo.IconFilePrintPreview)
|
||||
col(tomo.IconFilePermissions)
|
||||
col(tomo.IconFileProperties)
|
||||
col(tomo.IconFileRename)
|
||||
col(tomo.IconFileRevert)
|
||||
col(tomo.IconFileSave)
|
||||
col(tomo.IconFileSaveAs)
|
||||
col(tomo.IconFileSend)
|
||||
|
||||
// actions: list management
|
||||
row()
|
||||
col(theme.IconActionAdd)
|
||||
col(theme.IconActionRemove)
|
||||
col(theme.IconActionAddBookmark)
|
||||
col(theme.IconActionRemoveBookmark)
|
||||
col(theme.IconActionAddFavorite)
|
||||
col(theme.IconActionRemoveFavorite)
|
||||
// actions: format
|
||||
col(tomo.IconFormatIndentLess)
|
||||
col(tomo.IconFormatIndentMore)
|
||||
col(tomo.IconFormatAlignCenter)
|
||||
col(tomo.IconFormatAlignEven)
|
||||
col(tomo.IconFormatAlignLeft)
|
||||
col(tomo.IconFormatAlignRight)
|
||||
col(tomo.IconFormatTextDirectionLtr)
|
||||
col(tomo.IconFormatTextDirectionRtl)
|
||||
col(tomo.IconFormatTextBold)
|
||||
col(tomo.IconFormatTextItalic)
|
||||
col(tomo.IconFormatTextUnderline)
|
||||
col(tomo.IconFormatTextStrikethrough)
|
||||
// actions: go
|
||||
col(tomo.IconGoBottom)
|
||||
col(tomo.IconGoDown)
|
||||
col(tomo.IconGoFirst)
|
||||
col(tomo.IconGoHome)
|
||||
col(tomo.IconGoJump)
|
||||
col(tomo.IconGoLast)
|
||||
col(tomo.IconGoNext)
|
||||
col(tomo.IconGoPrevious)
|
||||
col(tomo.IconGoTop)
|
||||
col(tomo.IconGoUp)
|
||||
// actions: help
|
||||
col(tomo.IconHelpAbout)
|
||||
col(tomo.IconHelpContents)
|
||||
col(tomo.IconHelpFaq)
|
||||
// actions: insert
|
||||
col(tomo.IconInsertImage)
|
||||
col(tomo.IconInsertLink)
|
||||
col(tomo.IconInsertObject)
|
||||
col(tomo.IconInsertText)
|
||||
// actions: list
|
||||
col(tomo.IconListAdd)
|
||||
col(tomo.IconListRemove)
|
||||
|
||||
row()
|
||||
// actions: mail
|
||||
col(tomo.IconMailForward)
|
||||
col(tomo.IconMailMarkImportant)
|
||||
col(tomo.IconMailMarkJunk)
|
||||
col(tomo.IconMailMarkNotJunk)
|
||||
col(tomo.IconMailMarkRead)
|
||||
col(tomo.IconMailMarkUnread)
|
||||
col(tomo.IconMailMessageNew)
|
||||
col(tomo.IconMailReplyAll)
|
||||
col(tomo.IconMailReplySender)
|
||||
col(tomo.IconMailSend)
|
||||
col(tomo.IconMailReceive)
|
||||
// actions: media
|
||||
row()
|
||||
col(theme.IconActionPlay)
|
||||
col(theme.IconActionPause)
|
||||
col(theme.IconActionStop)
|
||||
col(theme.IconActionFastForward)
|
||||
col(theme.IconActionRewind)
|
||||
col(theme.IconActionToBeginning)
|
||||
col(theme.IconActionToEnd)
|
||||
col(theme.IconActionRecord)
|
||||
col(theme.IconActionVolumeUp)
|
||||
col(theme.IconActionVolumeDown)
|
||||
col(theme.IconActionMute)
|
||||
col(tomo.IconMediaEject)
|
||||
col(tomo.IconMediaPlaybackPause)
|
||||
col(tomo.IconMediaPlaybackStart)
|
||||
col(tomo.IconMediaPlaybackStop)
|
||||
col(tomo.IconMediaRecord)
|
||||
col(tomo.IconMediaSeekBackward)
|
||||
col(tomo.IconMediaSeekForward)
|
||||
col(tomo.IconMediaSkipBackward)
|
||||
col(tomo.IconMediaSkipForward)
|
||||
// actions: object
|
||||
col(tomo.IconObjectFlipHorizontal)
|
||||
col(tomo.IconObjectFlipVertical)
|
||||
col(tomo.IconObjectRotateLeft)
|
||||
col(tomo.IconObjectRotateRight)
|
||||
// actions: process
|
||||
col(tomo.IconProcessStop)
|
||||
// actions: system
|
||||
col(tomo.IconSystemLockScreen)
|
||||
col(tomo.IconSystemLogOut)
|
||||
col(tomo.IconSystemRun)
|
||||
col(tomo.IconSystemSearch)
|
||||
col(tomo.IconSystemReboot)
|
||||
col(tomo.IconSystemShutdown)
|
||||
|
||||
// actions: editing
|
||||
row()
|
||||
col(theme.IconActionUndo)
|
||||
col(theme.IconActionRedo)
|
||||
col(theme.IconActionCut)
|
||||
col(theme.IconActionCopy)
|
||||
col(theme.IconActionPaste)
|
||||
col(theme.IconActionFind)
|
||||
col(theme.IconActionReplace)
|
||||
col(theme.IconActionSelectAll)
|
||||
col(theme.IconActionSelectNone)
|
||||
col(theme.IconActionIncrement)
|
||||
col(theme.IconActionDecrement)
|
||||
|
||||
// actions: window management
|
||||
row()
|
||||
col(theme.IconActionClose)
|
||||
col(theme.IconActionQuit)
|
||||
col(theme.IconActionIconify)
|
||||
col(theme.IconActionShade)
|
||||
col(theme.IconActionMaximize)
|
||||
col(theme.IconActionFullScreen)
|
||||
col(theme.IconActionRestore)
|
||||
|
||||
// actions: view
|
||||
row()
|
||||
col(theme.IconActionExpand)
|
||||
col(theme.IconActionContract)
|
||||
col(theme.IconActionBack)
|
||||
col(theme.IconActionForward)
|
||||
col(theme.IconActionUp)
|
||||
col(theme.IconActionDown)
|
||||
col(theme.IconActionReload)
|
||||
col(theme.IconActionZoomIn)
|
||||
col(theme.IconActionZoomOut)
|
||||
col(theme.IconActionZoomReset)
|
||||
col(theme.IconActionMove)
|
||||
col(theme.IconActionResize)
|
||||
col(theme.IconActionGoTo)
|
||||
|
||||
// actions: tools
|
||||
row()
|
||||
col(theme.IconActionTransform)
|
||||
col(theme.IconActionTranslate)
|
||||
col(theme.IconActionRotate)
|
||||
col(theme.IconActionScale)
|
||||
col(theme.IconActionWarp)
|
||||
col(theme.IconActionCornerPin)
|
||||
col(theme.IconActionSelectRectangle)
|
||||
col(theme.IconActionSelectEllipse)
|
||||
col(theme.IconActionSelectLasso)
|
||||
col(theme.IconActionSelectGeometric)
|
||||
col(theme.IconActionSelectAuto)
|
||||
col(theme.IconActionCrop)
|
||||
col(theme.IconActionFill)
|
||||
row()
|
||||
col(theme.IconActionGradient)
|
||||
col(theme.IconActionPencil)
|
||||
col(theme.IconActionBrush)
|
||||
col(theme.IconActionEraser)
|
||||
col(theme.IconActionText)
|
||||
col(theme.IconActionEyedropper)
|
||||
col(tomo.IconToolsCheckSpelling)
|
||||
// actions: value
|
||||
col(tomo.IconValueIncrement)
|
||||
col(tomo.IconValueDecrement)
|
||||
col(tomo.IconValueReset)
|
||||
// actions: view
|
||||
col(tomo.IconViewFullscreen)
|
||||
col(tomo.IconViewRefresh)
|
||||
col(tomo.IconViewRestore)
|
||||
col(tomo.IconViewSortAscending)
|
||||
col(tomo.IconViewSortDescending)
|
||||
// actions: window
|
||||
col(tomo.IconWindowClose)
|
||||
col(tomo.IconWindowNew)
|
||||
// actions: zoom
|
||||
col(tomo.IconZoomFitBest)
|
||||
col(tomo.IconZoomIn)
|
||||
col(tomo.IconZoomOriginal)
|
||||
col(tomo.IconZoomOut)
|
||||
|
||||
// status: dialog
|
||||
row()
|
||||
col(theme.IconStatusInformation)
|
||||
col(theme.IconStatusQuestion)
|
||||
col(theme.IconStatusWarning)
|
||||
col(theme.IconStatusError)
|
||||
col(theme.IconStatusCancel)
|
||||
col(theme.IconStatusOkay)
|
||||
// applications
|
||||
// Keep these in sync with nasin.ApplicationRole!
|
||||
col(tomo.IconApplication)
|
||||
col(tomo.IconApplicationWebBrowser)
|
||||
col(tomo.IconApplicationMesssanger)
|
||||
col(tomo.IconApplicationPhone)
|
||||
col(tomo.IconApplicationMail)
|
||||
col(tomo.IconApplicationTerminalEmulator)
|
||||
col(tomo.IconApplicationFileBrowser)
|
||||
col(tomo.IconApplicationTextEditor)
|
||||
col(tomo.IconApplicationDocumentViewer)
|
||||
col(tomo.IconApplicationWordProcessor)
|
||||
col(tomo.IconApplicationSpreadsheet)
|
||||
col(tomo.IconApplicationSlideshow)
|
||||
col(tomo.IconApplicationCalculator)
|
||||
col(tomo.IconApplicationPreferences)
|
||||
col(tomo.IconApplicationProcessManager)
|
||||
col(tomo.IconApplicationSystemInformation)
|
||||
col(tomo.IconApplicationManual)
|
||||
col(tomo.IconApplicationCamera)
|
||||
col(tomo.IconApplicationImageViewer)
|
||||
col(tomo.IconApplicationMediaPlayer)
|
||||
col(tomo.IconApplicationImageEditor)
|
||||
col(tomo.IconApplicationAudioEditor)
|
||||
col(tomo.IconApplicationVideoEditor)
|
||||
col(tomo.IconApplicationClock)
|
||||
col(tomo.IconApplicationCalendar)
|
||||
col(tomo.IconApplicationChecklist)
|
||||
|
||||
row()
|
||||
// categories: applications
|
||||
col(tomo.IconApplications)
|
||||
col(tomo.IconApplicationsAccessories)
|
||||
col(tomo.IconApplicationsDevelopment)
|
||||
col(tomo.IconApplicationsEngineering)
|
||||
col(tomo.IconApplicationsGames)
|
||||
col(tomo.IconApplicationsGraphics)
|
||||
col(tomo.IconApplicationsInternet)
|
||||
col(tomo.IconApplicationsMultimedia)
|
||||
col(tomo.IconApplicationsOffice)
|
||||
col(tomo.IconApplicationsScience)
|
||||
col(tomo.IconApplicationsSystem)
|
||||
col(tomo.IconApplicationsUtilities)
|
||||
// categories: preferences
|
||||
col(tomo.IconPreferences)
|
||||
col(tomo.IconPreferencesDesktop)
|
||||
col(tomo.IconPreferencesPeripherals)
|
||||
col(tomo.IconPreferencesPersonal)
|
||||
col(tomo.IconPreferencesSystem)
|
||||
col(tomo.IconPreferencesNetwork)
|
||||
|
||||
row()
|
||||
// devices
|
||||
col(tomo.IconDevice)
|
||||
col(tomo.IconDeviceCamera)
|
||||
col(tomo.IconDeviceWebCamera)
|
||||
col(tomo.IconDeviceComputer)
|
||||
col(tomo.IconDevicePda)
|
||||
col(tomo.IconDevicePhone)
|
||||
col(tomo.IconDevicePrinter)
|
||||
col(tomo.IconDeviceScanner)
|
||||
col(tomo.IconDeviceMultimediaPlayer)
|
||||
col(tomo.IconDeviceVideoDisplay)
|
||||
col(tomo.IconDeviceAudioInput)
|
||||
col(tomo.IconDeviceAudioOutput)
|
||||
// devices: hardware
|
||||
col(tomo.IconHardware)
|
||||
col(tomo.IconHardwareCPU)
|
||||
col(tomo.IconHardwareGPU)
|
||||
col(tomo.IconHardwareRAM)
|
||||
col(tomo.IconHardwareSoundCard)
|
||||
col(tomo.IconHardwareNetworkAdapter)
|
||||
// devices: power
|
||||
col(tomo.IconPowerBattery)
|
||||
// devices: storage
|
||||
col(tomo.IconStorageHardDisk)
|
||||
col(tomo.IconStorageFloppyDisk)
|
||||
col(tomo.IconStorageSolidState)
|
||||
col(tomo.IconStorageOptical)
|
||||
col(tomo.IconStorageFlashStick)
|
||||
col(tomo.IconStorageFlashCard)
|
||||
col(tomo.IconStorageMagneticTape)
|
||||
// devices: input
|
||||
col(tomo.IconInputGaming)
|
||||
col(tomo.IconInputKeyboard)
|
||||
col(tomo.IconInputMouse)
|
||||
col(tomo.IconInputTablet)
|
||||
|
||||
row()
|
||||
// devices: network
|
||||
col(tomo.IconNetworkWired)
|
||||
col(tomo.IconNetworkWireless)
|
||||
col(tomo.IconNetworkCellular)
|
||||
col(tomo.IconNetworkLocal)
|
||||
col(tomo.IconNetworkInternet)
|
||||
col(tomo.IconNetworkVPN)
|
||||
col(tomo.IconNetworkServer)
|
||||
col(tomo.IconNetworkWorkgroup)
|
||||
|
||||
row()
|
||||
// emblems
|
||||
col(tomo.IconEmblemDefault)
|
||||
col(tomo.IconEmblemEncrypted)
|
||||
col(tomo.IconEmblemFavorite)
|
||||
col(tomo.IconEmblemImportant)
|
||||
col(tomo.IconEmblemReadOnly)
|
||||
col(tomo.IconEmblemShared)
|
||||
col(tomo.IconEmblemSymbolicLink)
|
||||
col(tomo.IconEmblemSynchronized)
|
||||
col(tomo.IconEmblemSystem)
|
||||
col(tomo.IconEmblemUnreadable)
|
||||
|
||||
row()
|
||||
// places
|
||||
col(tomo.IconPlaceDirectory)
|
||||
col(tomo.IconPlaceRemote)
|
||||
col(tomo.IconPlaceHome)
|
||||
col(tomo.IconPlaceDownloads)
|
||||
col(tomo.IconPlaceDesktop)
|
||||
col(tomo.IconPlacePhotos)
|
||||
col(tomo.IconPlaceBooks)
|
||||
col(tomo.IconPlaceBookmarks)
|
||||
col(tomo.IconPlaceTrash)
|
||||
col(tomo.IconPlaceDocuments)
|
||||
col(tomo.IconPlaceRepositories)
|
||||
col(tomo.IconPlaceMusic)
|
||||
col(tomo.IconPlaceArchives)
|
||||
col(tomo.IconPlaceFonts)
|
||||
col(tomo.IconPlaceBinaries)
|
||||
col(tomo.IconPlaceVideos)
|
||||
col(tomo.IconPlace3DObjects)
|
||||
col(tomo.IconPlaceHistory)
|
||||
col(tomo.IconPlacePreferences)
|
||||
|
||||
row()
|
||||
// status: checkbox
|
||||
col(tomo.IconCheckboxChecked)
|
||||
col(tomo.IconCheckboxUnchecked)
|
||||
// status: appointments
|
||||
col(tomo.IconAppointmentMissed)
|
||||
col(tomo.IconAppointmentSoon)
|
||||
// status: dialogs
|
||||
col(tomo.IconDialogError)
|
||||
col(tomo.IconDialogInformation)
|
||||
col(tomo.IconDialogPassword)
|
||||
col(tomo.IconDialogQuestion)
|
||||
col(tomo.IconDialogWarning)
|
||||
// status: directories
|
||||
col(tomo.IconDirectoryDragAccept)
|
||||
col(tomo.IconDirectoryFull)
|
||||
col(tomo.IconDirectoryOpen)
|
||||
col(tomo.IconDirectoryVisiting)
|
||||
// status: trash
|
||||
col(tomo.IconTrashFull)
|
||||
// status: resource
|
||||
col(tomo.IconResourceLoading)
|
||||
col(tomo.IconResourceMissing)
|
||||
// status: mail
|
||||
col(tomo.IconMailAttachment)
|
||||
col(tomo.IconMailUnread)
|
||||
col(tomo.IconMailReplied)
|
||||
col(tomo.IconMailSigned)
|
||||
col(tomo.IconMailSignedVerified)
|
||||
|
||||
row()
|
||||
// status: network
|
||||
row()
|
||||
col(theme.IconStatusCellSignal0)
|
||||
col(theme.IconStatusCellSignal1)
|
||||
col(theme.IconStatusCellSignal2)
|
||||
col(theme.IconStatusCellSignal3)
|
||||
col(theme.IconStatusWirelessSignal0)
|
||||
col(theme.IconStatusWirelessSignal1)
|
||||
col(theme.IconStatusWirelessSignal2)
|
||||
col(theme.IconStatusWirelessSignal3)
|
||||
col(tomo.IconCellularSignal0)
|
||||
col(tomo.IconCellularSignal1)
|
||||
col(tomo.IconCellularSignal2)
|
||||
col(tomo.IconCellularSignal3)
|
||||
col(tomo.IconWirelessSignal0)
|
||||
col(tomo.IconWirelessSignal1)
|
||||
col(tomo.IconWirelessSignal2)
|
||||
col(tomo.IconWirelessSignal3)
|
||||
col(tomo.IconNetworkError)
|
||||
col(tomo.IconNetworkIdle)
|
||||
col(tomo.IconNetworkOffline)
|
||||
col(tomo.IconNetworkReceive)
|
||||
col(tomo.IconNetworkTransmit)
|
||||
col(tomo.IconNetworkTransmitReceive)
|
||||
// status: print
|
||||
col(tomo.IconPrintError)
|
||||
col(tomo.IconPrintPrinting)
|
||||
// status: security
|
||||
col(tomo.IconSecurityHigh)
|
||||
col(tomo.IconSecurityMedium)
|
||||
col(tomo.IconSecurityLow)
|
||||
// status: software
|
||||
col(tomo.IconSoftwareUpdateAvailable)
|
||||
col(tomo.IconSoftwareUpdateUrgent)
|
||||
col(tomo.IconSoftwareInstalling)
|
||||
// status: sync
|
||||
col(tomo.IconSyncError)
|
||||
col(tomo.IconSyncSynchronizing)
|
||||
// status: tasks
|
||||
col(tomo.IconTaskDue)
|
||||
col(tomo.IconTaskPastDue)
|
||||
// status: users
|
||||
col(tomo.IconUserAvailable)
|
||||
col(tomo.IconUserAway)
|
||||
col(tomo.IconUserIdle)
|
||||
col(tomo.IconUserOffline)
|
||||
|
||||
row()
|
||||
// status: power
|
||||
row()
|
||||
col(theme.IconStatusBattery0)
|
||||
col(theme.IconStatusBattery1)
|
||||
col(theme.IconStatusBattery2)
|
||||
col(theme.IconStatusBattery3)
|
||||
col(theme.IconStatusBrightness0)
|
||||
col(theme.IconStatusBrightness1)
|
||||
col(theme.IconStatusBrightness2)
|
||||
col(theme.IconStatusBrightness3)
|
||||
|
||||
col(tomo.IconBattery0)
|
||||
col(tomo.IconBattery1)
|
||||
col(tomo.IconBattery2)
|
||||
col(tomo.IconBattery3)
|
||||
col(tomo.IconBrightness0)
|
||||
col(tomo.IconBrightness1)
|
||||
col(tomo.IconBrightness2)
|
||||
col(tomo.IconBrightness3)
|
||||
// status: media
|
||||
row()
|
||||
col(theme.IconStatusVolume0)
|
||||
col(theme.IconStatusVolume1)
|
||||
col(theme.IconStatusVolume2)
|
||||
col(theme.IconStatusVolume3)
|
||||
|
||||
col(tomo.IconVolume0)
|
||||
col(tomo.IconVolume1)
|
||||
col(tomo.IconVolume2)
|
||||
col(tomo.IconVolume3)
|
||||
col(tomo.IconPlaylistRepeat)
|
||||
col(tomo.IconPlaylistShuffle)
|
||||
// status: weather
|
||||
col(tomo.IconWeatherClear)
|
||||
col(tomo.IconWeatherClearNight)
|
||||
col(tomo.IconWeatherFewClouds)
|
||||
col(tomo.IconWeatherFewCloudsNight)
|
||||
col(tomo.IconWeatherFog)
|
||||
col(tomo.IconWeatherOvercast)
|
||||
col(tomo.IconWeatherSevereAlert)
|
||||
col(tomo.IconWeatherShowers)
|
||||
col(tomo.IconWeatherShowersScattered)
|
||||
col(tomo.IconWeatherSnow)
|
||||
col(tomo.IconWeatherStorm)
|
||||
|
||||
return source
|
||||
}
|
||||
|
||||
type iconTheme struct {
|
||||
texturesSmall map[theme.Icon] canvas.Texture
|
||||
texturesLarge map[theme.Icon] canvas.Texture
|
||||
texturesSmall map[tomo.Icon] canvas.Texture
|
||||
texturesLarge map[tomo.Icon] canvas.Texture
|
||||
}
|
||||
|
||||
func (this *iconTheme) ensure () {
|
||||
@ -200,29 +422,29 @@ func (this *iconTheme) ensure () {
|
||||
this.texturesLarge = generateSource(atlasLargeBytes, 32)
|
||||
}
|
||||
|
||||
func (this *iconTheme) selectSource (size theme.IconSize) map[theme.Icon] canvas.Texture {
|
||||
if size == theme.IconSizeSmall {
|
||||
func (this *iconTheme) selectSource (size tomo.IconSize) map[tomo.Icon] canvas.Texture {
|
||||
if size == tomo.IconSizeSmall {
|
||||
return this.texturesSmall
|
||||
} else {
|
||||
return this.texturesLarge
|
||||
}
|
||||
}
|
||||
|
||||
func (this *iconTheme) Icon (icon theme.Icon, size theme.IconSize) canvas.Texture {
|
||||
func (this *iconTheme) Icon (icon tomo.Icon, size tomo.IconSize) canvas.Texture {
|
||||
this.ensure()
|
||||
source := this.selectSource(size)
|
||||
if texture, ok := source[icon]; ok {
|
||||
return texture
|
||||
}
|
||||
return source[theme.IconUnknown]
|
||||
return source[tomo.IconUnknown]
|
||||
}
|
||||
|
||||
func (this *iconTheme) MimeIcon (mime data.Mime, size theme.IconSize) canvas.Texture {
|
||||
func (this *iconTheme) MimeIcon (mime data.Mime, size tomo.IconSize) canvas.Texture {
|
||||
this.ensure()
|
||||
source := this.selectSource(size)
|
||||
if mime == data.M("inode", "directory") {
|
||||
return source[theme.IconDirectory]
|
||||
return source[tomo.IconPlaceDirectory]
|
||||
} else {
|
||||
return source[theme.IconFile]
|
||||
return source[tomo.Icon("File")]
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,6 @@ package defaultTheme
|
||||
import "image/color"
|
||||
import "git.tebibyte.media/tomo/tomo"
|
||||
import "golang.org/x/image/font/basicfont"
|
||||
import "git.tebibyte.media/tomo/tomo/theme"
|
||||
import dataTheme "git.tebibyte.media/tomo/nasin/internal/theme"
|
||||
|
||||
var colorFocus = color.RGBA { R: 61, G: 128, B: 143, A: 255 }
|
||||
@ -38,15 +37,15 @@ var rules = []dataTheme.Rule {
|
||||
dataTheme.Rule {
|
||||
Default: dataTheme.AS (
|
||||
dataTheme.AttrFace { Face: basicfont.Face7x13 },
|
||||
dataTheme.AttrTextColor { Color: theme.ColorForeground },
|
||||
dataTheme.AttrDotColor { Color: theme.ColorAccent },
|
||||
dataTheme.AttrTextColor { Color: tomo.ColorForeground },
|
||||
dataTheme.AttrDotColor { Color: tomo.ColorAccent },
|
||||
dataTheme.AttrGap { X: 8, Y: 8 },
|
||||
),
|
||||
},
|
||||
|
||||
// *.Button[*]
|
||||
dataTheme.Rule {
|
||||
Role: theme.R("", "Button", ""),
|
||||
Role: tomo.R("", "Button", ""),
|
||||
Default: dataTheme.AS (
|
||||
dataTheme.AttrBorder {
|
||||
outline,
|
||||
@ -56,7 +55,7 @@ var rules = []dataTheme.Rule {
|
||||
},
|
||||
},
|
||||
dataTheme.AttrPadding(tomo.I(4, 8)),
|
||||
dataTheme.AttrColor { Color: theme.ColorRaised },
|
||||
dataTheme.AttrColor { Color: tomo.ColorRaised },
|
||||
),
|
||||
Pressed: dataTheme.AS (
|
||||
dataTheme.AttrBorder {
|
||||
@ -83,7 +82,7 @@ var rules = []dataTheme.Rule {
|
||||
|
||||
// *.TextInput[*]
|
||||
dataTheme.Rule {
|
||||
Role: theme.R("", "TextInput", ""),
|
||||
Role: tomo.R("", "TextInput", ""),
|
||||
Default: dataTheme.AS (
|
||||
dataTheme.AttrBorder {
|
||||
outline,
|
||||
@ -108,7 +107,7 @@ var rules = []dataTheme.Rule {
|
||||
|
||||
// *.TextView[*]
|
||||
dataTheme.Rule {
|
||||
Role: theme.R("", "TextView", ""),
|
||||
Role: tomo.R("", "TextView", ""),
|
||||
Default: dataTheme.AS (
|
||||
dataTheme.AttrBorder {
|
||||
outline,
|
||||
@ -117,14 +116,14 @@ var rules = []dataTheme.Rule {
|
||||
Color: borderColorEngraved,
|
||||
},
|
||||
},
|
||||
dataTheme.AttrColor { Color: theme.ColorSunken },
|
||||
dataTheme.AttrColor { Color: tomo.ColorSunken },
|
||||
dataTheme.AttrPadding(tomo.I(8)),
|
||||
),
|
||||
},
|
||||
|
||||
// *.NumberInput[*]
|
||||
dataTheme.Rule {
|
||||
Role: theme.R("", "NumberInput", ""),
|
||||
Role: tomo.R("", "NumberInput", ""),
|
||||
Default: dataTheme.AS (
|
||||
dataTheme.AttrGap { },
|
||||
),
|
||||
@ -132,7 +131,7 @@ var rules = []dataTheme.Rule {
|
||||
|
||||
// *.Container[sunken]
|
||||
dataTheme.Rule {
|
||||
Role: theme.R("", "Container", "sunken"),
|
||||
Role: tomo.R("", "Container", "sunken"),
|
||||
Default: dataTheme.AS (
|
||||
dataTheme.AttrBorder {
|
||||
outline,
|
||||
@ -141,23 +140,23 @@ var rules = []dataTheme.Rule {
|
||||
Color: borderColorEngraved,
|
||||
},
|
||||
},
|
||||
dataTheme.AttrColor { Color: theme.ColorSunken },
|
||||
dataTheme.AttrColor { Color: tomo.ColorSunken },
|
||||
dataTheme.AttrPadding(tomo.I(8)),
|
||||
),
|
||||
},
|
||||
|
||||
// *.Container[outer]
|
||||
dataTheme.Rule {
|
||||
Role: theme.R("", "Container", "outer"),
|
||||
Role: tomo.R("", "Container", "outer"),
|
||||
Default: dataTheme.AS (
|
||||
dataTheme.AttrColor { Color: theme.ColorBackground },
|
||||
dataTheme.AttrColor { Color: tomo.ColorBackground },
|
||||
dataTheme.AttrPadding(tomo.I(8)),
|
||||
),
|
||||
},
|
||||
|
||||
// *.Heading[*]
|
||||
dataTheme.Rule {
|
||||
Role: theme.R("", "Heading", ""),
|
||||
Role: tomo.R("", "Heading", ""),
|
||||
Default: dataTheme.AS (
|
||||
dataTheme.AttrAlign { X: tomo.AlignMiddle, Y: tomo.AlignMiddle },
|
||||
),
|
||||
@ -165,7 +164,7 @@ var rules = []dataTheme.Rule {
|
||||
|
||||
// *.Separator[*]
|
||||
dataTheme.Rule {
|
||||
Role: theme.R("", "Separator", ""),
|
||||
Role: tomo.R("", "Separator", ""),
|
||||
Default: dataTheme.AS (
|
||||
dataTheme.AttrBorder {
|
||||
tomo.Border {
|
||||
@ -178,7 +177,7 @@ var rules = []dataTheme.Rule {
|
||||
|
||||
// *.Slider[*]
|
||||
dataTheme.Rule {
|
||||
Role: theme.R("", "Slider", ""),
|
||||
Role: tomo.R("", "Slider", ""),
|
||||
Default: dataTheme.AS (
|
||||
dataTheme.AttrBorder {
|
||||
outline,
|
||||
@ -204,19 +203,19 @@ var rules = []dataTheme.Rule {
|
||||
|
||||
// *.Slider[horizontal]
|
||||
dataTheme.Rule {
|
||||
Role: theme.R("", "Slider", "horizontal"),
|
||||
Role: tomo.R("", "Slider", "horizontal"),
|
||||
Default: dataTheme.AS(dataTheme.AttrMinimumSize { X: 48 }),
|
||||
},
|
||||
|
||||
// *.Slider[vertical]
|
||||
dataTheme.Rule {
|
||||
Role: theme.R("", "Slider", "vertical"),
|
||||
Role: tomo.R("", "Slider", "vertical"),
|
||||
Default: dataTheme.AS(dataTheme.AttrMinimumSize { Y: 48 }),
|
||||
},
|
||||
|
||||
// *.SliderHandle[*]
|
||||
dataTheme.Rule {
|
||||
Role: theme.R("", "SliderHandle", ""),
|
||||
Role: tomo.R("", "SliderHandle", ""),
|
||||
Default: dataTheme.AS (
|
||||
dataTheme.AttrBorder {
|
||||
outline,
|
||||
@ -225,14 +224,14 @@ var rules = []dataTheme.Rule {
|
||||
Color: borderColorLifted,
|
||||
},
|
||||
},
|
||||
dataTheme.AttrColor { Color: theme.ColorRaised },
|
||||
dataTheme.AttrColor { Color: tomo.ColorRaised },
|
||||
dataTheme.AttrMinimumSize { X: 12, Y: 12, },
|
||||
),
|
||||
},
|
||||
|
||||
// *.Checkbox[*]
|
||||
dataTheme.Rule {
|
||||
Role: theme.R("", "Checkbox", ""),
|
||||
Role: tomo.R("", "Checkbox", ""),
|
||||
Default: dataTheme.AS (
|
||||
dataTheme.AttrBorder {
|
||||
outline,
|
||||
@ -241,7 +240,7 @@ var rules = []dataTheme.Rule {
|
||||
Color: borderColorEngraved,
|
||||
},
|
||||
},
|
||||
dataTheme.AttrColor { Color: theme.ColorSunken },
|
||||
dataTheme.AttrColor { Color: tomo.ColorSunken },
|
||||
dataTheme.AttrPadding(tomo.I(0, 1, 1, 0)),
|
||||
dataTheme.AttrMinimumSize { X: 19, Y: 19 },
|
||||
),
|
||||
@ -259,7 +258,7 @@ var rules = []dataTheme.Rule {
|
||||
|
||||
// *.LabelCheckbox[*]
|
||||
dataTheme.Rule {
|
||||
Role: theme.R("", "LabelCheckbox", ""),
|
||||
Role: tomo.R("", "LabelCheckbox", ""),
|
||||
Default: dataTheme.AS (
|
||||
dataTheme.AttrGap { X: 8, Y: 8 },
|
||||
),
|
||||
|
Loading…
Reference in New Issue
Block a user