aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/skin/widgets/wa2/xuiwa2slider.h
blob: 1f24fe9c839fd8535899db0090b63967f50241b6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#ifndef _XUIWA2SLIDER_H
#define _XUIWA2SLIDER_H

#include <api/script/objects/guiobj.h>
#include <api/skin/widgets.h>
#include <api/syscb/callbacks/corecbi.h>

#define WA2SLIDER_PARENT GuiObjectWnd

class Wa2Slider : public WA2SLIDER_PARENT, public CoreCallbackI
{
public:
	Wa2Slider();
	virtual ~Wa2Slider();

	virtual int setXuiParam(int xuihandle, int xmlattributeid, const wchar_t *xmlattributename, const wchar_t *value);

	virtual int onInit();
	virtual int onPaint(Canvas *canvas);

	virtual int corecb_onVolumeChange(int newvol);
	virtual int corecb_onPanChange(int newpan);
	virtual int corecb_onSeeked(int newpos);
	virtual int corecb_onStarted();
	virtual int corecb_onStopped();
	virtual void timerCallback(int id);

protected:
	/*static */void CreateXMLParameters(int master_handle);
private:
	int realpos;
	StringW images;
	SkinBitmap *imagesBitmap;
	int spacing;
	int action;
	static XMLParamPair params[];
	int xuihandle;
	bool started;

	enum {
	    ACT_NONE = 0,
	    ACT_VOLUME,
	    ACT_BALANCE,
	    ACT_SEEK,
	};

	enum {
	    Wa2Slider_TIMER_POS = 1,
	};
	enum {
	    WA2SLIDER_IMAGES,
	    WA2SLIDER_IMAGESSPACING,
	    WA2SLIDER_SOURCE,
	    WA2SLIDER_NUMPARAMS,
	};
};

// -----------------------------------------------------------------------
extern const wchar_t Wa2SliderXuiObjectStr[];
extern char Wa2SliderXuiSvcName[];
class Wa2SliderXuiSvc : public XuiObjectSvc<Wa2Slider, Wa2SliderXuiObjectStr, Wa2SliderXuiSvcName> {};

#endif