diff --git a/meson.build b/meson.build index 74ed227..81d8725 100644 --- a/meson.build +++ b/meson.build @@ -31,16 +31,18 @@ executable( gresource, 'src/Application.vala', 'src/CategoryView.vala', - 'src/IconView.vala', 'src/MainWindow.vala', - 'src/Widgets/IconListRow.vala', + 'src/Services/Collection.vala', + 'src/Widgets/IconListChild.vala', 'src/Widgets/SidebarRow.vala', + 'src/Dialogs/IconView.vala', dependencies: [ dependency('glib-2.0', version: '>= 2.78'), dependency('gobject-2.0'), dependency('granite-7'), dependency('gtk4'), - dependency('gtksourceview-5') + dependency('gtksourceview-5'), + dependency('libadwaita-1') ], install : true ) diff --git a/src/Application.vala b/src/Application.vala index 6c46a67..2e9da0f 100644 --- a/src/Application.vala +++ b/src/Application.vala @@ -3,8 +3,20 @@ * SPDX-FileCopyrightText: 2017-2022 elementary, Inc. (https://elementary.io) */ -public class IconBrowser.App : Gtk.Application { - public App () { +public class IconBrowser : Gtk.Application { + public static IconBrowser _instance = null; + public static IconBrowser instance { + get { + if (_instance == null) { + _instance = new IconBrowser (); + } + return _instance; + } + } + + public MainWindow main_window; + + public IconBrowser () { Object ( application_id: "io.elementary.iconbrowser", flags: ApplicationFlags.FLAGS_NONE @@ -31,7 +43,7 @@ public class IconBrowser.App : Gtk.Application { protected override void activate () { if (active_window == null) { - var main_window = new MainWindow (this); + main_window = new MainWindow (this); /* * This is very finicky. Bind size after present else set_titlebar gives us bad sizes @@ -53,6 +65,7 @@ public class IconBrowser.App : Gtk.Application { } public static int main (string[] args) { - return new IconBrowser.App ().run (args); + IconBrowser app = IconBrowser.instance; + return app.run (args); } } diff --git a/src/CategoryView.vala b/src/CategoryView.vala index b962ea7..0a68ae1 100644 --- a/src/CategoryView.vala +++ b/src/CategoryView.vala @@ -6,2397 +6,66 @@ public class CategoryView : Gtk.Box { public string category_name { get; construct; } - public Gtk.ListBox listbox { get; private set; } + public Gtk.FlowBox flowbox { get; private set; } public Gtk.SearchEntry search_entry { get; private set; } - public enum Category { - ACTIONS, - APPS, - CATEGORIES, - DEVICES, - EMBLEMS, - EMOTES, - MIMES, - PLACES, - STATUS; + construct { + search_entry = new Gtk.SearchEntry () { + hexpand = true, + placeholder_text = _("Search Names or Descriptions"), + valign = Gtk.Align.CENTER, + }; - public string to_string () { - switch (this) { - case ACTIONS: - return _("Actions"); - case APPS: - return _("Applications"); - case CATEGORIES: - return _("Categories"); - case DEVICES: - return _("Devices"); - case EMBLEMS: - return _("Emblems"); - case EMOTES: - return _("Emotes"); - case MIMES: - return _("Media Types"); - case PLACES: - return _("Places"); - case STATUS: - return _("Status"); - default: - return _("OTHER"); - } - } + var symbolic_switch = new Granite.SwitchModelButton (_("Symbolic")); - public static Category[] all () { - return { ACTIONS, APPS, CATEGORIES, DEVICES, EMBLEMS, EMOTES, MIMES, PLACES, STATUS }; - } - } + var menu_popover_box = new Gtk.Box (Gtk.Orientation.VERTICAL, 0) { + width_request = 250, + margin_bottom = 3, + margin_top = 3 + }; - private struct Icon { - string name; - string description; - Category category; - } + menu_popover_box.append (symbolic_switch); - static Icon[] icons = { - Icon () { - name = "address-book-new", - description = _("Create a new address book"), - category = ACTIONS - }, - Icon () { - name = "align-horizontal-center", - description = _("Align objects to center along the X axis"), - category = ACTIONS - }, - Icon () { - name = "align-horizontal-left", - description = _("Align objects left along the X axis"), - category = ACTIONS - }, - Icon () { - name = "align-horizontal-right", - description = _("Align objects right along the X axis"), - category = ACTIONS - }, - Icon () { - name = "align-vertical-bottom", - description = _("Align objects to bottom along the Y axis"), - category = ACTIONS - }, - Icon () { - name = "align-vertical-center", - description = _("Align objects to center along the Y axis"), - category = ACTIONS - }, - Icon () { - name = "align-vertical-top", - description = _("Align objects to top along the Y axis"), - category = ACTIONS - }, - Icon () { - name = "application-exit", - description = _("Used for exiting an application"), - category = ACTIONS - }, - Icon () { - name = "appointment-new", - description = _("Create a new appointment in a calendaring application"), - category = ACTIONS - }, - Icon () { - name = "bookmark-new", - description = _("Create a new bookmark"), - category = ACTIONS - }, - Icon () { - name = "browser-download", - description = _("Download a file from the Internet"), - category = ACTIONS - }, - Icon () { - name = "call-start", - description = _("Initiate or accept a call"), - category = ACTIONS - }, - Icon () { - name = "call-stop", - description = _("Stop the current call"), - category = ACTIONS - }, - Icon () { - name = "color-picker", - description = _("Pick a color from elsewhere on screen"), - category = ACTIONS - }, - Icon () { - name = "contact-new", - description = _("Create a new contact in an address book application"), - category = ACTIONS - }, - Icon () { - name = "distribute-horizontal-center", - description = _("Distribute the center lines of objects horizontally"), - category = ACTIONS - }, - Icon () { - name = "distribute-horizontal-gaps", - description = _("Make horizontal gaps between objects equal"), - category = ACTIONS - }, - Icon () { - name = "distribute-horizontal-left", - description = _("Distribute left edges of objects horizontally"), - category = ACTIONS - }, - Icon () { - name = "distribute-horizontal-right", - description = _("Distribute right edges of objects horizontally"), - category = ACTIONS - }, - Icon () { - name = "distribute-vertical-bottom", - description = _("Distribute bottom edges of objects vertically"), - category = ACTIONS - }, - Icon () { - name = "distribute-vertical-center", - description = _("Distribute center lines of objects vertically"), - category = ACTIONS - }, - Icon () { - name = "distribute-vertical-gaps", - description = _("Make vertical gaps between objects equal"), - category = ACTIONS - }, - Icon () { - name = "distribute-vertical-top", - description = _("Distribute top edges of objects vertically"), - category = ACTIONS - }, - Icon () { - name = "document-export", - description = _("Export a document"), - category = ACTIONS - }, - Icon () { - name = "document-import", - description = _("Import a document"), - category = ACTIONS - }, - Icon () { - name = "document-new", - description = _("Create a new document"), - category = ACTIONS - }, - Icon () { - name = "document-open", - description = _("Open a document"), - category = ACTIONS - }, - Icon () { - name = "document-open-recent", - description = _("Open a document that was recently opened"), - category = ACTIONS - }, - Icon () { - name = "document-page-setup", - description = _("The page setup action of a document editor"), - category = ACTIONS - }, - Icon () { - name = "document-print", - description = _("Print"), - category = ACTIONS - }, - Icon () { - name = "document-print-preview", - description = _("The print preview action of an application"), - category = ACTIONS - }, - Icon () { - name = "document-properties", - description = _("View the properties of a document"), - category = ACTIONS - }, - Icon () { - name = "document-revert", - description = _("Revert to a previous version of a document"), - category = ACTIONS - }, - Icon () { - name = "document-save", - description = _("Save"), - category = ACTIONS - }, - Icon () { - name = "document-save-as", - description = _("Save as"), - category = ACTIONS - }, - Icon () { - name = "document-send", - description = _("Send"), - category = ACTIONS - }, - Icon () { - name = "edit", - description = _("Edit"), - category = ACTIONS - }, - Icon () { - name = "edit-clear", - description = _("Clear"), - category = ACTIONS - }, - Icon () { - name = "edit-copy", - description = _("Copy"), - category = ACTIONS - }, - Icon () { - name = "edit-cut", - description = _("Cut"), - category = ACTIONS - }, - Icon () { - name = "edit-delete", - description = _("Delete"), - category = ACTIONS - }, - Icon () { - name = "edit-find", - description = _("Find"), - category = ACTIONS - }, - Icon () { - name = "edit-find-replace", - description = _("Find & Replace"), - category = ACTIONS - }, - Icon () { - name = "edit-flag", - description = _("Flag an item, such as a spam email"), - category = ACTIONS - }, - Icon () { - name = "edit-paste", - description = _("Paste"), - category = ACTIONS - }, - Icon () { - name = "edit-redo", - description = _("Redo"), - category = ACTIONS - }, - Icon () { - name = "edit-select-all", - description = _("Select all"), - category = ACTIONS - }, - Icon () { - name = "edit-undo", - description = _("Undo"), - category = ACTIONS - }, - Icon () { - name = "event-new", - description = _("Create a new calendar event"), - category = ACTIONS - }, - Icon () { - name = "folder-copy", - description = _("Copy a folder"), - category = ACTIONS - }, - Icon () { - name = "folder-move", - description = _("Move a folder"), - category = ACTIONS - }, - Icon () { - name = "folder-new", - description = _("Create a new folder"), - category = ACTIONS - }, - Icon () { - name = "format-indent-less", - description = _("Decrease indent"), - category = ACTIONS - }, - Icon () { - name = "format-indent-more", - description = _("Increase indent"), - category = ACTIONS - }, - Icon () { - name = "format-justify-center", - description = _("Center justify text"), - category = ACTIONS - }, - Icon () { - name = "format-justify-fill", - description = _("Fill justify text"), - category = ACTIONS - }, - Icon () { - name = "format-justify-left", - description = _("Left justify text"), - category = ACTIONS - }, - Icon () { - name = "format-justify-right", - description = _("Right justify text"), - category = ACTIONS - }, - Icon () { - name = "format-text-direction-ltr", - description = _("Format text as left-to-right"), - category = ACTIONS - }, - Icon () { - name = "format-text-direction-rtl", - description = _("Format text as right-to-left"), - category = ACTIONS - }, - Icon () { - name = "format-text-bold", - description = _("Format text as bold"), - category = ACTIONS - }, - Icon () { - name = "format-text-highlight", - description = _("Format text as highlighted"), - category = ACTIONS - }, - Icon () { - name = "format-text-italic", - description = _("Format text as italic"), - category = ACTIONS - }, - Icon () { - name = "format-text-underline", - description = _("Format text as underlined"), - category = ACTIONS - }, - Icon () { - name = "format-text-strikethrough", - description = _("Format text as being struck through"), - category = ACTIONS - }, - Icon () { - name = "go-bottom", - description = _("Go to the bottom, such as in a list"), - category = ACTIONS - }, - Icon () { - name = "go-down", - description = _("Go down, such as in a list"), - category = ACTIONS - }, - Icon () { - name = "go-first", - description = _("Go to the first item, such as in a list"), - category = ACTIONS - }, - Icon () { - name = "go-home", - description = _("Go to the home location"), - category = ACTIONS - }, - Icon () { - name = "go-jump", - description = _("Jump to a location"), - category = ACTIONS - }, - Icon () { - name = "go-last", - description = _("Go to the last item, such as in a list"), - category = ACTIONS - }, - Icon () { - name = "go-next", - description = _("Go forward to the next item, such as in a list or navigation"), - category = ACTIONS - }, - Icon () { - name = "go-previous", - description = _("Go back to the previous item, such as in a list or navigation"), - category = ACTIONS - }, - Icon () { - name = "go-top", - description = _("Go to the top, such as in a list"), - category = ACTIONS - }, - Icon () { - name = "go-up", - description = _("Go up, such as in a list"), - category = ACTIONS - }, - Icon () { - name = "help-about", - description = _("Information about an app"), - category = ACTIONS - }, - Icon () { - name = "help-contents", - description = _("Get help"), - category = ACTIONS - }, - Icon () { - name = "help-faq", - description = _("Frequently asked questions"), - category = ACTIONS - }, - Icon () { - name = "image-adjust", - description = _("Make adjustments to an image"), - category = ACTIONS - }, - Icon () { - name = "image-auto-adjust", - description = _("Automatically adjust an image"), - category = ACTIONS - }, - Icon () { - name = "image-crop", - description = _("Crop an image"), - category = ACTIONS - }, - Icon () { - name = "image-red-eye", - description = _("Remove red eye from an image"), - category = ACTIONS - }, - Icon () { - name = "insert-image", - description = _("Insert an image"), - category = ACTIONS - }, - Icon () { - name = "insert-link", - description = _("Insert a link"), - category = ACTIONS - }, - Icon () { - name = "insert-object", - description = _("Insert an object"), - category = ACTIONS - }, - Icon () { - name = "insert-text", - description = _("Insert text"), - category = ACTIONS - }, - Icon () { - name = "list-add", - description = _("Add to a list"), - category = ACTIONS - }, - Icon () { - name = "list-remove", - description = _("Remove from a list"), - category = ACTIONS - }, - Icon () { - name = "mail-forward", - description = _("Forward an email"), - category = ACTIONS - }, - Icon () { - name = "mail-mark-important", - description = _("Mark an email as important"), - category = ACTIONS - }, - Icon () { - name = "mail-mark-junk", - description = _("Mark an email as junk or spam"), - category = ACTIONS - }, - Icon () { - name = "mail-mark-notjunk", - description = _("Mark an email as not junk or spam"), - category = ACTIONS - }, - Icon () { - name = "mail-mark-read", - description = _("Mark an email as read"), - category = ACTIONS - }, - Icon () { - name = "mail-mark-unread", - description = _("Mark an email as unread"), - category = ACTIONS - }, - Icon () { - name = "mail-message-new", - description = _("Compose a new email"), - category = ACTIONS - }, - Icon () { - name = "mail-reply-all", - description = _("Reply to all participants of an email"), - category = ACTIONS - }, - Icon () { - name = "mail-reply-sender", - description = _("Reply to the sender of an email"), - category = ACTIONS - }, - Icon () { - name = "mail-send", - description = _("Send an email"), - category = ACTIONS - }, - Icon () { - name = "media-eject", - description = _("Eject removable media"), - category = ACTIONS - }, - Icon () { - name = "media-playback-pause", - description = _("Pause media playback"), - category = ACTIONS - }, - Icon () { - name = "media-playback-start", - description = _("Start playing media"), - category = ACTIONS - }, - Icon () { - name = "media-playback-stop", - description = _("Stop playing media"), - category = ACTIONS - }, - Icon () { - name = "media-record", - description = _("Start recording"), - category = ACTIONS - }, - Icon () { - name = "media-seek-backward", - description = _("Seek backwards or rewind"), - category = ACTIONS - }, - Icon () { - name = "media-seek-forward", - description = _("Seek forwards, or fastforward"), - category = ACTIONS - }, - Icon () { - name = "media-skip-backward", - description = _("Skip backwards, such as to the previous track"), - category = ACTIONS - }, - Icon () { - name = "media-skip-forward", - description = _("Skip forwards, such as to the next track"), - category = ACTIONS - }, - Icon () { - name = "object-flip-horizontal", - description = _("Flip an object horizontally"), - category = ACTIONS - }, - Icon () { - name = "object-flip-vertical", - description = _("Flip an object vertically"), - category = ACTIONS - }, - Icon () { - name = "object-rotate-left", - description = _("Rotate an object to the left or counter-clockwise"), - category = ACTIONS - }, - Icon () { - name = "object-rotate-right", - description = _("Rotate an object to the right or clockwise"), - category = ACTIONS - }, - Icon () { - name = "office-database-new", - description = _("Create a new database"), - category = ACTIONS - }, - Icon () { - name = "process-stop", - description = _("Stop an action that may take a while to process, such as web page loading in a browser"), - category = ACTIONS - }, - Icon () { - name = "system-lock-screen", - description = _("Lock the screen or the user's session"), - category = ACTIONS - }, - Icon () { - name = "system-log-out", - description = _("Log out of the user's session"), - category = ACTIONS - }, - Icon () { - name = "system-run", - description = _("Run a system app or command"), - category = ACTIONS - }, - Icon () { - name = "system-search", - description = _("Search the system"), - category = ACTIONS - }, - Icon () { - name = "system-reboot", - description = _("Restart the device"), - category = ACTIONS - }, - Icon () { - name = "system-shutdown", - description = _("Shut the device down"), - category = ACTIONS - }, - Icon () { - name = "tag-new", - description = _("Create a new tag"), - category = ACTIONS - }, - Icon () { - name = "tools-check-spelling", - description = _("Check spelling"), - category = ACTIONS - }, - Icon () { - name = "tools-timer", - description = _("Set or adjust a timer"), - category = ACTIONS - }, - Icon () { - name = "view-column", - description = _("Display the current view as columns"), - category = ACTIONS - }, - Icon () { - name = "view-continuous", - description = _("display the current view in a continously scrolling list"), - category = ACTIONS - }, - Icon () { - name = "view-dual", - description = _("display the current view as a split, dual view"), - category = ACTIONS - }, - Icon () { - name = "view-fullscreen", - description = _("View fullscreen"), - category = ACTIONS - }, - Icon () { - name = "view-grid", - description = _("Display the current view as a grid of images or icons"), - category = ACTIONS - }, - Icon () { - name = "view-refresh", - description = _("Refresh or reload the current view"), - category = ACTIONS - }, - Icon () { - name = "view-restore", - description = _("Leave fullscreen and return to a normal window"), - category = ACTIONS - }, - Icon () { - name = "view-more", - description = _("View more information about the given context in a popover or menu"), - category = ACTIONS - }, - Icon () { - name = "view-more-horizontal", - description = _("View more information about the given context in a new view or window"), - category = ACTIONS - }, - Icon () { - name = "view-paged", - description = _("Display the current view as a collection of pages"), - category = ACTIONS - }, - Icon () { - name = "view-pin", - description = _("Pin the current view so that it does not automatically hide"), - category = ACTIONS - }, - Icon () { - name = "view-sort-ascending", - description = _("Sort items in an ascending order, such as in a list"), - category = ACTIONS - }, - Icon () { - name = "view-sort-descending", - description = _("Sort items in a descending order, such as in a list"), - category = ACTIONS - }, - Icon () { - name = "window-close", - description = _("Close the window"), - category = ACTIONS - }, - Icon () { - name = "window-new", - description = _("Create a new window"), - category = ACTIONS - }, - Icon () { - name = "zoom-fit-best", - description = _("Zoom to the best fit"), - category = ACTIONS - }, - Icon () { - name = "zoom-in", - description = _("Zoom in"), - category = ACTIONS - }, - Icon () { - name = "zoom-original", - description = _("Zoom to the original size"), - category = ACTIONS - }, - Icon () { - name = "zoom-out", - description = _("Zoom out"), - category = ACTIONS - }, - Icon () { - name = "accessories-calculator", - description = _("Calculator"), - category = APPS - }, - Icon () { - name = "accessories-character-map", - description = _("International and extended text character map"), - category = APPS - }, - Icon () { - name = "accessories-dictionary", - description = _("Dictionary"), - category = APPS - }, - Icon () { - name = "accessories-screenshot-tool", - description = _("Screenshot application"), - category = APPS - }, - Icon () { - name = "accessories-text-editor", - description = _("Text editor"), - category = APPS - }, - Icon () { - name = "application-default-icon", - description = _("Default or unprovided app icon"), - category = APPS - }, - Icon () { - name = "system-file-manager", - description = _("Files"), - category = APPS - }, - Icon () { - name = "system-software-install", - description = _("AppCenter or software installer"), - category = APPS - }, - Icon () { - name = "system-software-update", - description = _("Software updater"), - category = APPS - }, - Icon () { - name = "utilities-system-monitor", - description = _("System resource monitor"), - category = APPS - }, - Icon () { - name = "utilities-terminal", - description = _("Terminal"), - category = APPS - }, - Icon () { - name = "applications-accessories", - description = _("Accessory or utility app category"), - category = CATEGORIES - }, - Icon () { - name = "applications-development", - description = _("Programming, software development, code, or IDE app category"), - category = CATEGORIES - }, - Icon () { - name = "applications-education", - description = _("Education, learning, or school app category"), - category = CATEGORIES - }, - Icon () { - name = "applications-engineering", - description = _("Engineering app category"), - category = CATEGORIES - }, - Icon () { - name = "applications-games", - description = _("Games app category"), - category = CATEGORIES - }, - Icon () { - name = "applications-graphics", - description = _("Graphics, drawing, art, or photo manipulation app category"), - category = CATEGORIES - }, - Icon () { - name = "applications-internet", - description = _("Internet or web related app category"), - category = CATEGORIES - }, - Icon () { - name = "applications-multimedia", - description = _("Multimedia, audio, or video app category"), - category = CATEGORIES - }, - Icon () { - name = "applications-office", - description = _("Office app category"), - category = CATEGORIES - }, - Icon () { - name = "applications-other", - description = _("Other or uncategorized app category"), - category = CATEGORIES - }, - Icon () { - name = "applications-science", - description = _("Science app category"), - category = CATEGORIES - }, - Icon () { - name = "applications-system", - description = _("System tools or OS app category"), - category = CATEGORIES - }, - Icon () { - name = "applications-utilities", - description = _("Utility app category"), - category = CATEGORIES - }, - Icon () { - name = "preferences-bluetooth", - description = _("Bluetooth settings"), - category = CATEGORIES - }, - Icon () { - name = "preferences-color", - description = _("Color settings such as printer, display, or camera calibration"), - category = CATEGORIES - }, - Icon () { - name = "preferences-desktop", - description = _("Desktop interface settings"), - category = CATEGORIES - }, - Icon () { - name = "preferences-desktop-accessibility", - description = _("Universal access settings"), - category = CATEGORIES - }, - Icon () { - name = "preferences-desktop-accessibility-pointing", - description = _("Universal access settings for pointing, such as controlling the cursor"), - category = CATEGORIES - }, - Icon () { - name = "preferences-desktop-accessibility-zoom", - description = _("Universal access settings for zooming or magnifying"), - category = CATEGORIES - }, - Icon () { - name = "preferences-desktop-applications", - description = _("App-related settings, such as default or startup apps"), - category = CATEGORIES - }, - Icon () { - name = "preferences-desktop-display", - description = _("Display settings, such as resolution or scaling"), - category = CATEGORIES - }, - Icon () { - name = "preferences-desktop-font", - description = _("Font settings"), - category = CATEGORIES - }, - Icon () { - name = "preferences-desktop-keyboard", - description = _("Keyboard settings, such as layout or shortcuts"), - category = CATEGORIES - }, - Icon () { - name = "preferences-desktop-locale", - description = _("International localization, language, or region settings"), - category = CATEGORIES - }, - Icon () { - name = "preferences-desktop-online-accounts", - description = _("Online account and cloud sync or sign in settings"), - category = CATEGORIES - }, - Icon () { - name = "preferences-desktop-peripherals", - description = _("Settings for peripherals, such as a mouse or keyboard"), - category = CATEGORIES - }, - Icon () { - name = "preferences-desktop-sound", - description = _("Sound or audio input and output settings"), - category = CATEGORIES - }, - Icon () { - name = "preferences-desktop-theme", - description = _("Look and feel, appearance, style, or theme settings"), - category = CATEGORIES - }, - Icon () { - name = "preferences-desktop-wallpaper", - description = _("Desktop wallpaper or background settings"), - category = CATEGORIES - }, - Icon () { - name = "preferences-other", - description = _("Other, miscellaneous, or uncategorized settings"), - category = CATEGORIES - }, - Icon () { - name = "preferences-system", - description = _("System settings or preferences"), - category = CATEGORIES - }, - Icon () { - name = "preferences-system-network", - description = _("Network settings, such as wireless, Ethernet, or VPN"), - category = CATEGORIES - }, - Icon () { - name = "preferences-system-notifications", - description = _("Notification alert settings"), - category = CATEGORIES - }, - Icon () { - name = "preferences-system-power", - description = _("Power management or energy usage settings, such as battery"), - category = CATEGORIES - }, - Icon () { - name = "preferences-system-privacy", - description = _("Privacy and security settings"), - category = CATEGORIES - }, - Icon () { - name = "preferences-system-sharing", - description = _("Sharing settings, such as library sharing or media streaming over a network"), - category = CATEGORIES - }, - Icon () { - name = "preferences-system-time", - description = _("Time and date settings"), - category = CATEGORIES - }, - Icon () { - name = "preferences-system-windows", - description = _("Window management settings"), - category = CATEGORIES - }, - Icon () { - name = "system-help", - description = _("Help"), - category = CATEGORIES - }, - Icon () { - name = "audio-card", - description = _("Audio output device, such as a sound card or speaker"), - category = DEVICES - }, - Icon () { - name = "audio-headphones", - description = _("Audio output device representing headphones"), - category = DEVICES - }, - Icon () { - name = "audio-headset", - description = _("Audio output device representing a headset"), - category = DEVICES - }, - Icon () { - name = "audio-input-microphone", - description = _("Microphone"), - category = DEVICES - }, - Icon () { - name = "audio-subwoofer", - description = _("Subwoofer or bass speaker"), - category = DEVICES - }, - Icon () { - name = "battery", - description = _("Battery"), - category = DEVICES - }, - Icon () { - name = "bluetooth", - description = _("Bluetooth"), - category = DEVICES - }, - Icon () { - name = "camera-photo", - description = _("Digital photo or still camera"), - category = DEVICES - }, - Icon () { - name = "camera-video", - description = _("Video or movie camera"), - category = DEVICES - }, - Icon () { - name = "camera-web", - description = _("Webcam or built-in camera"), - category = DEVICES - }, - Icon () { - name = "computer", - description = _("Generic or desktop computer"), - category = DEVICES - }, - Icon () { - name = "computer-laptop", - description = _("Laptop or notebook computer"), - category = DEVICES - }, - Icon () { - name = "drive-harddisk", - description = _("Hard disk or storage drive"), - category = DEVICES - }, - Icon () { - name = "drive-optical", - description = _("Optical drive, such as for CD, DVD, or Blu-ray discs"), - category = DEVICES - }, - Icon () { - name = "drive-removable-media", - description = _("Removable storage device, such as a portable hard drive"), - category = DEVICES - }, - Icon () { - name = "drive-removable-media-usb", - description = _("USB drive or stick, such as a flash, jump, or thumb drive"), - category = DEVICES - }, - Icon () { - name = "input-gaming", - description = _("Video game controller, such as a paddle, remote, or joystick"), - category = DEVICES - }, - Icon () { - name = "input-keyboard", - description = _("Keyboard"), - category = DEVICES - }, - Icon () { - name = "input-mouse", - description = _("Mouse"), - category = DEVICES - }, - Icon () { - name = "input-tablet", - description = _("Graphics tablet or pen input, such as a Wacom digitizer, Intuos, Cintiq, or Bamboo"), - category = DEVICES - }, - Icon () { - name = "input-touchpad", - description = _("Touchpad input, such as a multitouch trackpad or clickpad"), - category = DEVICES - }, - Icon () { - name = "media-flash", - description = _("Flash media such as a memory stick or SD card"), - category = DEVICES - }, - Icon () { - name = "media-optical", - description = _("Optical media, such as a CD, DVD, or Blu-ray disc"), - category = DEVICES - }, - Icon () { - name = "modem", - description = _("Network modem or router"), - category = DEVICES - }, - Icon () { - name = "multimedia-player", - description = _("Media player device, such as a portable mp3 music player or iPod"), - category = DEVICES - }, - Icon () { - name = "network-cellular", - description = _("Cellular type wireless network or device, such as a 2G, 3G, or 4G LTE connection, modem, or SIM card"), - category = DEVICES - }, - Icon () { - name = "network-firewall", - description = _("Networking firewall"), - category = DEVICES - }, - Icon () { - name = "network-vpn", - description = _("Virtual private network or VPN connection"), - category = DEVICES - }, - Icon () { - name = "network-wired", - description = _("Wired network connection, such as Ethernet"), - category = DEVICES - }, - Icon () { - name = "network-wireless", - description = _("Wireless network connection, such as Wi-Fi"), - category = DEVICES - }, - Icon () { - name = "network-wireless-hotspot", - description = _("Wireless hotspot connection, such as through a mobile cellular phone or smartphone"), - category = DEVICES - }, - Icon () { - name = "phone", - description = _("Generic phone, such as a mobile Android smartphone or iPhone"), - category = DEVICES - }, - Icon () { - name = "printer", - description = _("Printer"), - category = DEVICES - }, - Icon () { - name = "printer-network", - description = _("Network-connected or shared printer"), - category = DEVICES - }, - Icon () { - name = "scanner", - description = _("Scanner"), - category = DEVICES - }, - Icon () { - name = "video-display", - description = _("Display, screen, or monitor"), - category = DEVICES - }, - Icon () { - name = "emblem-default", - description = _("Default selection emblem, such as for a printer or other device"), - category = EMBLEMS - }, - Icon () { - name = "emblem-disabled", - description = _("Disabled feature or service emblem"), - category = EMBLEMS - }, - Icon () { - name = "emblem-documents", - description = _("Documents emblem"), - category = EMBLEMS - }, - Icon () { - name = "emblem-downloads", - description = _("Downloads emblem"), - category = EMBLEMS - }, - Icon () { - name = "emblem-enabled", - description = _("Enabled feature or service emblem"), - category = EMBLEMS - }, - Icon () { - name = "emblem-error", - description = _("Emblem for the error status of a feature or service"), - category = EMBLEMS - }, - Icon () { - name = "emblem-favorite", - description = _("Item the user has marked as a favorite"), - category = EMBLEMS - }, - Icon () { - name = "emblem-important", - description = _("Item marked as important"), - category = EMBLEMS - }, - Icon () { - name = "emblem-mail", - description = _("Item related to email"), - category = EMBLEMS - }, - Icon () { - name = "emblem-mixed", - description = _("Emblem for the partially enabled status of a feature or service"), - category = EMBLEMS - }, - Icon () { - name = "emblem-photos", - description = _("Photos emblem"), - category = EMBLEMS - }, - Icon () { - name = "emblem-readonly", - description = _("Item is read-only, or the user cannot write to or make changes to it"), - category = EMBLEMS - }, - Icon () { - name = "emblem-shared", - description = _("Item shared with other people or users"), - category = EMBLEMS - }, - Icon () { - name = "emblem-symbolic-link", - description = _("Item is a symbolic link to a file somewhere else"), - category = EMBLEMS - }, - Icon () { - name = "emblem-synchronized", - description = _("Item is configured to be synchronized to another device or location"), - category = EMBLEMS - }, - Icon () { - name = "emblem-system", - description = _("Item is a system file, library, setting, or data"), - category = EMBLEMS - }, - Icon () { - name = "emblem-unreadable", - description = _("Item is unreadable or inaccessible"), - category = EMBLEMS - }, - Icon () { - name = "emblem-warning", - description = _("Emblem for the warning status of a feature or service"), - category = EMBLEMS - }, - Icon () { - name = "face-angel", - description = _("0:-) emoticon"), - category = EMOTES - }, - Icon () { - name = "face-angry", - description = _("X-( emoticon"), - category = EMOTES - }, - Icon () { - name = "face-cool", - description = _("B-) emoticon"), - category = EMOTES - }, - Icon () { - name = "face-crying", - description = _(":'( emoticon"), - category = EMOTES - }, - Icon () { - name = "face-devilish", - description = _(">:-) emoticon"), - category = EMOTES - }, - Icon () { - name = "face-embarrassed", - description = _(":-[ emoticon"), - category = EMOTES - }, - Icon () { - name = "face-heart", - description = _("<3 emoticon"), - category = EMOTES - }, - Icon () { - name = "face-heart-broken", - description = _(" { + var icon = ((Widgets.IconListChild) child); + var dialog = new Dialogs.IconView (icon.icon_name, icon.description, icon.category); + dialog.show (); + }); + + symbolic_switch.toggled.connect (() => { + fill_icons (symbolic_switch.active); + }); + } + + private void fill_icons (bool use_symbolic = false) { var icon_theme = new Gtk.IconTheme () { theme_name = "elementary" }; - foreach (var icon in icons) { - if (icon_theme.has_icon (icon.name) || icon_theme.has_icon (icon.name + "-symbolic")) { - var row = new IconListRow (icon.name, icon.description, icon.category); - listbox.append (row); + flowbox.remove_all (); + foreach (var icon in Services.Collection.icons ()) { + string icon_name = use_symbolic ? icon.name + "-symbolic" : icon.name; + if (icon_theme.has_icon (icon_name)) { + var row = new Widgets.IconListChild (icon_name, icon.description, icon.category); + flowbox.append (row); } } - - listbox.row_selected.connect ((row) => { - icon_view.category = ((IconListRow) row).category; - icon_view.icon_name = ((IconListRow) row).icon_name; - icon_view.description = ((IconListRow) row).description; - }); } [CCode (instance_pos = -1)] - private int sort_function (Gtk.ListBoxRow row1, Gtk.ListBoxRow row2) { - var name1 = ((IconListRow) row1).icon_name; - var name2 = ((IconListRow) row2).icon_name; + private int sort_function (Gtk.FlowBoxChild row1, Gtk.FlowBoxChild row2) { + var name1 = ((Widgets.IconListChild) row1).icon_name; + var name2 = ((Widgets.IconListChild) row2).icon_name; return name1.collate (name2); } } diff --git a/src/IconView.vala b/src/Dialogs/IconView.vala similarity index 68% rename from src/IconView.vala rename to src/Dialogs/IconView.vala index debdea3..a77b5ac 100644 --- a/src/IconView.vala +++ b/src/Dialogs/IconView.vala @@ -2,85 +2,69 @@ * SPDX-License-Identifier: GPL-3.0-or-later * SPDX-FileCopyrightText: 2017-2022 elementary, Inc. (https://elementary.io) */ -public class IconView : Gtk.Box { +public class Dialogs.IconView : Gtk.Dialog { public string icon_name { get; construct set; } public string description { get; construct set; } - public CategoryView.Category category { get; construct set; } + public Services.Collection.Category category { get; construct set; } private GtkSource.Buffer source_buffer; private Gtk.Button copy_button; + private Granite.Toast toast; - public IconView () { + public IconView (string icon_name, string description, Services.Collection.Category category) { Object ( - icon_name: "address-book-new", - description: _("Create a new address book"), - category: CategoryView.Category.ACTIONS + icon_name: icon_name, + description: description, + category: category, + transient_for: IconBrowser.instance.main_window, + modal: true, + title: icon_name, + width_request: 640, + height_request: 480 ); } construct { - var header_icon = new Gtk.Image.from_icon_name (icon_name) { - icon_size = Gtk.IconSize.LARGE, - valign = Gtk.Align.START + var color_row = new Gtk.FlowBox () { + column_spacing = 24, + row_spacing = 12, + orientation = Gtk.Orientation.VERTICAL, }; - var title_label = new Gtk.Label (icon_name) { - selectable = true, - wrap = true, - xalign = 0, - valign = Gtk.Align.END + var title_label = new Gtk.Label ("%s".printf (icon_name)) { + use_markup = true }; title_label.add_css_class (Granite.STYLE_CLASS_H2_LABEL); - var description_label = new Gtk.Label (description) { - selectable = true, - wrap = true, - halign = Gtk.Align.START, - xalign = 0, - valign = Gtk.Align.START - }; + var copy_icon_name_button = new Gtk.Button.from_icon_name ("edit-copy-symbolic"); - var window_controls = new Gtk.WindowControls (Gtk.PackType.END) { - halign = Gtk.Align.END, + var title_label_box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6) { + halign = CENTER, + valign = CENTER, hexpand = true, - valign = Gtk.Align.START + margin_top = 25 }; + title_label_box.append (title_label); + title_label_box.append (copy_icon_name_button); - var header_area = new Gtk.Grid (); - header_area.add_css_class ("header-area"); - header_area.attach (title_label, 1, 0); - header_area.attach (header_icon, 0, 0, 1, 2); - header_area.attach (description_label, 1, 1, 2); - header_area.attach (window_controls, 2, 0, 1, 2); - - var header_handle = new Gtk.WindowHandle () { - child = header_area - }; - header_handle.add_css_class ("titlebar"); - - var color_title = new Granite.HeaderLabel (_("Color Icons")); - - var color_row = new Gtk.FlowBox () { - column_spacing = 24, - row_spacing = 12 - }; - - var symbolic_title = new Granite.HeaderLabel (_("Symbolic Icons")) { - margin_top = 12 + var description_label = new Gtk.Label (description) { + selectable = true, + wrap = true, + halign = CENTER, + margin_top = 3 }; + description_label.add_css_class (Granite.STYLE_CLASS_DIM_LABEL); + description_label.add_css_class (Granite.STYLE_CLASS_SMALL_LABEL); - var symbolic_row = new Gtk.FlowBox () { - column_spacing = 24, - row_spacing = 12 + var header_area = new Gtk.Box (Gtk.Orientation.VERTICAL, 0) { + hexpand = true, + halign = CENTER }; + header_area.append (color_row); + header_area.append (title_label_box); + header_area.append (description_label); - var size_group = new Gtk.SizeGroup (Gtk.SizeGroupMode.VERTICAL); - size_group.add_widget (color_row); - size_group.add_widget (symbolic_row); - - var snippet_title = new Granite.HeaderLabel (_("Code Sample")) { - margin_top = 12 - }; + var snippet_title = new Granite.HeaderLabel (_("Code Sample")); source_buffer = new GtkSource.Buffer (null) { highlight_syntax = true, @@ -99,12 +83,14 @@ public class IconView : Gtk.Box { top_margin = 12, pixels_above_lines = 3, pixels_below_lines = 3, - wrap_mode = Gtk.WrapMode.WORD + wrap_mode = Gtk.WrapMode.WORD, + height_request = 96 }; source_view.add_css_class (Granite.STYLE_CLASS_CARD); source_view.add_css_class (Granite.STYLE_CLASS_ROUNDED); + source_view.add_css_class (Granite.STYLE_CLASS_SMALL_LABEL); - copy_button = new Gtk.Button.with_label (_("Copy")) { + copy_button = new Gtk.Button.from_icon_name ("edit-copy-symbolic") { valign = START, halign = END, margin_top = 6, @@ -142,10 +128,7 @@ public class IconView : Gtk.Box { vexpand = true }; content_area.add_css_class ("content-area"); - content_area.append (color_title); - content_area.append (color_row); - content_area.append (symbolic_title); - content_area.append (symbolic_row); + content_area.append (header_area); content_area.append (snippet_title); content_area.append (source_overlay); @@ -154,9 +137,14 @@ public class IconView : Gtk.Box { hscrollbar_policy = Gtk.PolicyType.NEVER }; - orientation = Gtk.Orientation.VERTICAL; - append (header_handle); - append (scrolled); + var overlay = new Gtk.Overlay (); + toast = new Granite.Toast (_("Copied!")); + + overlay.add_overlay (scrolled); + overlay.add_overlay (toast); + overlay.set_measure_overlay (toast, true); + + child = overlay; var gtk_settings = Gtk.Settings.get_default (); if (gtk_settings.gtk_application_prefer_dark_theme) { @@ -173,33 +161,32 @@ public class IconView : Gtk.Box { } }); - bind_property ("icon-name", header_icon, "icon-name"); - bind_property ("icon-name", title_label, "label"); - bind_property ("description", description_label, "label"); - notify["icon-name"].connect (() => { fill_icon_row (icon_name, color_row); - fill_icon_row (icon_name + "-symbolic", symbolic_row); var first_color_child = color_row.get_child_at_index (0); if (first_color_child != null && first_color_child is IconChild) { first_color_child.activate (); - } else { - symbolic_row.get_child_at_index (0).activate (); } }); color_row.child_activated.connect ((child) => { - symbolic_row.unselect_all (); child_activated (child); }); - symbolic_row.child_activated.connect ((child) => { - color_row.unselect_all (); - child_activated (child); + copy_icon_name_button.clicked.connect (() => { + copy (icon_name); }); - copy_button.clicked.connect (copy_button_clicked); + copy_button.clicked.connect (() => { + copy (source_buffer.text); + }); + } + + private void copy (string text) { + unowned var clipboard = get_clipboard (); + clipboard.set_text (text); + toast.send_notification (); } private void child_activated (Gtk.FlowBoxChild child) { @@ -216,16 +203,6 @@ public class IconView : Gtk.Box { } } - private void copy_button_clicked () { - unowned var clipboard = get_clipboard (); - clipboard.set_text (source_buffer.text); - - copy_button.label = _("Copied!"); - Timeout.add_once (1000, () => { - copy_button.label = _("Copy"); - }); - } - private void fill_icon_row (string _icon_name, Gtk.FlowBox row) { while (row.get_first_child () != null) { row.remove (row.get_first_child ()); @@ -251,15 +228,15 @@ public class IconView : Gtk.Box { int[] sizes; switch (category) { - case CategoryView.Category.ACTIONS: - case CategoryView.Category.EMBLEMS: - sizes = {16, 24, 32, 48}; + case Services.Collection.Category.ACTIONS: + case Services.Collection.Category.EMBLEMS: + sizes = { 16, 24, 32, 48 }; break; - case CategoryView.Category.EMOTES: - sizes = {16}; + case Services.Collection.Category.EMOTES: + sizes = { 16 }; break; default: - sizes = {16, 24, 32, 48, 64, 128}; + sizes = { 16, 24, 32, 64, 128 }; break; } diff --git a/src/MainWindow.vala b/src/MainWindow.vala index 1112ba0..511dadd 100644 --- a/src/MainWindow.vala +++ b/src/MainWindow.vala @@ -3,24 +3,25 @@ * SPDX-FileCopyrightText: 2017-2022 elementary, Inc. (https://elementary.io) */ -public class IconBrowser.MainWindow : Gtk.ApplicationWindow { +public class MainWindow : Gtk.ApplicationWindow { private CategoryView category_view; private Gtk.ListBox categories_sidebar; public MainWindow (Gtk.Application application) { - Object (application: application); + Object ( + application: application, + icon_name: "io.elementary.iconbrowser", + title: _("Icon Browser") + ); } construct { - icon_name = "io.elementary.iconbrowser"; - title = _("Icon Browser"); - var mode_switch = new Granite.ModeSwitch.from_icon_name ("display-brightness-symbolic", "weather-clear-night-symbolic") { primary_icon_tooltip_text = _("Light background"), secondary_icon_tooltip_text = _("Dark background"), - margin_end = 12, - margin_bottom = 12, - margin_start = 12 + hexpand = true, + halign = CENTER, + margin_bottom = 12 }; category_view = new CategoryView (); @@ -29,9 +30,8 @@ public class IconBrowser.MainWindow : Gtk.ApplicationWindow { vexpand = true }; - foreach (var category in CategoryView.Category.all ()) { - var sidebar_row = new SidebarRow (category); - categories_sidebar.append (sidebar_row); + foreach (var category in Services.Collection.Category.all ()) { + categories_sidebar.append (new Widgets.SidebarRow (category)); } var scrolled_category = new Gtk.ScrolledWindow () { @@ -39,32 +39,23 @@ public class IconBrowser.MainWindow : Gtk.ApplicationWindow { hscrollbar_policy = Gtk.PolicyType.NEVER }; - var start_window_controls = new Gtk.WindowControls (Gtk.PackType.START) { - hexpand = true + var sidebar_header = new Adw.HeaderBar () { + title_widget = new Gtk.Label (null), + hexpand = true, + css_classes = { "flat" } }; - var sidebar_header = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0); - sidebar_header.add_css_class ("titlebar"); - sidebar_header.append (start_window_controls); - var sidebar_box = new Gtk.Box (Gtk.Orientation.VERTICAL, 0); sidebar_box.append (sidebar_header); sidebar_box.append (scrolled_category); sidebar_box.append (mode_switch); sidebar_box.add_css_class ("sidebar"); - var sidebar_handle = new Gtk.WindowHandle () { - child = sidebar_box - }; - - var paned = new Gtk.Paned (Gtk.Orientation.HORIZONTAL) { - position = 128, - start_child = sidebar_handle, - end_child = category_view, - resize_start_child = false, - shrink_end_child = false, - shrink_start_child = false + var overlay_split_view = new Adw.OverlaySplitView () { + min_sidebar_width = 250 }; + overlay_split_view.content = category_view; + overlay_split_view.sidebar = sidebar_box; // We need to hide the title area for the split headerbar var null_title = new Gtk.Grid () { @@ -72,7 +63,7 @@ public class IconBrowser.MainWindow : Gtk.ApplicationWindow { }; set_titlebar (null_title); - child = paned; + child = overlay_split_view; category_view.search_entry.set_key_capture_widget (this); var gtk_settings = Gtk.Settings.get_default (); @@ -86,18 +77,18 @@ public class IconBrowser.MainWindow : Gtk.ApplicationWindow { var granite_settings = Granite.Settings.get_default (); gtk_settings.gtk_application_prefer_dark_theme = ( granite_settings.prefers_color_scheme == Granite.Settings.ColorScheme.DARK - ); + ); granite_settings.notify["prefers-color-scheme"].connect (() => { gtk_settings.gtk_application_prefer_dark_theme = ( granite_settings.prefers_color_scheme == Granite.Settings.ColorScheme.DARK - ); + ); }); - category_view.listbox.set_filter_func (filter_function); + category_view.flowbox.set_filter_func (filter_function); category_view.search_entry.search_changed.connect (() => { - category_view.listbox.invalidate_filter (); + category_view.flowbox.invalidate_filter (); bool searching = (category_view.search_entry.text != ""); categories_sidebar.sensitive = !searching; @@ -110,16 +101,16 @@ public class IconBrowser.MainWindow : Gtk.ApplicationWindow { }); categories_sidebar.row_selected.connect (() => { - category_view.listbox.invalidate_filter (); + category_view.flowbox.invalidate_filter (); }); } [CCode (instance_pos = -1)] - private bool filter_function (Gtk.ListBoxRow row) { + private bool filter_function (Gtk.FlowBoxChild row) { if (category_view.search_entry.text == "") { var sidebar_row = categories_sidebar.get_selected_row (); if (sidebar_row != null) { - return ((IconListRow) row).category == ((SidebarRow) sidebar_row).category; + return ((Widgets.IconListChild) row).category == ((Widgets.SidebarRow) sidebar_row).category; } else { return true; } @@ -127,7 +118,7 @@ public class IconBrowser.MainWindow : Gtk.ApplicationWindow { var search_term = category_view.search_entry.text.down (); - if (search_term in ((IconListRow) row).icon_name || search_term in ((IconListRow) row).description.down ()) { + if (search_term in ((Widgets.IconListChild) row).icon_name || search_term in ((Widgets.IconListChild) row).description.down ()) { return true; } return false; diff --git a/src/Services/Collection.vala b/src/Services/Collection.vala new file mode 100644 index 0000000..ab49023 --- /dev/null +++ b/src/Services/Collection.vala @@ -0,0 +1,2368 @@ +/* + * SPDX-License-Identifier: GPL-3.0-or-later + * SPDX-FileCopyrightText: 2017-2022 elementary, Inc. (https://elementary.io) + */ + +public class Services.Collection { + public enum Category { + ACTIONS, + APPS, + CATEGORIES, + DEVICES, + EMBLEMS, + EMOTES, + MIMES, + PLACES, + STATUS; + + public string to_string () { + switch (this) { + case ACTIONS: + return _("Actions"); + case APPS: + return _("Applications"); + case CATEGORIES: + return _("Categories"); + case DEVICES: + return _("Devices"); + case EMBLEMS: + return _("Emblems"); + case EMOTES: + return _("Emotes"); + case MIMES: + return _("Media Types"); + case PLACES: + return _("Places"); + case STATUS: + return _("Status"); + default: + return _("OTHER"); + } + } + + public static Category[] all () { + return { ACTIONS, APPS, CATEGORIES, DEVICES, EMBLEMS, EMOTES, MIMES, PLACES, STATUS }; + } + } + + public struct Icon { + string name; + string description; + Category category; + } + + public static Icon[] icons () { + return { + Icon () { + name = "address-book-new", + description = _("Create a new address book"), + category = ACTIONS + }, + Icon () { + name = "align-horizontal-center", + description = _("Align objects to center along the X axis"), + category = ACTIONS + }, + Icon () { + name = "align-horizontal-left", + description = _("Align objects left along the X axis"), + category = ACTIONS + }, + Icon () { + name = "align-horizontal-right", + description = _("Align objects right along the X axis"), + category = ACTIONS + }, + Icon () { + name = "align-vertical-bottom", + description = _("Align objects to bottom along the Y axis"), + category = ACTIONS + }, + Icon () { + name = "align-vertical-center", + description = _("Align objects to center along the Y axis"), + category = ACTIONS + }, + Icon () { + name = "align-vertical-top", + description = _("Align objects to top along the Y axis"), + category = ACTIONS + }, + Icon () { + name = "application-exit", + description = _("Used for exiting an application"), + category = ACTIONS + }, + Icon () { + name = "appointment-new", + description = _("Create a new appointment in a calendaring application"), + category = ACTIONS + }, + Icon () { + name = "bookmark-new", + description = _("Create a new bookmark"), + category = ACTIONS + }, + Icon () { + name = "browser-download", + description = _("Download a file from the Internet"), + category = ACTIONS + }, + Icon () { + name = "call-start", + description = _("Initiate or accept a call"), + category = ACTIONS + }, + Icon () { + name = "call-stop", + description = _("Stop the current call"), + category = ACTIONS + }, + Icon () { + name = "color-picker", + description = _("Pick a color from elsewhere on screen"), + category = ACTIONS + }, + Icon () { + name = "contact-new", + description = _("Create a new contact in an address book application"), + category = ACTIONS + }, + Icon () { + name = "distribute-horizontal-center", + description = _("Distribute the center lines of objects horizontally"), + category = ACTIONS + }, + Icon () { + name = "distribute-horizontal-gaps", + description = _("Make horizontal gaps between objects equal"), + category = ACTIONS + }, + Icon () { + name = "distribute-horizontal-left", + description = _("Distribute left edges of objects horizontally"), + category = ACTIONS + }, + Icon () { + name = "distribute-horizontal-right", + description = _("Distribute right edges of objects horizontally"), + category = ACTIONS + }, + Icon () { + name = "distribute-vertical-bottom", + description = _("Distribute bottom edges of objects vertically"), + category = ACTIONS + }, + Icon () { + name = "distribute-vertical-center", + description = _("Distribute center lines of objects vertically"), + category = ACTIONS + }, + Icon () { + name = "distribute-vertical-gaps", + description = _("Make vertical gaps between objects equal"), + category = ACTIONS + }, + Icon () { + name = "distribute-vertical-top", + description = _("Distribute top edges of objects vertically"), + category = ACTIONS + }, + Icon () { + name = "document-export", + description = _("Export a document"), + category = ACTIONS + }, + Icon () { + name = "document-import", + description = _("Import a document"), + category = ACTIONS + }, + Icon () { + name = "document-new", + description = _("Create a new document"), + category = ACTIONS + }, + Icon () { + name = "document-open", + description = _("Open a document"), + category = ACTIONS + }, + Icon () { + name = "document-open-recent", + description = _("Open a document that was recently opened"), + category = ACTIONS + }, + Icon () { + name = "document-page-setup", + description = _("The page setup action of a document editor"), + category = ACTIONS + }, + Icon () { + name = "document-print", + description = _("Print"), + category = ACTIONS + }, + Icon () { + name = "document-print-preview", + description = _("The print preview action of an application"), + category = ACTIONS + }, + Icon () { + name = "document-properties", + description = _("View the properties of a document"), + category = ACTIONS + }, + Icon () { + name = "document-revert", + description = _("Revert to a previous version of a document"), + category = ACTIONS + }, + Icon () { + name = "document-save", + description = _("Save"), + category = ACTIONS + }, + Icon () { + name = "document-save-as", + description = _("Save as"), + category = ACTIONS + }, + Icon () { + name = "document-send", + description = _("Send"), + category = ACTIONS + }, + Icon () { + name = "edit", + description = _("Edit"), + category = ACTIONS + }, + Icon () { + name = "edit-clear", + description = _("Clear"), + category = ACTIONS + }, + Icon () { + name = "edit-copy", + description = _("Copy"), + category = ACTIONS + }, + Icon () { + name = "edit-cut", + description = _("Cut"), + category = ACTIONS + }, + Icon () { + name = "edit-delete", + description = _("Delete"), + category = ACTIONS + }, + Icon () { + name = "edit-find", + description = _("Find"), + category = ACTIONS + }, + Icon () { + name = "edit-find-replace", + description = _("Find & Replace"), + category = ACTIONS + }, + Icon () { + name = "edit-flag", + description = _("Flag an item, such as a spam email"), + category = ACTIONS + }, + Icon () { + name = "edit-paste", + description = _("Paste"), + category = ACTIONS + }, + Icon () { + name = "edit-redo", + description = _("Redo"), + category = ACTIONS + }, + Icon () { + name = "edit-select-all", + description = _("Select all"), + category = ACTIONS + }, + Icon () { + name = "edit-undo", + description = _("Undo"), + category = ACTIONS + }, + Icon () { + name = "event-new", + description = _("Create a new calendar event"), + category = ACTIONS + }, + Icon () { + name = "folder-copy", + description = _("Copy a folder"), + category = ACTIONS + }, + Icon () { + name = "folder-move", + description = _("Move a folder"), + category = ACTIONS + }, + Icon () { + name = "folder-new", + description = _("Create a new folder"), + category = ACTIONS + }, + Icon () { + name = "format-indent-less", + description = _("Decrease indent"), + category = ACTIONS + }, + Icon () { + name = "format-indent-more", + description = _("Increase indent"), + category = ACTIONS + }, + Icon () { + name = "format-justify-center", + description = _("Center justify text"), + category = ACTIONS + }, + Icon () { + name = "format-justify-fill", + description = _("Fill justify text"), + category = ACTIONS + }, + Icon () { + name = "format-justify-left", + description = _("Left justify text"), + category = ACTIONS + }, + Icon () { + name = "format-justify-right", + description = _("Right justify text"), + category = ACTIONS + }, + Icon () { + name = "format-text-direction-ltr", + description = _("Format text as left-to-right"), + category = ACTIONS + }, + Icon () { + name = "format-text-direction-rtl", + description = _("Format text as right-to-left"), + category = ACTIONS + }, + Icon () { + name = "format-text-bold", + description = _("Format text as bold"), + category = ACTIONS + }, + Icon () { + name = "format-text-highlight", + description = _("Format text as highlighted"), + category = ACTIONS + }, + Icon () { + name = "format-text-italic", + description = _("Format text as italic"), + category = ACTIONS + }, + Icon () { + name = "format-text-underline", + description = _("Format text as underlined"), + category = ACTIONS + }, + Icon () { + name = "format-text-strikethrough", + description = _("Format text as being struck through"), + category = ACTIONS + }, + Icon () { + name = "go-bottom", + description = _("Go to the bottom, such as in a list"), + category = ACTIONS + }, + Icon () { + name = "go-down", + description = _("Go down, such as in a list"), + category = ACTIONS + }, + Icon () { + name = "go-first", + description = _("Go to the first item, such as in a list"), + category = ACTIONS + }, + Icon () { + name = "go-home", + description = _("Go to the home location"), + category = ACTIONS + }, + Icon () { + name = "go-jump", + description = _("Jump to a location"), + category = ACTIONS + }, + Icon () { + name = "go-last", + description = _("Go to the last item, such as in a list"), + category = ACTIONS + }, + Icon () { + name = "go-next", + description = _("Go forward to the next item, such as in a list or navigation"), + category = ACTIONS + }, + Icon () { + name = "go-previous", + description = _("Go back to the previous item, such as in a list or navigation"), + category = ACTIONS + }, + Icon () { + name = "go-top", + description = _("Go to the top, such as in a list"), + category = ACTIONS + }, + Icon () { + name = "go-up", + description = _("Go up, such as in a list"), + category = ACTIONS + }, + Icon () { + name = "help-about", + description = _("Information about an app"), + category = ACTIONS + }, + Icon () { + name = "help-contents", + description = _("Get help"), + category = ACTIONS + }, + Icon () { + name = "help-faq", + description = _("Frequently asked questions"), + category = ACTIONS + }, + Icon () { + name = "image-adjust", + description = _("Make adjustments to an image"), + category = ACTIONS + }, + Icon () { + name = "image-auto-adjust", + description = _("Automatically adjust an image"), + category = ACTIONS + }, + Icon () { + name = "image-crop", + description = _("Crop an image"), + category = ACTIONS + }, + Icon () { + name = "image-red-eye", + description = _("Remove red eye from an image"), + category = ACTIONS + }, + Icon () { + name = "insert-image", + description = _("Insert an image"), + category = ACTIONS + }, + Icon () { + name = "insert-link", + description = _("Insert a link"), + category = ACTIONS + }, + Icon () { + name = "insert-object", + description = _("Insert an object"), + category = ACTIONS + }, + Icon () { + name = "insert-text", + description = _("Insert text"), + category = ACTIONS + }, + Icon () { + name = "list-add", + description = _("Add to a list"), + category = ACTIONS + }, + Icon () { + name = "list-remove", + description = _("Remove from a list"), + category = ACTIONS + }, + Icon () { + name = "mail-forward", + description = _("Forward an email"), + category = ACTIONS + }, + Icon () { + name = "mail-mark-important", + description = _("Mark an email as important"), + category = ACTIONS + }, + Icon () { + name = "mail-mark-junk", + description = _("Mark an email as junk or spam"), + category = ACTIONS + }, + Icon () { + name = "mail-mark-notjunk", + description = _("Mark an email as not junk or spam"), + category = ACTIONS + }, + Icon () { + name = "mail-mark-read", + description = _("Mark an email as read"), + category = ACTIONS + }, + Icon () { + name = "mail-mark-unread", + description = _("Mark an email as unread"), + category = ACTIONS + }, + Icon () { + name = "mail-message-new", + description = _("Compose a new email"), + category = ACTIONS + }, + Icon () { + name = "mail-reply-all", + description = _("Reply to all participants of an email"), + category = ACTIONS + }, + Icon () { + name = "mail-reply-sender", + description = _("Reply to the sender of an email"), + category = ACTIONS + }, + Icon () { + name = "mail-send", + description = _("Send an email"), + category = ACTIONS + }, + Icon () { + name = "media-eject", + description = _("Eject removable media"), + category = ACTIONS + }, + Icon () { + name = "media-playback-pause", + description = _("Pause media playback"), + category = ACTIONS + }, + Icon () { + name = "media-playback-start", + description = _("Start playing media"), + category = ACTIONS + }, + Icon () { + name = "media-playback-stop", + description = _("Stop playing media"), + category = ACTIONS + }, + Icon () { + name = "media-record", + description = _("Start recording"), + category = ACTIONS + }, + Icon () { + name = "media-seek-backward", + description = _("Seek backwards or rewind"), + category = ACTIONS + }, + Icon () { + name = "media-seek-forward", + description = _("Seek forwards, or fastforward"), + category = ACTIONS + }, + Icon () { + name = "media-skip-backward", + description = _("Skip backwards, such as to the previous track"), + category = ACTIONS + }, + Icon () { + name = "media-skip-forward", + description = _("Skip forwards, such as to the next track"), + category = ACTIONS + }, + Icon () { + name = "object-flip-horizontal", + description = _("Flip an object horizontally"), + category = ACTIONS + }, + Icon () { + name = "object-flip-vertical", + description = _("Flip an object vertically"), + category = ACTIONS + }, + Icon () { + name = "object-rotate-left", + description = _("Rotate an object to the left or counter-clockwise"), + category = ACTIONS + }, + Icon () { + name = "object-rotate-right", + description = _("Rotate an object to the right or clockwise"), + category = ACTIONS + }, + Icon () { + name = "office-database-new", + description = _("Create a new database"), + category = ACTIONS + }, + Icon () { + name = "process-stop", + description = _("Stop an action that may take a while to process, such as web page loading in a browser"), + category = ACTIONS + }, + Icon () { + name = "system-lock-screen", + description = _("Lock the screen or the user's session"), + category = ACTIONS + }, + Icon () { + name = "system-log-out", + description = _("Log out of the user's session"), + category = ACTIONS + }, + Icon () { + name = "system-run", + description = _("Run a system app or command"), + category = ACTIONS + }, + Icon () { + name = "system-search", + description = _("Search the system"), + category = ACTIONS + }, + Icon () { + name = "system-reboot", + description = _("Restart the device"), + category = ACTIONS + }, + Icon () { + name = "system-shutdown", + description = _("Shut the device down"), + category = ACTIONS + }, + Icon () { + name = "tag-new", + description = _("Create a new tag"), + category = ACTIONS + }, + Icon () { + name = "tools-check-spelling", + description = _("Check spelling"), + category = ACTIONS + }, + Icon () { + name = "tools-timer", + description = _("Set or adjust a timer"), + category = ACTIONS + }, + Icon () { + name = "view-column", + description = _("Display the current view as columns"), + category = ACTIONS + }, + Icon () { + name = "view-continuous", + description = _("display the current view in a continously scrolling list"), + category = ACTIONS + }, + Icon () { + name = "view-dual", + description = _("display the current view as a split, dual view"), + category = ACTIONS + }, + Icon () { + name = "view-fullscreen", + description = _("View fullscreen"), + category = ACTIONS + }, + Icon () { + name = "view-grid", + description = _("Display the current view as a grid of images or icons"), + category = ACTIONS + }, + Icon () { + name = "view-refresh", + description = _("Refresh or reload the current view"), + category = ACTIONS + }, + Icon () { + name = "view-restore", + description = _("Leave fullscreen and return to a normal window"), + category = ACTIONS + }, + Icon () { + name = "view-more", + description = _("View more information about the given context in a popover or menu"), + category = ACTIONS + }, + Icon () { + name = "view-more-horizontal", + description = _("View more information about the given context in a new view or window"), + category = ACTIONS + }, + Icon () { + name = "view-paged", + description = _("Display the current view as a collection of pages"), + category = ACTIONS + }, + Icon () { + name = "view-pin", + description = _("Pin the current view so that it does not automatically hide"), + category = ACTIONS + }, + Icon () { + name = "view-sort-ascending", + description = _("Sort items in an ascending order, such as in a list"), + category = ACTIONS + }, + Icon () { + name = "view-sort-descending", + description = _("Sort items in a descending order, such as in a list"), + category = ACTIONS + }, + Icon () { + name = "window-close", + description = _("Close the window"), + category = ACTIONS + }, + Icon () { + name = "window-new", + description = _("Create a new window"), + category = ACTIONS + }, + Icon () { + name = "zoom-fit-best", + description = _("Zoom to the best fit"), + category = ACTIONS + }, + Icon () { + name = "zoom-in", + description = _("Zoom in"), + category = ACTIONS + }, + Icon () { + name = "zoom-original", + description = _("Zoom to the original size"), + category = ACTIONS + }, + Icon () { + name = "zoom-out", + description = _("Zoom out"), + category = ACTIONS + }, + Icon () { + name = "accessories-calculator", + description = _("Calculator"), + category = APPS + }, + Icon () { + name = "accessories-character-map", + description = _("International and extended text character map"), + category = APPS + }, + Icon () { + name = "accessories-dictionary", + description = _("Dictionary"), + category = APPS + }, + Icon () { + name = "accessories-screenshot-tool", + description = _("Screenshot application"), + category = APPS + }, + Icon () { + name = "accessories-text-editor", + description = _("Text editor"), + category = APPS + }, + Icon () { + name = "application-default-icon", + description = _("Default or unprovided app icon"), + category = APPS + }, + Icon () { + name = "system-file-manager", + description = _("Files"), + category = APPS + }, + Icon () { + name = "system-software-install", + description = _("AppCenter or software installer"), + category = APPS + }, + Icon () { + name = "system-software-update", + description = _("Software updater"), + category = APPS + }, + Icon () { + name = "utilities-system-monitor", + description = _("System resource monitor"), + category = APPS + }, + Icon () { + name = "utilities-terminal", + description = _("Terminal"), + category = APPS + }, + Icon () { + name = "applications-accessories", + description = _("Accessory or utility app category"), + category = CATEGORIES + }, + Icon () { + name = "applications-development", + description = _("Programming, software development, code, or IDE app category"), + category = CATEGORIES + }, + Icon () { + name = "applications-education", + description = _("Education, learning, or school app category"), + category = CATEGORIES + }, + Icon () { + name = "applications-engineering", + description = _("Engineering app category"), + category = CATEGORIES + }, + Icon () { + name = "applications-games", + description = _("Games app category"), + category = CATEGORIES + }, + Icon () { + name = "applications-graphics", + description = _("Graphics, drawing, art, or photo manipulation app category"), + category = CATEGORIES + }, + Icon () { + name = "applications-internet", + description = _("Internet or web related app category"), + category = CATEGORIES + }, + Icon () { + name = "applications-multimedia", + description = _("Multimedia, audio, or video app category"), + category = CATEGORIES + }, + Icon () { + name = "applications-office", + description = _("Office app category"), + category = CATEGORIES + }, + Icon () { + name = "applications-other", + description = _("Other or uncategorized app category"), + category = CATEGORIES + }, + Icon () { + name = "applications-science", + description = _("Science app category"), + category = CATEGORIES + }, + Icon () { + name = "applications-system", + description = _("System tools or OS app category"), + category = CATEGORIES + }, + Icon () { + name = "applications-utilities", + description = _("Utility app category"), + category = CATEGORIES + }, + Icon () { + name = "preferences-bluetooth", + description = _("Bluetooth settings"), + category = CATEGORIES + }, + Icon () { + name = "preferences-color", + description = _("Color settings such as printer, display, or camera calibration"), + category = CATEGORIES + }, + Icon () { + name = "preferences-desktop", + description = _("Desktop interface settings"), + category = CATEGORIES + }, + Icon () { + name = "preferences-desktop-accessibility", + description = _("Universal access settings"), + category = CATEGORIES + }, + Icon () { + name = "preferences-desktop-accessibility-pointing", + description = _("Universal access settings for pointing, such as controlling the cursor"), + category = CATEGORIES + }, + Icon () { + name = "preferences-desktop-accessibility-zoom", + description = _("Universal access settings for zooming or magnifying"), + category = CATEGORIES + }, + Icon () { + name = "preferences-desktop-applications", + description = _("App-related settings, such as default or startup apps"), + category = CATEGORIES + }, + Icon () { + name = "preferences-desktop-display", + description = _("Display settings, such as resolution or scaling"), + category = CATEGORIES + }, + Icon () { + name = "preferences-desktop-font", + description = _("Font settings"), + category = CATEGORIES + }, + Icon () { + name = "preferences-desktop-keyboard", + description = _("Keyboard settings, such as layout or shortcuts"), + category = CATEGORIES + }, + Icon () { + name = "preferences-desktop-locale", + description = _("International localization, language, or region settings"), + category = CATEGORIES + }, + Icon () { + name = "preferences-desktop-online-accounts", + description = _("Online account and cloud sync or sign in settings"), + category = CATEGORIES + }, + Icon () { + name = "preferences-desktop-peripherals", + description = _("Settings for peripherals, such as a mouse or keyboard"), + category = CATEGORIES + }, + Icon () { + name = "preferences-desktop-sound", + description = _("Sound or audio input and output settings"), + category = CATEGORIES + }, + Icon () { + name = "preferences-desktop-theme", + description = _("Look and feel, appearance, style, or theme settings"), + category = CATEGORIES + }, + Icon () { + name = "preferences-desktop-wallpaper", + description = _("Desktop wallpaper or background settings"), + category = CATEGORIES + }, + Icon () { + name = "preferences-other", + description = _("Other, miscellaneous, or uncategorized settings"), + category = CATEGORIES + }, + Icon () { + name = "preferences-system", + description = _("System settings or preferences"), + category = CATEGORIES + }, + Icon () { + name = "preferences-system-network", + description = _("Network settings, such as wireless, Ethernet, or VPN"), + category = CATEGORIES + }, + Icon () { + name = "preferences-system-notifications", + description = _("Notification alert settings"), + category = CATEGORIES + }, + Icon () { + name = "preferences-system-power", + description = _("Power management or energy usage settings, such as battery"), + category = CATEGORIES + }, + Icon () { + name = "preferences-system-privacy", + description = _("Privacy and security settings"), + category = CATEGORIES + }, + Icon () { + name = "preferences-system-sharing", + description = _("Sharing settings, such as library sharing or media streaming over a network"), + category = CATEGORIES + }, + Icon () { + name = "preferences-system-time", + description = _("Time and date settings"), + category = CATEGORIES + }, + Icon () { + name = "preferences-system-windows", + description = _("Window management settings"), + category = CATEGORIES + }, + Icon () { + name = "system-help", + description = _("Help"), + category = CATEGORIES + }, + Icon () { + name = "audio-card", + description = _("Audio output device, such as a sound card or speaker"), + category = DEVICES + }, + Icon () { + name = "audio-headphones", + description = _("Audio output device representing headphones"), + category = DEVICES + }, + Icon () { + name = "audio-headset", + description = _("Audio output device representing a headset"), + category = DEVICES + }, + Icon () { + name = "audio-input-microphone", + description = _("Microphone"), + category = DEVICES + }, + Icon () { + name = "audio-subwoofer", + description = _("Subwoofer or bass speaker"), + category = DEVICES + }, + Icon () { + name = "battery", + description = _("Battery"), + category = DEVICES + }, + Icon () { + name = "bluetooth", + description = _("Bluetooth"), + category = DEVICES + }, + Icon () { + name = "camera-photo", + description = _("Digital photo or still camera"), + category = DEVICES + }, + Icon () { + name = "camera-video", + description = _("Video or movie camera"), + category = DEVICES + }, + Icon () { + name = "camera-web", + description = _("Webcam or built-in camera"), + category = DEVICES + }, + Icon () { + name = "computer", + description = _("Generic or desktop computer"), + category = DEVICES + }, + Icon () { + name = "computer-laptop", + description = _("Laptop or notebook computer"), + category = DEVICES + }, + Icon () { + name = "drive-harddisk", + description = _("Hard disk or storage drive"), + category = DEVICES + }, + Icon () { + name = "drive-optical", + description = _("Optical drive, such as for CD, DVD, or Blu-ray discs"), + category = DEVICES + }, + Icon () { + name = "drive-removable-media", + description = _("Removable storage device, such as a portable hard drive"), + category = DEVICES + }, + Icon () { + name = "drive-removable-media-usb", + description = _("USB drive or stick, such as a flash, jump, or thumb drive"), + category = DEVICES + }, + Icon () { + name = "input-gaming", + description = _("Video game controller, such as a paddle, remote, or joystick"), + category = DEVICES + }, + Icon () { + name = "input-keyboard", + description = _("Keyboard"), + category = DEVICES + }, + Icon () { + name = "input-mouse", + description = _("Mouse"), + category = DEVICES + }, + Icon () { + name = "input-tablet", + description = _("Graphics tablet or pen input, such as a Wacom digitizer, Intuos, Cintiq, or Bamboo"), + category = DEVICES + }, + Icon () { + name = "input-touchpad", + description = _("Touchpad input, such as a multitouch trackpad or clickpad"), + category = DEVICES + }, + Icon () { + name = "media-flash", + description = _("Flash media such as a memory stick or SD card"), + category = DEVICES + }, + Icon () { + name = "media-optical", + description = _("Optical media, such as a CD, DVD, or Blu-ray disc"), + category = DEVICES + }, + Icon () { + name = "modem", + description = _("Network modem or router"), + category = DEVICES + }, + Icon () { + name = "multimedia-player", + description = _("Media player device, such as a portable mp3 music player or iPod"), + category = DEVICES + }, + Icon () { + name = "network-cellular", + description = _("Cellular type wireless network or device, such as a 2G, 3G, or 4G LTE connection, modem, or SIM card"), + category = DEVICES + }, + Icon () { + name = "network-firewall", + description = _("Networking firewall"), + category = DEVICES + }, + Icon () { + name = "network-vpn", + description = _("Virtual private network or VPN connection"), + category = DEVICES + }, + Icon () { + name = "network-wired", + description = _("Wired network connection, such as Ethernet"), + category = DEVICES + }, + Icon () { + name = "network-wireless", + description = _("Wireless network connection, such as Wi-Fi"), + category = DEVICES + }, + Icon () { + name = "network-wireless-hotspot", + description = _("Wireless hotspot connection, such as through a mobile cellular phone or smartphone"), + category = DEVICES + }, + Icon () { + name = "phone", + description = _("Generic phone, such as a mobile Android smartphone or iPhone"), + category = DEVICES + }, + Icon () { + name = "printer", + description = _("Printer"), + category = DEVICES + }, + Icon () { + name = "printer-network", + description = _("Network-connected or shared printer"), + category = DEVICES + }, + Icon () { + name = "scanner", + description = _("Scanner"), + category = DEVICES + }, + Icon () { + name = "video-display", + description = _("Display, screen, or monitor"), + category = DEVICES + }, + Icon () { + name = "emblem-default", + description = _("Default selection emblem, such as for a printer or other device"), + category = EMBLEMS + }, + Icon () { + name = "emblem-disabled", + description = _("Disabled feature or service emblem"), + category = EMBLEMS + }, + Icon () { + name = "emblem-documents", + description = _("Documents emblem"), + category = EMBLEMS + }, + Icon () { + name = "emblem-downloads", + description = _("Downloads emblem"), + category = EMBLEMS + }, + Icon () { + name = "emblem-enabled", + description = _("Enabled feature or service emblem"), + category = EMBLEMS + }, + Icon () { + name = "emblem-error", + description = _("Emblem for the error status of a feature or service"), + category = EMBLEMS + }, + Icon () { + name = "emblem-favorite", + description = _("Item the user has marked as a favorite"), + category = EMBLEMS + }, + Icon () { + name = "emblem-important", + description = _("Item marked as important"), + category = EMBLEMS + }, + Icon () { + name = "emblem-mail", + description = _("Item related to email"), + category = EMBLEMS + }, + Icon () { + name = "emblem-mixed", + description = _("Emblem for the partially enabled status of a feature or service"), + category = EMBLEMS + }, + Icon () { + name = "emblem-photos", + description = _("Photos emblem"), + category = EMBLEMS + }, + Icon () { + name = "emblem-readonly", + description = _("Item is read-only, or the user cannot write to or make changes to it"), + category = EMBLEMS + }, + Icon () { + name = "emblem-shared", + description = _("Item shared with other people or users"), + category = EMBLEMS + }, + Icon () { + name = "emblem-symbolic-link", + description = _("Item is a symbolic link to a file somewhere else"), + category = EMBLEMS + }, + Icon () { + name = "emblem-synchronized", + description = _("Item is configured to be synchronized to another device or location"), + category = EMBLEMS + }, + Icon () { + name = "emblem-system", + description = _("Item is a system file, library, setting, or data"), + category = EMBLEMS + }, + Icon () { + name = "emblem-unreadable", + description = _("Item is unreadable or inaccessible"), + category = EMBLEMS + }, + Icon () { + name = "emblem-warning", + description = _("Emblem for the warning status of a feature or service"), + category = EMBLEMS + }, + Icon () { + name = "face-angel", + description = _("0:-) emoticon"), + category = EMOTES + }, + Icon () { + name = "face-angry", + description = _("X-( emoticon"), + category = EMOTES + }, + Icon () { + name = "face-cool", + description = _("B-) emoticon"), + category = EMOTES + }, + Icon () { + name = "face-crying", + description = _(":'( emoticon"), + category = EMOTES + }, + Icon () { + name = "face-devilish", + description = _(">:-) emoticon"), + category = EMOTES + }, + Icon () { + name = "face-embarrassed", + description = _(":-[ emoticon"), + category = EMOTES + }, + Icon () { + name = "face-heart", + description = _("<3 emoticon"), + category = EMOTES + }, + Icon () { + name = "face-heart-broken", + description = _("