Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
120
Src/Wasabi/api/service/svcs/svc_wndcreate.h
Normal file
120
Src/Wasabi/api/service/svcs/svc_wndcreate.h
Normal file
|
@ -0,0 +1,120 @@
|
|||
#ifndef _SVC_WNDCREATE_H
|
||||
#define _SVC_WNDCREATE_H
|
||||
|
||||
#include <bfc/dispatch.h>
|
||||
#include <api/service/services.h>
|
||||
|
||||
#define BUCKETITEM L"buck"
|
||||
#define PLAYLISTSIDECAR L"plsc"
|
||||
|
||||
class ifc_window;
|
||||
|
||||
class NOVTABLE svc_windowCreate : public Dispatchable
|
||||
{
|
||||
public:
|
||||
static FOURCC getServiceType() { return WaSvc::WINDOWCREATE; }
|
||||
|
||||
int testGuid(GUID g);
|
||||
ifc_window *createWindowByGuid(GUID g, ifc_window *parent);
|
||||
int testType(const wchar_t *windowtype);
|
||||
ifc_window *createWindowOfType(const wchar_t *windowtype, ifc_window *parent, int n = 0);
|
||||
int destroyWindow(ifc_window *w);
|
||||
|
||||
int refcount(); // how many windows created
|
||||
|
||||
enum {
|
||||
TESTGUID = 100,
|
||||
CREATEWINDOWBYGUID = 200,
|
||||
TESTTYPE = 301,
|
||||
CREATEWINDOWOFTYPE = 402,
|
||||
DESTROYWINDOW = 500,
|
||||
REFCOUNT = 600,
|
||||
};
|
||||
};
|
||||
|
||||
inline int svc_windowCreate::testGuid(GUID g)
|
||||
{
|
||||
return _call(TESTGUID, 0, g);
|
||||
}
|
||||
|
||||
inline ifc_window *svc_windowCreate::createWindowByGuid(GUID g, ifc_window *parent)
|
||||
{
|
||||
return _call(CREATEWINDOWBYGUID, (ifc_window*)0, g, parent);
|
||||
}
|
||||
|
||||
inline int svc_windowCreate::destroyWindow(ifc_window *w)
|
||||
{
|
||||
return _call(DESTROYWINDOW, 0, w);
|
||||
}
|
||||
|
||||
inline int svc_windowCreate::testType(const wchar_t *windowtype)
|
||||
{
|
||||
return _call(TESTTYPE, 0, windowtype);
|
||||
}
|
||||
|
||||
inline ifc_window *svc_windowCreate::createWindowOfType(const wchar_t * windowtype, ifc_window *parent, int n)
|
||||
{
|
||||
return _call(CREATEWINDOWOFTYPE, (ifc_window*)0, windowtype, parent, n);
|
||||
}
|
||||
|
||||
inline int svc_windowCreate::refcount()
|
||||
{
|
||||
return _call(REFCOUNT, -1);
|
||||
}
|
||||
|
||||
class NOVTABLE svc_windowCreateI : public svc_windowCreate
|
||||
{
|
||||
public:
|
||||
virtual ~svc_windowCreateI() { }
|
||||
virtual int testGuid(GUID g) { return 0; }
|
||||
virtual ifc_window *createWindowByGuid(GUID g, ifc_window *parent) { return NULL; }
|
||||
virtual int testType(const wchar_t *windowtype) { return 0; }
|
||||
virtual ifc_window *createWindowOfType(const wchar_t *windowtype, ifc_window *parent, int n) { return NULL; }
|
||||
virtual int destroyWindow(ifc_window *w) = 0;
|
||||
|
||||
virtual int refcount() { return -1; } // FUCKO: make pure abstract
|
||||
|
||||
protected:
|
||||
RECVS_DISPATCH;
|
||||
};
|
||||
|
||||
#include <api/service/servicei.h>
|
||||
template <class T>
|
||||
class WndCreateCreator : public waServiceFactoryT<svc_windowCreate, T> {};
|
||||
|
||||
template <class T>
|
||||
class WndCreateCreatorSingle : public waServiceFactoryTSingle<svc_windowCreate, T> {};
|
||||
|
||||
#include <api/service/svc_enum.h>
|
||||
#include <bfc/string/StringW.h>
|
||||
|
||||
class WindowCreateByGuidEnum : public SvcEnumT<svc_windowCreate>
|
||||
{
|
||||
public:
|
||||
WindowCreateByGuidEnum(GUID _g) : targetguid(_g) { }
|
||||
|
||||
protected:
|
||||
virtual int testService(svc_windowCreate *svc)
|
||||
{
|
||||
return svc->testGuid(targetguid);
|
||||
}
|
||||
|
||||
private:
|
||||
GUID targetguid;
|
||||
};
|
||||
|
||||
class WindowCreateByTypeEnum : public SvcEnumT<svc_windowCreate>
|
||||
{
|
||||
public:
|
||||
WindowCreateByTypeEnum(const wchar_t *_wtype) : wtype(_wtype) { }
|
||||
|
||||
protected:
|
||||
virtual int testService(svc_windowCreate *svc)
|
||||
{
|
||||
return svc->testType(wtype);
|
||||
}
|
||||
|
||||
private:
|
||||
StringW wtype;
|
||||
};
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue