1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
5 * Moonlight List (moonlight-list@lists.ximian.com)
7 * Copyright 2009 Novell, Inc. (http://www.novell.com)
9 * See the LICENSE file included with the distribution for details.
13 #ifndef __MOONLIGHT_EFFECT_H__
14 #define __MOONLIGHT_EFFECT_H__
18 #include "dependencyobject.h"
20 /* @Namespace=System.Windows.Media.Effects */
21 class Effect
: public DependencyObject
{
23 /* @GenerateCBinding,GeneratePInvoke,ManagedAccess=Protected */
30 /* @Namespace=System.Windows.Media.Effects */
31 class BlurEffect
: public Effect
{
33 /* @GenerateCBinding,GeneratePInvoke */
36 /* @PropertyType=double,DefaultValue=5.0,GenerateAccessors */
37 const static int RadiusProperty
;
42 void SetRadius (double radius
);
46 virtual ~BlurEffect () {}
49 /* @Namespace=System.Windows.Media.Effects */
50 class DropShadowEffect
: public Effect
{
52 /* @GenerateCBinding,GeneratePInvoke */
55 /* @PropertyType=double,DefaultValue=5.0,GenerateAccessors */
56 const static int BlurRadiusProperty
;
57 /* @PropertyType=Color,DefaultValue=Color(0xFF000000),GenerateAccessors */
58 const static int ColorProperty
;
59 /* @PropertyType=double,DefaultValue=315,GenerateAccessors */
60 const static int DirectionProperty
;
61 /* @PropertyType=double,DefaultValue=1.0,GenerateAccessors */
62 const static int OpacityProperty
;
63 /* @PropertyType=double,DefaultValue=5,GenerateAccessors */
64 const static int ShadowDepthProperty
;
69 void SetBlurRadius (double radius
);
70 double GetBlurRadius ();
72 void SetColor (Color
* color
);
75 void SetDirection (double direction
);
76 double GetDirection ();
78 void SetOpacity (double opacity
);
81 void SetShadowDepth (double shadowDepth
);
82 double GetShadowDepth ();
85 virtual ~DropShadowEffect () {}
88 /* @Namespace=System.Windows.Media.Effects */
89 class PixelShader
: public DependencyObject
{
91 /* @GenerateCBinding,GeneratePInvoke */
94 /* @PropertyType=Uri,GenerateAccessors */
95 const static int UriSourceProperty
;
100 Uri
* GetUriSource ();
101 void SetUriSource (Uri
*uri
);
104 virtual ~PixelShader () {}
107 /* @Namespace=System.Windows.Media.Effects */
108 class ShaderEffect
: public Effect
{
110 /* @GenerateCBinding,GeneratePInvoke */
113 /* @PropertyType=PixelShader,GenerateAccessors */
114 const static int PixelShaderProperty
;
115 /* @PropertyType=double,ManagedFieldAccess=Internal,GenerateAccessors */
116 const static int PaddingBottomProperty
;
117 /* @PropertyType=double,ManagedFieldAccess=Internal,GenerateAccessors */
118 const static int PaddingTopProperty
;
119 /* @PropertyType=double,ManagedFieldAccess=Internal,GenerateAccessors */
120 const static int PaddingLeftProperty
;
121 /* @PropertyType=double,ManagedFieldAccess=Internal,GenerateAccessors */
122 const static int PaddingRightProperty
;
124 /* @PropertyType=gint32,ManagedFieldAccess=Internal,GenerateAccessors */
125 const static int DdxUvDdyUvRegisterIndexProperty
;
127 // Property Accessors
128 PixelShader
*GetPixelShader();
129 void SetPixelShader (PixelShader
*shader
);
131 double GetPaddingTop ();
132 void SetPaddingTop (double pad
);
134 double GetPaddingBottom ();
135 void SetPaddingBottom (double pad
);
137 double GetPaddingLeft ();
138 void SetPaddingLeft (double pad
);
140 double GetPaddingRight ();
141 void SetPaddingRight (double pad
);
143 int GetDdxUvDdyUvRegisterIndex ();
144 void SetDdxUvDdyUvRegisterIndex (gint32 index
);
147 virtual ~ShaderEffect () {}
151 #endif /* __MOONLIGHT_EFFECT_H__ */