admin
base
com
developer
drivers
ds
enduser
inetcore
inetsrv
loc
mergedcomponents
multimedia
net
printscan
public
published
sdktools
shell
termsrv
tools
windows
advcore
ctf
directui
duser
all
bridgecp
directui
docs
duexts
engine
inc
public
duser.gh.w
duser.gidl.w
duser.w
dusercore.w
dusercp.gh
duserctrl.gh
duserctrl.gidl
duserctrl.w
dusererror.w
dusermotion.w
duserservices.w
duserutil.w
gadget.w
makefile
sources
autoutil.h
commonstdafx.h
dirs
duser.cs
duserbasep.h
dusercorep.h
duserctrlp.h
dusergadget.cs
duserlavap.h
dusermotionp.h
dusermsgp.h
duserobjectapip.h
duserservicesp.h
duserwinapip.h
duserx.h
dxtransguid.h
icecap.h
renderutil.h
rockall.hpp
slist.h
smgadget.h
smgadget.inl
smobject.h
lib
profile
resources
util
bldenv.cmd
dirs
gadgets.dsw
makedrop.cmd
makeice.cmd
placefil.txt
setup.cmd
gdiplus
rcml
dirs
appcompat
core
ddk
dload
feime
netdde
oleacc
published
richedit
winstate
dirs
project.mk
dirs
makefil0
213 lines
5.5 KiB
OpenEdge ABL
213 lines
5.5 KiB
OpenEdge ABL
#if !defined(INC__DUserCtrl_h__INCLUDED)
|
|
#define INC__DUserCtrl_h__INCLUDED
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
|
|
#define BEGIN_INTERPOLATION_INTERFACE(i, guid) \
|
|
struct __declspec(uuid(guid)) i; \
|
|
struct i : public IInterpolation \
|
|
{
|
|
|
|
#define END_INTERPOLATION_INTERFACE() \
|
|
};
|
|
|
|
|
|
#define BEGIN_ANIMATION_INTERFACE(i, guid) \
|
|
struct __declspec(uuid(guid)) i; \
|
|
struct i : public IAnimation \
|
|
{
|
|
|
|
#define END_ANIMATION_INTERFACE() \
|
|
};
|
|
|
|
|
|
#else
|
|
// TODO: Create C definition
|
|
#endif
|
|
|
|
/***************************************************************************\
|
|
*
|
|
* ButtonGadget
|
|
*
|
|
\***************************************************************************/
|
|
|
|
DEFINE_EVENT(evButtonClicked, "DCADCE53-062B-4d1f-B36F-3F2EB27B88CF");
|
|
|
|
|
|
|
|
#ifdef GADGET_ENABLE_COM
|
|
|
|
/***************************************************************************\
|
|
*
|
|
* Interpolation
|
|
*
|
|
\***************************************************************************/
|
|
|
|
struct __declspec(uuid("E188CC9E-4805-487d-9313-3B22AC8FE336")) IInterpolation;
|
|
interface IInterpolation : public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD_(float, Compute)(float flProgress, float flStart, float flEnd) PURE;
|
|
};
|
|
|
|
|
|
BEGIN_INTERPOLATION_INTERFACE(ILinearInterpolation, "3FD65045-7BF5-4a65-B137-F441529BD8F4")
|
|
END_INTERPOLATION_INTERFACE()
|
|
|
|
|
|
BEGIN_INTERPOLATION_INTERFACE(ILogInterpolation, "98C0FB9A-534D-4b9f-A439-A8E13F0C2D9E")
|
|
STDMETHOD_(void, SetScale)(float flScale) PURE;
|
|
END_INTERPOLATION_INTERFACE()
|
|
|
|
|
|
BEGIN_INTERPOLATION_INTERFACE(IExpInterpolation, "280DC2CC-7703-4147-8356-3FAACE662CD1")
|
|
STDMETHOD_(void, SetScale)(float flScale) PURE;
|
|
END_INTERPOLATION_INTERFACE()
|
|
|
|
|
|
BEGIN_INTERPOLATION_INTERFACE(ISInterpolation, "D07C8B2F-1896-438f-9EC2-6938ABD0D20C")
|
|
STDMETHOD_(void, SetScale)(float flScale) PURE;
|
|
END_INTERPOLATION_INTERFACE()
|
|
|
|
|
|
#define INTERPOLATION_LINEAR (1)
|
|
#define INTERPOLATION_LOG (2)
|
|
#define INTERPOLATION_EXP (3)
|
|
#define INTERPOLATION_S (4)
|
|
|
|
DUSER_API BOOL WINAPI BuildInterpolation(UINT nIPolID, int nVersion, REFIID riid, void ** ppvUnk);
|
|
|
|
|
|
/***************************************************************************\
|
|
*
|
|
* Animations
|
|
*
|
|
\***************************************************************************/
|
|
|
|
#ifdef GADGET_ENABLE_TRANSITIONS
|
|
|
|
interface IAnimationCallback;
|
|
|
|
struct __declspec(uuid("7AACE668-81EB-48d7-8734-267C83FF6DFF")) IAnimation;
|
|
interface IAnimation : public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD_(void, SetFunction)(IInterpolation * pipol) PURE;
|
|
|
|
enum ETime {
|
|
tComplete, // Completed normally
|
|
tEnd, // Jumped to end
|
|
tAbort, // Aborted in place
|
|
tReset, // Reset to beginning
|
|
tDestroy // The Gadget being animationed has been destroyed
|
|
};
|
|
STDMETHOD_(void, SetTime)(ETime time) PURE;
|
|
STDMETHOD_(UINT, GetID)() const PURE;
|
|
STDMETHOD_(void, SetCallback)(IAnimationCallback * pcb) PURE;
|
|
};
|
|
|
|
|
|
interface IAnimationCallback : public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD_(void, OnComplete)(IAnimation * pAni, IAnimation::ETime time) PURE;
|
|
STDMETHOD_(void, OnSetTime)(IAnimation * pAni, IAnimation::ETime time) PURE;
|
|
};
|
|
|
|
|
|
#define ANIF_USESTART 0x00000001 // Use the specified start values
|
|
// instead of querying the current
|
|
|
|
struct GANI_DESC
|
|
{
|
|
DWORD cbSize;
|
|
HGADGET hgadChange;
|
|
GMA_ACTION act;
|
|
UINT nAniFlags;
|
|
IInterpolation *
|
|
pipol;
|
|
IAnimationCallback *
|
|
pcb;
|
|
};
|
|
|
|
|
|
#define GANI_ALPHACOMPLETE_OPTIMIZE 0x00000001 // Turn off alpha-blending if not needed
|
|
|
|
struct GANI_ALPHADESC : public GANI_DESC
|
|
{
|
|
float flStart;
|
|
float flEnd;
|
|
BOOL fPushToChildren;
|
|
UINT nOnComplete;
|
|
};
|
|
|
|
|
|
struct GANI_SCALEDESC : public GANI_DESC
|
|
{
|
|
enum EAlignment {
|
|
aTopLeft,
|
|
aTopCenter,
|
|
aTopRight,
|
|
aMiddleLeft,
|
|
aMiddleCenter,
|
|
aMiddleRight,
|
|
aBottomLeft,
|
|
aBottomCenter,
|
|
aBottomRight
|
|
};
|
|
|
|
EAlignment al;
|
|
float flStart;
|
|
float flEnd;
|
|
};
|
|
|
|
|
|
struct GANI_RECTDESC : public GANI_DESC
|
|
{
|
|
POINT ptStart;
|
|
POINT ptEnd;
|
|
SIZE sizeStart;
|
|
SIZE sizeEnd;
|
|
UINT nChangeFlags;
|
|
};
|
|
|
|
|
|
#define GANI_ROTATEDIRECTION_SHORT 0 // Shortest arc
|
|
#define GANI_ROTATEDIRECTION_LONG 1 // Longer arc
|
|
#define GANI_ROTATEDIRECTION_CW 2 // Clock-wise
|
|
#define GANI_ROTATEDIRECTION_CCW 3 // Counter clock-wise
|
|
|
|
struct GANI_ROTATEDESC : public GANI_DESC
|
|
{
|
|
float flStart;
|
|
float flEnd;
|
|
UINT nDir;
|
|
};
|
|
|
|
|
|
#define ANIMATION_ALPHA (1)
|
|
#define ANIMATION_SCALE (2)
|
|
#define ANIMATION_RECT (3)
|
|
#define ANIMATION_ROTATE (4)
|
|
|
|
|
|
DUSER_API BOOL WINAPI BuildAnimation(UINT nAniID, int nVersion, GANI_DESC * pDesc, REFIID riid, void ** ppvUnk);
|
|
DUSER_API BOOL WINAPI GetGadgetAnimation(HGADGET hgad, UINT nAniID, REFIID riid, void ** ppvUnk);
|
|
|
|
|
|
#endif // GADGET_ENABLE_TRANSITIONS
|
|
#endif // GADGET_ENABLE_COM
|
|
|
|
DUSER_API BOOL WINAPI BuildDropTarget(HGADGET hgadRoot, HWND hwnd);
|
|
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
|
|
#endif // INC__DUserCtrl_h__INCLUDED
|