279 lines
13 KiB
Go
279 lines
13 KiB
Go
package theme
|
|
|
|
import "git.tebibyte.media/tomo/tomo/data"
|
|
import "git.tebibyte.media/tomo/tomo/canvas"
|
|
|
|
// IconSize represents the size of an icon.
|
|
type IconSize int; const (
|
|
IconSizeSmall IconSize = iota;
|
|
IconSizeMedium
|
|
IconSizeLarge
|
|
)
|
|
|
|
// String satisfies the fmt.Stringer interface.
|
|
func (size IconSize) String () string {
|
|
switch size {
|
|
case IconSizeSmall: return "small"
|
|
case IconSizeMedium: return "medium"
|
|
case IconSizeLarge: return "large"
|
|
default: return "unknown"
|
|
}
|
|
}
|
|
|
|
// Icon represents an icon ID.
|
|
type Icon string
|
|
|
|
// A list of standard icon IDs.
|
|
const (
|
|
IconUnknown Icon = ""
|
|
|
|
// objects: files
|
|
IconFile Icon = "File" // generic
|
|
IconDirectory Icon = "Directory"
|
|
IconDirectoryFull Icon = "DirectoryFull"
|
|
|
|
// objects: places
|
|
IconPlaceHome Icon = "PlaceHome"
|
|
IconPlaceDownloads Icon = "PlaceDownloads"
|
|
IconPlacePhotos Icon = "PlacePhotos"
|
|
IconPlaceBooks Icon = "PlaceBooks"
|
|
IconPlaceDocuments Icon = "PlaceDocuments"
|
|
IconPlaceRepositories Icon = "PlaceRepositories"
|
|
IconPlaceMusic Icon = "PlaceMusic"
|
|
IconPlaceArchives Icon = "PlaceArchives"
|
|
IconPlaceFonts Icon = "PlaceFonts"
|
|
IconPlaceBinaries Icon = "PlaceBinaries"
|
|
IconPlaceVideos Icon = "PlaceVideos"
|
|
IconPlace3DObjects Icon = "Place3DObjects"
|
|
IconPlaceHistory Icon = "PlaceHistory"
|
|
IconPlacePreferences Icon = "PlacePreferences"
|
|
|
|
// objects: storage
|
|
IconStorage Icon = "Storage" // generic
|
|
IconStorageMagneticTape Icon = "StorageMagneticTape"
|
|
IconStorageFloppyDisk Icon = "StorageFloppyDisk"
|
|
IconStorageHardDisk Icon = "StorageHardDisk"
|
|
IconStorageSolidStateDisk Icon = "StorageSolidState"
|
|
IconStorageFlashStick Icon = "StorageFlashStick"
|
|
IconStorageFlashCard Icon = "StorageFlashCard"
|
|
IconStorageROM Icon = "StorageROM"
|
|
IconStorageRAM Icon = "StorageRAM"
|
|
IconStorageCD Icon = "StorageCD"
|
|
IconStorageDVD Icon = "StorageDVD"
|
|
|
|
// objects: applications
|
|
// Keep these in sync with nasin.ApplicationRole!
|
|
IconApplication Icon = "Application" // generic
|
|
IconApplicationWebBrowser Icon = "ApplicationWebBrowser"
|
|
IconApplicationMesssanger Icon = "ApplicationMesssanger"
|
|
IconApplicationPhone Icon = "ApplicationPhone"
|
|
IconApplicationMail Icon = "ApplicationMail"
|
|
IconApplicationTerminalEmulator Icon = "ApplicationTerminalEmulator"
|
|
IconApplicationFileBrowser Icon = "ApplicationFileBrowser"
|
|
IconApplicationTextEditor Icon = "ApplicationTextEditor"
|
|
IconApplicationDocumentViewer Icon = "ApplicationDocumentViewer"
|
|
IconApplicationWordProcessor Icon = "ApplicationWordProcessor"
|
|
IconApplicationSpreadsheet Icon = "ApplicationSpreadsheet"
|
|
IconApplicationSlideshow Icon = "ApplicationSlideshow"
|
|
IconApplicationCalculator Icon = "ApplicationCalculator"
|
|
IconApplicationPreferences Icon = "ApplicationPreferences"
|
|
IconApplicationProcessManager Icon = "ApplicationProcessManager"
|
|
IconApplicationSystemInformation Icon = "ApplicationSystemInformation"
|
|
IconApplicationManual Icon = "ApplicationManual"
|
|
IconApplicationCamera Icon = "ApplicationCamera"
|
|
IconApplicationImageViewer Icon = "ApplicationImageViewer"
|
|
IconApplicationMediaPlayer Icon = "ApplicationMediaPlayer"
|
|
IconApplicationImageEditor Icon = "ApplicationImageEditor"
|
|
IconApplicationAudioEditor Icon = "ApplicationAudioEditor"
|
|
IconApplicationVideoEditor Icon = "ApplicationVideoEditor"
|
|
IconApplicationClock Icon = "ApplicationClock"
|
|
IconApplicationCalendar Icon = "ApplicationCalendar"
|
|
IconApplicationChecklist Icon = "ApplicationChecklist"
|
|
|
|
// objects: networks
|
|
IconNetwork Icon = "Network" // generic
|
|
IconNetworkLocal Icon = "NetworkLocal"
|
|
IconNetworkInternet Icon = "NetworkInternet"
|
|
IconNetworkEthernet Icon = "NetworkEthernet"
|
|
IconNetworkWireless Icon = "NetworkWireless"
|
|
IconNetworkCell Icon = "NetworkCell"
|
|
IconNetworkBluetooth Icon = "NetworkBluetooth"
|
|
IconNetworkRadio Icon = "NetworkRadio"
|
|
|
|
// objects: devices
|
|
IconDevice Icon = "Device" // generic
|
|
IconDeviceRouter Icon = "DeviceRouter"
|
|
IconDeviceServer Icon = "DeviceServer"
|
|
IconDeviceDesktop Icon = "DeviceDesktop"
|
|
IconDeviceLaptop Icon = "DeviceLaptop"
|
|
IconDeviceTablet Icon = "DeviceTablet"
|
|
IconDevicePhone Icon = "DevicePhone"
|
|
IconDeviceWatch Icon = "DeviceWatch"
|
|
IconDeviceCamera Icon = "DeviceCamera"
|
|
|
|
// objects: peripherals
|
|
IconPeripheral Icon = "Peripheral" // generic
|
|
IconPeripheralKeyboard Icon = "PeripheralKeyboard"
|
|
IconPeripheralMouse Icon = "PeripheralMouse"
|
|
IconPeripheralMonitor Icon = "PeripheralMonitor"
|
|
IconPeripheralWebcam Icon = "PeripheralWebcam"
|
|
IconPeripheralMicrophone Icon = "PeripheralMicrophone"
|
|
IconPeripheralSpeaker Icon = "PeripheralSpeaker"
|
|
IconPeripheralPenTablet Icon = "PeripheralPenTablet"
|
|
IconPeripheralTrackpad Icon = "PeripheralTrackpad"
|
|
IconPeripheralController Icon = "PeripheralController"
|
|
|
|
// objects: i/o
|
|
IconPort Icon = "Port" // generic
|
|
IconPortEthernet Icon = "PortEthernet"
|
|
IconPortUSB Icon = "PortUSB"
|
|
IconPortParallel Icon = "PortParallel"
|
|
IconPortSerial Icon = "PortSerial"
|
|
IconPortPS2 Icon = "PortPS2"
|
|
IconPortDisplay Icon = "PortDisplay"
|
|
IconPortCGA Icon = "PortCGA"
|
|
IconPortVGA Icon = "PortVGA"
|
|
IconPortHDMI Icon = "PortHDMI"
|
|
IconPortDisplayPort Icon = "PortDisplayPort"
|
|
IconPortInfrared Icon = "PortInfrared"
|
|
|
|
// actions: files
|
|
IconActionOpen Icon = "ActionOpen"
|
|
IconActionOpenIn Icon = "ActionOpenIn"
|
|
IconActionSave Icon = "ActionSave"
|
|
IconActionSaveAs Icon = "ActionSaveAs"
|
|
IconActionPrint Icon = "ActionPrint"
|
|
IconActionNew Icon = "ActionNew"
|
|
IconActionNewDirectory Icon = "ActionNewDirectory"
|
|
IconActionDelete Icon = "ActionDelete"
|
|
IconActionRename Icon = "ActionRename"
|
|
IconActionGetInformation Icon = "ActionGetInformation"
|
|
IconActionChangePermissions Icon = "ActionChangePermissions"
|
|
IconActionRevert Icon = "ActionRevert"
|
|
|
|
// actions: list management
|
|
IconActionAdd Icon = "ActionAdd"
|
|
IconActionRemove Icon = "ActionRemove"
|
|
IconActionAddBookmark Icon = "ActionAddBookmark"
|
|
IconActionRemoveBookmark Icon = "ActionRemoveBookmark"
|
|
IconActionAddFavorite Icon = "ActionAddFavorite"
|
|
IconActionRemoveFavorite Icon = "ActionRemoveFavorite"
|
|
|
|
// actions: media
|
|
IconActionPlay Icon = "ActionPlay"
|
|
IconActionPause Icon = "ActionPause"
|
|
IconActionStop Icon = "ActionStop"
|
|
IconActionFastForward Icon = "ActionFastForward"
|
|
IconActionRewind Icon = "ActionRewind"
|
|
IconActionToBeginning Icon = "ActionToBeginning"
|
|
IconActionToEnd Icon = "ActionToEnd"
|
|
IconActionRecord Icon = "ActionRecord"
|
|
IconActionVolumeUp Icon = "ActionVolumeUp"
|
|
IconActionVolumeDown Icon = "ActionVolumeDown"
|
|
IconActionMute Icon = "ActionMute"
|
|
|
|
// actions: editing
|
|
IconActionUndo Icon = "ActionUndo"
|
|
IconActionRedo Icon = "ActionRedo"
|
|
IconActionCut Icon = "ActionCut"
|
|
IconActionCopy Icon = "ActionCopy"
|
|
IconActionPaste Icon = "ActionPaste"
|
|
IconActionFind Icon = "ActionFind"
|
|
IconActionReplace Icon = "ActionReplace"
|
|
IconActionSelectAll Icon = "ActionSelectAll"
|
|
IconActionSelectNone Icon = "ActionSelectNone"
|
|
IconActionIncrement Icon = "ActionIncrement"
|
|
IconActionDecrement Icon = "ActionDecrement"
|
|
|
|
// actions: window management
|
|
IconActionClose Icon = "ActionClose"
|
|
IconActionQuit Icon = "ActionQuit"
|
|
IconActionIconify Icon = "ActionIconify"
|
|
IconActionShade Icon = "ActionShade"
|
|
IconActionMaximize Icon = "ActionMaximize"
|
|
IconActionFullScreen Icon = "ActionFullScreen"
|
|
IconActionRestore Icon = "ActionRestore"
|
|
|
|
// actions: view
|
|
IconActionExpand Icon = "ActionExpand"
|
|
IconActionContract Icon = "ActionContract"
|
|
IconActionBack Icon = "ActionBack"
|
|
IconActionForward Icon = "ActionForward"
|
|
IconActionUp Icon = "ActionUp"
|
|
IconActionDown Icon = "ActionDown"
|
|
IconActionReload Icon = "ActionReload"
|
|
IconActionZoomIn Icon = "ActionZoomIn"
|
|
IconActionZoomOut Icon = "ActionZoomOut"
|
|
IconActionZoomReset Icon = "ActionZoomReset"
|
|
IconActionMove Icon = "ActionMove"
|
|
IconActionResize Icon = "ActionResize"
|
|
IconActionGoTo Icon = "ActionGoTo"
|
|
|
|
// actions: tools
|
|
IconActionTransform Icon = "ActionTransform"
|
|
IconActionTranslate Icon = "ActionTranslate"
|
|
IconActionRotate Icon = "ActionRotate"
|
|
IconActionScale Icon = "ActionScale"
|
|
IconActionWarp Icon = "ActionWarp"
|
|
IconActionCornerPin Icon = "ActionCornerPin"
|
|
IconActionSelectRectangle Icon = "ActionSelectRectangle"
|
|
IconActionSelectEllipse Icon = "ActionSelectEllipse"
|
|
IconActionSelectLasso Icon = "ActionSelectLasso"
|
|
IconActionSelectGeometric Icon = "ActionSelectGeometric"
|
|
IconActionSelectAuto Icon = "ActionSelectAuto"
|
|
IconActionCrop Icon = "ActionCrop"
|
|
IconActionFill Icon = "ActionFill"
|
|
IconActionGradient Icon = "ActionGradient"
|
|
IconActionPencil Icon = "ActionPencil"
|
|
IconActionBrush Icon = "ActionBrush"
|
|
IconActionEraser Icon = "ActionEraser"
|
|
IconActionText Icon = "ActionText"
|
|
IconActionEyedropper Icon = "ActionEyedropper"
|
|
|
|
// status: dialog
|
|
IconStatusInformation Icon = "StatusInformation"
|
|
IconStatusQuestion Icon = "StatusQuestion"
|
|
IconStatusWarning Icon = "StatusWarning"
|
|
IconStatusError Icon = "StatusError"
|
|
IconStatusCancel Icon = "StatusCancel"
|
|
IconStatusOkay Icon = "StatusOkay"
|
|
|
|
// status: network
|
|
IconStatusCellSignal0 Icon = "StatusCellSignal0"
|
|
IconStatusCellSignal1 Icon = "StatusCellSignal1"
|
|
IconStatusCellSignal2 Icon = "StatusCellSignal2"
|
|
IconStatusCellSignal3 Icon = "StatusCellSignal3"
|
|
IconStatusWirelessSignal0 Icon = "StatusWirelessSignal0"
|
|
IconStatusWirelessSignal1 Icon = "StatusWirelessSignal1"
|
|
IconStatusWirelessSignal2 Icon = "StatusWirelessSignal2"
|
|
IconStatusWirelessSignal3 Icon = "StatusWirelessSignal3"
|
|
|
|
// status: power
|
|
IconStatusBattery0 Icon = "StatusBattery0"
|
|
IconStatusBattery1 Icon = "StatusBattery1"
|
|
IconStatusBattery2 Icon = "StatusBattery2"
|
|
IconStatusBattery3 Icon = "StatusBattery3"
|
|
IconStatusBrightness0 Icon = "StatusBrightness0"
|
|
IconStatusBrightness1 Icon = "StatusBrightness1"
|
|
IconStatusBrightness2 Icon = "StatusBrightness2"
|
|
IconStatusBrightness3 Icon = "StatusBrightness3"
|
|
|
|
// status: media
|
|
IconStatusVolume0 Icon = "StatusVolume0"
|
|
IconStatusVolume1 Icon = "StatusVolume1"
|
|
IconStatusVolume2 Icon = "StatusVolume2"
|
|
IconStatusVolume3 Icon = "StatusVolume3"
|
|
)
|
|
|
|
// Texture returns a texture of the corresponding icon ID.
|
|
func (id Icon) Texture (size IconSize) canvas.Texture {
|
|
if current == nil { return nil }
|
|
return current.Icon(id, size)
|
|
}
|
|
|
|
// MimeIcon returns an icon corresponding to a MIME type.
|
|
func MimeIcon (mime data.Mime, size IconSize) canvas.Texture {
|
|
if current == nil { return nil }
|
|
return current.MimeIcon(mime, size)
|
|
}
|