Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
CyberDex committed Nov 5, 2023
1 parent 701fef2 commit 8c43c0b
Show file tree
Hide file tree
Showing 5 changed files with 234 additions and 9 deletions.
26 changes: 26 additions & 0 deletions src/DoubleSlider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -261,4 +261,30 @@ export class DoubleSlider extends SliderBase
this.value2Text.y = sliderPosY + (this.sliderOptions.valueTextOffset?.y ?? 0);
}
}

override set width(value: number)
{
super.width = value;

this.updateSlider1();
this.updateSlider2();
}

override get width(): number
{
return super.width;
}

override set height(value: number)
{
super.height = value;

this.updateSlider1();
this.updateSlider2();
}

override get height(): number
{
return super.height;
}
}
33 changes: 25 additions & 8 deletions src/Slider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,9 @@ export class Slider extends SliderBase
constructor(options: SliderOptions)
{
super({
bg: options.bg,
slider1: options.slider,
fill: options.fill ?? '',
min: options.min,
max: options.max,
value1: options.value,
valueTextStyle: options.valueTextStyle,
showValue: options.showValue,
valueTextOffset: options.valueTextOffset,
fillPaddings: options.fillPaddings,
...options
});

this.sliderOptions = options;
Expand Down Expand Up @@ -120,4 +113,28 @@ export class Slider extends SliderBase
this.value1Text.y = sliderPosY + (this.sliderOptions.valueTextOffset?.y ?? 0);
}
}

override set width(value: number)
{
super.width = value;

this.updateSlider();
}

override get width(): number
{
return super.width;
}

override set height(value: number)
{
super.height = value;

this.updateSlider();
}

override get height(): number
{
return super.height;
}
}
2 changes: 1 addition & 1 deletion src/SliderBase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ export class SliderBase extends ProgressBar

constructor(options: DoubleSliderOptions)
{
super();
super(options);

this.setBackground(options.bg);

Expand Down
93 changes: 93 additions & 0 deletions src/stories/slider/DoubleSliderNineSlicePlane.stories.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
import { action } from '@storybook/addon-actions';
import { argTypes, getDefaultArgs } from '../utils/argTypes';
import { DoubleSlider } from '../../DoubleSlider';
import { centerElement } from '../../utils/helpers/resize';
import { preload } from '../utils/loader';
import { Container } from '@pixi/display';
import type { StoryFn } from '@storybook/types';

const args = {
fontColor: '#FFFFFF',
min: 0,
max: 100,
value1: 15,
value2: 85,
fontSize: 20,
showValue: true,
showFill: true,
width: 500,
height: 38,
onChange: action('Slider')
};

export const Double: StoryFn = ({
min,
max,
value1,
value2,
fontSize,
fontColor,
onChange,
showValue,
showFill,
width,
height
}: any) =>
{
const view = new Container();

const assets = ['slider_bg.png', 'slider.png', 'slider_progress.png'];

preload(assets).then(() =>
{
// Component usage !!!
const singleSlider = new DoubleSlider({
bg: 'slider_bg.png',
fill: showFill ? 'slider_progress.png' : null,
slider1: 'slider.png',
slider2: 'slider.png',
nineSlicePlane: {
bg: [250, 19, 250, 19],
fill: [245, 15, 245, 15]
},
fillPaddings: {
top: 2.5,
left: 5,
right: 5,
bottom: 7,
},
min,
max,
value1,
value2,
valueTextStyle: {
fill: fontColor,
fontSize
},
showValue,
valueTextOffset: {
y: -40
},
});

singleSlider.width = width;
singleSlider.height = height;

singleSlider.onChange.connect((value) => onChange(`${value}`));

view.addChild(singleSlider);

centerElement(view);
});

return {
view,
resize: () => centerElement(view)
};
};

export default {
title: 'Components/Slider/SpriteNineSlicePlane',
argTypes: argTypes(args),
args: getDefaultArgs(args)
};
89 changes: 89 additions & 0 deletions src/stories/slider/SliderNineSlicePlane.stories.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
import { action } from '@storybook/addon-actions';
import { argTypes, getDefaultArgs } from '../utils/argTypes';
import { Slider } from '../../Slider';
import { centerElement } from '../../utils/helpers/resize';
import { preload } from '../utils/loader';
import { Container } from '@pixi/display';
import type { StoryFn } from '@storybook/types';

const args = {
fontColor: '#FFFFFF',
min: 0,
max: 100,
value: 50,
fontSize: 20,
showValue: true,
showFill: true,
width: 500,
height: 38,
onChange: action('Slider')
};

export const Single: StoryFn = ({
min,
max,
value,
fontSize,
fontColor,
onChange,
showValue,
showFill,
width,
height
}: any) =>
{
const view = new Container();

const assets = ['slider_bg.png', 'slider.png', 'slider_progress.png'];

preload(assets).then(() =>
{
// Component usage !!!
const singleSlider = new Slider({
bg: 'slider_bg.png',
fill: showFill ? 'slider_progress.png' : null,
slider: 'slider.png',
nineSlicePlane: {
bg: [250, 19, 250, 19],
fill: [245, 15, 245, 15]
},
fillPaddings: {
top: 2.5,
left: 5,
right: 5,
bottom: 7,
},
min,
max,
value,
valueTextStyle: {
fill: fontColor,
fontSize
},
showValue,
valueTextOffset: {
y: -40
},
});

singleSlider.width = width;
singleSlider.height = height;

singleSlider.onChange.connect((value) => onChange(`${value}`));

view.addChild(singleSlider);

centerElement(view);
});

return {
view,
resize: () => centerElement(view)
};
};

export default {
title: 'Components/Slider/SpriteNineSlicePlane',
argTypes: argTypes(args),
args: getDefaultArgs(args)
};

0 comments on commit 8c43c0b

Please sign in to comment.