95 lines
2.8 KiB
C++
Executable File
95 lines
2.8 KiB
C++
Executable File
/**********************************************************************
|
|
*<
|
|
FILE: KbdShortcut.h
|
|
|
|
DESCRIPTION: Keyboard Shortcut table definitions
|
|
|
|
CREATED BY: Scott Morrison
|
|
|
|
HISTORY: Created 10 July, 1998
|
|
|
|
*> Copyright (c) 1998, All Rights Reserved.
|
|
**********************************************************************/
|
|
|
|
#ifndef __KBDSHORTCUT__
|
|
#define __KBDSHORTCUT__
|
|
|
|
// ShortcutTableIds used by the system
|
|
const ShortcutTableId kShortcutMainUI = 0;
|
|
const ShortcutTableId kShortcutTrackView = 1;
|
|
const ShortcutTableId kShortcutMaterialEditor = 2;
|
|
const ShortcutTableId kShortcutVideoPost = 3;
|
|
const ShortcutTableId kShortcutSchematicView = 5;
|
|
|
|
|
|
// Description of a command for building shortcut tables from static data
|
|
struct ShortcutDescription {
|
|
int mCmdID;
|
|
int mResourceID;
|
|
};
|
|
|
|
// Describes an operation that can be attached to a Shortcut
|
|
class ShortcutOperation {
|
|
|
|
public:
|
|
CoreExport ShortcutOperation()
|
|
{
|
|
mCmdId = 0;
|
|
mpName = NULL;
|
|
}
|
|
|
|
CoreExport int GetId() { return mCmdId; }
|
|
CoreExport void SetId(int id) { mCmdId = id; }
|
|
CoreExport TCHAR* GetName() { return mpName;}
|
|
CoreExport void SetName(TCHAR* pName) { mpName = pName; }
|
|
|
|
private:
|
|
int mCmdId; // The command id sent to the window proc
|
|
TCHAR* mpName; // The name of the operation the user sees
|
|
|
|
};
|
|
|
|
// A table of accerators used by plug-ins
|
|
class ShortcutTable {
|
|
|
|
public:
|
|
CoreExport ShortcutTable(ShortcutTableId id, TSTR& name, HACCEL hDefaults,
|
|
int numIds, ShortcutDescription* pOps,
|
|
HINSTANCE hInst);
|
|
CoreExport ~ShortcutTable();
|
|
|
|
CoreExport HACCEL GetHAccel() { return mhAccel; }
|
|
CoreExport void SetHAccel(HACCEL hAccel) { mhAccel = hAccel; }
|
|
CoreExport HACCEL GetDefaultHAccel() { return mhDefaultAccel; }
|
|
CoreExport TSTR& GetName() { return mName; }
|
|
CoreExport ShortcutTableId GetId() { return mId; }
|
|
CoreExport ShortcutOperation& operator[](int i) { return mOps[i]; }
|
|
CoreExport int Count() { return mOps.Count(); }
|
|
CoreExport void DeleteThis() { delete this; }
|
|
|
|
CoreExport TCHAR* GetString(int commandId);
|
|
|
|
private:
|
|
// These values are set by the plug-in to describe a shortcut table
|
|
|
|
// Unique identifier of table (like a class id)
|
|
ShortcutTableId mId;
|
|
// Name to use in preference dlg drop-down
|
|
TSTR mName;
|
|
// Descriptors of all operations that can have Shortcuts
|
|
Tab<ShortcutOperation> mOps;
|
|
|
|
// The windows accelerator table in use
|
|
HACCEL mhDefaultAccel;
|
|
// The windows accelerator table in use
|
|
HACCEL mhAccel;
|
|
|
|
};
|
|
|
|
class ShortcutCallback {
|
|
public:
|
|
virtual BOOL KeyboardShortcut(int id) = 0;
|
|
};
|
|
|
|
#endif
|