From b873719dd40c662458542d7b62bbf2618e14f6e7 Mon Sep 17 00:00:00 2001 From: klugier Date: Sun, 29 May 2016 20:40:36 +0000 Subject: [PATCH] New files now have got icons git-svn-id: svn://ultimatepp.org/upp/trunk@9894 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/ide/UppDlg.h | 14 ++++++++------ uppsrc/ide/UppWspc.cpp | 44 ++++++++++++++++++++++++++++-------------- 2 files changed, 37 insertions(+), 21 deletions(-) diff --git a/uppsrc/ide/UppDlg.h b/uppsrc/ide/UppDlg.h index bfdc7cd89..41049e9c2 100644 --- a/uppsrc/ide/UppDlg.h +++ b/uppsrc/ide/UppDlg.h @@ -283,20 +283,21 @@ struct WorkspaceWork { class FileType : public Moveable { public: - FileType(const String& name, const String& extension, Image* img) + FileType(const String& name, const String& extension) : name(name) , extension(extension) - , img(img) {} - String GetName() const { return name; } - String GetExtension() const { return extension; } - Image* GetImage() const { return img; } + String GetName() const { return name; } + String GetExtension() const { return extension; } + const Image& GetImage() const { return img; } + + void SetImage(const Image& image) { img = image; } private: String name; String extension; - Image* img; + Image img; }; VectorMap> categories; @@ -363,6 +364,7 @@ struct WorkspaceWork { void Drag(); void LoadCategories(); + void LoadCategoriesImages(); void NewPackageFile(const String& title, const String& extension); enum ADDFILE { PACKAGE_FILE, OUTPUT_FILE, HOME_FILE, LOCAL_FILE, CONFIG_FILE, ANY_FILE }; diff --git a/uppsrc/ide/UppWspc.cpp b/uppsrc/ide/UppWspc.cpp index 4c937b657..94a8d58b8 100644 --- a/uppsrc/ide/UppWspc.cpp +++ b/uppsrc/ide/UppWspc.cpp @@ -930,8 +930,12 @@ void WorkspaceWork::NewMenu(Bar& bar) for (int i = 0; i < categories.GetCount(); i++) { Callback1 barCallback; barCallback << [&, i](Bar& subBar) { - for (FileType& fileType : categories[i]) - subBar.Add(fileType.GetName(), THISBACK2(NewPackageFile, "New " + fileType.GetName(), fileType.GetExtension())); + for (FileType& fileType : categories[i]) { + String name = fileType.GetName(); + String extension = fileType.GetExtension(); + + subBar.Add(name, fileType.GetImage(), THISBACK2(NewPackageFile, "New " + name, extension)); + } }; bar.Add(categories.GetKey(i), barCallback); @@ -1142,34 +1146,43 @@ void WorkspaceWork::Drag() void WorkspaceWork::LoadCategories() { Vector cppFiles; - cppFiles.Add(FileType("C++ source file", "cpp", NULL)); - cppFiles.Add(FileType("C++ header file", "h", NULL)); + cppFiles.Add(FileType("C++ source file", "cpp")); + cppFiles.Add(FileType("C++ header file", "h")); categories.Add("C/C++", cppFiles); Vector uppFiles; - uppFiles.Add(FileType("Layout file", "lay", NULL)); - uppFiles.Add(FileType("Image file", "iml", NULL)); - uppFiles.Add(FileType("Escape script file", "usc", NULL)); - uppFiles.Add(FileType("Skylark template file", "witz", NULL)); + uppFiles.Add(FileType("Layout file", "lay")); + uppFiles.Add(FileType("Image file", "iml")); + uppFiles.Add(FileType("Escape script file", "usc")); + uppFiles.Add(FileType("Skylark template file", "witz")); categories.Add("U++", uppFiles); Vector javaFiles; - javaFiles.Add(FileType("Java source file", "java", NULL)); + javaFiles.Add(FileType("Java source file", "java")); categories.Add("Java", javaFiles); Vector webFiles; - webFiles.Add(FileType("HTML source file", "html", NULL)); - webFiles.Add(FileType("CSS source file", "css", NULL)); - webFiles.Add(FileType("JavaScript source file", "js", NULL)); - webFiles.Add(FileType("JSON file", "json", NULL)); - webFiles.Add(FileType("XML file", "xml", NULL)); + webFiles.Add(FileType("HTML source file", "html")); + webFiles.Add(FileType("CSS source file", "css")); + webFiles.Add(FileType("JavaScript source file", "js")); + webFiles.Add(FileType("JSON file", "json")); + webFiles.Add(FileType("XML file", "xml")); categories.Add("Web", webFiles); Vector otherFiles; - otherFiles.Add(FileType("Text file", "txt", NULL)); + otherFiles.Add(FileType("Text file", "txt")); categories.Add("Other", otherFiles); } +void WorkspaceWork::LoadCategoriesImages() +{ + for (int i = 0; i < categories.GetCount(); i++) { + for (FileType& type : categories[i]) { + type.SetImage(IdeFileImage("." + type.GetExtension(), false, false)); + } + } +} + WorkspaceWork::WorkspaceWork() { package <<= THISBACK(PackageCursor); @@ -1192,6 +1205,7 @@ WorkspaceWork::WorkspaceWork() svn_dirs = false; LoadCategories(); + LoadCategoriesImages(); } void WorkspaceWork::SerializeClosed(Stream& s)