aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/syscb/callbacks/wndcb.h
blob: 752c5c09b0c184857671f4a226d0ced6b51e510b (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
#ifndef _WNDCB_H
#define _WNDCB_H

#include <api/syscb/callbacks/syscbi.h>
#include <bfc/common.h>

class Container;
class ifc_window;

class WndInfo {
  public:
  GUID guid;
  const wchar_t *groupid;
  const wchar_t *wndtype;
  Container *c;
};

namespace WndCallback {
  enum {
    SHOWWINDOW=10,
    HIDEWINDOW=20,
    GROUPCHANGE=30,
    TYPECHANGE=40,
  };
};

#define WNDCALLBACKI_PARENT SysCallbackI
class WndCallbackI : public WNDCALLBACKI_PARENT {
public:
  virtual FOURCC syscb_getEventType() { return SysCallback::WINDOW; }

protected:
  virtual int onShowWindow(Container *c, GUID guid, const wchar_t *groupid) { return 0; }
  virtual int onHideWindow(Container *c, GUID guid, const wchar_t *groupid) { return 0; }
  virtual int onGroupChange(const wchar_t *groupid) { return 0; }
  virtual int onTypeChange(const wchar_t *type) { return 0; }

private:
  virtual int syscb_notify(int msg, intptr_t param1=0, intptr_t param2=0);

};

#endif