[rtl] Make dimension picker
This commit is contained in:
parent
1d6544370f
commit
bf4488af86
|
@ -53,12 +53,13 @@ define([
|
||||||
minRows : 5,
|
minRows : 5,
|
||||||
minColumns : 5,
|
minColumns : 5,
|
||||||
maxRows : 20,
|
maxRows : 20,
|
||||||
maxColumns : 20
|
maxColumns : 20,
|
||||||
|
direction : undefined // 'left', 'right'
|
||||||
},
|
},
|
||||||
|
|
||||||
template:_.template([
|
template:_.template([
|
||||||
'<div style="width: 100%; height: 100%;">',
|
'<div style="width: 100%; height: 100%;">',
|
||||||
'<div class="dimension-picker-status">0x0</div>',
|
'<div dir="ltr" class="dimension-picker-status">0x0</div>',
|
||||||
'<div class="dimension-picker-observecontainer">',
|
'<div class="dimension-picker-observecontainer">',
|
||||||
'<div class="dimension-picker-mousecatcher"></div>',
|
'<div class="dimension-picker-mousecatcher"></div>',
|
||||||
'<div class="dimension-picker-unhighlighted"></div>',
|
'<div class="dimension-picker-unhighlighted"></div>',
|
||||||
|
@ -84,12 +85,24 @@ define([
|
||||||
me.maxRows = me.options.maxRows;
|
me.maxRows = me.options.maxRows;
|
||||||
me.maxColumns = me.options.maxColumns;
|
me.maxColumns = me.options.maxColumns;
|
||||||
|
|
||||||
|
me.direction = me.options.direction;
|
||||||
|
if (Common.UI.isRTL() && !me.direction) {
|
||||||
|
me.direction = 'right';
|
||||||
|
}
|
||||||
|
|
||||||
me.curColumns = 0;
|
me.curColumns = 0;
|
||||||
me.curRows = 0;
|
me.curRows = 0;
|
||||||
|
|
||||||
var onMouseMove = function(event){
|
var onMouseMove = function(event){
|
||||||
|
var offsetX;
|
||||||
|
if (me.direction === 'right' && me.areaMouseCatcher) {
|
||||||
|
var width = me.areaMouseCatcher.width();
|
||||||
|
offsetX = event.offsetX === undefined ? (width - event.originalEvent.layerX) : (width - event.offsetX)*Common.Utils.zoom()
|
||||||
|
} else {
|
||||||
|
offsetX = event.offsetX === undefined ? event.originalEvent.layerX : event.offsetX*Common.Utils.zoom();
|
||||||
|
}
|
||||||
me.setTableSize(
|
me.setTableSize(
|
||||||
Math.ceil((event.offsetX === undefined ? event.originalEvent.layerX : event.offsetX*Common.Utils.zoom()) / me.itemSize),
|
Math.ceil(offsetX / me.itemSize),
|
||||||
Math.ceil((event.offsetY === undefined ? event.originalEvent.layerY : event.offsetY*Common.Utils.zoom()) / me.itemSize),
|
Math.ceil((event.offsetY === undefined ? event.originalEvent.layerY : event.offsetY*Common.Utils.zoom()) / me.itemSize),
|
||||||
event
|
event
|
||||||
);
|
);
|
||||||
|
@ -104,27 +117,31 @@ define([
|
||||||
};
|
};
|
||||||
|
|
||||||
if (rootEl){
|
if (rootEl){
|
||||||
var areaMouseCatcher = rootEl.find('.dimension-picker-mousecatcher');
|
me.areaMouseCatcher = rootEl.find('.dimension-picker-mousecatcher');
|
||||||
me.areaUnHighLighted = rootEl.find('.dimension-picker-unhighlighted');
|
me.areaUnHighLighted = rootEl.find('.dimension-picker-unhighlighted');
|
||||||
me.areaHighLighted = rootEl.find('.dimension-picker-highlighted');
|
me.areaHighLighted = rootEl.find('.dimension-picker-highlighted');
|
||||||
me.areaStatus = rootEl.find('.dimension-picker-status');
|
me.areaStatus = rootEl.find('.dimension-picker-status');
|
||||||
|
|
||||||
rootEl.css({width: me.minColumns + 'em'});
|
rootEl.css({width: me.minColumns + 'em'});
|
||||||
areaMouseCatcher.css('z-index', 1);
|
me.areaMouseCatcher.css('z-index', 1);
|
||||||
areaMouseCatcher.width(me.maxColumns + 'em').height(me.maxRows + 'em');
|
me.areaMouseCatcher.width(me.maxColumns + 'em').height(me.maxRows + 'em');
|
||||||
me.areaUnHighLighted.width(me.minColumns + 'em').height(me.minRows + 'em');
|
me.areaUnHighLighted.width(me.minColumns + 'em').height(me.minRows + 'em');
|
||||||
me.areaStatus.html(me.curColumns + ' x ' + me.curRows);
|
me.areaStatus.html(!Common.UI.isRTL() ? this.curColumns + ' x ' + this.curRows : this.curRows + ' x ' + this.curColumns);
|
||||||
me.areaStatus.width(me.areaUnHighLighted.width());
|
me.areaStatus.width(me.areaUnHighLighted.width());
|
||||||
|
|
||||||
areaMouseCatcher.on('mousemove', onMouseMove);
|
me.areaMouseCatcher.on('mousemove', onMouseMove);
|
||||||
me.areaHighLighted.on('mousemove', onMouseMove);
|
me.areaHighLighted.on('mousemove', onMouseMove);
|
||||||
me.areaUnHighLighted.on('mousemove', onMouseMove);
|
me.areaUnHighLighted.on('mousemove', onMouseMove);
|
||||||
areaMouseCatcher.on('mouseleave', onMouseLeave);
|
me.areaMouseCatcher.on('mouseleave', onMouseLeave);
|
||||||
me.areaHighLighted.on('mouseleave', onMouseLeave);
|
me.areaHighLighted.on('mouseleave', onMouseLeave);
|
||||||
me.areaUnHighLighted.on('mouseleave', onMouseLeave);
|
me.areaUnHighLighted.on('mouseleave', onMouseLeave);
|
||||||
areaMouseCatcher.on('click', onHighLightedMouseClick);
|
me.areaMouseCatcher.on('click', onHighLightedMouseClick);
|
||||||
me.areaHighLighted.on('click', onHighLightedMouseClick);
|
me.areaHighLighted.on('click', onHighLightedMouseClick);
|
||||||
me.areaUnHighLighted.on('click', onHighLightedMouseClick);
|
me.areaUnHighLighted.on('click', onHighLightedMouseClick);
|
||||||
|
|
||||||
|
if (me.direction === 'right') {
|
||||||
|
me.areaHighLighted.css({left: 'auto', right: '0'});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -157,7 +174,7 @@ define([
|
||||||
);
|
);
|
||||||
|
|
||||||
this.cmpEl.width(this.areaUnHighLighted.width());
|
this.cmpEl.width(this.areaUnHighLighted.width());
|
||||||
this.areaStatus.html(this.curColumns + ' x ' + this.curRows);
|
this.areaStatus.html(!Common.UI.isRTL() ? this.curColumns + ' x ' + this.curRows : this.curRows + ' x ' + this.curColumns);
|
||||||
this.areaStatus.width(this.areaUnHighLighted.width());
|
this.areaStatus.width(this.areaUnHighLighted.width());
|
||||||
|
|
||||||
this.trigger('change', this, this.curColumns, this.curRows, event);
|
this.trigger('change', this, this.curColumns, this.curRows, event);
|
||||||
|
|
Loading…
Reference in a new issue