Initial release

This commit is contained in:
civ
2026-08-16 18:24:52 +07:00
commit 876886a39a
13244 changed files with 2353959 additions and 0 deletions
@@ -0,0 +1,147 @@
// This file is part of VSTGUI. It is subject to the license terms
// in the LICENSE file found in the top-level directory of this
// distribution and at http://github.com/steinbergmedia/vstgui/LICENSE
#pragma once
#include "../../lib/cstring.h"
#include "interface.h"
//------------------------------------------------------------------------
namespace VSTGUI {
namespace Standalone {
//------------------------------------------------------------------------
/** %Command definition
*
* Commands are automatically dispatched to the Application::IDelegate, the focus view controller
* or IWindowController instances if they implement the ICommandHandler interface.
*
* Commands are registered via IApplication::registerCommand.
*
*
* @ingroup standalone
*/
struct Command
{
UTF8String group;
UTF8String name;
};
//------------------------------------------------------------------------
inline bool operator== (const Command& c1, const Command& c2)
{
return c1.group == c2.group && c1.name == c2.name;
}
//------------------------------------------------------------------------
inline bool operator!= (const Command& c1, const Command& c2)
{
return c1.group != c2.group || c1.name != c2.name;
}
//------------------------------------------------------------------------
/** Handler for commands
*
* @ingroup standalone
*/
class ICommandHandler : public Interface
{
public:
/** Check if command can be handled. */
virtual bool canHandleCommand (const Command& command) = 0;
/** Handle command. */
virtual bool handleCommand (const Command& command) = 0;
};
//------------------------------------------------------------------------
/** predefined command groups
*
* @ingroup standalone
*/
namespace CommandGroup {
static constexpr IdStringPtr Application = "Application";
static constexpr IdStringPtr File = "File";
static constexpr IdStringPtr Edit = "Edit";
static constexpr IdStringPtr Window = "Window";
static constexpr IdStringPtr Debug = "Debug";
//------------------------------------------------------------------------
} // CommandGroup
//------------------------------------------------------------------------
namespace CommandName {
static constexpr IdStringPtr About = "About";
static constexpr IdStringPtr Preferences = "Preferences...";
static constexpr IdStringPtr Quit = "Quit";
static constexpr IdStringPtr Help = "Help";
static constexpr IdStringPtr New = "New";
static constexpr IdStringPtr Open = "Open...";
static constexpr IdStringPtr Save = "Save";
static constexpr IdStringPtr SaveAs = "Save As...";
static constexpr IdStringPtr Revert = "Revert";
static constexpr IdStringPtr CloseWindow = "Close Window";
static constexpr IdStringPtr Undo = "Undo";
static constexpr IdStringPtr Redo = "Redo";
static constexpr IdStringPtr Cut = "Cut";
static constexpr IdStringPtr Copy = "Copy";
static constexpr IdStringPtr Paste = "Paste";
static constexpr IdStringPtr Delete = "Delete";
static constexpr IdStringPtr SelectAll = "Select All";
static constexpr IdStringPtr FindNext = "Find Next";
static constexpr IdStringPtr FindPrevious = "Find Previous";
static constexpr IdStringPtr MenuSeparator = "~";
static constexpr IdStringPtr ToggleInlineUIEditor = "Toggle Inline UI-Editor";
static constexpr IdStringPtr RecreateView = "Recreate View";
static constexpr IdStringPtr ResaveSharedResources = "Resave Shared Resources";
} // CommandName
//------------------------------------------------------------------------
/** predefined commands
*
* @ingroup standalone
*/
namespace Commands {
static const Command About {CommandGroup::Application, CommandName::About};
static const Command Preferences {CommandGroup::Application, CommandName::Preferences};
static const Command Quit {CommandGroup::Application, CommandName::Quit};
static const Command Help {CommandGroup::Application, CommandName::Help};
static const Command NewDocument {CommandGroup::File, CommandName::New};
static const Command OpenDocument {CommandGroup::File, CommandName::Open};
static const Command SaveDocument {CommandGroup::File, CommandName::Save};
static const Command SaveDocumentAs {CommandGroup::File, CommandName::SaveAs};
static const Command RevertDocument {CommandGroup::File, CommandName::Revert};
static const Command CloseWindow {CommandGroup::File, CommandName::CloseWindow};
static const Command Undo {CommandGroup::Edit, CommandName::Undo};
static const Command Redo {CommandGroup::Edit, CommandName::Redo};
static const Command Cut {CommandGroup::Edit, CommandName::Cut};
static const Command Copy {CommandGroup::Edit, CommandName::Copy};
static const Command Paste {CommandGroup::Edit, CommandName::Paste};
static const Command Delete {CommandGroup::Edit, CommandName::Delete};
static const Command SelectAll {CommandGroup::Edit, CommandName::SelectAll};
static const Command FindNext {CommandGroup::Edit, CommandName::FindNext};
static const Command FindPrevious {CommandGroup::Edit, CommandName::FindPrevious};
//------------------------------------------------------------------------
namespace Debug {
static const Command ToggleInlineUIEditor {CommandGroup::Debug, CommandName::ToggleInlineUIEditor};
static const Command RecreateView {CommandGroup::Debug, CommandName::RecreateView};
static const Command ResaveSharedResources {CommandGroup::Debug,
CommandName::ResaveSharedResources};
//------------------------------------------------------------------------
} // Debug
} // Commands
//------------------------------------------------------------------------
} // Standalone
} // VSTGUI