Prevent dragging of button group if buttons are not wider than maxWidth.

This commit is contained in:
Sebastian Kupke 2019-08-07 15:24:18 +02:00
parent 56910a8c58
commit cdc6461064
3 changed files with 76 additions and 52 deletions

6
dist/iwmlib.pixi.js vendored
View File

@ -3378,6 +3378,8 @@
* @param {*} event
*/
onStart(event) {
if ((this.opts.maxWidth != null && this.__initWidth > this.opts.maxWidth) || (this.opts.maxHeight != null && this.__initHeight > this.opts.maxHeight)) {
this.__dragging = true;
this.capture(event);
@ -3392,6 +3394,7 @@
ThrowPropsPlugin.track(this.container.position, 'x,y');
}
}
}
/**
*
@ -3484,6 +3487,8 @@
* @param {*} event
*/
onScroll(event) {
if ((this.opts.maxWidth != null && this.__initWidth > this.opts.maxWidth) || (this.opts.maxHeight != null && this.__initHeight > this.opts.maxHeight)) {
this.capture(event);
if (this.opts.orientation === 'horizontal') {
@ -3504,6 +3509,7 @@
this.stack();
}
}
/**
* Captures an event to inform InteractionMapper about processed events.

View File

@ -30,7 +30,7 @@
const app = new PIXIApp({
view: canvas,
width: 1000,
height: 1400
height: 1700
}).setup().run()
const buttonGroup1 = new ButtonGroup({
@ -324,12 +324,24 @@ const buttonGroup18 = new ButtonGroup({
app
})
const buttonGroup19 = new ButtonGroup({
x: 10,
y: 1420,
buttons: [
{label: 'move'},
{label: 'explanation dried'},
{label: 'out catch'}
],
maxWidth: 500,
app
})
app.scene.addChild(buttonGroup1, buttonGroup2, buttonGroup3)
app.scene.addChild(buttonGroup4)
app.scene.addChild(buttonGroup5, buttonGroup6)
app.scene.addChild(buttonGroup7, buttonGroup8)
app.scene.addChild(buttonGroup9, buttonGroup10, buttonGroup11, buttonGroup12, buttonGroup13)
app.scene.addChild(buttonGroup14, buttonGroup15, buttonGroup16, buttonGroup17, buttonGroup18)
app.scene.addChild(buttonGroup14, buttonGroup15, buttonGroup16, buttonGroup17, buttonGroup18, buttonGroup19)
</script>
</body>
</html>

View File

@ -440,6 +440,8 @@ export default class ButtonGroup extends PIXI.Container {
* @param {*} event
*/
onStart(event) {
if ((this.opts.maxWidth != null && this.__initWidth > this.opts.maxWidth) || (this.opts.maxHeight != null && this.__initHeight > this.opts.maxHeight)) {
this.__dragging = true
this.capture(event)
@ -454,6 +456,7 @@ export default class ButtonGroup extends PIXI.Container {
ThrowPropsPlugin.track(this.container.position, 'x,y')
}
}
}
/**
*
@ -546,6 +549,8 @@ export default class ButtonGroup extends PIXI.Container {
* @param {*} event
*/
onScroll(event) {
if ((this.opts.maxWidth != null && this.__initWidth > this.opts.maxWidth) || (this.opts.maxHeight != null && this.__initHeight > this.opts.maxHeight)) {
this.capture(event)
if (this.opts.orientation === 'horizontal') {
@ -566,6 +571,7 @@ export default class ButtonGroup extends PIXI.Container {
this.stack()
}
}
/**
* Captures an event to inform InteractionMapper about processed events.