Add Attrinput component

This commit is contained in:
2022-03-07 17:47:55 +08:00
parent 71e17b2f5a
commit f3ba3b6150
9 changed files with 162 additions and 66 deletions
+15
View File
@@ -1,6 +1,7 @@
import { createContext, Component, FunctionComponent, useState, useEffect, ReactNode } from "react";
import { Emitter } from "@Model/Emitter";
import { Model, ObjectID } from "@Model/Model";
import { Range } from "@Model/Range";
import { Archive } from "@Model/Archive";
import { AbstractRenderer } from "@Model/Renderer";
import { ClassicRenderer, MouseMod } from "@GLRender/ClassicRenderer";
@@ -22,6 +23,7 @@ interface IStatusEvent {
focusObjectChange: void;
objectChange: void;
labelChange: void;
rangeAttrChange: void;
}
class Status extends Emitter<IStatusEvent> {
@@ -83,6 +85,19 @@ class Status extends Emitter<IStatusEvent> {
this.emit("focusObjectChange");
}
/**
* 修改范围属性
*/
public changeRangeAttrib<K extends keyof Range>
(id: ObjectID, key: K, val: Range[K]) {
const range = this.model.getObjectById(id);
if (range && range instanceof Range) {
range[key] = val;
this.emit("rangeAttrChange");
this.model.draw();
}
}
/**
* 鼠标工具状态
*/