Initial release
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user