/*============================================================================ CMake - Cross Platform Makefile Generator Copyright 2014-2015 Kitware, Inc. Distributed under the OSI-approved BSD License (the "License"); see accompanying file Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more information. ============================================================================*/ #ifndef cmWIXShortcut_h #define cmWIXShortcut_h #include #include #include #include #include class cmWIXFilesSourceWriter; struct cmWIXShortcut { std::string label; std::string workingDirectoryId; }; class cmWIXShortcuts { public: enum Type { START_MENU, DESKTOP, STARTUP }; typedef std::vector shortcut_list_t; typedef std::map shortcut_id_map_t; void insert(Type type, std::string const& id, cmWIXShortcut const& shortcut); bool empty(Type type) const; bool EmitShortcuts(Type type, std::string const& registryKey, std::string const& cpackComponentName, cmWIXFilesSourceWriter& fileDefinitions) const; void AddShortcutTypes(std::set& types); void CreateFromProperties(std::string const& id, std::string const& directoryId, cmInstalledFile const& installedFile); private: typedef std::map shortcut_type_map_t; void CreateFromProperty(std::string const& propertyName, Type type, std::string const& id, std::string const& directoryId, cmInstalledFile const& installedFile); shortcut_type_map_t Shortcuts; shortcut_id_map_t EmptyIdMap; }; #endif