diff --git a/uppsrc/ide/UppDlg.h b/uppsrc/ide/UppDlg.h index 41049e9c2..5dd7881e6 100644 --- a/uppsrc/ide/UppDlg.h +++ b/uppsrc/ide/UppDlg.h @@ -283,11 +283,18 @@ struct WorkspaceWork { class FileType : public Moveable { public: + FileType() + : separator(true) + {} + FileType(const String& name, const String& extension) - : name(name) + : separator(false) + , name(name) , extension(extension) {} + bool IsSeparator() const { return separator; } + String GetName() const { return name; } String GetExtension() const { return extension; } const Image& GetImage() const { return img; } @@ -295,6 +302,8 @@ struct WorkspaceWork { void SetImage(const Image& image) { img = image; } private: + bool separator; + String name; String extension; Image img; diff --git a/uppsrc/ide/UppWspc.cpp b/uppsrc/ide/UppWspc.cpp index 94a8d58b8..dc70199ef 100644 --- a/uppsrc/ide/UppWspc.cpp +++ b/uppsrc/ide/UppWspc.cpp @@ -934,7 +934,10 @@ void WorkspaceWork::NewMenu(Bar& bar) String name = fileType.GetName(); String extension = fileType.GetExtension(); - subBar.Add(name, fileType.GetImage(), THISBACK2(NewPackageFile, "New " + name, extension)); + if (fileType.IsSeparator()) + subBar.Separator(); + else + subBar.Add(name, fileType.GetImage(), THISBACK2(NewPackageFile, "New " + name, extension)); } }; @@ -1155,6 +1158,8 @@ void WorkspaceWork::LoadCategories() uppFiles.Add(FileType("Image file", "iml")); uppFiles.Add(FileType("Escape script file", "usc")); uppFiles.Add(FileType("Skylark template file", "witz")); + uppFiles.Add(FileType()); + uppFiles.Add(FileType("C++ initialization source file", "icpp")); categories.Add("U++", uppFiles); Vector javaFiles; @@ -1176,11 +1181,9 @@ void WorkspaceWork::LoadCategories() void WorkspaceWork::LoadCategoriesImages() { - for (int i = 0; i < categories.GetCount(); i++) { - for (FileType& type : categories[i]) { + for (int i = 0; i < categories.GetCount(); i++) + for (FileType& type : categories[i]) type.SetImage(IdeFileImage("." + type.GetExtension(), false, false)); - } - } } WorkspaceWork::WorkspaceWork()