aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/skin/widgets/sseeker.h
blob: ee94805973ab5983d0e52a7be26bd5e2030ce570 (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
#ifndef _SSEEKER_H
#define _SSEEKER_H

#include "pslider.h"
#include <api/syscb/callbacks/corecbi.h>

#define SSEEKER_PARENT PSliderWnd
#define SSEEKER_XMLPARENT PSliderWnd

#define STOP 0
#define PLAY 1

class SSeeker : public SSEEKER_PARENT, public CoreCallbackI {
public:
  SSeeker();
  virtual ~SSeeker();

  virtual int onInit();

  virtual int setXuiParam(int _xuihandle, int attrid, const wchar_t *name, const wchar_t *val);
  virtual void lock();
  virtual void unlock();

  virtual int scriptDivisor() { return 256; }

  enum {
    SSEEKER_SETINTERVAL=0,
  };

protected:
	/*static */void CreateXMLParameters(int master_handle);
  virtual int onSetFinalPosition();

  // from BaseWnd
  virtual void timerCallback(int id);

  // from CoreCallbackI
  virtual int corecb_onSeeked(int newpos);
  virtual int corecb_onStarted();
  virtual int corecb_onStopped();

  int status;

private:
	static XMLParamPair params[];
  int update_interval;
  int locked;
  int xuihandle;
};

extern const wchar_t seekBarXuiStr[];
extern char seekBarXuiSvcName[];
class SeekBarXuiSvc : public XuiObjectSvc<SSeeker, seekBarXuiStr, seekBarXuiSvcName> {};


#endif