1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /**
- * Style represents in a generic way a style applied to canvas drawing.
- *
- * Some styles (e.g. gradients, patterns) required a context to be generated this provides a generic way to share styles between objects.
- *
- * @class
- */
- function Style()
- {
- /**
- * Cached style object pre-generated from previous calls. To avoid regenerating the same style object every cycle.
- *
- * Inherited classes should write their own get method that returns the style object and stores it in this property.
- *
- * @type {string | CanvasGradient | CanvasPattern}
- */
- this.cache = null;
- /**
- * Indicates if the style object needs to be updated, should be used after applying changed to the style in order to generate a new object.
- *
- * Inherited classes should implement this functionality.
- *
- * @type {boolean}
- */
- this.needsUpdate = true;
- }
- /**
- * Get generated style object from style data and the drawing context.
- *
- * @param {CanvasRenderingContext2D} context Context being used to draw the object.
- * @return {string | CanvasGradient | CanvasPattern} Return the canvas style object generated.
- */
- Style.prototype.get = function(context) {};
- /**
- * Serialize the style to JSON object, called by the objects using these styles.
- *
- * @return {Object} Serialized style data.
- */
- Style.prototype.serialize = function() {};
- /**
- * Parse the style attributes from JSON object data created with the serialize() method.
- *
- * @param {Object} data Serialized style data.
- */
- Style.prototype.parse = function(data) {};
- /**
- * List of available style types known by the application. Stores the object constructor by object type.
- *
- * @static
- * @type {Map<string, Function>}
- */
- Style.types = new Map([]);
- /**
- * Register a style type to be serializable. Associates the type string to the object constructor.
- *
- * @param {Function} constructor Style constructor.
- * @param {string} type Style type name.
- */
- Style.register = function(constructor, type)
- {
- Style.types.set(type, constructor);
- };
- /**
- * Parse style from JSON serialized data, created a style of the correct data type automatically and parses its data.
- *
- * @param data JSON serialized data.
- * @returns {Style} Parsed style from the provided data.
- */
- Style.parse = function (data)
- {
- var style = new (Style.types.get(data.type))();
- style.parse(data);
- return style;
- };
- export {Style};
|