silex-website-builder-goodevent
Version:
Free and easy website builder for everyone.
90 lines (81 loc) • 2.2 kB
text/typescript
/**
* Silex, live web creation
* http://projects.silexlabs.org/?/silex/
*
* Copyright (c) 2012 Silex Labs
* http://www.silexlabs.org/
*
* Silex is available under the GPL license
* http://www.silexlabs.org/silex/silex-licensing/
*/
/**
* @fileoverview A controller listens to a view element,
* and call the main {silex.controller.Controller} controller's methods
*
*/
import { Model, View } from '../types';
import { ControllerBase } from './controller-base';
/**
* @param view view class which holds the other views
*/
export class StageController extends ControllerBase {
constructor(model: Model, view: View) {
super(model, view);
}
/**
* the user has selected an element with shift
* @param target selected element
*/
selectMultiple(target: HTMLElement) {
const selection = this.model.body.getSelection();
selection.push(target);
this.model.body.setSelection(selection);
}
/**
* the user has clicked on an element
* which was already selected,
* with the shift key down
* @param target selected element
*/
deselect(target: HTMLElement) {
const selection = this.model.body.getSelection();
selection.splice(selection.indexOf(target), 1);
this.model.body.setSelection(selection);
}
/**
* mark the state for undo/redo
*/
markAsUndoable() {
// undo checkpoint
this.undoCheckPoint();
}
stopEdit() {
this.view.stageWrapper.setEditMode(false);
}
startEdit() {
this.view.stageWrapper.setEditMode(true);
}
resizeWindow() {
this.view.stageWrapper.resizeWindow();
}
subscribeMouseEvent(type: string, cbk: (e) => void): () => void {
return this.view.stageWrapper.subscribeMouseEvent(type, cbk);
}
hideScrolls(hide: boolean) {
return this.view.stageWrapper.hideScrolls(hide);
}
redraw() {
this.view.stageWrapper.redraw();
}
getEnableSticky(): boolean {
return this.view.stageWrapper.getEnableSticky();
}
setEnableSticky(enable: boolean) {
this.view.stageWrapper.setEnableSticky(enable);
this.view.contextMenu.redraw();
}
toggleSticky() {
this.view.stageWrapper.toggleSticky();
this.view.contextMenu.redraw();
}
}