mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
Shortcuts now settable to a context.
This commit is contained in:
22
client/src/context/context.ts
Normal file
22
client/src/context/context.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { ShortcutManager } from "../shortcut/shortcutmanager";
|
||||
|
||||
|
||||
export interface ContextInterface {
|
||||
|
||||
}
|
||||
|
||||
export class Context {
|
||||
|
||||
#shortcutManager: ShortcutManager;
|
||||
|
||||
constructor( config:ContextInterface ) {
|
||||
|
||||
this.#shortcutManager = new ShortcutManager();
|
||||
|
||||
}
|
||||
|
||||
getShortcutManager() {
|
||||
return this.#shortcutManager;
|
||||
}
|
||||
|
||||
}
|
||||
43
client/src/context/contextmanager.ts
Normal file
43
client/src/context/contextmanager.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import { Manager } from "../other/manager";
|
||||
import { Context, ContextInterface } from "./context";
|
||||
|
||||
export class ContextManager extends Manager {
|
||||
|
||||
#currentContext!:string;
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
add( name:string, contextConfig:ContextInterface ) {
|
||||
super.add( name, new Context( contextConfig ) );
|
||||
|
||||
if ( Object.values( this.getAll() ).length === 1 ) {
|
||||
this.#currentContext = name;
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
currentContextIs( contextName:string ) {
|
||||
return contextName === this.#currentContext;
|
||||
}
|
||||
|
||||
getCurrentContext() {
|
||||
const contexts = this.getAll();
|
||||
|
||||
return ( contexts.hasOwnProperty( this.#currentContext ) ) ? contexts[this.#currentContext] : false;
|
||||
}
|
||||
|
||||
setContext( contextName:string ) {
|
||||
|
||||
if ( !this.get( contextName ) ) {
|
||||
console.error( `setContext(): context name "${contextName}" does not exist.` );
|
||||
return false;
|
||||
}
|
||||
this.#currentContext = contextName;
|
||||
|
||||
console.log( `Setting context to "${this.#currentContext}".` );
|
||||
}
|
||||
|
||||
}
|
||||
15
client/src/context/contextmenumanager.ts
Normal file
15
client/src/context/contextmenumanager.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { ContextMenu } from "../contextmenus/contextmenu";
|
||||
import { Manager } from "../other/manager";
|
||||
|
||||
export class ContextMenuManager extends Manager {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
add( name:string, contextMenu:ContextMenu ) {
|
||||
super.add( name, contextMenu );
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user