#include "iconmanager.hpp" #include #include namespace ecode { void IconManager::init( UISceneNode* sceneNode, FontTrueType* iconFont, FontTrueType* mimeIconFont, FontTrueType* codIconFont ) { UIIconTheme* iconTheme = UIIconTheme::New( "ecode" ); std::unordered_map icons = { { "document-new", 0xecc3 }, { "document-open", 0xed70 }, { "document-save", 0xf0b3 }, { "document-save-as", 0xf0b3 }, { "document-close", 0xeb99 }, { "quit", 0xeb97 }, { "undo", 0xea58 }, { "redo", 0xea5a }, { "cut", 0xf0c1 }, { "copy", 0xecd5 }, { "paste", 0xeb91 }, { "edit", 0xec86 }, { "split-horizontal", 0xf17a }, { "split-vertical", 0xf17b }, { "find-replace", 0xed2b }, { "folder-add", 0xed5a }, { "file-add", 0xecc9 }, { "file-copy", 0xecd3 }, { "file-code", 0xecd1 }, { "file-edit", 0xecdb }, { "font-size", 0xed8d }, { "delete-bin", 0xec1e }, { "delete-text", 0xec1e }, { "zoom-in", 0xf2db }, { "zoom-out", 0xf2dd }, { "zoom-reset", 0xeb47 }, { "fullscreen", 0xed9c }, { "keybindings", 0xee75 }, { "search", 0xf0d1 }, { "go-up", 0xea78 }, { "ok", 0xeb7a }, { "cancel", 0xeb98 }, { "color-picker", 0xf13d }, { "pixel-density", 0xed8c }, { "go-to-line", 0xf1f8 }, { "table-view", 0xf1de }, { "list-view", 0xecf1 }, { "menu-unfold", 0xef40 }, { "menu-fold", 0xef3d }, { "download-cloud", 0xec58 }, { "layout-left", 0xee94 }, { "layout-right", 0xee9b }, { "color-scheme", 0xebd4 }, { "global-settings", 0xedcf }, { "folder-user", 0xed84 }, { "help", 0xf045 }, { "terminal", 0xf1f6 }, { "earth", 0xec7a }, { "arrow-down", 0xea4c }, { "arrow-up", 0xea76 }, { "arrow-down-s", 0xea4e }, { "arrow-up-s", 0xea78 }, { "arrow-right-s", 0xea6e }, { "match-case", 0xed8d }, { "palette", 0xefc5 }, { "file-code", 0xecd1 }, { "cursor-pointer", 0xec09 }, { "drive", 0xedf8 }, { "refresh", 0xf064 }, { "hearth-pulse", 0xee10 }, { "add", 0xea12 }, { "hammer", 0xedee }, { "eraser", 0xec9e }, { "file-search", 0xed05 }, { "window", 0xf2c4 }, { "file-lock-fill", 0xecf2 }, { "filetype-svg", 0xF3C5 }, { "filetype-png", 0xF3C5 }, { "filetype-jpg", 0xF3C5 }, { "filetype-jpeg", 0xF3C5 }, { "filetype-tga", 0xF3C5 }, { "filetype-dds", 0xF3C5 }, { "filetype-qoi", 0xF3C5 }, { "filetype-bmp", 0xF3C5 }, { "filetype-gif", 0xF3C5 }, { "filetype-psd", 0xF3C5 }, { "filetype-hdr", 0xF3C5 }, { "filetype-pic", 0xF3C5 }, { "filetype-pvr", 0xF3C5 }, { "filetype-pkm", 0xF3C5 }, { "settings", 0xF0E3 }, { "stop", 0xF1A0 }, { "text-wrap", 0xF200 }, }; for ( const auto& icon : icons ) iconTheme->add( UIGlyphIcon::New( icon.first, iconFont, icon.second ) ); if ( mimeIconFont && mimeIconFont->loaded() ) { std::unordered_map mimeIcons = { { "filetype-lua", 61826 }, { "filetype-c", 61718 }, { "filetype-h", 61792 }, { "filetype-cs", 61720 }, { "filetype-cpp", 61719 }, { "filetype-hpp", 61719 }, { "filetype-css", 61743 }, { "filetype-conf", 61781 }, { "filetype-cfg", 61781 }, { "filetype-desktop", 61781 }, { "filetype-service", 61781 }, { "filetype-env", 61781 }, { "filetype-properties", 61781 }, { "filetype-ini", 61781 }, { "filetype-dart", 61744 }, { "filetype-diff", 61752 }, { "filetype-zip", 61775 }, { "filetype-go", 61789 }, { "filetype-htm", 61799 }, { "filetype-html", 61799 }, { "filetype-java", 61809 }, { "filetype-js", 61810 }, { "filetype-json", 61811 }, { "filetype-kt", 61814 }, { "filetype-md", 61829 }, { "filetype-perl", 61853 }, { "filetype-php", 61855 }, { "filetype-py", 61863 }, { "filetype-pyc", 61863 }, { "filetype-pyd", 61863 }, { "filetype-swift", 61906 }, { "filetype-rb", 61880 }, { "filetype-rs", 61881 }, { "filetype-ts", 61923 }, { "filetype-jsx", 0xf1ab }, { "filetype-tsx", 0xf1ab }, { "filetype-yaml", 61945 }, { "filetype-yml", 61945 }, { "filetype-jpg", 61801 }, { "filetype-png", 61801 }, { "filetype-jpeg", 61801 }, { "filetype-bmp", 61801 }, { "filetype-tga", 61801 }, { "filetype-sh", 61911 }, { "filetype-bash", 61911 }, { "filetype-fish", 61911 }, { "filetype-scala", 61882 }, { "filetype-r", 61866 }, { "filetype-rake", 61880 }, { "filetype-rss", 61879 }, { "filetype-sql", 61746 }, { "filetype-elm", 61763 }, { "filetype-ex", 61971 }, { "filetype-exs", 61971 }, { "filetype-awk", 61971 }, { "filetype-nim", 61734 }, { "filetype-xml", 61769 }, { "filetype-dockerfile", 61758 }, { "filetype-scala", 61882 }, { "filetype-sc", 61882 }, { "filetype-perl", 61853 }, { "filetype-vue", 0xf1f4 }, { "file", 61766 }, { "file-symlink", 61774 }, { "folder", 0xF23B }, { "folder-open", 0xF23C }, { "tree-expanded", 0xF11E }, { "tree-contracted", 0xF120 }, { "github", 0xF184 }, { "package", 61846 }, { "tab-close", 61944 } }; for ( const auto& icon : mimeIcons ) iconTheme->add( UIGlyphIcon::New( icon.first, mimeIconFont, icon.second ) ); } if ( codIconFont && codIconFont->loaded() ) { std::unordered_map codIcons = { { "symbol-text", 0xea93 }, { "symbol-method", 0xea8c }, { "symbol-function", 0xea8c }, { "symbol-constructor", 0xea8c }, { "symbol-field", 0xeb5f }, { "symbol-variable", 0xea88 }, { "symbol-class", 0xeb5b }, { "symbol-interface", 0xeb61 }, { "symbol-module", 0xea8b }, { "symbol-property", 0xeb65 }, { "symbol-unit", 0xea96 }, { "symbol-value", 0xea95 }, { "symbol-enum", 0xea95 }, { "symbol-keyword", 0xeb62 }, { "symbol-snippet", 0xeb66 }, { "symbol-color", 0xeb5c }, { "symbol-file", 0xeb60 }, { "symbol-reference", 0xea94 }, { "symbol-folder", 0xea83 }, { "symbol-enum-member", 0xeb5e }, { "symbol-constant", 0xeb5d }, { "symbol-struct", 0xea91 }, { "symbol-event", 0xea86 }, { "symbol-operator", 0xeb64 }, { "symbol-type-parameter", 0xea92 }, { "expand-all", 0xeb95 }, { "symbol-namespace", 0xea8b }, { "symbol-package", 0xea8b }, { "symbol-string", 0xeb8d }, { "symbol-number", 0xea90 }, { "symbol-boolean", 0xea8f }, { "symbol-array", 0xea8a }, { "symbol-object", 0xea8b }, { "symbol-key", 0xea93 }, { "symbol-null", 0xea8f }, { "collapse-all", 0xeac5 }, { "chevron-down", 0xeab4 }, { "chevron-right", 0xeab6 }, { "lightbulb-autofix", 0xeb13 }, { "layout-sidebar-left-off", 0xec02 }, { "layout-sidebar-left", 0xebf3 }, { "warning", 0xea6c }, { "error", 0xea87 }, { "search-fuzzy", 0xec0d }, { "source-control", 0xea68 }, { "repo", 0xea62 }, { "repo-pull", 0xeb40 }, { "repo-push", 0xeb41 }, { "repo-forked", 0xea63 }, { "repo-fetch", 0xec1d }, { "git-fetch", 0xf101 }, { "git-commit", 0xeafc }, { "git-stash", 0xec26 }, { "git-stash-apply", 0xec27 }, { "git-stash-pop", 0xec28 }, { "git-merge", 0xeafe }, { "diff-single", 0xec22 }, { "remove", 0xeb3b }, { "tag", 0xea66 }, { "globe", 0xeb01 }, { "circle-filled", 0xea71 }, { "circle", 0xeabc }, { "diff-multiple", 0xec23 }, { "extensions", 0xeae6 }, { "window-opt", 0xeb7f }, { "tools", 0xeb6d }, { "play", 0xeb2c }, { "output", 0xeb9d }, { "fold", 0xeaf5 }, }; for ( const auto& icon : codIcons ) iconTheme->add( UIGlyphIcon::New( icon.first, codIconFont, icon.second ) ); } iconTheme->add( UISVGIcon::New( "ecode", "" ) ); sceneNode->getUIIconThemeManager()->setCurrentTheme( iconTheme ); } } // namespace ecode