diff --git a/internal/theme/default/assets/icons-large.png b/internal/theme/default/assets/icons-large.png index 02c8772..94d9605 100644 Binary files a/internal/theme/default/assets/icons-large.png and b/internal/theme/default/assets/icons-large.png differ diff --git a/internal/theme/default/assets/icons-large.xcf b/internal/theme/default/assets/icons-large.xcf index 1495c6c..cc26bec 100644 Binary files a/internal/theme/default/assets/icons-large.xcf and b/internal/theme/default/assets/icons-large.xcf differ diff --git a/internal/theme/default/assets/icons-small.png b/internal/theme/default/assets/icons-small.png index c3b2fdb..e5d3d5b 100644 Binary files a/internal/theme/default/assets/icons-small.png and b/internal/theme/default/assets/icons-small.png differ diff --git a/internal/theme/default/assets/icons-small.xcf b/internal/theme/default/assets/icons-small.xcf index 1ea13b9..710073f 100644 Binary files a/internal/theme/default/assets/icons-small.xcf and b/internal/theme/default/assets/icons-small.xcf differ diff --git a/internal/theme/default/assets/old/icons-large.png b/internal/theme/default/assets/old/icons-large.png new file mode 100644 index 0000000..02c8772 Binary files /dev/null and b/internal/theme/default/assets/old/icons-large.png differ diff --git a/internal/theme/default/assets/old/icons-large.xcf b/internal/theme/default/assets/old/icons-large.xcf new file mode 100644 index 0000000..1495c6c Binary files /dev/null and b/internal/theme/default/assets/old/icons-large.xcf differ diff --git a/internal/theme/default/assets/old/icons-small.png b/internal/theme/default/assets/old/icons-small.png new file mode 100644 index 0000000..c3b2fdb Binary files /dev/null and b/internal/theme/default/assets/old/icons-small.png differ diff --git a/internal/theme/default/assets/old/icons-small.xcf b/internal/theme/default/assets/old/icons-small.xcf new file mode 100644 index 0000000..1ea13b9 Binary files /dev/null and b/internal/theme/default/assets/old/icons-small.xcf differ diff --git a/internal/theme/default/default.go b/internal/theme/default/default.go index 4482c08..7d6148c 100644 --- a/internal/theme/default/default.go +++ b/internal/theme/default/default.go @@ -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 { }, diff --git a/internal/theme/default/icon.go b/internal/theme/default/icon.go index 5f68417..b272a33 100644 --- a/internal/theme/default/icon.go +++ b/internal/theme/default/icon.go @@ -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")] } } diff --git a/internal/theme/default/style.go b/internal/theme/default/style.go index 7b3b023..2374db7 100644 --- a/internal/theme/default/style.go +++ b/internal/theme/default/style.go @@ -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 }, ),