123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- define("dojox/sketch/_Plugin", [
- "dojo/_base/kernel",
- "dojo/_base/lang",
- "dojo/_base/array",
- "dojo/_base/declare",
- "dojo/_base/connect",
- "dijit/form/ToggleButton"
- ], function(dojo){
- dojo.getObject("sketch", true, dojox);
- dojo.declare("dojox.sketch._Plugin", null, {
- // summary
- // This represents a "plugin" to the dojox.sketch.Figure, which is basically
- // a single button on the Toolbar and some associated code
- constructor: function(/*Object?*/args){
- if(args){
- dojo.mixin(this, args);
- }
- this._connects=[];
- },
- figure: null,
- iconClassPrefix: "dojoxSketchIcon",
- itemGroup: 'toolsGroup',
- button: null,
- queryCommand: null,
- shape: "",
- useDefaultCommand: true,
- buttonClass: dijit.form.ToggleButton,
- _initButton: function(){
- if(this.shape.length){
- //TODO: i18n
- // var label = dojox.sketch.shapes[this.shape];
- var className = this.iconClassPrefix+" "+this.iconClassPrefix + this.shape.charAt(0).toUpperCase() + this.shape.substr(1);
- if(!this.button){
- var props = {
- label: this.shape, //I18N
- showLabel: false,
- iconClass: className,
- dropDown: this.dropDown,
- tabIndex: "-1"
- };
- this.button = new this.buttonClass(props);
- this.connect(this.button,'onClick','activate');
- }
- }
- },
- attr: function(name,/*?*/value){
- return this.button.attr(name,value);
- },
- onActivate: function(){},
- activate: function(/*?*/e){
- this.onActivate();
- this.figure.setTool(this);
- this.attr('checked',true);
- },
- onMouseDown: function(e){},
- onMouseMove: function(e){},
- onMouseUp: function(e){},
- destroy: function(f){
- dojo.forEach(this._connects,dojo.disconnect);
- },
- connect: function(o,f,tf){
- this._connects.push(dojo.connect(o,f,this,tf));
- },
- setFigure: function(/*dijit._Widget*/ figure){
- // FIXME: detatch from previous figure!!
- this.figure = figure;
- },
- setToolbar: function(/*dijit._Widget*/ toolbar){
- // FIXME: prevent creating this if we don't need to (i.e., figure can't handle our command)
- this._initButton();
- if(this.button){
- toolbar.addChild(this.button);
- }
- if(this.itemGroup){
- toolbar.addGroupItem(this,this.itemGroup);
- }
- }
- });
- return dojox.sketch._Plugin;
- });
|