Support for PangoFT2, PangoCairo, fontconfig2, freetype22, GL, Clutter, ClutterX11...
[girtod.git] / gtk2 / clutter.d
blob4bfa501e4c20c8265cf32c5ca7f7098e05843666
1 // *** DO NOT EDIT ***
2 // Automatically generated from "/usr/share/gir-1.0/Clutter-1.0.gir"
4 module Clutter;
5 public import gtk2.atk;
6 alias gtk2.atk Atk;
7 public import gtk2.cogl;
8 alias gtk2.cogl Cogl;
9 public import gtk2.coglpango;
10 alias gtk2.coglpango CoglPango;
11 public import gtk2.gl;
12 alias gtk2.gl GL;
13 public import gtk2.glib2;
14 alias gtk2.glib2 GLib2;
15 public import gtk2.gobject2;
16 alias gtk2.gobject2 GObject2;
17 public import gtk2.gio2;
18 alias gtk2.gio2 Gio2;
19 public import gtk2.json;
20 alias gtk2.json Json;
21 public import gtk2.pango;
22 alias gtk2.pango Pango;
23 public import gtk2.pangocairo;
24 alias gtk2.pangocairo PangoCairo;
25 public import gtk2.pangoft2;
26 alias gtk2.pangoft2 PangoFT2;
27 public import gtk2.cairo;
28 alias gtk2.cairo cairo;
29 public import gtk2.fontconfig2;
30 alias gtk2.fontconfig2 fontconfig2;
31 public import gtk2.freetype22;
32 alias gtk2.freetype22 freetype22;
34 // package: "clutter-1.0";
35 // C header: "clutter/clutter.h";
37 // c:symbol-prefixes: ["clutter"]
38 // c:identifier-prefixes: ["Clutter"]
40 // module Clutter;
42 enum int _0 = 48;
43 enum int _1 = 49;
44 enum int _2 = 50;
45 enum int _3 = 51;
46 enum int _3270_AltCursor = 64784;
47 enum int _3270_Attn = 64782;
48 enum int _3270_BackTab = 64773;
49 enum int _3270_ChangeScreen = 64793;
50 enum int _3270_Copy = 64789;
51 enum int _3270_CursorBlink = 64783;
52 enum int _3270_CursorSelect = 64796;
53 enum int _3270_DeleteWord = 64794;
54 enum int _3270_Duplicate = 64769;
55 enum int _3270_Enter = 64798;
56 enum int _3270_EraseEOF = 64774;
57 enum int _3270_EraseInput = 64775;
58 enum int _3270_ExSelect = 64795;
59 enum int _3270_FieldMark = 64770;
60 enum int _3270_Ident = 64787;
61 enum int _3270_Jump = 64786;
62 enum int _3270_KeyClick = 64785;
63 enum int _3270_Left2 = 64772;
64 enum int _3270_PA1 = 64778;
65 enum int _3270_PA2 = 64779;
66 enum int _3270_PA3 = 64780;
67 enum int _3270_Play = 64790;
68 enum int _3270_PrintScreen = 64797;
69 enum int _3270_Quit = 64777;
70 enum int _3270_Record = 64792;
71 enum int _3270_Reset = 64776;
72 enum int _3270_Right2 = 64771;
73 enum int _3270_Rule = 64788;
74 enum int _3270_Setup = 64791;
75 enum int _3270_Test = 64781;
76 enum int _4 = 52;
77 enum int _5 = 53;
78 enum int _6 = 54;
79 enum int _7 = 55;
80 enum int _8 = 56;
81 enum int _9 = 57;
82 enum int A = 65;
83 enum int AE = 198;
84 enum int Aacute = 193;
85 enum int Abelowdot = 16785056;
86 enum int Abreve = 451;
87 enum int Abreveacute = 16785070;
88 enum int Abrevebelowdot = 16785078;
89 enum int Abrevegrave = 16785072;
90 enum int Abrevehook = 16785074;
91 enum int Abrevetilde = 16785076;
92 enum int AccessX_Enable = 65136;
93 enum int AccessX_Feedback_Enable = 65137;
94 enum int Acircumflex = 194;
95 enum int Acircumflexacute = 16785060;
96 enum int Acircumflexbelowdot = 16785068;
97 enum int Acircumflexgrave = 16785062;
98 enum int Acircumflexhook = 16785064;
99 enum int Acircumflextilde = 16785066;
101 // The <structname>ClutterAction</structname> structure contains only
102 // private data and should be accessed using the provided API
103 struct Action /* : ActorMeta */ /* Version 1.4 */ {
104 alias parent_instance this;
105 alias parent_instance super_;
106 alias parent_instance actormeta;
107 ActorMeta parent_instance;
111 // The <structname>ClutterActionClass</structname> structure contains
112 // only private data
113 struct ActionClass /* Version 1.4 */ {
114 private ActorMetaClass parent_class;
115 extern (C) void function () _clutter_action1;
116 extern (C) void function () _clutter_action2;
117 extern (C) void function () _clutter_action3;
118 extern (C) void function () _clutter_action4;
119 extern (C) void function () _clutter_action5;
120 extern (C) void function () _clutter_action6;
121 extern (C) void function () _clutter_action7;
122 extern (C) void function () _clutter_action8;
125 // Base class for actors.
126 struct Actor /* : GObject.InitiallyUnowned */ {
127 alias parent_instance this;
128 alias parent_instance super_;
129 alias parent_instance initiallyunowned;
130 GObject2.InitiallyUnowned parent_instance;
131 uint flags;
132 private uint private_flags;
133 private ActorPrivate* priv;
136 // Adds @action to the list of actions applied to @self
138 // A #ClutterAction can only belong to one actor at a time
140 // The #ClutterActor will hold a reference on @action until either
141 // clutter_actor_remove_action() or clutter_actor_clear_actions()
142 // is called
143 // <action>: a #ClutterAction
144 void add_action(Action* action) {
145 clutter_actor_add_action(&this, action);
148 // A convenience function for setting the name of a #ClutterAction
149 // while adding it to the list of actions applied to @self
151 // This function is the logical equivalent of:
153 // |[
154 // clutter_actor_meta_set_name (CLUTTER_ACTOR_META (action), name);
155 // clutter_actor_add_action (self, action);
156 // ]|
157 // <name>: the name to set on the action
158 // <action>: a #ClutterAction
159 void add_action_with_name(char* name, Action* action) {
160 clutter_actor_add_action_with_name(&this, name, action);
163 // Adds @constraint to the list of #ClutterConstraint<!-- -->s applied
164 // to @self
166 // The #ClutterActor will hold a reference on the @constraint until
167 // either clutter_actor_remove_constraint() or
168 // clutter_actor_clear_constraints() is called.
169 // <constraint>: a #ClutterConstraint
170 void add_constraint(Constraint* constraint) {
171 clutter_actor_add_constraint(&this, constraint);
174 // A convenience function for setting the name of a #ClutterConstraint
175 // while adding it to the list of constraints applied to @self
177 // This function is the logical equivalent of:
179 // |[
180 // clutter_actor_meta_set_name (CLUTTER_ACTOR_META (constraint), name);
181 // clutter_actor_add_constraint (self, constraint);
182 // ]|
183 // <name>: the name to set on the constraint
184 // <constraint>: a #ClutterConstraint
185 void add_constraint_with_name(char* name, Constraint* constraint) {
186 clutter_actor_add_constraint_with_name(&this, name, constraint);
189 // Adds @effect to the list of #ClutterEffect<!-- -->s applied to @self
191 // The #ClutterActor will hold a reference on the @effect until either
192 // clutter_actor_remove_effect() or clutter_actor_clear_effects() is
193 // called.
194 // <effect>: a #ClutterEffect
195 void add_effect(Effect* effect) {
196 clutter_actor_add_effect(&this, effect);
199 // A convenience function for setting the name of a #ClutterEffect
200 // while adding it to the list of effectss applied to @self
202 // This function is the logical equivalent of:
204 // |[
205 // clutter_actor_meta_set_name (CLUTTER_ACTOR_META (effect), name);
206 // clutter_actor_add_effect (self, effect);
207 // ]|
208 // <name>: the name to set on the effect
209 // <effect>: a #ClutterEffect
210 void add_effect_with_name(char* name, Effect* effect) {
211 clutter_actor_add_effect_with_name(&this, name, effect);
214 // Called by the parent of an actor to assign the actor its size.
215 // Should never be called by applications (except when implementing
216 // a container or layout manager).
218 // Actors can know from their allocation box whether they have moved
219 // with respect to their parent actor. The @flags parameter describes
220 // additional information about the allocation, for instance whether
221 // the parent has moved with respect to the stage, for example because
222 // a grandparent's origin has moved.
223 // <box>: new allocation of the actor, in parent-relative coordinates
224 // <flags>: flags that control the allocation
225 void allocate(ActorBox* box, AllocationFlags flags) {
226 clutter_actor_allocate(&this, box, flags);
229 // Allocates @self by taking into consideration the available allocation
230 // area; an alignment factor on either axis; and whether the actor should
231 // fill the allocation on either axis.
233 // The @box should contain the available allocation width and height;
234 // if the x1 and y1 members of #ClutterActorBox are not set to 0, the
235 // allocation will be offset by their value.
237 // This function takes into consideration the geometry request specified by
238 // the #ClutterActor:request-mode property, and the text direction.
240 // This function is useful for fluid layout managers, like #ClutterBinLayout
241 // or #ClutterTableLayout
242 // <box>: a #ClutterActorBox, containing the available width and height
243 // <x_align>: the horizontal alignment, between 0 and 1
244 // <y_align>: the vertical alignment, between 0 and 1
245 // <x_fill>: whether the actor should fill horizontally
246 // <y_fill>: whether the actor should fill vertically
247 // <flags>: allocation flags to be passed to clutter_actor_allocate()
248 void allocate_align_fill(ActorBox* box, double x_align, double y_align, int x_fill, int y_fill, AllocationFlags flags) {
249 clutter_actor_allocate_align_fill(&this, box, x_align, y_align, x_fill, y_fill, flags);
252 // Allocates @self taking into account the #ClutterActor<!-- -->'s
253 // preferred size, but limiting it to the maximum available width
254 // and height provided.
256 // This function will do the right thing when dealing with the
257 // actor's request mode.
259 // The implementation of this function is equivalent to:
261 // |[
262 // if (request_mode == CLUTTER_REQUEST_HEIGHT_FOR_WIDTH)
263 // {
264 // clutter_actor_get_preferred_width (self, available_height,
265 // &amp;min_width,
266 // &amp;natural_width);
267 // width = CLAMP (natural_width, min_width, available_width);
269 // clutter_actor_get_preferred_height (self, width,
270 // &amp;min_height,
271 // &amp;natural_height);
272 // height = CLAMP (natural_height, min_height, available_height);
273 // }
274 // else
275 // {
276 // clutter_actor_get_preferred_height (self, available_width,
277 // &amp;min_height,
278 // &amp;natural_height);
279 // height = CLAMP (natural_height, min_height, available_height);
281 // clutter_actor_get_preferred_width (self, height,
282 // &amp;min_width,
283 // &amp;natural_width);
284 // width = CLAMP (natural_width, min_width, available_width);
285 // }
287 // box.x1 = x; box.y1 = y;
288 // box.x2 = box.x1 + available_width;
289 // box.y2 = box.y1 + available_height;
290 // clutter_actor_allocate (self, &amp;box, flags);
291 // ]|
293 // This function can be used by fluid layout managers to allocate
294 // an actor's preferred size without making it bigger than the area
295 // available for the container.
296 // <x>: the actor's X coordinate
297 // <y>: the actor's Y coordinate
298 // <available_width>: the maximum available width, or -1 to use the actor's natural width
299 // <available_height>: the maximum available height, or -1 to use the actor's natural height
300 // <flags>: flags controlling the allocation
301 void allocate_available_size(float x, float y, float available_width, float available_height, AllocationFlags flags) {
302 clutter_actor_allocate_available_size(&this, x, y, available_width, available_height, flags);
305 // Allocates the natural size of @self.
307 // This function is a utility call for #ClutterActor implementations
308 // that allocates the actor's preferred natural size. It can be used
309 // by fixed layout managers (like #ClutterGroup or so called
310 // 'composite actors') inside the ClutterActor::allocate
311 // implementation to give each child exactly how much space it
312 // requires.
314 // This function is not meant to be used by applications. It is also
315 // not meant to be used outside the implementation of the
316 // ClutterActor::allocate virtual function.
317 // <flags>: flags controlling the allocation
318 void allocate_preferred_size(AllocationFlags flags) {
319 clutter_actor_allocate_preferred_size(&this, flags);
322 // Unintrospectable method: animate() / clutter_actor_animate()
323 // Animates the given list of properties of @actor between the current
324 // value for each property and a new final value. The animation has a
325 // definite duration and a speed given by the @mode.
327 // For example, this:
329 // |[
330 // clutter_actor_animate (rectangle, CLUTTER_LINEAR, 250,
331 // "width", 100.0,
332 // "height", 100.0,
333 // NULL);
334 // ]|
336 // will make width and height properties of the #ClutterActor "rectangle"
337 // grow linearly between the current value and 100 pixels, in 250 milliseconds.
339 // The animation @mode is a logical id, either from the #ClutterAnimationMode
340 // enumeration of from clutter_alpha_register_func().
342 // All the properties specified will be animated between the current value
343 // and the final value. If a property should be set at the beginning of
344 // the animation but not updated during the animation, it should be prefixed
345 // by the "fixed::" string, for instance:
347 // |[
348 // clutter_actor_animate (actor, CLUTTER_EASE_IN_SINE, 100,
349 // "rotation-angle-z", 360.0,
350 // "fixed::rotation-center-z", &amp;center,
351 // NULL);
352 // ]|
354 // Will animate the "rotation-angle-z" property between the current value
355 // and 360 degrees, and set the "rotation-center-z" property to the fixed
356 // value of the #ClutterVertex "center".
358 // This function will implicitly create a #ClutterAnimation object which
359 // will be assigned to the @actor and will be returned to the developer
360 // to control the animation or to know when the animation has been
361 // completed.
363 // If a name argument starts with "signal::", "signal-after::",
364 // "signal-swapped::" or "signal-swapped-after::" the two following arguments
365 // are used as callback function and data for a signal handler installed on
366 // the #ClutterAnimation object for the specified signal name, for instance:
368 // |[
370 // static void
371 // on_animation_completed (ClutterAnimation *animation,
372 // ClutterActor *actor)
373 // {
374 // clutter_actor_hide (actor);
375 // }
377 // clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 100,
378 // "opacity", 0,
379 // "signal::completed", on_animation_completed, actor,
380 // NULL);
381 // ]|
383 // or, to automatically destroy an actor at the end of the animation:
385 // |[
386 // clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 100,
387 // "opacity", 0,
388 // "signal-swapped-after::completed",
389 // clutter_actor_destroy,
390 // actor,
391 // NULL);
392 // ]|
394 // The "signal::" modifier is the equivalent of using g_signal_connect();
395 // the "signal-after::" modifier is the equivalent of using
396 // g_signal_connect_after() or g_signal_connect_data() with the
397 // %G_CONNECT_AFTER; the "signal-swapped::" modifier is the equivalent
398 // of using g_signal_connect_swapped() or g_signal_connect_data() with the
399 // %G_CONNECT_SWAPPED flah; finally, the "signal-swapped-after::" modifier
400 // is the equivalent of using g_signal_connect_data() with both the
401 // %G_CONNECT_AFTER and %G_CONNECT_SWAPPED flags. The clutter_actor_animate()
402 // function will not keep track of multiple connections to the same signal,
403 // so it is your responsability to avoid them when calling
404 // clutter_actor_animate() multiple times on the same actor.
406 // Calling this function on an actor that is already being animated
407 // will cause the current animation to change with the new final values,
408 // the new easing mode and the new duration - that is, this code:
410 // |[
411 // clutter_actor_animate (actor, CLUTTER_LINEAR, 250,
412 // "width", 100.0,
413 // "height", 100.0,
414 // NULL);
415 // clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 500,
416 // "x", 100.0,
417 // "y", 100.0,
418 // "width", 200.0,
419 // NULL);
420 // ]|
422 // is the equivalent of:
424 // |[
425 // clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 500,
426 // "x", 100.0,
427 // "y", 100.0,
428 // "width", 200.0,
429 // "height", 100.0,
430 // NULL);
431 // ]|
433 // <note>Unless the animation is looping, the #ClutterAnimation created by
434 // clutter_actor_animate() will become invalid as soon as it is
435 // complete.</note>
437 // Since the created #ClutterAnimation instance attached to @actor
438 // is guaranteed to be valid throughout the #ClutterAnimation::completed
439 // signal emission chain, you will not be able to create a new animation
440 // using clutter_actor_animate() on the same @actor from within the
441 // #ClutterAnimation::completed signal handler unless you use
442 // g_signal_connect_after() to connect the callback function, for instance:
444 // |[
445 // static void
446 // on_animation_completed (ClutterAnimation *animation,
447 // ClutterActor *actor)
448 // {
449 // clutter_actor_animate (actor, CLUTTER_EASE_OUT_CUBIC, 250,
450 // "x", 500.0,
451 // "y", 500.0,
452 // NULL);
453 // }
455 // ...
456 // animation = clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 250,
457 // "x", 100.0,
458 // "y", 100.0,
459 // NULL);
460 // g_signal_connect (animation, "completed",
461 // G_CALLBACK (on_animation_completed),
462 // actor);
463 // ...
464 // ]|
466 // owned by the #ClutterActor and should not be unreferenced with
467 // g_object_unref()
468 // RETURNS: a #ClutterAnimation object. The object is
469 // <mode>: an animation mode logical id
470 // <duration>: duration of the animation, in milliseconds
471 // <first_property_name>: the name of a property
472 /+ Not available -- variadic methods unsupported - use the C function directly.
473 alias clutter_actor_animate animate; // Variadic
476 // Unintrospectable method: animate_with_alpha() / clutter_actor_animate_with_alpha()
477 // Animates the given list of properties of @actor between the current
478 // value for each property and a new final value. The animation has a
479 // definite behaviour given by the passed @alpha.
481 // See clutter_actor_animate() for further details.
483 // This function is useful if you want to use an existing #ClutterAlpha
484 // to animate @actor.
486 // #ClutterActor and should not be unreferenced with g_object_unref()
487 // RETURNS: a #ClutterAnimation object. The object is owned by the
488 // <alpha>: a #ClutterAlpha
489 // <first_property_name>: the name of a property
490 /+ Not available -- variadic methods unsupported - use the C function directly.
491 alias clutter_actor_animate_with_alpha animate_with_alpha; // Variadic
494 // Animates the given list of properties of @actor between the current
495 // value for each property and a new final value. The animation has a
496 // definite behaviour given by the passed @alpha.
498 // See clutter_actor_animate() for further details.
500 // This function is useful if you want to use an existing #ClutterAlpha
501 // to animate @actor.
503 // This is the vector-based variant of clutter_actor_animate_with_alpha(),
504 // useful for language bindings.
506 // <warning>Unlike clutter_actor_animate_with_alpha(), this function will
507 // not allow you to specify "signal::" names and callbacks.</warning>
509 // #ClutterActor and should not be unreferenced with g_object_unref()
510 // RETURNS: a #ClutterAnimation object. The object is owned by the
511 // <alpha>: a #ClutterAlpha
512 // <n_properties>: number of property names and values
513 // <properties>: a vector containing the property names to set
514 // <values>: a vector containing the property values to set
515 Animation* animate_with_alphav(Alpha* alpha, int n_properties, char* properties, GObject2.Value* values) {
516 return clutter_actor_animate_with_alphav(&this, alpha, n_properties, properties, values);
519 // Unintrospectable method: animate_with_timeline() / clutter_actor_animate_with_timeline()
520 // Animates the given list of properties of @actor between the current
521 // value for each property and a new final value. The animation has a
522 // definite duration given by @timeline and a speed given by the @mode.
524 // See clutter_actor_animate() for further details.
526 // This function is useful if you want to use an existing timeline
527 // to animate @actor.
529 // owned by the #ClutterActor and should not be unreferenced with
530 // g_object_unref()
531 // RETURNS: a #ClutterAnimation object. The object is
532 // <mode>: an animation mode logical id
533 // <timeline>: a #ClutterTimeline
534 // <first_property_name>: the name of a property
535 /+ Not available -- variadic methods unsupported - use the C function directly.
536 alias clutter_actor_animate_with_timeline animate_with_timeline; // Variadic
539 // Animates the given list of properties of @actor between the current
540 // value for each property and a new final value. The animation has a
541 // definite duration given by @timeline and a speed given by the @mode.
543 // See clutter_actor_animate() for further details.
545 // This function is useful if you want to use an existing timeline
546 // to animate @actor.
548 // This is the vector-based variant of clutter_actor_animate_with_timeline(),
549 // useful for language bindings.
551 // <warning>Unlike clutter_actor_animate_with_timeline(), this function
552 // will not allow you to specify "signal::" names and callbacks.</warning>
554 // owned by the #ClutterActor and should not be unreferenced with
555 // g_object_unref()
556 // RETURNS: a #ClutterAnimation object. The object is
557 // <mode>: an animation mode logical id
558 // <timeline>: a #ClutterTimeline
559 // <n_properties>: number of property names and values
560 // <properties>: a vector containing the property names to set
561 // <values>: a vector containing the property values to set
562 Animation* animate_with_timelinev(c_ulong mode, Timeline* timeline, int n_properties, char* properties, GObject2.Value* values) {
563 return clutter_actor_animate_with_timelinev(&this, mode, timeline, n_properties, properties, values);
566 // Animates the given list of properties of @actor between the current
567 // value for each property and a new final value. The animation has a
568 // definite duration and a speed given by the @mode.
570 // This is the vector-based variant of clutter_actor_animate(), useful
571 // for language bindings.
573 // <warning>Unlike clutter_actor_animate(), this function will not
574 // allow you to specify "signal::" names and callbacks.</warning>
576 // owned by the #ClutterActor and should not be unreferenced with
577 // g_object_unref()
578 // RETURNS: a #ClutterAnimation object. The object is
579 // <mode>: an animation mode logical id
580 // <duration>: duration of the animation, in milliseconds
581 // <n_properties>: number of property names and values
582 // <properties>: a vector containing the property names to set
583 // <values>: a vector containing the property values to set
584 Animation* animatev(c_ulong mode, uint duration, int n_properties, char* properties, GObject2.Value* values) {
585 return clutter_actor_animatev(&this, mode, duration, n_properties, properties, values);
588 // Transforms @point in coordinates relative to the actor into
589 // ancestor-relative coordinates using the relevant transform
590 // stack (i.e. scale, rotation, etc).
592 // If @ancestor is %NULL the ancestor will be the #ClutterStage. In
593 // this case, the coordinates returned will be the coordinates on
594 // the stage before the projection is applied. This is different from
595 // the behaviour of clutter_actor_apply_transform_to_point().
596 // <ancestor>: A #ClutterActor ancestor, or %NULL to use the default #ClutterStage
597 // <point>: A point as #ClutterVertex
598 // <vertex>: The translated #ClutterVertex
599 void apply_relative_transform_to_point(Actor* ancestor, Vertex* point, /*out*/ Vertex* vertex) {
600 clutter_actor_apply_relative_transform_to_point(&this, ancestor, point, vertex);
603 // Transforms @point in coordinates relative to the actor
604 // into screen-relative coordinates with the current actor
605 // transformation (i.e. scale, rotation, etc)
606 // <point>: A point as #ClutterVertex
607 // <vertex>: The translated #ClutterVertex
608 void apply_transform_to_point(Vertex* point, /*out*/ Vertex* vertex) {
609 clutter_actor_apply_transform_to_point(&this, point, vertex);
611 // Clears the list of actions applied to @self
612 void clear_actions() {
613 clutter_actor_clear_actions(&this);
615 // Clears the list of constraints applied to @self
616 void clear_constraints() {
617 clutter_actor_clear_constraints(&this);
619 // Clears the list of effects applied to @self
620 void clear_effects() {
621 clutter_actor_clear_effects(&this);
624 // Determines if @descendant is contained inside @self (either as an
625 // immediate child, or as a deeper descendant). If @self and
626 // @descendant point to the same actor then it will also return %TRUE.
627 // RETURNS: whether @descendent is contained within @self
628 // <descendant>: A #ClutterActor, possibly contained in @self
629 int contains(Actor* descendant) {
630 return clutter_actor_contains(&this, descendant);
633 // Run the next stage of the paint sequence. This function should only
634 // be called within the implementation of the ‘run’ virtual of a
635 // #ClutterEffect. It will cause the run method of the next effect to
636 // be applied, or it will paint the actual actor if the current effect
637 // is the last effect in the chain.
638 void continue_paint() {
639 clutter_actor_continue_paint(&this);
642 // Creates a #PangoContext for the given actor. The #PangoContext
643 // is already configured using the appropriate font map, resolution
644 // and font options.
646 // See also clutter_actor_get_pango_context().
648 // Use g_object_unref() on the returned value to deallocate its
649 // resources
650 // RETURNS: the newly created #PangoContext.
651 Pango.Context* /*new*/ create_pango_context() {
652 return clutter_actor_create_pango_context(&this);
655 // Creates a new #PangoLayout from the same #PangoContext used
656 // by the #ClutterActor. The #PangoLayout is already configured
657 // with the font map, resolution and font options, and the
658 // given @text.
660 // If you want to keep around a #PangoLayout created by this
661 // function you will have to connect to the #ClutterBackend::font-changed
662 // and #ClutterBackend::resolution-changed signals, and call
663 // pango_layout_context_changed() in response to them.
665 // Use g_object_unref() when done
666 // RETURNS: the newly created #PangoLayout.
667 // <text>: (allow-none) the text to set on the #PangoLayout, or %NULL
668 Pango.Layout* /*new*/ create_pango_layout(char* text) {
669 return clutter_actor_create_pango_layout(&this, text);
672 // Destroys an actor. When an actor is destroyed, it will break any
673 // references it holds to other objects. If the actor is inside a
674 // container, the actor will be removed.
676 // When you destroy a container, its children will be destroyed as well.
678 // Note: you cannot destroy the #ClutterStage returned by
679 // clutter_stage_get_default().
680 void destroy() {
681 clutter_actor_destroy(&this);
684 // Detaches the #ClutterAnimation used by @actor, if clutter_actor_animate()
685 // has been called on @actor.
687 // Once the animation has been detached, it loses a reference. If it was
688 // the only reference then the #ClutterAnimation becomes invalid.
690 // The #ClutterAnimation::completed signal will not be emitted.
691 void detach_animation() {
692 clutter_actor_detach_animation(&this);
695 // This function is used to emit an event on the main stage.
696 // You should rarely need to use this function, except for
697 // synthetising events.
699 // if the actor handled the event, or %FALSE if the event was
700 // not handled
701 // RETURNS: the return value from the signal emission: %TRUE
702 // <event>: a #ClutterEvent
703 // <capture>: TRUE if event in in capture phase, FALSE otherwise.
704 int event(Event* event, int capture) {
705 return clutter_actor_event(&this, event, capture);
708 // Calculates the transformed screen coordinates of the four corners of
709 // the actor; the returned vertices relate to the #ClutterActorBox
710 // coordinates as follows:
711 // <itemizedlist>
712 // <listitem><para>v[0] contains (x1, y1)</para></listitem>
713 // <listitem><para>v[1] contains (x2, y1)</para></listitem>
714 // <listitem><para>v[2] contains (x1, y2)</para></listitem>
715 // <listitem><para>v[3] contains (x2, y2)</para></listitem>
716 // </itemizedlist>
717 // <verts>: Pointer to a location of an array of 4 #ClutterVertex where to store the result.
718 void get_abs_allocation_vertices(/*out*/ Vertex verts) {
719 clutter_actor_get_abs_allocation_vertices(&this, verts);
722 // Returns the accessible object that describes the actor to an
723 // assistive technology.
725 // If no class-specific #AtkObject implementation is available for the
726 // actor instance in question, it will inherit an #AtkObject
727 // implementation from the first ancestor class for which such an
728 // implementation is defined.
730 // The documentation of the <ulink
731 // url="http://developer.gnome.org/doc/API/2.0/atk/index.html">ATK</ulink>
732 // library contains more information about accessible objects and
733 // their uses.
734 // RETURNS: the #AtkObject associated with @actor
735 Atk.Object* get_accessible() {
736 return clutter_actor_get_accessible(&this);
739 // Retrieves the #ClutterAction with the given name in the list
740 // of actions applied to @self
742 // name, or %NULL. The returned #ClutterAction is owned by the
743 // actor and it should not be unreferenced directly
744 // RETURNS: a #ClutterAction for the given
745 // <name>: the name of the action to retrieve
746 Action* get_action(char* name) {
747 return clutter_actor_get_action(&this, name);
750 // Retrieves the list of actions applied to @self
752 // of the list of #ClutterAction<!-- -->s. The contents of the list are
753 // owned by the #ClutterActor. Use g_list_free() to free the resources
754 // allocated by the returned #GList
755 // RETURNS: a copy
756 GLib2.List* /*new container*/ get_actions() {
757 return clutter_actor_get_actions(&this);
760 // Gets the layout box an actor has been assigned. The allocation can
761 // only be assumed valid inside a paint() method; anywhere else, it
762 // may be out-of-date.
764 // An allocation does not incorporate the actor's scale or anchor point;
765 // those transformations do not affect layout, only rendering.
767 // <note>Do not call any of the clutter_actor_get_allocation_*() family
768 // of functions inside the implementation of the get_preferred_width()
769 // or get_preferred_height() virtual functions.</note>
770 // <box>: the function fills this in with the actor's allocation
771 void get_allocation_box(/*out*/ ActorBox* box) {
772 clutter_actor_get_allocation_box(&this, box);
775 // Gets the layout box an actor has been assigned. The allocation can
776 // only be assumed valid inside a paint() method; anywhere else, it
777 // may be out-of-date.
779 // An allocation does not incorporate the actor's scale or anchor point;
780 // those transformations do not affect layout, only rendering.
782 // The returned rectangle is in pixels.
783 // <geom>: allocation geometry in pixels
784 void get_allocation_geometry(/*out*/ Geometry* geom) {
785 clutter_actor_get_allocation_geometry(&this, geom);
788 // Calculates the transformed coordinates of the four corners of the
789 // actor in the plane of @ancestor. The returned vertices relate to
790 // the #ClutterActorBox coordinates as follows:
791 // <itemizedlist>
792 // <listitem><para>@verts[0] contains (x1, y1)</para></listitem>
793 // <listitem><para>@verts[1] contains (x2, y1)</para></listitem>
794 // <listitem><para>@verts[2] contains (x1, y2)</para></listitem>
795 // <listitem><para>@verts[3] contains (x2, y2)</para></listitem>
796 // </itemizedlist>
798 // If @ancestor is %NULL the ancestor will be the #ClutterStage. In
799 // this case, the coordinates returned will be the coordinates on
800 // the stage before the projection is applied. This is different from
801 // the behaviour of clutter_actor_get_abs_allocation_vertices().
802 // <ancestor>: A #ClutterActor to calculate the vertices against, or %NULL to use the #ClutterStage
803 // <verts>: return location for an array of 4 #ClutterVertex in which to store the result
804 void get_allocation_vertices(Actor* ancestor, /*out*/ Vertex verts) {
805 clutter_actor_get_allocation_vertices(&this, ancestor, verts);
808 // Gets the current anchor point of the @actor in pixels.
809 // <anchor_x>: return location for the X coordinate of the anchor point
810 // <anchor_y>: return location for the Y coordinate of the anchor point
811 void get_anchor_point(/*out*/ float* anchor_x, /*out*/ float* anchor_y) {
812 clutter_actor_get_anchor_point(&this, anchor_x, anchor_y);
815 // Retrieves the anchor position expressed as a #ClutterGravity. If
816 // the anchor point was specified using pixels or units this will
817 // return %CLUTTER_GRAVITY_NONE.
818 // RETURNS: the #ClutterGravity used by the anchor point
819 Gravity get_anchor_point_gravity() {
820 return clutter_actor_get_anchor_point_gravity(&this);
823 // Retrieves the #ClutterAnimation used by @actor, if clutter_actor_animate()
824 // has been called on @actor.
825 // RETURNS: a #ClutterAnimation, or %NULL
826 Animation* get_animation() {
827 return clutter_actor_get_animation(&this);
830 // Gets the clip area for @self, if any is set
831 // <xoff>: return location for the X offset of the clip rectangle, or %NULL
832 // <yoff>: return location for the Y offset of the clip rectangle, or %NULL
833 // <width>: return location for the width of the clip rectangle, or %NULL
834 // <height>: return location for the height of the clip rectangle, or %NULL
835 void get_clip(/*out*/ float* xoff=null, /*out*/ float* yoff=null, /*out*/ float* width=null, /*out*/ float* height=null) {
836 clutter_actor_get_clip(&this, xoff, yoff, width, height);
839 // Retrieves the value set using clutter_actor_set_clip_to_allocation()
840 // RETURNS: %TRUE if the #ClutterActor is clipped to its allocation
841 int get_clip_to_allocation() {
842 return clutter_actor_get_clip_to_allocation(&this);
845 // Retrieves the #ClutterConstraint with the given name in the list
846 // of constraints applied to @self
848 // name, or %NULL. The returned #ClutterConstraint is owned by the
849 // actor and it should not be unreferenced directly
850 // RETURNS: a #ClutterConstraint for the given
851 // <name>: the name of the constraint to retrieve
852 Constraint* get_constraint(char* name) {
853 return clutter_actor_get_constraint(&this, name);
856 // Retrieves the list of constraints applied to @self
858 // of the list of #ClutterConstraint<!-- -->s. The contents of the list are
859 // owned by the #ClutterActor. Use g_list_free() to free the resources
860 // allocated by the returned #GList
861 // RETURNS: a copy
862 GLib2.List* /*new container*/ get_constraints() {
863 return clutter_actor_get_constraints(&this);
866 // Retrieves the depth of @self.
867 // RETURNS: the depth of the actor
868 float get_depth() {
869 return clutter_actor_get_depth(&this);
872 // Retrieves the #ClutterEffect with the given name in the list
873 // of effects applied to @self
875 // name, or %NULL. The returned #ClutterEffect is owned by the
876 // actor and it should not be unreferenced directly
877 // RETURNS: a #ClutterEffect for the given
878 // <name>: the name of the effect to retrieve
879 Effect* get_effect(char* name) {
880 return clutter_actor_get_effect(&this, name);
883 // Retrieves the #ClutterEffect<!-- -->s applied on @self, if any
885 // of #ClutterEffect<!-- -->s, or %NULL. The elements of the returned
886 // list are owned by Clutter and they should not be freed. You should
887 // free the returned list using g_list_free() when done
888 // RETURNS: a list
889 GLib2.List* /*new container*/ get_effects() {
890 return clutter_actor_get_effects(&this);
893 // Checks whether an actor has a fixed position set (and will thus be
894 // unaffected by any layout manager).
895 // RETURNS: %TRUE if the fixed position is set on the actor
896 int get_fixed_position_set() {
897 return clutter_actor_get_fixed_position_set(&this);
900 // Retrieves the flags set on @self
901 // RETURNS: a bitwise or of #ClutterActorFlags or 0
902 ActorFlags get_flags() {
903 return clutter_actor_get_flags(&this);
906 // Gets the size and position of an actor relative to its parent
907 // actor. This is the same as calling clutter_actor_get_position() and
908 // clutter_actor_get_size(). It tries to "do what you mean" and get the
909 // requested size and position if the actor's allocation is invalid.
910 // <geometry>: A location to store actors #ClutterGeometry
911 void get_geometry(/*out*/ Geometry* geometry) {
912 clutter_actor_get_geometry(&this, geometry);
915 // Retrieves the unique id for @self.
916 // RETURNS: Globally unique value for this object instance.
917 uint get_gid() {
918 return clutter_actor_get_gid(&this);
921 // Retrieves the height of a #ClutterActor.
923 // If the actor has a valid allocation, this function will return the
924 // height of the allocated area given to the actor.
926 // If the actor does not have a valid allocation, this function will
927 // return the actor's natural height, that is the preferred height of
928 // the actor.
930 // If you care whether you get the preferred height or the height that
931 // has been assigned to the actor, you should probably call a different
932 // function like clutter_actor_get_allocation_box() to retrieve the
933 // allocated size or clutter_actor_get_preferred_height() to retrieve the
934 // preferred height.
936 // If an actor has a fixed height, for instance a height that has been
937 // assigned using clutter_actor_set_height(), the height returned will
938 // be the same value.
939 // RETURNS: the height of the actor, in pixels
940 float get_height() {
941 return clutter_actor_get_height(&this);
944 // Retrieves the name of @self.
946 // owned by the actor and should not be modified or freed.
947 // RETURNS: the name of the actor, or %NULL. The returned string is
948 char* get_name() {
949 return clutter_actor_get_name(&this);
952 // Retrieves whether to redirect the actor to an offscreen buffer, as
953 // set by clutter_actor_set_offscreen_redirect().
954 // RETURNS: the value of the offscreen-redirect property of the actor
955 OffscreenRedirect get_offscreen_redirect() {
956 return clutter_actor_get_offscreen_redirect(&this);
959 // Retrieves the opacity value of an actor, as set by
960 // clutter_actor_set_opacity().
962 // For retrieving the absolute opacity of the actor inside a paint
963 // virtual function, see clutter_actor_get_paint_opacity().
964 // RETURNS: the opacity of the actor
965 ubyte get_opacity() {
966 return clutter_actor_get_opacity(&this);
969 // Retrieves the paint volume of the passed #ClutterActor, and
970 // transforms it into a 2D bounding box in stage coordinates.
972 // This function is useful to determine the on screen area occupied by
973 // the actor. The box is only an approximation and may often be
974 // considerably larger due to the optimizations used to calculate the
975 // box. The box is never smaller though, so it can reliably be used
976 // for culling.
978 // There are times when a 2D paint box can't be determined, e.g.
979 // because the actor isn't yet parented under a stage or because
980 // the actor is unable to determine a paint volume.
982 // %FALSE.
983 // RETURNS: %TRUE if a 2D paint box could be determined, else
984 // <box>: return location for a #ClutterActorBox
985 int get_paint_box(/*out*/ ActorBox* box) {
986 return clutter_actor_get_paint_box(&this, box);
989 // Retrieves the absolute opacity of the actor, as it appears on the stage.
991 // This function traverses the hierarchy chain and composites the opacity of
992 // the actor with that of its parents.
994 // This function is intended for subclasses to use in the paint virtual
995 // function, to paint themselves with the correct opacity.
996 // RETURNS: The actor opacity value.
997 ubyte get_paint_opacity() {
998 return clutter_actor_get_paint_opacity(&this);
1001 // Retrieves the 'paint' visibility of an actor recursively checking for non
1002 // visible parents.
1004 // This is by definition the same as CLUTTER_ACTOR_IS_MAPPED().
1005 // RETURNS: TRUE if the actor is visibile and will be painted.
1006 int get_paint_visibility() {
1007 return clutter_actor_get_paint_visibility(&this);
1010 // Retrieves the paint volume of the passed #ClutterActor, or %NULL
1011 // when a paint volume can't be determined.
1013 // The paint volume is defined as the 3D space occupied by an actor
1014 // when being painted.
1016 // This function will call the <function>get_paint_volume()</function>
1017 // virtual function of the #ClutterActor class. Sub-classes of #ClutterActor
1018 // should not usually care about overriding the default implementation,
1019 // unless they are, for instance: painting outside their allocation, or
1020 // actors with a depth factor (not in terms of #ClutterActor:depth but real
1021 // 3D depth).
1023 // <note>2D actors overriding <function>get_paint_volume()</function>
1024 // ensure their volume has a depth of 0. (This will be true so long as
1025 // you don't call clutter_paint_volume_set_depth().)</note>
1027 // or %NULL if no volume could be determined.
1028 // RETURNS: a pointer to a #ClutterPaintVolume
1029 PaintVolume* get_paint_volume() {
1030 return clutter_actor_get_paint_volume(&this);
1033 // Retrieves the #PangoContext for @self. The actor's #PangoContext
1034 // is already configured using the appropriate font map, resolution
1035 // and font options.
1037 // Unlike clutter_actor_create_pango_context(), this context is owend
1038 // by the #ClutterActor and it will be updated each time the options
1039 // stored by the #ClutterBackend change.
1041 // You can use the returned #PangoContext to create a #PangoLayout
1042 // and render text using cogl_pango_render_layout() to reuse the
1043 // glyphs cache also used by Clutter.
1045 // The returned #PangoContext is owned by the actor and should not be
1046 // unreferenced by the application code
1047 // RETURNS: the #PangoContext for a #ClutterActor.
1048 Pango.Context* get_pango_context() {
1049 return clutter_actor_get_pango_context(&this);
1052 // Retrieves the parent of @self.
1054 // if no parent is set
1055 // RETURNS: The #ClutterActor parent, or %NULL
1056 Actor* get_parent() {
1057 return clutter_actor_get_parent(&this);
1060 // This function tries to "do what you mean" and tell you where the
1061 // actor is, prior to any transformations. Retrieves the fixed
1062 // position of an actor in pixels, if one has been set; otherwise, if
1063 // the allocation is valid, returns the actor's allocated position;
1064 // otherwise, returns 0,0.
1066 // The returned position is in pixels.
1067 // <x>: return location for the X coordinate, or %NULL
1068 // <y>: return location for the Y coordinate, or %NULL
1069 void get_position(/*out*/ float* x=null, /*out*/ float* y=null) {
1070 clutter_actor_get_position(&this, x, y);
1073 // Computes the requested minimum and natural heights for an actor,
1074 // or if they are already computed, returns the cached values.
1076 // An actor may not get its request - depending on the layout
1077 // manager that's in effect.
1079 // A request should not incorporate the actor's scale or anchor point;
1080 // those transformations do not affect layout, only rendering.
1081 // <for_width>: available width to assume in computing desired height, or a negative value to indicate that no width is defined
1082 // <min_height_p>: return location for minimum height, or %NULL
1083 // <natural_height_p>: return location for natural height, or %NULL
1084 void get_preferred_height(float for_width, /*out*/ float* min_height_p=null, /*out*/ float* natural_height_p=null) {
1085 clutter_actor_get_preferred_height(&this, for_width, min_height_p, natural_height_p);
1088 // Computes the preferred minimum and natural size of an actor, taking into
1089 // account the actor's geometry management (either height-for-width
1090 // or width-for-height).
1092 // The width and height used to compute the preferred height and preferred
1093 // width are the actor's natural ones.
1095 // If you need to control the height for the preferred width, or the width for
1096 // the preferred height, you should use clutter_actor_get_preferred_width()
1097 // and clutter_actor_get_preferred_height(), and check the actor's preferred
1098 // geometry management using the #ClutterActor:request-mode property.
1099 // <min_width_p>: return location for the minimum width, or %NULL
1100 // <min_height_p>: return location for the minimum height, or %NULL
1101 // <natural_width_p>: return location for the natural width, or %NULL
1102 // <natural_height_p>: return location for the natural height, or %NULL
1103 void get_preferred_size(/*out*/ float* min_width_p=null, /*out*/ float* min_height_p=null, /*out*/ float* natural_width_p=null, /*out*/ float* natural_height_p=null) {
1104 clutter_actor_get_preferred_size(&this, min_width_p, min_height_p, natural_width_p, natural_height_p);
1107 // Computes the requested minimum and natural widths for an actor,
1108 // optionally depending on the specified height, or if they are
1109 // already computed, returns the cached values.
1111 // An actor may not get its request - depending on the layout
1112 // manager that's in effect.
1114 // A request should not incorporate the actor's scale or anchor point;
1115 // those transformations do not affect layout, only rendering.
1116 // <for_height>: available height when computing the preferred width, or a negative value to indicate that no height is defined
1117 // <min_width_p>: return location for minimum width, or %NULL
1118 // <natural_width_p>: return location for the natural width, or %NULL
1119 void get_preferred_width(float for_height, /*out*/ float* min_width_p=null, /*out*/ float* natural_width_p=null) {
1120 clutter_actor_get_preferred_width(&this, for_height, min_width_p, natural_width_p);
1123 // Checks whether @actor is marked as reactive.
1124 // RETURNS: %TRUE if the actor is reactive
1125 int get_reactive() {
1126 return clutter_actor_get_reactive(&this);
1129 // Retrieves the geometry request mode of @self
1130 // RETURNS: the request mode for the actor
1131 RequestMode get_request_mode() {
1132 return clutter_actor_get_request_mode(&this);
1135 // Retrieves the angle and center of rotation on the given axis,
1136 // set using clutter_actor_set_rotation().
1137 // RETURNS: the angle of rotation
1138 // <axis>: the axis of rotation
1139 // <x>: return value for the X coordinate of the center of rotation
1140 // <y>: return value for the Y coordinate of the center of rotation
1141 // <z>: return value for the Z coordinate of the center of rotation
1142 double get_rotation(RotateAxis axis, /*out*/ float* x, /*out*/ float* y, /*out*/ float* z) {
1143 return clutter_actor_get_rotation(&this, axis, x, y, z);
1146 // Retrieves an actors scale factors.
1147 // <scale_x>: Location to store horizonal scale factor, or %NULL.
1148 // <scale_y>: Location to store vertical scale factor, or %NULL.
1149 void get_scale(/*out*/ double* scale_x=null, /*out*/ double* scale_y=null) {
1150 clutter_actor_get_scale(&this, scale_x, scale_y);
1153 // Retrieves the scale center coordinate in pixels relative to the top
1154 // left corner of the actor. If the scale center was specified using a
1155 // #ClutterGravity this will calculate the pixel offset using the
1156 // current size of the actor.
1157 // <center_x>: Location to store the X position of the scale center, or %NULL.
1158 // <center_y>: Location to store the Y position of the scale center, or %NULL.
1159 void get_scale_center(/*out*/ float* center_x=null, /*out*/ float* center_y=null) {
1160 clutter_actor_get_scale_center(&this, center_x, center_y);
1163 // Retrieves the scale center as a compass direction. If the scale
1164 // center was specified in pixels or units this will return
1165 // %CLUTTER_GRAVITY_NONE.
1166 // RETURNS: the scale gravity
1167 Gravity get_scale_gravity() {
1168 return clutter_actor_get_scale_gravity(&this);
1171 // Queries the currently set #ClutterShader on @self.
1173 // or %NULL if no shader is set.
1174 // RETURNS: The currently set #ClutterShader
1175 Shader* get_shader() {
1176 return clutter_actor_get_shader(&this);
1179 // This function tries to "do what you mean" and return
1180 // the size an actor will have. If the actor has a valid
1181 // allocation, the allocation will be returned; otherwise,
1182 // the actors natural size request will be returned.
1184 // If you care whether you get the request vs. the allocation, you
1185 // should probably call a different function like
1186 // clutter_actor_get_allocation_box() or
1187 // clutter_actor_get_preferred_width().
1188 // <width>: return location for the width, or %NULL.
1189 // <height>: return location for the height, or %NULL.
1190 void get_size(/*out*/ float* width=null, /*out*/ float* height=null) {
1191 clutter_actor_get_size(&this, width, height);
1194 // Retrieves the #ClutterStage where @actor is contained.
1196 // containing the actor, or %NULL
1197 // RETURNS: the stage
1198 Actor* get_stage() {
1199 return clutter_actor_get_stage(&this);
1202 // Retrieves the value set using clutter_actor_set_text_direction()
1204 // If no text direction has been previously set, the default text
1205 // direction, as returned by clutter_get_default_text_direction(), will
1206 // be returned instead
1207 // RETURNS: the #ClutterTextDirection for the actor
1208 TextDirection get_text_direction() {
1209 return clutter_actor_get_text_direction(&this);
1212 // Retrieves the transformations applied to @self relative to its
1213 // parent.
1214 // <matrix>: the return location for a #CoglMatrix
1215 void get_transformation_matrix(/*out*/ Cogl.Matrix* matrix) {
1216 clutter_actor_get_transformation_matrix(&this, matrix);
1219 // Retrieves the 3D paint volume of an actor like
1220 // clutter_actor_get_paint_volume() does (Please refer to the
1221 // documentation of clutter_actor_get_paint_volume() for more
1222 // details.) and it additionally transforms the paint volume into the
1223 // coordinate space of @relative_to_ancestor. (Or the stage if %NULL
1224 // is passed for @relative_to_ancestor)
1226 // This can be used by containers that base their paint volume on
1227 // the volume of their children. Such containers can query the
1228 // transformed paint volume of all of its children and union them
1229 // together using clutter_paint_volume_union().
1231 // or %NULL if no volume could be determined.
1232 // RETURNS: a pointer to a #ClutterPaintVolume
1233 // <relative_to_ancestor>: A #ClutterActor that is an ancestor of @self (or %NULL for the stage)
1234 PaintVolume* get_transformed_paint_volume(Actor* relative_to_ancestor) {
1235 return clutter_actor_get_transformed_paint_volume(&this, relative_to_ancestor);
1238 // Gets the absolute position of an actor, in pixels relative to the stage.
1239 // <x>: return location for the X coordinate, or %NULL
1240 // <y>: return location for the Y coordinate, or %NULL
1241 void get_transformed_position(/*out*/ float* x=null, /*out*/ float* y=null) {
1242 clutter_actor_get_transformed_position(&this, x, y);
1245 // Gets the absolute size of an actor in pixels, taking into account the
1246 // scaling factors.
1248 // If the actor has a valid allocation, the allocated size will be used.
1249 // If the actor has not a valid allocation then the preferred size will
1250 // be transformed and returned.
1252 // If you want the transformed allocation, see
1253 // clutter_actor_get_abs_allocation_vertices() instead.
1255 // <note>When the actor (or one of its ancestors) is rotated around the
1256 // X or Y axis, it no longer appears as on the stage as a rectangle, but
1257 // as a generic quadrangle; in that case this function returns the size
1258 // of the smallest rectangle that encapsulates the entire quad. Please
1259 // note that in this case no assumptions can be made about the relative
1260 // position of this envelope to the absolute position of the actor, as
1261 // returned by clutter_actor_get_transformed_position(); if you need this
1262 // information, you need to use clutter_actor_get_abs_allocation_vertices()
1263 // to get the coords of the actual quadrangle.</note>
1264 // <width>: return location for the width, or %NULL
1265 // <height>: return location for the height, or %NULL
1266 void get_transformed_size(/*out*/ float* width=null, /*out*/ float* height=null) {
1267 clutter_actor_get_transformed_size(&this, width, height);
1270 // Retrieves the width of a #ClutterActor.
1272 // If the actor has a valid allocation, this function will return the
1273 // width of the allocated area given to the actor.
1275 // If the actor does not have a valid allocation, this function will
1276 // return the actor's natural width, that is the preferred width of
1277 // the actor.
1279 // If you care whether you get the preferred width or the width that
1280 // has been assigned to the actor, you should probably call a different
1281 // function like clutter_actor_get_allocation_box() to retrieve the
1282 // allocated size or clutter_actor_get_preferred_width() to retrieve the
1283 // preferred width.
1285 // If an actor has a fixed width, for instance a width that has been
1286 // assigned using clutter_actor_set_width(), the width returned will
1287 // be the same value.
1288 // RETURNS: the width of the actor, in pixels
1289 float get_width() {
1290 return clutter_actor_get_width(&this);
1293 // Retrieves the X coordinate of a #ClutterActor.
1295 // This function tries to "do what you mean", by returning the
1296 // correct value depending on the actor's state.
1298 // If the actor has a valid allocation, this function will return
1299 // the X coordinate of the origin of the allocation box.
1301 // If the actor has any fixed coordinate set using clutter_actor_set_x(),
1302 // clutter_actor_set_position() or clutter_actor_set_geometry(), this
1303 // function will return that coordinate.
1305 // If both the allocation and a fixed position are missing, this function
1306 // will return 0.
1308 // transformation (i.e. scaling, rotation)
1309 // RETURNS: the X coordinate, in pixels, ignoring any
1310 float get_x() {
1311 return clutter_actor_get_x(&this);
1314 // Retrieves the Y coordinate of a #ClutterActor.
1316 // This function tries to "do what you mean", by returning the
1317 // correct value depending on the actor's state.
1319 // If the actor has a valid allocation, this function will return
1320 // the Y coordinate of the origin of the allocation box.
1322 // If the actor has any fixed coordinate set using clutter_actor_set_y(),
1323 // clutter_actor_set_position() or clutter_actor_set_geometry(), this
1324 // function will return that coordinate.
1326 // If both the allocation and a fixed position are missing, this function
1327 // will return 0.
1329 // transformation (i.e. scaling, rotation)
1330 // RETURNS: the Y coordinate, in pixels, ignoring any
1331 float get_y() {
1332 return clutter_actor_get_y(&this);
1335 // Retrieves the center for the rotation around the Z axis as a
1336 // compass direction. If the center was specified in pixels or units
1337 // this will return %CLUTTER_GRAVITY_NONE.
1338 // RETURNS: the Z rotation center
1339 Gravity get_z_rotation_gravity() {
1340 return clutter_actor_get_z_rotation_gravity(&this);
1343 // Sets the key focus of the #ClutterStage including @self
1344 // to this #ClutterActor.
1345 void grab_key_focus() {
1346 clutter_actor_grab_key_focus(&this);
1349 // Checks if the actor has an up-to-date allocation assigned to
1350 // it. This means that the actor should have an allocation: it's
1351 // visible and has a parent. It also means that there is no
1352 // outstanding relayout request in progress for the actor or its
1353 // children (There might be other outstanding layout requests in
1354 // progress that will cause the actor to get a new allocation
1355 // when the stage is laid out, however).
1357 // If this function returns %FALSE, then the actor will normally
1358 // be allocated before it is next drawn on the screen.
1359 // RETURNS: %TRUE if the actor has an up-to-date allocation
1360 int has_allocation() {
1361 return clutter_actor_has_allocation(&this);
1364 // Determines whether the actor has a clip area set or not.
1365 // RETURNS: %TRUE if the actor has a clip area set.
1366 int has_clip() {
1367 return clutter_actor_has_clip(&this);
1370 // Checks whether @self is the #ClutterActor that has key focus
1371 // RETURNS: %TRUE if the actor has key focus, and %FALSE otherwise
1372 int has_key_focus() {
1373 return clutter_actor_has_key_focus(&this);
1376 // Asks the actor's implementation whether it may contain overlapping
1377 // primitives.
1379 // For example; Clutter may use this to determine whether the painting
1380 // should be redirected to an offscreen buffer to correctly implement
1381 // the opacity property.
1383 // Custom actors can override the default response by implementing the
1384 // #ClutterActor <function>has_overlaps</function> virtual function. See
1385 // clutter_actor_set_offscreen_redirect() for more information.
1387 // %FALSE otherwise
1388 // RETURNS: %TRUE if the actor may have overlapping primitives, and
1389 int has_overlaps() {
1390 return clutter_actor_has_overlaps(&this);
1393 // Checks whether an actor contains the pointer of a
1394 // #ClutterInputDevice
1396 // %FALSE otherwise
1397 // RETURNS: %TRUE if the actor contains the pointer, and
1398 int has_pointer() {
1399 return clutter_actor_has_pointer(&this);
1402 // Flags an actor to be hidden. A hidden actor will not be
1403 // rendered on the stage.
1405 // Actors are visible by default.
1407 // If this function is called on an actor without a parent, the
1408 // #ClutterActor:show-on-set-parent property will be set to %FALSE
1409 // as a side-effect.
1410 void hide() {
1411 clutter_actor_hide(&this);
1413 // Calls clutter_actor_hide() on all child actors (if any).
1414 void hide_all() {
1415 clutter_actor_hide_all(&this);
1418 // Checks whether @self is being currently painted by a #ClutterClone
1420 // This function is useful only inside the ::paint virtual function
1421 // implementations or within handlers for the #ClutterActor::paint
1422 // signal
1424 // This function should not be used by applications
1426 // by a #ClutterClone, and %FALSE otherwise
1427 // RETURNS: %TRUE if the #ClutterActor is currently being painted
1428 int is_in_clone_paint() {
1429 return clutter_actor_is_in_clone_paint(&this);
1432 // Checks whether any rotation is applied to the actor.
1433 // RETURNS: %TRUE if the actor is rotated.
1434 int is_rotated() {
1435 return clutter_actor_is_rotated(&this);
1438 // Checks whether the actor is scaled in either dimension.
1439 // RETURNS: %TRUE if the actor is scaled.
1440 int is_scaled() {
1441 return clutter_actor_is_scaled(&this);
1444 // Puts @self below @above.
1446 // Both actors must have the same parent, and the parent must implement
1447 // the #ClutterContainer interface.
1449 // This function is the equivalent of clutter_container_lower_child().
1450 // <above>: A #ClutterActor to lower below
1451 void lower(Actor* above=null) {
1452 clutter_actor_lower(&this, above);
1455 // Lowers @self to the bottom.
1457 // This function calls clutter_actor_lower() internally.
1458 void lower_bottom() {
1459 clutter_actor_lower_bottom(&this);
1462 // Sets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly maps
1463 // and realizes its children if they are visible. Does nothing if the
1464 // actor is not visible.
1466 // Calling this is allowed in only one case: you are implementing the
1467 // #ClutterActor <function>map()</function> virtual function in an actor
1468 // and you need to map the children of that actor. It is not necessary
1469 // to call this if you implement #ClutterContainer because the default
1470 // implementation will automatically map children of containers.
1472 // When overriding map, it is mandatory to chain up to the parent
1473 // implementation.
1474 void map() {
1475 clutter_actor_map(&this);
1478 // Sets an anchor point for the actor, and adjusts the actor postion so that
1479 // the relative position of the actor toward its parent remains the same.
1480 // <anchor_x>: X coordinate of the anchor point
1481 // <anchor_y>: Y coordinate of the anchor point
1482 void move_anchor_point(float anchor_x, float anchor_y) {
1483 clutter_actor_move_anchor_point(&this, anchor_x, anchor_y);
1486 // Sets an anchor point on the actor based on the given gravity, adjusting the
1487 // actor postion so that its relative position within its parent remains
1488 // unchanged.
1490 // Since version 1.0 the anchor point will be stored as a gravity so
1491 // that if the actor changes size then the anchor point will move. For
1492 // example, if you set the anchor point to %CLUTTER_GRAVITY_SOUTH_EAST
1493 // and later double the size of the actor, the anchor point will move
1494 // to the bottom right.
1495 // <gravity>: #ClutterGravity.
1496 void move_anchor_point_from_gravity(Gravity gravity) {
1497 clutter_actor_move_anchor_point_from_gravity(&this, gravity);
1500 // Moves an actor by the specified distance relative to its current
1501 // position in pixels.
1503 // This function modifies the fixed position of an actor and thus removes
1504 // it from any layout management. Another way to move an actor is with an
1505 // anchor point, see clutter_actor_set_anchor_point().
1506 // <dx>: Distance to move Actor on X axis.
1507 // <dy>: Distance to move Actor on Y axis.
1508 void move_by(float dx, float dy) {
1509 clutter_actor_move_by(&this, dx, dy);
1512 // Renders the actor to display.
1514 // This function should not be called directly by applications.
1515 // Call clutter_actor_queue_redraw() to queue paints, instead.
1517 // This function is context-aware, and will either cause a
1518 // regular paint or a pick paint.
1520 // This function will emit the #ClutterActor::paint signal or
1521 // the #ClutterActor::pick signal, depending on the context.
1523 // This function does not paint the actor if the actor is set to 0,
1524 // unless it is performing a pick paint.
1525 void paint() {
1526 clutter_actor_paint(&this);
1528 // Disables the effects of clutter_actor_push_internal()
1529 void pop_internal() {
1530 clutter_actor_pop_internal(&this);
1533 // Should be used by actors implementing the #ClutterContainer and with
1534 // internal children added through clutter_actor_set_parent(), for instance:
1536 // |[
1537 // static void
1538 // my_actor_init (MyActor *self)
1539 // {
1540 // self->priv = SELF_ACTOR_GET_PRIVATE (self);
1542 // clutter_actor_push_internal (CLUTTER_ACTOR (self));
1544 // /&ast; calling clutter_actor_set_parent() now will result in
1545 // &ast; the internal flag being set on a child of MyActor
1546 // &ast;/
1548 // /&ast; internal child - a background texture &ast;/
1549 // self->priv->background_tex = clutter_texture_new ();
1550 // clutter_actor_set_parent (self->priv->background_tex,
1551 // CLUTTER_ACTOR (self));
1553 // /&ast; internal child - a label &ast;/
1554 // self->priv->label = clutter_text_new ();
1555 // clutter_actor_set_parent (self->priv->label,
1556 // CLUTTER_ACTOR (self));
1558 // clutter_actor_pop_internal (CLUTTER_ACTOR (self));
1560 // /&ast; calling clutter_actor_set_parent() now will not result in
1561 // &ast; the internal flag being set on a child of MyActor
1562 // &ast;/
1563 // }
1564 // ]|
1566 // This function will be used by Clutter to toggle an "internal child"
1567 // flag whenever clutter_actor_set_parent() is called; internal children
1568 // are handled differently by Clutter, specifically when destroying their
1569 // parent.
1571 // Call clutter_actor_pop_internal() when you finished adding internal
1572 // children.
1574 // Nested calls to clutter_actor_push_internal() are allowed, but each
1575 // one must by followed by a clutter_actor_pop_internal() call.
1576 void push_internal() {
1577 clutter_actor_push_internal(&this);
1580 // Queues up a redraw of an actor and any children. The redraw occurs
1581 // once the main loop becomes idle (after the current batch of events
1582 // has been processed, roughly).
1584 // Applications rarely need to call this, as redraws are handled
1585 // automatically by modification functions.
1587 // This function will not do anything if @self is not visible, or
1588 // if the actor is inside an invisible part of the scenegraph.
1590 // Also be aware that painting is a NOP for actors with an opacity of
1591 // 0
1593 // When you are implementing a custom actor you must queue a redraw
1594 // whenever some private state changes that will affect painting or
1595 // picking of your actor.
1596 void queue_redraw() {
1597 clutter_actor_queue_redraw(&this);
1600 // Indicates that the actor's size request or other layout-affecting
1601 // properties may have changed. This function is used inside #ClutterActor
1602 // subclass implementations, not by applications directly.
1604 // Queueing a new layout automatically queues a redraw as well.
1605 void queue_relayout() {
1606 clutter_actor_queue_relayout(&this);
1609 // Puts @self above @below.
1611 // Both actors must have the same parent, and the parent must implement
1612 // the #ClutterContainer interface
1614 // This function is the equivalent of clutter_container_raise_child().
1615 // <below>: A #ClutterActor to raise above.
1616 void raise(Actor* below=null) {
1617 clutter_actor_raise(&this, below);
1620 // Raises @self to the top.
1622 // This function calls clutter_actor_raise() internally.
1623 void raise_top() {
1624 clutter_actor_raise_top(&this);
1627 // Realization informs the actor that it is attached to a stage. It
1628 // can use this to allocate resources if it wanted to delay allocation
1629 // until it would be rendered. However it is perfectly acceptable for
1630 // an actor to create resources before being realized because Clutter
1631 // only ever has a single rendering context so that actor is free to
1632 // be moved from one stage to another.
1634 // This function does nothing if the actor is already realized.
1636 // Because a realized actor must have realized parent actors, calling
1637 // clutter_actor_realize() will also realize all parents of the actor.
1639 // This function does not realize child actors, except in the special
1640 // case that realizing the stage, when the stage is visible, will
1641 // suddenly map (and thus realize) the children of the stage.
1642 void realize() {
1643 clutter_actor_realize(&this);
1646 // Removes @action from the list of actions applied to @self
1648 // The reference held by @self on the #ClutterAction will be released
1649 // <action>: a #ClutterAction
1650 void remove_action(Action* action) {
1651 clutter_actor_remove_action(&this, action);
1654 // Removes the #ClutterAction with the given name from the list
1655 // of actions applied to @self
1656 // <name>: the name of the action to remove
1657 void remove_action_by_name(char* name) {
1658 clutter_actor_remove_action_by_name(&this, name);
1660 // Removes clip area from @self.
1661 void remove_clip() {
1662 clutter_actor_remove_clip(&this);
1665 // Removes @constraint from the list of constraints applied to @self
1667 // The reference held by @self on the #ClutterConstraint will be released
1668 // <constraint>: a #ClutterConstraint
1669 void remove_constraint(Constraint* constraint) {
1670 clutter_actor_remove_constraint(&this, constraint);
1673 // Removes the #ClutterConstraint with the given name from the list
1674 // of constraints applied to @self
1675 // <name>: the name of the constraint to remove
1676 void remove_constraint_by_name(char* name) {
1677 clutter_actor_remove_constraint_by_name(&this, name);
1680 // Removes @effect from the list of effects applied to @self
1682 // The reference held by @self on the #ClutterEffect will be released
1683 // <effect>: a #ClutterEffect
1684 void remove_effect(Effect* effect) {
1685 clutter_actor_remove_effect(&this, effect);
1688 // Removes the #ClutterEffect with the given name from the list
1689 // of effects applied to @self
1690 // <name>: the name of the effect to remove
1691 void remove_effect_by_name(char* name) {
1692 clutter_actor_remove_effect_by_name(&this, name);
1695 // This function resets the parent actor of @self. It is
1696 // logically equivalent to calling clutter_actor_unparent()
1697 // and clutter_actor_set_parent(), but more efficiently
1698 // implemented, ensures the child is not finalized
1699 // when unparented, and emits the parent-set signal only
1700 // one time.
1701 // <new_parent>: the new #ClutterActor parent
1702 void reparent(Actor* new_parent) {
1703 clutter_actor_reparent(&this, new_parent);
1706 // Sets an anchor point for @self. The anchor point is a point in the
1707 // coordinate space of an actor to which the actor position within its
1708 // parent is relative; the default is (0, 0), i.e. the top-left corner
1709 // of the actor.
1710 // <anchor_x>: X coordinate of the anchor point
1711 // <anchor_y>: Y coordinate of the anchor point
1712 void set_anchor_point(float anchor_x, float anchor_y) {
1713 clutter_actor_set_anchor_point(&this, anchor_x, anchor_y);
1716 // Sets an anchor point on the actor, based on the given gravity (this is a
1717 // convenience function wrapping clutter_actor_set_anchor_point()).
1719 // Since version 1.0 the anchor point will be stored as a gravity so
1720 // that if the actor changes size then the anchor point will move. For
1721 // example, if you set the anchor point to %CLUTTER_GRAVITY_SOUTH_EAST
1722 // and later double the size of the actor, the anchor point will move
1723 // to the bottom right.
1724 // <gravity>: #ClutterGravity.
1725 void set_anchor_point_from_gravity(Gravity gravity) {
1726 clutter_actor_set_anchor_point_from_gravity(&this, gravity);
1729 // Sets clip area for @self. The clip area is always computed from the
1730 // upper left corner of the actor, even if the anchor point is set
1731 // otherwise.
1732 // <xoff>: X offset of the clip rectangle
1733 // <yoff>: Y offset of the clip rectangle
1734 // <width>: Width of the clip rectangle
1735 // <height>: Height of the clip rectangle
1736 void set_clip(float xoff, float yoff, float width, float height) {
1737 clutter_actor_set_clip(&this, xoff, yoff, width, height);
1740 // Sets whether @self should be clipped to the same size as its
1741 // allocation
1742 // <clip_set>: %TRUE to apply a clip tracking the allocation
1743 void set_clip_to_allocation(int clip_set) {
1744 clutter_actor_set_clip_to_allocation(&this, clip_set);
1747 // Sets the Z coordinate of @self to @depth.
1749 // The unit used by @depth is dependant on the perspective setup. See
1750 // also clutter_stage_set_perspective().
1751 // <depth>: Z co-ord
1752 void set_depth(float depth) {
1753 clutter_actor_set_depth(&this, depth);
1756 // Sets whether an actor has a fixed position set (and will thus be
1757 // unaffected by any layout manager).
1758 // <is_set>: whether to use fixed position
1759 void set_fixed_position_set(int is_set) {
1760 clutter_actor_set_fixed_position_set(&this, is_set);
1763 // Sets @flags on @self
1765 // This function will emit notifications for the changed properties
1766 // <flags>: the flags to set
1767 void set_flags(ActorFlags flags) {
1768 clutter_actor_set_flags(&this, flags);
1771 // Sets the actor's fixed position and forces its minimum and natural
1772 // size, in pixels. This means the untransformed actor will have the
1773 // given geometry. This is the same as calling clutter_actor_set_position()
1774 // and clutter_actor_set_size().
1775 // <geometry>: A #ClutterGeometry
1776 void set_geometry(Geometry* geometry) {
1777 clutter_actor_set_geometry(&this, geometry);
1780 // Forces a height on an actor, causing the actor's preferred width
1781 // and height (if any) to be ignored.
1783 // If @height is -1 the actor will use its preferred height instead of
1784 // overriding it, i.e. you can "unset" the height with -1.
1786 // This function sets both the minimum and natural size of the actor.
1787 // <height>: Requested new height for the actor, in pixels, or -1
1788 void set_height(float height) {
1789 clutter_actor_set_height(&this, height);
1792 // Sets the given name to @self. The name can be used to identify
1793 // a #ClutterActor.
1794 // <name>: Textual tag to apply to actor
1795 void set_name(char* name) {
1796 clutter_actor_set_name(&this, name);
1799 // Defines the circumstances where the actor should be redirected into
1800 // an offscreen image. The offscreen image is used to flatten the
1801 // actor into a single image while painting for two main reasons.
1802 // Firstly, when the actor is painted a second time without any of its
1803 // contents changing it can simply repaint the cached image without
1804 // descending further down the actor hierarchy. Secondly, it will make
1805 // the opacity look correct even if there are overlapping primitives
1806 // in the actor.
1808 // Caching the actor could in some cases be a performance win and in
1809 // some cases be a performance lose so it is important to determine
1810 // which value is right for an actor before modifying this value. For
1811 // example, there is never any reason to flatten an actor that is just
1812 // a single texture (such as a #ClutterTexture) because it is
1813 // effectively already cached in an image so the offscreen would be
1814 // redundant. Also if the actor contains primitives that are far apart
1815 // with a large transparent area in the middle (such as a large
1816 // CluterGroup with a small actor in the top left and a small actor in
1817 // the bottom right) then the cached image will contain the entire
1818 // image of the large area and the paint will waste time blending all
1819 // of the transparent pixels in the middle.
1821 // The default method of implementing opacity on a container simply
1822 // forwards on the opacity to all of the children. If the children are
1823 // overlapping then it will appear as if they are two separate glassy
1824 // objects and there will be a break in the color where they
1825 // overlap. By redirecting to an offscreen buffer it will be as if the
1826 // two opaque objects are combined into one and then made transparent
1827 // which is usually what is expected.
1829 // The image below demonstrates the difference between redirecting and
1830 // not. The image shows two Clutter groups, each containing a red and
1831 // a green rectangle which overlap. The opacity on the group is set to
1832 // 128 (which is 50%). When the offscreen redirect is not used, the
1833 // red rectangle can be seen through the blue rectangle as if the two
1834 // rectangles were separately transparent. When the redirect is used
1835 // the group as a whole is transparent instead so the red rectangle is
1836 // not visible where they overlap.
1838 // <figure id="offscreen-redirect">
1839 // <title>Sample of using an offscreen redirect for transparency</title>
1840 // <graphic fileref="offscreen-redirect.png" format="PNG"/>
1841 // </figure>
1843 // The default value for this property is 0, so we effectively will
1844 // never redirect an actor offscreen by default. This means that there
1845 // are times that transparent actors may look glassy as described
1846 // above. The reason this is the default is because there is a
1847 // performance trade off between quality and performance here. In many
1848 // cases the default form of glassy opacity looks good enough, but if
1849 // it's not you will need to set the
1850 // %CLUTTER_OFFSCREEN_REDIRECT_AUTOMATIC_FOR_OPACITY flag to enable
1851 // redirection for opacity.
1853 // Custom actors that don't contain any overlapping primitives are
1854 // recommended to override the has_overlaps() virtual to return %FALSE
1855 // for maximum efficiency.
1856 // <redirect>: New offscreen redirect flags for the actor.
1857 void set_offscreen_redirect(OffscreenRedirect redirect) {
1858 clutter_actor_set_offscreen_redirect(&this, redirect);
1861 // Sets the actor's opacity, with zero being completely transparent and
1862 // 255 (0xff) being fully opaque.
1863 // <opacity>: New opacity value for the actor.
1864 void set_opacity(ubyte opacity) {
1865 clutter_actor_set_opacity(&this, opacity);
1868 // Sets the parent of @self to @parent. The opposite function is
1869 // clutter_actor_unparent().
1871 // This function should not be used by applications, but by custom
1872 // container actor subclasses.
1873 // <parent>: A new #ClutterActor parent
1874 void set_parent(Actor* parent) {
1875 clutter_actor_set_parent(&this, parent);
1878 // Sets the actor's fixed position in pixels relative to any parent
1879 // actor.
1881 // If a layout manager is in use, this position will override the
1882 // layout manager and force a fixed position.
1883 // <x>: New left position of actor in pixels.
1884 // <y>: New top position of actor in pixels.
1885 void set_position(float x, float y) {
1886 clutter_actor_set_position(&this, x, y);
1889 // Sets @actor as reactive. Reactive actors will receive events.
1890 // <reactive>: whether the actor should be reactive to events
1891 void set_reactive(int reactive) {
1892 clutter_actor_set_reactive(&this, reactive);
1895 // Sets the geometry request mode of @self.
1897 // The @mode determines the order for invoking
1898 // clutter_actor_get_preferred_width() and
1899 // clutter_actor_get_preferred_height()
1900 // <mode>: the request mode
1901 void set_request_mode(RequestMode mode) {
1902 clutter_actor_set_request_mode(&this, mode);
1905 // Sets the rotation angle of @self around the given axis.
1907 // The rotation center coordinates used depend on the value of @axis:
1908 // <itemizedlist>
1909 // <listitem><para>%CLUTTER_X_AXIS requires @y and @z</para></listitem>
1910 // <listitem><para>%CLUTTER_Y_AXIS requires @x and @z</para></listitem>
1911 // <listitem><para>%CLUTTER_Z_AXIS requires @x and @y</para></listitem>
1912 // </itemizedlist>
1914 // The rotation coordinates are relative to the anchor point of the
1915 // actor, set using clutter_actor_set_anchor_point(). If no anchor
1916 // point is set, the upper left corner is assumed as the origin.
1917 // <axis>: the axis of rotation
1918 // <angle>: the angle of rotation
1919 // <x>: X coordinate of the rotation center
1920 // <y>: Y coordinate of the rotation center
1921 // <z>: Z coordinate of the rotation center
1922 void set_rotation(RotateAxis axis, double angle, float x, float y, float z) {
1923 clutter_actor_set_rotation(&this, axis, angle, x, y, z);
1926 // Scales an actor with the given factors. The scaling is relative to
1927 // the scale center and the anchor point. The scale center is
1928 // unchanged by this function and defaults to 0,0.
1929 // <scale_x>: double factor to scale actor by horizontally.
1930 // <scale_y>: double factor to scale actor by vertically.
1931 void set_scale(double scale_x, double scale_y) {
1932 clutter_actor_set_scale(&this, scale_x, scale_y);
1935 // Scales an actor with the given factors around the given center
1936 // point. The center point is specified in pixels relative to the
1937 // anchor point (usually the top left corner of the actor).
1938 // <scale_x>: double factor to scale actor by horizontally.
1939 // <scale_y>: double factor to scale actor by vertically.
1940 // <center_x>: X coordinate of the center of the scale.
1941 // <center_y>: Y coordinate of the center of the scale
1942 void set_scale_full(double scale_x, double scale_y, float center_x, float center_y) {
1943 clutter_actor_set_scale_full(&this, scale_x, scale_y, center_x, center_y);
1946 // Scales an actor with the given factors around the given
1947 // center point. The center point is specified as one of the compass
1948 // directions in #ClutterGravity. For example, setting it to north
1949 // will cause the top of the actor to remain unchanged and the rest of
1950 // the actor to expand left, right and downwards.
1951 // <scale_x>: double factor to scale actor by horizontally.
1952 // <scale_y>: double factor to scale actor by vertically.
1953 // <gravity>: the location of the scale center expressed as a compass direction.
1954 void set_scale_with_gravity(double scale_x, double scale_y, Gravity gravity) {
1955 clutter_actor_set_scale_with_gravity(&this, scale_x, scale_y, gravity);
1958 // Sets the #ClutterShader to be used when rendering @self.
1960 // If @shader is %NULL this function will unset any currently set shader
1961 // for the actor.
1963 // <note>Any #ClutterEffect applied to @self will take the precedence
1964 // over the #ClutterShader set using this function.</note>
1966 // or removed
1969 // clutter_actor_add_effect() instead.
1970 // RETURNS: %TRUE if the shader was successfully applied
1971 // <shader>: a #ClutterShader or %NULL to unset the shader.
1972 int set_shader(Shader* shader=null) {
1973 return clutter_actor_set_shader(&this, shader);
1976 // Sets the value for a named parameter of the shader applied
1977 // to @actor.
1978 // <param>: the name of the parameter
1979 // <value>: the value of the parameter
1980 void set_shader_param(char* param, GObject2.Value* value) {
1981 clutter_actor_set_shader_param(&this, param, value);
1984 // Sets the value for a named float parameter of the shader applied
1985 // to @actor.
1986 // <param>: the name of the parameter
1987 // <value>: the value of the parameter
1988 void set_shader_param_float(char* param, float value) {
1989 clutter_actor_set_shader_param_float(&this, param, value);
1992 // Sets the value for a named int parameter of the shader applied to
1993 // @actor.
1994 // <param>: the name of the parameter
1995 // <value>: the value of the parameter
1996 void set_shader_param_int(char* param, int value) {
1997 clutter_actor_set_shader_param_int(&this, param, value);
2000 // Sets the actor's size request in pixels. This overrides any
2001 // "normal" size request the actor would have. For example
2002 // a text actor might normally request the size of the text;
2003 // this function would force a specific size instead.
2005 // If @width and/or @height are -1 the actor will use its
2006 // "normal" size request instead of overriding it, i.e.
2007 // you can "unset" the size with -1.
2009 // This function sets or unsets both the minimum and natural size.
2010 // <width>: New width of actor in pixels, or -1
2011 // <height>: New height of actor in pixels, or -1
2012 void set_size(float width, float height) {
2013 clutter_actor_set_size(&this, width, height);
2016 // Sets the #ClutterTextDirection for an actor
2018 // The passed text direction must not be %CLUTTER_TEXT_DIRECTION_DEFAULT
2020 // If @self implements #ClutterContainer then this function will recurse
2021 // inside all the children of @self (including the internal ones).
2023 // Composite actors not implementing #ClutterContainer, or actors requiring
2024 // special handling when the text direction changes, should connect to
2025 // the #GObject::notify signal for the #ClutterActor:text-direction property
2026 // <text_dir>: the text direction for @self
2027 void set_text_direction(TextDirection text_dir) {
2028 clutter_actor_set_text_direction(&this, text_dir);
2031 // Forces a width on an actor, causing the actor's preferred width
2032 // and height (if any) to be ignored.
2034 // If @width is -1 the actor will use its preferred width request
2035 // instead of overriding it, i.e. you can "unset" the width with -1.
2037 // This function sets both the minimum and natural size of the actor.
2038 // <width>: Requested new width for the actor, in pixels, or -1
2039 void set_width(float width) {
2040 clutter_actor_set_width(&this, width);
2043 // Sets the actor's X coordinate, relative to its parent, in pixels.
2045 // Overrides any layout manager and forces a fixed position for
2046 // the actor.
2047 // <x>: the actor's position on the X axis
2048 void set_x(float x) {
2049 clutter_actor_set_x(&this, x);
2052 // Sets the actor's Y coordinate, relative to its parent, in pixels.#
2054 // Overrides any layout manager and forces a fixed position for
2055 // the actor.
2056 // <y>: the actor's position on the Y axis
2057 void set_y(float y) {
2058 clutter_actor_set_y(&this, y);
2061 // Sets the rotation angle of @self around the Z axis using the center
2062 // point specified as a compass point. For example to rotate such that
2063 // the center of the actor remains static you can use
2064 // %CLUTTER_GRAVITY_CENTER. If the actor changes size the center point
2065 // will move accordingly.
2066 // <angle>: the angle of rotation
2067 // <gravity>: the center point of the rotation
2068 void set_z_rotation_from_gravity(double angle, Gravity gravity) {
2069 clutter_actor_set_z_rotation_from_gravity(&this, angle, gravity);
2072 // Should be called inside the implementation of the
2073 // #ClutterActor::pick virtual function in order to check whether
2074 // the actor should paint itself in pick mode or not.
2076 // This function should never be called directly by applications.
2078 // %FALSE otherwise
2079 // RETURNS: %TRUE if the actor should paint its silhouette,
2080 int should_pick_paint() {
2081 return clutter_actor_should_pick_paint(&this);
2084 // Flags an actor to be displayed. An actor that isn't shown will not
2085 // be rendered on the stage.
2087 // Actors are visible by default.
2089 // If this function is called on an actor without a parent, the
2090 // #ClutterActor:show-on-set-parent will be set to %TRUE as a side
2091 // effect.
2092 void show() {
2093 clutter_actor_show(&this);
2095 // Calls clutter_actor_show() on all children of an actor (if any).
2096 void show_all() {
2097 clutter_actor_show_all(&this);
2100 // This function translates screen coordinates (@x, @y) to
2101 // coordinates relative to the actor. For example, it can be used to translate
2102 // screen events from global screen coordinates into actor-local coordinates.
2104 // The conversion can fail, notably if the transform stack results in the
2105 // actor being projected on the screen as a mere line.
2107 // The conversion should not be expected to be pixel-perfect due to the
2108 // nature of the operation. In general the error grows when the skewing
2109 // of the actor rectangle on screen increases.
2111 // <note><para>This function can be computationally intensive.</para></note>
2113 // <note><para>This function only works when the allocation is up-to-date,
2114 // i.e. inside of paint().</para></note>
2115 // RETURNS: %TRUE if conversion was successful.
2116 // <x>: x screen coordinate of the point to unproject
2117 // <y>: y screen coordinate of the point to unproject
2118 // <x_out>: return location for the unprojected x coordinance
2119 // <y_out>: return location for the unprojected y coordinance
2120 int transform_stage_point(float x, float y, /*out*/ float* x_out, /*out*/ float* y_out) {
2121 return clutter_actor_transform_stage_point(&this, x, y, x_out, y_out);
2124 // Unsets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly
2125 // unmaps its children if they were mapped.
2127 // Calling this is allowed in only one case: you are implementing the
2128 // #ClutterActor <function>unmap()</function> virtual function in an actor
2129 // and you need to unmap the children of that actor. It is not necessary
2130 // to call this if you implement #ClutterContainer because the default
2131 // implementation will automatically unmap children of containers.
2133 // When overriding unmap, it is mandatory to chain up to the parent
2134 // implementation.
2135 void unmap() {
2136 clutter_actor_unmap(&this);
2139 // Removes the parent of @self.
2141 // This function should not be used in applications.
2143 // This function should only be called by implementations of the
2144 // #ClutterContainer interface, or by composite actors that do
2145 // not implicitly create their children.
2146 void unparent() {
2147 clutter_actor_unparent(&this);
2150 // Unrealization informs the actor that it may be being destroyed or
2151 // moved to another stage. The actor may want to destroy any
2152 // underlying graphics resources at this point. However it is
2153 // perfectly acceptable for it to retain the resources until the actor
2154 // is destroyed because Clutter only ever uses a single rendering
2155 // context and all of the graphics resources are valid on any stage.
2157 // Because mapped actors must be realized, actors may not be
2158 // unrealized if they are mapped. This function hides the actor to be
2159 // sure it isn't mapped, an application-visible side effect that you
2160 // may not be expecting.
2162 // This function should not be called by application code.
2163 void unrealize() {
2164 clutter_actor_unrealize(&this);
2167 // Unsets @flags on @self
2169 // This function will emit notifications for the changed properties
2170 // <flags>: the flags to unset
2171 void unset_flags(ActorFlags flags) {
2172 clutter_actor_unset_flags(&this, flags);
2175 // The ::allocation-changed signal is emitted when the
2176 // #ClutterActor:allocation property changes. Usually, application
2177 // code should just use the notifications for the :allocation property
2178 // but if you want to track the allocation flags as well, for instance
2179 // to know whether the absolute origin of @actor changed, then you might
2180 // want use this signal instead.
2181 // <box>: a #ClutterActorBox with the new allocation
2182 // <flags>: #ClutterAllocationFlags for the allocation
2183 extern (C) alias static void function (Actor* this_, ActorBox* box, AllocationFlags* flags, void* user_data=null) signal_allocation_changed;
2185 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2186 return super_.signal_connect!name(cb, data, cf);
2189 ulong signal_connect(string name:"allocation-changed", CB:signal_allocation_changed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2190 return signal_connect_data(&this, cast(char*)"allocation-changed",
2191 cast(GObject2.Callback)cb, data, null, cf);
2194 // The ::button-press-event signal is emitted each time a mouse button
2195 // is pressed on @actor.
2197 // or %FALSE to continue the emission.
2198 // RETURNS: %TRUE if the event has been handled by the actor,
2199 // <event>: a #ClutterButtonEvent
2200 extern (C) alias static c_int function (Actor* this_, Event* event, void* user_data=null) signal_button_press_event;
2201 ulong signal_connect(string name:"button-press-event", CB:signal_button_press_event)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2202 return signal_connect_data(&this, cast(char*)"button-press-event",
2203 cast(GObject2.Callback)cb, data, null, cf);
2206 // The ::button-release-event signal is emitted each time a mouse button
2207 // is released on @actor.
2209 // or %FALSE to continue the emission.
2210 // RETURNS: %TRUE if the event has been handled by the actor,
2211 // <event>: a #ClutterButtonEvent
2212 extern (C) alias static c_int function (Actor* this_, Event* event, void* user_data=null) signal_button_release_event;
2213 ulong signal_connect(string name:"button-release-event", CB:signal_button_release_event)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2214 return signal_connect_data(&this, cast(char*)"button-release-event",
2215 cast(GObject2.Callback)cb, data, null, cf);
2218 // The ::captured-event signal is emitted when an event is captured
2219 // by Clutter. This signal will be emitted starting from the top-level
2220 // container (the #ClutterStage) to the actor which received the event
2221 // going down the hierarchy. This signal can be used to intercept every
2222 // event before the specialized events (like
2223 // ClutterActor::button-press-event or ::key-released-event) are
2224 // emitted.
2226 // or %FALSE to continue the emission.
2227 // RETURNS: %TRUE if the event has been handled by the actor,
2228 // <event>: a #ClutterEvent
2229 extern (C) alias static c_int function (Actor* this_, Event* event, void* user_data=null) signal_captured_event;
2230 ulong signal_connect(string name:"captured-event", CB:signal_captured_event)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2231 return signal_connect_data(&this, cast(char*)"captured-event",
2232 cast(GObject2.Callback)cb, data, null, cf);
2235 // The ::destroy signal notifies that all references held on the
2236 // actor which emitted it should be released.
2238 // The ::destroy signal should be used by all holders of a reference
2239 // on @actor.
2241 // This signal might result in the finalization of the #ClutterActor
2242 // if all references are released.
2244 // Composite actors and actors implementing the #ClutterContainer
2245 // interface should override the default implementation of the
2246 // class handler of this signal and call clutter_actor_destroy() on
2247 // their children. When overriding the default class handler, it is
2248 // required to chain up to the parent's implementation.
2249 extern (C) alias static void function (Actor* this_, void* user_data=null) signal_destroy;
2250 ulong signal_connect(string name:"destroy", CB:signal_destroy)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2251 return signal_connect_data(&this, cast(char*)"destroy",
2252 cast(GObject2.Callback)cb, data, null, cf);
2255 // The ::enter-event signal is emitted when the pointer enters the @actor
2257 // or %FALSE to continue the emission.
2258 // RETURNS: %TRUE if the event has been handled by the actor,
2259 // <event>: a #ClutterCrossingEvent
2260 extern (C) alias static c_int function (Actor* this_, Event* event, void* user_data=null) signal_enter_event;
2261 ulong signal_connect(string name:"enter-event", CB:signal_enter_event)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2262 return signal_connect_data(&this, cast(char*)"enter-event",
2263 cast(GObject2.Callback)cb, data, null, cf);
2266 // The ::event signal is emitted each time an event is received
2267 // by the @actor. This signal will be emitted on every actor,
2268 // following the hierarchy chain, until it reaches the top-level
2269 // container (the #ClutterStage).
2271 // or %FALSE to continue the emission.
2272 // RETURNS: %TRUE if the event has been handled by the actor,
2273 // <event>: a #ClutterEvent
2274 extern (C) alias static c_int function (Actor* this_, Event* event, void* user_data=null) signal_event;
2275 ulong signal_connect(string name:"event", CB:signal_event)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2276 return signal_connect_data(&this, cast(char*)"event",
2277 cast(GObject2.Callback)cb, data, null, cf);
2280 // The ::hide signal is emitted when an actor is no longer rendered
2281 // on the stage.
2282 extern (C) alias static void function (Actor* this_, void* user_data=null) signal_hide;
2283 ulong signal_connect(string name:"hide", CB:signal_hide)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2284 return signal_connect_data(&this, cast(char*)"hide",
2285 cast(GObject2.Callback)cb, data, null, cf);
2287 // The ::key-focus-in signal is emitted when @actor receives key focus.
2288 extern (C) alias static void function (Actor* this_, void* user_data=null) signal_key_focus_in;
2289 ulong signal_connect(string name:"key-focus-in", CB:signal_key_focus_in)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2290 return signal_connect_data(&this, cast(char*)"key-focus-in",
2291 cast(GObject2.Callback)cb, data, null, cf);
2293 // The ::key-focus-out signal is emitted when @actor loses key focus.
2294 extern (C) alias static void function (Actor* this_, void* user_data=null) signal_key_focus_out;
2295 ulong signal_connect(string name:"key-focus-out", CB:signal_key_focus_out)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2296 return signal_connect_data(&this, cast(char*)"key-focus-out",
2297 cast(GObject2.Callback)cb, data, null, cf);
2300 // The ::key-press-event signal is emitted each time a keyboard button
2301 // is pressed while @actor has key focus (see clutter_stage_set_key_focus()).
2303 // or %FALSE to continue the emission.
2304 // RETURNS: %TRUE if the event has been handled by the actor,
2305 // <event>: a #ClutterKeyEvent
2306 extern (C) alias static c_int function (Actor* this_, Event* event, void* user_data=null) signal_key_press_event;
2307 ulong signal_connect(string name:"key-press-event", CB:signal_key_press_event)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2308 return signal_connect_data(&this, cast(char*)"key-press-event",
2309 cast(GObject2.Callback)cb, data, null, cf);
2312 // The ::key-release-event signal is emitted each time a keyboard button
2313 // is released while @actor has key focus (see
2314 // clutter_stage_set_key_focus()).
2316 // or %FALSE to continue the emission.
2317 // RETURNS: %TRUE if the event has been handled by the actor,
2318 // <event>: a #ClutterKeyEvent
2319 extern (C) alias static c_int function (Actor* this_, Event* event, void* user_data=null) signal_key_release_event;
2320 ulong signal_connect(string name:"key-release-event", CB:signal_key_release_event)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2321 return signal_connect_data(&this, cast(char*)"key-release-event",
2322 cast(GObject2.Callback)cb, data, null, cf);
2325 // The ::leave-event signal is emitted when the pointer leaves the @actor.
2327 // or %FALSE to continue the emission.
2328 // RETURNS: %TRUE if the event has been handled by the actor,
2329 // <event>: a #ClutterCrossingEvent
2330 extern (C) alias static c_int function (Actor* this_, Event* event, void* user_data=null) signal_leave_event;
2331 ulong signal_connect(string name:"leave-event", CB:signal_leave_event)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2332 return signal_connect_data(&this, cast(char*)"leave-event",
2333 cast(GObject2.Callback)cb, data, null, cf);
2336 // The ::motion-event signal is emitted each time the mouse pointer is
2337 // moved over @actor.
2339 // or %FALSE to continue the emission.
2340 // RETURNS: %TRUE if the event has been handled by the actor,
2341 // <event>: a #ClutterMotionEvent
2342 extern (C) alias static c_int function (Actor* this_, Event* event, void* user_data=null) signal_motion_event;
2343 ulong signal_connect(string name:"motion-event", CB:signal_motion_event)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2344 return signal_connect_data(&this, cast(char*)"motion-event",
2345 cast(GObject2.Callback)cb, data, null, cf);
2348 // The ::paint signal is emitted each time an actor is being painted.
2350 // Subclasses of #ClutterActor should override the class signal handler
2351 // and paint themselves in that function.
2353 // It is possible to connect a handler to the ::paint signal in order
2354 // to set up some custom aspect of a paint.
2355 extern (C) alias static void function (Actor* this_, void* user_data=null) signal_paint;
2356 ulong signal_connect(string name:"paint", CB:signal_paint)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2357 return signal_connect_data(&this, cast(char*)"paint",
2358 cast(GObject2.Callback)cb, data, null, cf);
2361 // This signal is emitted when the parent of the actor changes.
2362 // <old_parent>: the previous parent of the actor, or %NULL
2363 extern (C) alias static void function (Actor* this_, Actor* old_parent, void* user_data=null) signal_parent_set;
2364 ulong signal_connect(string name:"parent-set", CB:signal_parent_set)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2365 return signal_connect_data(&this, cast(char*)"parent-set",
2366 cast(GObject2.Callback)cb, data, null, cf);
2369 // The ::pick signal is emitted each time an actor is being painted
2370 // in "pick mode". The pick mode is used to identify the actor during
2371 // the event handling phase, or by clutter_stage_get_actor_at_pos().
2372 // The actor should paint its shape using the passed @pick_color.
2374 // Subclasses of #ClutterActor should override the class signal handler
2375 // and paint themselves in that function.
2377 // It is possible to connect a handler to the ::pick signal in order
2378 // to set up some custom aspect of a paint in pick mode.
2379 // <color>: the #ClutterColor to be used when picking
2380 extern (C) alias static void function (Actor* this_, Color* color, void* user_data=null) signal_pick;
2381 ulong signal_connect(string name:"pick", CB:signal_pick)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2382 return signal_connect_data(&this, cast(char*)"pick",
2383 cast(GObject2.Callback)cb, data, null, cf);
2386 // The ::queue_redraw signal is emitted when clutter_actor_queue_redraw()
2387 // is called on @origin.
2389 // The default implementation for #ClutterActor chains up to the
2390 // parent actor and queues a redraw on the parent, thus "bubbling"
2391 // the redraw queue up through the actor graph. The default
2392 // implementation for #ClutterStage queues a clutter_redraw() in a
2393 // main loop idle handler.
2395 // Note that the @origin actor may be the stage, or a container; it
2396 // does not have to be a leaf node in the actor graph.
2398 // Toolkits embedding a #ClutterStage which require a redraw and
2399 // relayout cycle can stop the emission of this signal using the
2400 // GSignal API, redraw the UI and then call clutter_redraw()
2401 // themselves, like:
2403 // |[
2404 // static void
2405 // on_redraw_complete (void)
2406 // {
2407 // /&ast; execute the Clutter drawing pipeline &ast;/
2408 // clutter_redraw ();
2409 // }
2411 // static void
2412 // on_stage_queue_redraw (ClutterStage *stage)
2413 // {
2414 // /&ast; this prevents the default handler to run &ast;/
2415 // g_signal_stop_emission_by_name (stage, "queue-redraw");
2417 // /&ast; queue a redraw with the host toolkit and call
2418 // &ast; a function when the redraw has been completed
2419 // &ast;/
2420 // queue_a_redraw (G_CALLBACK (on_redraw_complete));
2421 // }
2422 // ]|
2424 // <note><para>This signal is emitted before the Clutter paint
2425 // pipeline is executed. If you want to know when the pipeline has
2426 // been completed you should connect to the ::paint signal on the
2427 // Stage with g_signal_connect_after().</para></note>
2428 // <origin>: the actor which initiated the redraw request
2429 extern (C) alias static void function (Actor* this_, Actor* origin, void* user_data=null) signal_queue_redraw;
2430 ulong signal_connect(string name:"queue-redraw", CB:signal_queue_redraw)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2431 return signal_connect_data(&this, cast(char*)"queue-redraw",
2432 cast(GObject2.Callback)cb, data, null, cf);
2435 // The ::queue_layout signal is emitted when clutter_actor_queue_relayout()
2436 // is called on an actor.
2438 // The default implementation for #ClutterActor chains up to the
2439 // parent actor and queues a relayout on the parent, thus "bubbling"
2440 // the relayout queue up through the actor graph.
2442 // The main purpose of this signal is to allow relayout to be propagated
2443 // properly in the procense of #ClutterClone actors. Applications will
2444 // not normally need to connect to this signal.
2445 extern (C) alias static void function (Actor* this_, void* user_data=null) signal_queue_relayout;
2446 ulong signal_connect(string name:"queue-relayout", CB:signal_queue_relayout)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2447 return signal_connect_data(&this, cast(char*)"queue-relayout",
2448 cast(GObject2.Callback)cb, data, null, cf);
2451 // The ::realize signal is emitted each time an actor is being
2452 // realized.
2453 extern (C) alias static void function (Actor* this_, void* user_data=null) signal_realize;
2454 ulong signal_connect(string name:"realize", CB:signal_realize)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2455 return signal_connect_data(&this, cast(char*)"realize",
2456 cast(GObject2.Callback)cb, data, null, cf);
2459 // The ::scroll-event signal is emitted each time the mouse is
2460 // scrolled on @actor
2462 // or %FALSE to continue the emission.
2463 // RETURNS: %TRUE if the event has been handled by the actor,
2464 // <event>: a #ClutterScrollEvent
2465 extern (C) alias static c_int function (Actor* this_, Event* event, void* user_data=null) signal_scroll_event;
2466 ulong signal_connect(string name:"scroll-event", CB:signal_scroll_event)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2467 return signal_connect_data(&this, cast(char*)"scroll-event",
2468 cast(GObject2.Callback)cb, data, null, cf);
2471 // The ::show signal is emitted when an actor is visible and
2472 // rendered on the stage.
2473 extern (C) alias static void function (Actor* this_, void* user_data=null) signal_show;
2474 ulong signal_connect(string name:"show", CB:signal_show)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2475 return signal_connect_data(&this, cast(char*)"show",
2476 cast(GObject2.Callback)cb, data, null, cf);
2479 // The ::unrealize signal is emitted each time an actor is being
2480 // unrealized.
2481 extern (C) alias static void function (Actor* this_, void* user_data=null) signal_unrealize;
2482 ulong signal_connect(string name:"unrealize", CB:signal_unrealize)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
2483 return signal_connect_data(&this, cast(char*)"unrealize",
2484 cast(GObject2.Callback)cb, data, null, cf);
2489 // Bounding box of an actor. The coordinates of the top left and right bottom
2490 // corners of an actor. The coordinates of the two points are expressed in
2491 // pixels with sub-pixel precision
2492 struct ActorBox {
2493 float x1, y1, x2, y2;
2496 // Allocates a new #ClutterActorBox using the passed coordinates
2497 // for the top left and bottom right points
2499 // clutter_actor_box_free() to free the resources
2500 // RETURNS: the newly allocated #ClutterActorBox. Use
2501 // <x_1>: X coordinate of the top left point
2502 // <y_1>: Y coordinate of the top left point
2503 // <x_2>: X coordinate of the bottom right point
2504 // <y_2>: Y coordinate of the bottom right point
2505 static ActorBox* /*new*/ new_(float x_1, float y_1, float x_2, float y_2) {
2506 return clutter_actor_box_new(x_1, y_1, x_2, y_2);
2508 // Clamps the components of @box to the nearest integer
2509 void clamp_to_pixel() {
2510 clutter_actor_box_clamp_to_pixel(&this);
2513 // Checks whether a point with @x, @y coordinates is contained
2514 // withing @box
2515 // RETURNS: %TRUE if the point is contained by the #ClutterActorBox
2516 // <x>: X coordinate of the point
2517 // <y>: Y coordinate of the point
2518 int contains(float x, float y) {
2519 return clutter_actor_box_contains(&this, x, y);
2522 // Copies @box
2524 // clutter_actor_box_free() to free the allocated resources
2525 // RETURNS: a newly allocated copy of #ClutterActorBox. Use
2526 ActorBox* /*new*/ copy() {
2527 return clutter_actor_box_copy(&this);
2530 // Checks @box_a and @box_b for equality
2531 // RETURNS: %TRUE if the passed #ClutterActorBox are equal
2532 // <box_b>: a #ClutterActorBox
2533 int equal(ActorBox* box_b) {
2534 return clutter_actor_box_equal(&this, box_b);
2537 // Frees a #ClutterActorBox allocated using clutter_actor_box_new()
2538 // or clutter_actor_box_copy()
2539 void free() {
2540 clutter_actor_box_free(&this);
2543 // Calculates the bounding box represented by the four vertices; for details
2544 // of the vertex array see clutter_actor_get_abs_allocation_vertices().
2545 // <verts>: array of four #ClutterVertex
2546 void from_vertices(Vertex verts) {
2547 clutter_actor_box_from_vertices(&this, verts);
2550 // Retrieves the area of @box
2551 // RETURNS: the area of a #ClutterActorBox, in pixels
2552 float get_area() {
2553 return clutter_actor_box_get_area(&this);
2556 // Retrieves the height of the @box
2557 // RETURNS: the height of the box
2558 float get_height() {
2559 return clutter_actor_box_get_height(&this);
2562 // Retrieves the origin of @box
2563 // <x>: return location for the X coordinate, or %NULL
2564 // <y>: return location for the Y coordinate, or %NULL
2565 void get_origin(/*out*/ float* x=null, /*out*/ float* y=null) {
2566 clutter_actor_box_get_origin(&this, x, y);
2569 // Retrieves the size of @box
2570 // <width>: return location for the width, or %NULL
2571 // <height>: return location for the height, or %NULL
2572 void get_size(/*out*/ float* width=null, /*out*/ float* height=null) {
2573 clutter_actor_box_get_size(&this, width, height);
2576 // Retrieves the width of the @box
2577 // RETURNS: the width of the box
2578 float get_width() {
2579 return clutter_actor_box_get_width(&this);
2582 // Retrieves the X coordinate of the origin of @box
2583 // RETURNS: the X coordinate of the origin
2584 float get_x() {
2585 return clutter_actor_box_get_x(&this);
2588 // Retrieves the Y coordinate of the origin of @box
2589 // RETURNS: the Y coordinate of the origin
2590 float get_y() {
2591 return clutter_actor_box_get_y(&this);
2594 // Interpolates between @initial and @final #ClutterActorBox<!-- -->es
2595 // using @progress
2596 // <final>: the final #ClutterActorBox
2597 // <progress>: the interpolation progress
2598 // <result>: return location for the interpolation
2599 void interpolate(ActorBox* final, double progress, /*out*/ ActorBox* result) {
2600 clutter_actor_box_interpolate(&this, final, progress, result);
2603 // Changes the origin of @box, maintaining the size of the #ClutterActorBox.
2604 // <x>: the X coordinate of the new origin
2605 // <y>: the Y coordinate of the new origin
2606 void set_origin(float x, float y) {
2607 clutter_actor_box_set_origin(&this, x, y);
2610 // Sets the size of @box, maintaining the origin of the #ClutterActorBox.
2611 // <width>: the new width
2612 // <height>: the new height
2613 void set_size(float width, float height) {
2614 clutter_actor_box_set_size(&this, width, height);
2617 // Unions the two boxes @a and @b and stores the result in @result.
2618 // <b>: the second #ClutterActorBox
2619 // <result>: the #ClutterActorBox representing a union of @a and @b
2620 void union_(ActorBox* b, /*out*/ ActorBox* result) {
2621 clutter_actor_box_union(&this, b, result);
2625 // Base class for actors.
2626 struct ActorClass {
2627 private GObject2.InitiallyUnownedClass parent_class;
2628 extern (C) void function (Actor* self) show;
2629 extern (C) void function (Actor* self) show_all;
2630 extern (C) void function (Actor* self) hide;
2631 extern (C) void function (Actor* self) hide_all;
2632 extern (C) void function (Actor* self) realize;
2633 extern (C) void function (Actor* self) unrealize;
2634 extern (C) void function (Actor* self) map;
2635 extern (C) void function (Actor* self) unmap;
2636 extern (C) void function (Actor* self) paint;
2637 extern (C) void function (Actor* actor, Actor* old_parent) parent_set;
2638 extern (C) void function (Actor* self) destroy;
2639 extern (C) void function (Actor* actor, Color* color) pick;
2640 extern (C) void function (Actor* actor, Actor* leaf_that_queued) queue_redraw;
2642 // <for_height>: available height when computing the preferred width, or a negative value to indicate that no height is defined
2643 // <min_width_p>: return location for minimum width, or %NULL
2644 // <natural_width_p>: return location for the natural width, or %NULL
2645 extern (C) void function (Actor* self, float for_height, /*out*/ float* min_width_p=null, /*out*/ float* natural_width_p=null) get_preferred_width;
2647 // <for_width>: available width to assume in computing desired height, or a negative value to indicate that no width is defined
2648 // <min_height_p>: return location for minimum height, or %NULL
2649 // <natural_height_p>: return location for natural height, or %NULL
2650 extern (C) void function (Actor* self, float for_width, /*out*/ float* min_height_p=null, /*out*/ float* natural_height_p=null) get_preferred_height;
2652 // <box>: new allocation of the actor, in parent-relative coordinates
2653 // <flags>: flags that control the allocation
2654 extern (C) void function (Actor* self, ActorBox* box, AllocationFlags flags) allocate;
2655 extern (C) void function (Actor* actor, Cogl.Matrix* matrix) apply_transform;
2656 extern (C) int function (Actor* actor, Event* event) event;
2657 extern (C) int function (Actor* actor, ButtonEvent* event) button_press_event;
2658 extern (C) int function (Actor* actor, ButtonEvent* event) button_release_event;
2659 extern (C) int function (Actor* actor, ScrollEvent* event) scroll_event;
2660 extern (C) int function (Actor* actor, KeyEvent* event) key_press_event;
2661 extern (C) int function (Actor* actor, KeyEvent* event) key_release_event;
2662 extern (C) int function (Actor* actor, MotionEvent* event) motion_event;
2663 extern (C) int function (Actor* actor, CrossingEvent* event) enter_event;
2664 extern (C) int function (Actor* actor, CrossingEvent* event) leave_event;
2665 extern (C) int function (Actor* actor, Event* event) captured_event;
2666 extern (C) void function (Actor* actor) key_focus_in;
2667 extern (C) void function (Actor* actor) key_focus_out;
2668 extern (C) void function (Actor* self) queue_relayout;
2669 // RETURNS: the #AtkObject associated with @actor
2670 extern (C) Atk.Object* function (Actor* self) get_accessible;
2671 extern (C) int function (Actor* actor, PaintVolume* volume) get_paint_volume;
2672 // RETURNS: %TRUE if the actor may have overlapping primitives, and
2673 extern (C) int function (Actor* self) has_overlaps;
2674 private void*[28] _padding_dummy;
2677 // Flags used to signal the state of an actor.
2678 enum ActorFlags {
2679 MAPPED = 2,
2680 REALIZED = 4,
2681 REACTIVE = 8,
2682 VISIBLE = 16,
2683 NO_LAYOUT = 32
2686 // The <structname>ClutterActorMeta</structname> structure contains only
2687 // private data and should be accessed using the provided API
2688 struct ActorMeta /* : GObject.InitiallyUnowned */ /* Version 1.4 */ {
2689 alias parent_instance this;
2690 alias parent_instance super_;
2691 alias parent_instance initiallyunowned;
2692 GObject2.InitiallyUnowned parent_instance;
2693 private ActorMetaPrivate* priv;
2696 // Retrieves a pointer to the #ClutterActor that owns @meta
2697 // RETURNS: a pointer to a #ClutterActor or %NULL
2698 Actor* get_actor() {
2699 return clutter_actor_meta_get_actor(&this);
2702 // Retrieves whether @meta is enabled
2703 // RETURNS: %TRUE if the #ClutterActorMeta instance is enabled
2704 int get_enabled() {
2705 return clutter_actor_meta_get_enabled(&this);
2708 // Retrieves the name set using clutter_actor_meta_set_name()
2710 // instance, or %NULL if none was set. The returned string is owned
2711 // by the #ClutterActorMeta instance and it should not be modified
2712 // or freed
2713 // RETURNS: the name of the #ClutterActorMeta
2714 char* get_name() {
2715 return clutter_actor_meta_get_name(&this);
2718 // Sets whether @meta should be enabled or not
2719 // <is_enabled>: whether @meta is enabled
2720 void set_enabled(int is_enabled) {
2721 clutter_actor_meta_set_enabled(&this, is_enabled);
2724 // Sets the name of @meta
2726 // The name can be used to identify the #ClutterActorMeta instance
2727 // <name>: the name of @meta
2728 void set_name(char* name) {
2729 clutter_actor_meta_set_name(&this, name);
2734 // The <structname>ClutterActorMetaClass</structname> structure contains
2735 // only private data
2736 struct ActorMetaClass /* Version 1.4 */ {
2737 private GObject2.InitiallyUnownedClass parent_class;
2738 extern (C) void function (ActorMeta* meta, Actor* actor) set_actor;
2739 extern (C) void function () _clutter_meta1;
2740 extern (C) void function () _clutter_meta2;
2741 extern (C) void function () _clutter_meta3;
2742 extern (C) void function () _clutter_meta4;
2743 extern (C) void function () _clutter_meta5;
2744 extern (C) void function () _clutter_meta6;
2745 extern (C) void function () _clutter_meta7;
2748 struct ActorMetaPrivate {
2751 struct ActorPrivate {
2754 enum int AddFavorite = 269025081;
2755 enum int Adiaeresis = 196;
2756 enum int Agrave = 192;
2757 enum int Ahook = 16785058;
2759 // Specifies the axis on which #ClutterAlignConstraint should maintain
2760 // the alignment
2761 enum AlignAxis /* Version 1.4 */ {
2762 X_AXIS = 0,
2763 Y_AXIS = 1
2766 // <structname>ClutterAlignConstraint</structname> is an opaque structure
2767 // whose members cannot be directly accesses
2768 struct AlignConstraint /* : Constraint */ /* Version 1.4 */ {
2769 alias method_parent this;
2770 alias method_parent super_;
2771 alias method_parent constraint;
2772 Constraint method_parent;
2775 // Creates a new constraint, aligning a #ClutterActor's position with
2776 // regards of the size of the actor to @source, with the given
2777 // alignment @factor
2778 // RETURNS: the newly created #ClutterAlignConstraint
2779 // <source>: the #ClutterActor to use as the source of the alignment, or %NULL
2780 // <axis>: the axis to be used to compute the alignment
2781 // <factor>: the alignment factor, between 0.0 and 1.0
2782 static AlignConstraint* new_(Actor* source, AlignAxis axis, float factor) {
2783 return clutter_align_constraint_new(source, axis, factor);
2786 // Retrieves the value set using clutter_align_constraint_set_align_axis()
2787 // RETURNS: the alignment axis
2788 AlignAxis get_align_axis() {
2789 return clutter_align_constraint_get_align_axis(&this);
2792 // Retrieves the factor set using clutter_align_constraint_set_factor()
2793 // RETURNS: the alignment factor
2794 float get_factor() {
2795 return clutter_align_constraint_get_factor(&this);
2798 // Retrieves the source of the alignment
2800 // of the alignment
2801 // RETURNS: the #ClutterActor used as the source
2802 Actor* get_source() {
2803 return clutter_align_constraint_get_source(&this);
2806 // Sets the axis to which the alignment refers to
2807 // <axis>: the axis to which the alignment refers to
2808 void set_align_axis(AlignAxis axis) {
2809 clutter_align_constraint_set_align_axis(&this, axis);
2812 // Sets the alignment factor of the constraint
2814 // The factor depends on the #ClutterAlignConstraint:align-axis property
2815 // and it is a value between 0.0 (meaning left, when
2816 // #ClutterAlignConstraint:align-axis is set to %CLUTTER_ALIGN_X_AXIS; or
2817 // meaning top, when #ClutterAlignConstraint:align-axis is set to
2818 // %CLUTTER_ALIGN_Y_AXIS) and 1.0 (meaning right, when
2819 // #ClutterAlignConstraint:align-axis is set to %CLUTTER_ALIGN_X_AXIS; or
2820 // meaning bottom, when #ClutterAlignConstraint:align-axis is set to
2821 // %CLUTTER_ALIGN_Y_AXIS). A value of 0.5 aligns in the middle in either
2822 // cases
2823 // <factor>: the alignment factor, between 0.0 and 1.0
2824 void set_factor(float factor) {
2825 clutter_align_constraint_set_factor(&this, factor);
2828 // Sets the source of the alignment constraint
2829 // <source>: a #ClutterActor, or %NULL to unset the source
2830 void set_source(Actor* source=null) {
2831 clutter_align_constraint_set_source(&this, source);
2835 struct AlignConstraintClass {
2839 // Flags passed to the #ClutterActor::allocate() virtual function and
2840 // to the clutter_actor_allocate() function
2841 enum AllocationFlags /* Version 1.0 */ {
2842 ALLOCATION_NONE = 0,
2843 ABSOLUTE_ORIGIN_CHANGED = 2
2846 // #ClutterAlpha combines a #ClutterTimeline and a function.
2847 // The contents of the #ClutterAlpha structure are private and should
2848 // only be accessed using the provided API.
2849 struct Alpha /* : GObject.InitiallyUnowned */ /* Version 0.2 */ {
2850 alias parent this;
2851 alias parent super_;
2852 alias parent initiallyunowned;
2853 GObject2.InitiallyUnowned parent;
2854 private AlphaPrivate* priv;
2857 // Creates a new #ClutterAlpha instance. You must set a function
2858 // to compute the alpha value using clutter_alpha_set_func() and
2859 // bind a #ClutterTimeline object to the #ClutterAlpha instance
2860 // using clutter_alpha_set_timeline().
2862 // You should use the newly created #ClutterAlpha instance inside
2863 // a #ClutterBehaviour object.
2864 // RETURNS: the newly created empty #ClutterAlpha instance.
2865 static Alpha* new_() {
2866 return clutter_alpha_new();
2869 // Creates a new #ClutterAlpha instance and sets the timeline
2870 // and animation mode.
2872 // See also clutter_alpha_set_timeline() and clutter_alpha_set_mode().
2873 // RETURNS: the newly created #ClutterAlpha
2874 // <timeline>: #ClutterTimeline timeline
2875 // <mode>: animation mode
2876 static Alpha* new_full(Timeline* timeline, c_ulong mode) {
2877 return clutter_alpha_new_full(timeline, mode);
2880 // Creates a new #ClutterAlpha instances and sets the timeline
2881 // and the alpha function.
2883 // This function will not register @func as a global alpha function.
2885 // See also clutter_alpha_set_timeline() and clutter_alpha_set_func().
2886 // RETURNS: the newly created #ClutterAlpha
2887 // <timeline>: a #ClutterTimeline
2888 // <func>: a #ClutterAlphaFunc
2889 // <data>: data to pass to the function, or %NULL
2890 // <destroy>: function to call when removing the alpha function, or %NULL
2891 static Alpha* new_with_func(Timeline* timeline, AlphaFunc func, void* data, GLib2.DestroyNotify destroy) {
2892 return clutter_alpha_new_with_func(timeline, func, data, destroy);
2895 // #GClosure variant of clutter_alpha_register_func().
2897 // Registers a global alpha function and returns its logical id
2898 // to be used by clutter_alpha_set_mode() or by #ClutterAnimation.
2900 // The logical id is always greater than %CLUTTER_ANIMATION_LAST.
2901 // RETURNS: the logical id of the alpha function
2902 // <closure>: a #GClosure
2903 static c_ulong register_closure(GObject2.Closure* closure) {
2904 return clutter_alpha_register_closure(closure);
2907 // Unintrospectable function: register_func() / clutter_alpha_register_func()
2908 // Registers a global alpha function and returns its logical id
2909 // to be used by clutter_alpha_set_mode() or by #ClutterAnimation.
2911 // The logical id is always greater than %CLUTTER_ANIMATION_LAST.
2912 // RETURNS: the logical id of the alpha function
2913 // <func>: a #ClutterAlphaFunc
2914 // <data>: user data to pass to @func, or %NULL
2915 static c_ulong register_func(AlphaFunc func, void* data) {
2916 return clutter_alpha_register_func(func, data);
2919 // Query the current alpha value.
2920 // RETURNS: The current alpha value for the alpha
2921 double get_alpha() {
2922 return clutter_alpha_get_alpha(&this);
2925 // Retrieves the #ClutterAnimationMode used by @alpha.
2926 // RETURNS: the animation mode
2927 c_ulong get_mode() {
2928 return clutter_alpha_get_mode(&this);
2931 // Gets the #ClutterTimeline bound to @alpha.
2932 // RETURNS: a #ClutterTimeline instance
2933 Timeline* get_timeline() {
2934 return clutter_alpha_get_timeline(&this);
2937 // Sets the #GClosure used to compute the alpha value at each
2938 // frame of the #ClutterTimeline bound to @alpha.
2939 // <closure>: A #GClosure
2940 void set_closure(GObject2.Closure* closure) {
2941 clutter_alpha_set_closure(&this, closure);
2944 // Sets the #ClutterAlphaFunc function used to compute
2945 // the alpha value at each frame of the #ClutterTimeline
2946 // bound to @alpha.
2948 // This function will not register @func as a global alpha function.
2949 // <func>: A #ClutterAlphaFunc
2950 // <data>: user data to be passed to the alpha function, or %NULL
2951 // <destroy>: notify function used when disposing the alpha function
2952 void set_func(AlphaFunc func, void* data, GLib2.DestroyNotify destroy) {
2953 clutter_alpha_set_func(&this, func, data, destroy);
2956 // Sets the progress function of @alpha using the symbolic value
2957 // of @mode, as taken by the #ClutterAnimationMode enumeration or
2958 // using the value returned by clutter_alpha_register_func().
2959 // <mode>: a #ClutterAnimationMode
2960 void set_mode(c_ulong mode) {
2961 clutter_alpha_set_mode(&this, mode);
2964 // Binds @alpha to @timeline.
2965 // <timeline>: A #ClutterTimeline
2966 void set_timeline(Timeline* timeline) {
2967 clutter_alpha_set_timeline(&this, timeline);
2971 // Base class for #ClutterAlpha
2972 struct AlphaClass /* Version 0.2 */ {
2973 private GObject2.InitiallyUnownedClass parent_class;
2974 extern (C) void function () _clutter_alpha_1;
2975 extern (C) void function () _clutter_alpha_2;
2976 extern (C) void function () _clutter_alpha_3;
2977 extern (C) void function () _clutter_alpha_4;
2978 extern (C) void function () _clutter_alpha_5;
2982 // A function returning a value depending on the position of
2983 // the #ClutterTimeline bound to @alpha.
2984 // RETURNS: a floating point value
2985 // <alpha>: a #ClutterAlpha
2986 // <user_data>: user data passed to the function
2987 extern (C) alias double function (Alpha* alpha, void* user_data) AlphaFunc;
2989 struct AlphaPrivate {
2992 enum int Alt_L = 65513;
2993 enum int Alt_R = 65514;
2994 enum int Amacron = 960;
2996 // #ClutterAnimatable is an opaque structure whose members cannot be directly
2997 // accessed
2998 struct Animatable /* Version 1.0 */ {
3000 // Calls the animate_property() virtual function for @animatable.
3002 // The @initial_value and @final_value #GValue<!-- -->s must contain
3003 // the same type; @value must have been initialized to the same
3004 // type of @initial_value and @final_value.
3006 // All implementation of the #ClutterAnimatable interface must
3007 // implement this function.
3009 // be applied to the #ClutterAnimatable, and %FALSE otherwise
3012 // instead
3013 // RETURNS: %TRUE if the value has been validated and can
3014 // <animation>: a #ClutterAnimation
3015 // <property_name>: the name of the animated property
3016 // <initial_value>: the initial value of the animation interval
3017 // <final_value>: the final value of the animation interval
3018 // <progress>: the progress factor
3019 // <value>: return location for the animation value
3020 int animate_property(Animation* animation, char* property_name, GObject2.Value* initial_value, GObject2.Value* final_value, double progress, GObject2.Value* value) {
3021 return clutter_animatable_animate_property(&this, animation, property_name, initial_value, final_value, progress, value);
3024 // Finds the #GParamSpec for @property_name
3026 // or %NULL
3027 // RETURNS: The #GParamSpec for the given property
3028 // <property_name>: the name of the animatable property to find
3029 GObject2.ParamSpec* find_property(char* property_name) {
3030 return clutter_animatable_find_property(&this, property_name);
3033 // Retrieves the current state of @property_name and sets @value with it
3034 // <property_name>: the name of the animatable property to retrieve
3035 // <value>: a #GValue initialized to the type of the property to retrieve
3036 void get_initial_state(char* property_name, GObject2.Value* value) {
3037 clutter_animatable_get_initial_state(&this, property_name, value);
3040 // Asks a #ClutterAnimatable implementation to interpolate a
3041 // a named property between the initial and final values of
3042 // a #ClutterInterval, using @progress as the interpolation
3043 // value, and store the result inside @value.
3045 // This function should be used for every property animation
3046 // involving #ClutterAnimatable<!-- -->s.
3048 // This function replaces clutter_animatable_animate_property().
3050 // and %FALSE otherwise
3051 // RETURNS: %TRUE if the interpolation was successful,
3052 // <property_name>: the name of the property to interpolate
3053 // <interval>: a #ClutterInterval with the animation range
3054 // <progress>: the progress to use to interpolate between the initial and final values of the @interval
3055 // <value>: return location for an initialized #GValue using the same type of the @interval
3056 int interpolate_value(char* property_name, Interval* interval, double progress, /*out*/ GObject2.Value* value) {
3057 return clutter_animatable_interpolate_value(&this, property_name, interval, progress, value);
3060 // Sets the current state of @property_name to @value
3061 // <property_name>: the name of the animatable property to set
3062 // <value>: the value of the animatable property to set
3063 void set_final_state(char* property_name, GObject2.Value* value) {
3064 clutter_animatable_set_final_state(&this, property_name, value);
3069 // Base interface for #GObject<!-- -->s that can be animated by a
3070 // a #ClutterAnimation.
3071 struct AnimatableIface /* Version 1.0 */ {
3072 private GObject2.TypeInterface parent_iface;
3074 // RETURNS: %TRUE if the value has been validated and can
3075 // <animation>: a #ClutterAnimation
3076 // <property_name>: the name of the animated property
3077 // <initial_value>: the initial value of the animation interval
3078 // <final_value>: the final value of the animation interval
3079 // <progress>: the progress factor
3080 // <value>: return location for the animation value
3081 extern (C) int function (Animatable* animatable, Animation* animation, char* property_name, GObject2.Value* initial_value, GObject2.Value* final_value, double progress, GObject2.Value* value) animate_property;
3083 // RETURNS: The #GParamSpec for the given property
3084 // <property_name>: the name of the animatable property to find
3085 extern (C) GObject2.ParamSpec* function (Animatable* animatable, char* property_name) find_property;
3087 // <property_name>: the name of the animatable property to retrieve
3088 // <value>: a #GValue initialized to the type of the property to retrieve
3089 extern (C) void function (Animatable* animatable, char* property_name, GObject2.Value* value) get_initial_state;
3091 // <property_name>: the name of the animatable property to set
3092 // <value>: the value of the animatable property to set
3093 extern (C) void function (Animatable* animatable, char* property_name, GObject2.Value* value) set_final_state;
3095 // RETURNS: %TRUE if the interpolation was successful,
3096 // <property_name>: the name of the property to interpolate
3097 // <interval>: a #ClutterInterval with the animation range
3098 // <progress>: the progress to use to interpolate between the initial and final values of the @interval
3099 // <value>: return location for an initialized #GValue using the same type of the @interval
3100 extern (C) int function (Animatable* animatable, char* property_name, Interval* interval, double progress, /*out*/ GObject2.Value* value) interpolate_value;
3104 // The #ClutterAnimation structure contains only private data and should
3105 // be accessed using the provided functions.
3106 struct Animation /* : GObject.Object */ /* Version 1.0 */ {
3107 alias parent_instance this;
3108 alias parent_instance super_;
3109 alias parent_instance object;
3110 GObject2.Object parent_instance;
3111 private AnimationPrivate* priv;
3114 // Creates a new #ClutterAnimation instance. You should set the
3115 // #GObject to be animated using clutter_animation_set_object(),
3116 // set the duration with clutter_animation_set_duration() and the
3117 // easing mode using clutter_animation_set_mode().
3119 // Use clutter_animation_bind() or clutter_animation_bind_interval()
3120 // to define the properties to be animated. The interval and the
3121 // animated properties can be updated at runtime.
3123 // The clutter_actor_animate() and relative family of functions provide
3124 // an easy way to animate a #ClutterActor and automatically manage the
3125 // lifetime of a #ClutterAnimation instance, so you should consider using
3126 // those functions instead of manually creating an animation.
3128 // to release the associated resources
3129 // RETURNS: the newly created #ClutterAnimation. Use g_object_unref()
3130 static Animation* /*new*/ new_() {
3131 return clutter_animation_new();
3134 // Adds a single property with name @property_name to the
3135 // animation @animation. For more information about animations,
3136 // see clutter_actor_animate().
3138 // This method returns the animation primarily to make chained
3139 // calls convenient in language bindings.
3140 // RETURNS: The animation itself.
3141 // <property_name>: the property to control
3142 // <final>: The final value of the property
3143 Animation* bind(char* property_name, GObject2.Value* final) {
3144 return clutter_animation_bind(&this, property_name, final);
3147 // Binds @interval to the @property_name of the #GObject
3148 // attached to @animation. The #ClutterAnimation will take
3149 // ownership of the passed #ClutterInterval. For more information
3150 // about animations, see clutter_actor_animate().
3152 // If you need to update the interval instance use
3153 // clutter_animation_update_interval() instead.
3154 // RETURNS: The animation itself.
3155 // <property_name>: the property to control
3156 // <interval>: a #ClutterInterval
3157 Animation* bind_interval(char* property_name, Interval* interval) {
3158 return clutter_animation_bind_interval(&this, property_name, interval);
3161 // Emits the ::completed signal on @animation
3163 // When using this function with a #ClutterAnimation created
3164 // by the clutter_actor_animate() family of functions, @animation
3165 // will be unreferenced and it will not be valid anymore,
3166 // unless g_object_ref() was called before calling this function
3167 // or unless a reference was taken inside a handler for the
3168 // #ClutterAnimation::completed signal
3169 void completed() {
3170 clutter_animation_completed(&this);
3173 // Retrieves the #ClutterAlpha used by @animation.
3174 // RETURNS: the alpha object used by the animation
3175 Alpha* get_alpha() {
3176 return clutter_animation_get_alpha(&this);
3179 // Retrieves the duration of @animation, in milliseconds.
3180 // RETURNS: the duration of the animation
3181 uint get_duration() {
3182 return clutter_animation_get_duration(&this);
3185 // Retrieves the #ClutterInterval associated to @property_name
3186 // inside @animation.
3188 // property with the same name was found. The returned interval is
3189 // owned by the #ClutterAnimation and should not be unreferenced
3190 // RETURNS: a #ClutterInterval or %NULL if no
3191 // <property_name>: name of the property
3192 Interval* get_interval(char* property_name) {
3193 return clutter_animation_get_interval(&this, property_name);
3196 // Retrieves whether @animation is looping.
3197 // RETURNS: %TRUE if the animation is looping
3198 int get_loop() {
3199 return clutter_animation_get_loop(&this);
3202 // Retrieves the animation mode of @animation, as set by
3203 // clutter_animation_set_mode().
3204 // RETURNS: the mode for the animation
3205 c_ulong get_mode() {
3206 return clutter_animation_get_mode(&this);
3209 // Retrieves the #GObject attached to @animation.
3210 // RETURNS: a #GObject
3211 GObject2.Object* get_object() {
3212 return clutter_animation_get_object(&this);
3215 // Retrieves the #ClutterTimeline used by @animation
3216 // RETURNS: the timeline used by the animation
3217 Timeline* get_timeline() {
3218 return clutter_animation_get_timeline(&this);
3221 // Checks whether @animation is controlling @property_name.
3223 // #ClutterAnimation, %FALSE otherwise
3224 // RETURNS: %TRUE if the property is animated by the
3225 // <property_name>: name of the property
3226 int has_property(char* property_name) {
3227 return clutter_animation_has_property(&this, property_name);
3230 // Sets @alpha as the #ClutterAlpha used by @animation.
3232 // If @alpha is not %NULL, the #ClutterAnimation will take ownership
3233 // of the #ClutterAlpha instance.
3234 // <alpha>: a #ClutterAlpha, or %NULL to unset the current #ClutterAlpha
3235 void set_alpha(Alpha* alpha) {
3236 clutter_animation_set_alpha(&this, alpha);
3239 // Sets the duration of @animation in milliseconds.
3241 // This function will set #ClutterAnimation:alpha and
3242 // #ClutterAnimation:timeline if needed.
3243 // <msecs>: the duration in milliseconds
3244 void set_duration(uint msecs) {
3245 clutter_animation_set_duration(&this, msecs);
3248 // Sets whether @animation should loop over itself once finished.
3250 // A looping #ClutterAnimation will not emit the #ClutterAnimation::completed
3251 // signal when finished.
3253 // This function will set #ClutterAnimation:alpha and
3254 // #ClutterAnimation:timeline if needed.
3255 // <loop>: %TRUE if the animation should loop
3256 void set_loop(int loop) {
3257 clutter_animation_set_loop(&this, loop);
3260 // Sets the animation @mode of @animation. The animation @mode is
3261 // a logical id, either coming from the #ClutterAnimationMode enumeration
3262 // or the return value of clutter_alpha_register_func().
3264 // This function will also set #ClutterAnimation:alpha if needed.
3265 // <mode>: an animation mode logical id
3266 void set_mode(c_ulong mode) {
3267 clutter_animation_set_mode(&this, mode);
3270 // Attaches @animation to @object. The #ClutterAnimation will take a
3271 // reference on @object.
3272 // <object>: a #GObject
3273 void set_object(GObject2.Object* object) {
3274 clutter_animation_set_object(&this, object);
3277 // Sets the #ClutterTimeline used by @animation.
3278 // <timeline>: a #ClutterTimeline, or %NULL to unset the current #ClutterTimeline
3279 void set_timeline(Timeline* timeline) {
3280 clutter_animation_set_timeline(&this, timeline);
3283 // Removes @property_name from the list of animated properties.
3284 // <property_name>: name of the property
3285 void unbind_property(char* property_name) {
3286 clutter_animation_unbind_property(&this, property_name);
3289 // Updates the @final value of the interval for @property_name
3290 // RETURNS: The animation itself.
3291 // <property_name>: name of the property
3292 // <final>: The final value of the property
3293 Animation* update(char* property_name, GObject2.Value* final) {
3294 return clutter_animation_update(&this, property_name, final);
3297 // Changes the @interval for @property_name. The #ClutterAnimation
3298 // will take ownership of the passed #ClutterInterval.
3299 // <property_name>: name of the property
3300 // <interval>: a #ClutterInterval
3301 void update_interval(char* property_name, Interval* interval) {
3302 clutter_animation_update_interval(&this, property_name, interval);
3305 // The ::completed signal is emitted once the animation has
3306 // been completed.
3308 // The @animation instance is guaranteed to be valid for the entire
3309 // duration of the signal emission chain.
3310 extern (C) alias static void function (Animation* this_, void* user_data=null) signal_completed;
3312 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
3313 return super_.signal_connect!name(cb, data, cf);
3316 ulong signal_connect(string name:"completed", CB:signal_completed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
3317 return signal_connect_data(&this, cast(char*)"completed",
3318 cast(GObject2.Callback)cb, data, null, cf);
3321 // The ::started signal is emitted once the animation has been
3322 // started
3323 extern (C) alias static void function (Animation* this_, void* user_data=null) signal_started;
3324 ulong signal_connect(string name:"started", CB:signal_started)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
3325 return signal_connect_data(&this, cast(char*)"started",
3326 cast(GObject2.Callback)cb, data, null, cf);
3331 // The #ClutterAnimationClass structure contains only private data and
3332 // should be accessed using the provided functions.
3333 struct AnimationClass /* Version 1.0 */ {
3334 private GObject2.ObjectClass parent_class;
3335 extern (C) void function (Animation* animation) started;
3336 extern (C) void function (Animation* animation) completed;
3337 extern (C) void function () _clutter_reserved1;
3338 extern (C) void function () _clutter_reserved2;
3339 extern (C) void function () _clutter_reserved3;
3340 extern (C) void function () _clutter_reserved4;
3341 extern (C) void function () _clutter_reserved5;
3342 extern (C) void function () _clutter_reserved6;
3343 extern (C) void function () _clutter_reserved7;
3344 extern (C) void function () _clutter_reserved8;
3348 // The animation modes used by #ClutterAlpha and #ClutterAnimation. This
3349 // enumeration can be expanded in later versions of Clutter. See the
3350 // #ClutterAlpha documentation for a graph of all the animation modes.
3352 // Every global alpha function registered using clutter_alpha_register_func()
3353 // or clutter_alpha_register_closure() will have a logical id greater than
3354 // %CLUTTER_ANIMATION_LAST.
3355 enum AnimationMode /* Version 1.0 */ {
3356 CUSTOM_MODE = 0,
3357 LINEAR = 1,
3358 EASE_IN_QUAD = 2,
3359 EASE_OUT_QUAD = 3,
3360 EASE_IN_OUT_QUAD = 4,
3361 EASE_IN_CUBIC = 5,
3362 EASE_OUT_CUBIC = 6,
3363 EASE_IN_OUT_CUBIC = 7,
3364 EASE_IN_QUART = 8,
3365 EASE_OUT_QUART = 9,
3366 EASE_IN_OUT_QUART = 10,
3367 EASE_IN_QUINT = 11,
3368 EASE_OUT_QUINT = 12,
3369 EASE_IN_OUT_QUINT = 13,
3370 EASE_IN_SINE = 14,
3371 EASE_OUT_SINE = 15,
3372 EASE_IN_OUT_SINE = 16,
3373 EASE_IN_EXPO = 17,
3374 EASE_OUT_EXPO = 18,
3375 EASE_IN_OUT_EXPO = 19,
3376 EASE_IN_CIRC = 20,
3377 EASE_OUT_CIRC = 21,
3378 EASE_IN_OUT_CIRC = 22,
3379 EASE_IN_ELASTIC = 23,
3380 EASE_OUT_ELASTIC = 24,
3381 EASE_IN_OUT_ELASTIC = 25,
3382 EASE_IN_BACK = 26,
3383 EASE_OUT_BACK = 27,
3384 EASE_IN_OUT_BACK = 28,
3385 EASE_IN_BOUNCE = 29,
3386 EASE_OUT_BOUNCE = 30,
3387 EASE_IN_OUT_BOUNCE = 31,
3388 ANIMATION_LAST = 32
3390 struct AnimationPrivate {
3394 // The #ClutterAnimator structure contains only private data and
3395 // should be accessed using the provided API
3396 struct Animator /* : GObject.Object */ /* Version 1.2 */ {
3397 alias parent_instance this;
3398 alias parent_instance super_;
3399 alias parent_instance object;
3400 GObject2.Object parent_instance;
3401 private AnimatorPrivate* priv;
3404 // Creates a new #ClutterAnimator instance
3405 // RETURNS: a new #ClutterAnimator.
3406 static Animator* /*new*/ new_() {
3407 return clutter_animator_new();
3410 // Compute the value for a managed property at a given progress.
3412 // If the property is an ease-in property, the current value of the property
3413 // on the object will be used as the starting point for computation.
3415 // an error occurs or the progress is before any of the keys) %FALSE is
3416 // returned and the #GValue is left untouched
3417 // RETURNS: %TRUE if the computation yields has a value, otherwise (when
3418 // <object>: a #GObject
3419 // <property_name>: the name of the property on object to check
3420 // <progress>: a value between 0.0 and 1.0
3421 // <value>: an initialized value to store the computed result
3422 int compute_value(GObject2.Object* object, char* property_name, double progress, GObject2.Value* value) {
3423 return clutter_animator_compute_value(&this, object, property_name, progress, value);
3426 // Retrieves the current duration of an animator
3427 // RETURNS: the duration of the animation, in milliseconds
3428 uint get_duration() {
3429 return clutter_animator_get_duration(&this);
3432 // Returns a list of pointers to opaque structures with accessor functions
3433 // that describe the keys added to an animator.
3435 // list of #ClutterAnimatorKey<!-- -->s; the contents of the list are owned
3436 // by the #ClutterAnimator, but you should free the returned list when done,
3437 // using g_list_free()
3438 // RETURNS: a
3439 // <object>: a #GObject to search for, or %NULL for all objects
3440 // <property_name>: a specific property name to query for, or %NULL for all properties
3441 // <progress>: a specific progress to search for, or a negative value for all progresses
3442 GLib2.List* /*new container*/ get_keys(GObject2.Object* object, char* property_name, double progress) {
3443 return clutter_animator_get_keys(&this, object, property_name, progress);
3446 // Get the timeline hooked up for driving the #ClutterAnimator
3447 // RETURNS: the #ClutterTimeline that drives the animator
3448 Timeline* get_timeline() {
3449 return clutter_animator_get_timeline(&this);
3452 // Checks if a property value is to be eased into the animation.
3453 // RETURNS: %TRUE if the property is eased in
3454 // <object>: a #GObject
3455 // <property_name>: the name of a property on object
3456 int property_get_ease_in(GObject2.Object* object, char* property_name) {
3457 return clutter_animator_property_get_ease_in(&this, object, property_name);
3460 // Get the interpolation used by animator for a property on a particular
3461 // object.
3462 // RETURNS: a ClutterInterpolation value.
3463 // <object>: a #GObject
3464 // <property_name>: the name of a property on object
3465 Interpolation property_get_interpolation(GObject2.Object* object, char* property_name) {
3466 return clutter_animator_property_get_interpolation(&this, object, property_name);
3469 // Sets whether a property value is to be eased into the animation.
3470 // <object>: a #GObject
3471 // <property_name>: the name of a property on object
3472 // <ease_in>: we are going to be easing in this property
3473 void property_set_ease_in(GObject2.Object* object, char* property_name, int ease_in) {
3474 clutter_animator_property_set_ease_in(&this, object, property_name, ease_in);
3477 // Set the interpolation method to use, %CLUTTER_INTERPOLATION_LINEAR causes
3478 // the values to linearly change between the values, and
3479 // %CLUTTER_INTERPOLATION_CUBIC causes the values to smoothly change between
3480 // the values.
3481 // <object>: a #GObject
3482 // <property_name>: the name of a property on object
3483 // <interpolation>: the #ClutterInterpolation to use
3484 void property_set_interpolation(GObject2.Object* object, char* property_name, Interpolation interpolation) {
3485 clutter_animator_property_set_interpolation(&this, object, property_name, interpolation);
3488 // Removes all keys matching the conditions specificed in the arguments.
3489 // <object>: a #GObject to search for, or %NULL for all
3490 // <property_name>: a specific property name to query for, or %NULL for all
3491 // <progress>: a specific progress to search for or a negative value for all
3492 void remove_key(GObject2.Object* object, char* property_name, double progress) {
3493 clutter_animator_remove_key(&this, object, property_name, progress);
3496 // Unintrospectable method: set() / clutter_animator_set()
3497 // Adds multiple keys to a #ClutterAnimator, specifying the value a given
3498 // property should have at a given progress of the animation. The mode
3499 // specified is the mode used when going to this key from the previous key of
3500 // the @property_name
3502 // If a given (object, property, progress) tuple already exist the mode and
3503 // value will be replaced with the new values.
3504 // <first_object>: a #GObject
3505 // <first_property_name>: the property to specify a key for
3506 // <first_mode>: the id of the alpha function to use
3507 // <first_progress>: at which stage of the animation this value applies; the range is a normalized floating point value between 0 and 1
3508 /+ Not available -- variadic methods unsupported - use the C function directly.
3509 alias clutter_animator_set set; // Variadic
3512 // Runs the timeline of the #ClutterAnimator with a duration in msecs
3513 // as specified.
3514 // <duration>: milliseconds a run of the animator should last.
3515 void set_duration(uint duration) {
3516 clutter_animator_set_duration(&this, duration);
3519 // Sets a single key in the #ClutterAnimator for the @property_name of
3520 // @object at @progress.
3522 // See also: clutter_animator_set()
3523 // RETURNS: The animator instance
3524 // <object>: a #GObject
3525 // <property_name>: the property to specify a key for
3526 // <mode>: the id of the alpha function to use
3527 // <progress>: the normalized range at which stage of the animation this value applies
3528 // <value>: the value property_name should have at progress.
3529 Animator* set_key(GObject2.Object* object, char* property_name, uint mode, double progress, GObject2.Value* value) {
3530 return clutter_animator_set_key(&this, object, property_name, mode, progress, value);
3533 // Sets an external timeline that will be used for driving the animation
3534 // <timeline>: a #ClutterTimeline
3535 void set_timeline(Timeline* timeline) {
3536 clutter_animator_set_timeline(&this, timeline);
3539 // Start the ClutterAnimator, this is a thin wrapper that rewinds
3540 // and starts the animators current timeline.
3542 // the animator. The returned timeline is owned by the #ClutterAnimator
3543 // and it should not be unreferenced
3544 // RETURNS: the #ClutterTimeline that drives
3545 Timeline* start() {
3546 return clutter_animator_start(&this);
3550 // The #ClutterAnimatorClass structure contains only private data
3551 struct AnimatorClass /* Version 1.2 */ {
3552 private GObject2.ObjectClass parent_class;
3553 private void*[16] _padding_dummy;
3556 // A key frame inside a #ClutterAnimator
3557 struct AnimatorKey /* Version 1.2 */ {
3559 // Retrieves the mode of a #ClutterAnimator key, for the first key of a
3560 // property for an object this represents the whether the animation is
3561 // open ended and or curved for the remainding keys for the property it
3562 // represents the easing mode.
3563 // RETURNS: the mode of a #ClutterAnimatorKey
3564 c_ulong get_mode() {
3565 return clutter_animator_key_get_mode(&this);
3568 // Retrieves the object a key applies to.
3569 // RETURNS: the object an animator_key exist for.
3570 GObject2.Object* get_object() {
3571 return clutter_animator_key_get_object(&this);
3574 // Retrieves the progress of an clutter_animator_key
3575 // RETURNS: the progress defined for a #ClutterAnimator key.
3576 double get_progress() {
3577 return clutter_animator_key_get_progress(&this);
3580 // Retrieves the name of the property a key applies to.
3581 // RETURNS: the name of the property an animator_key exist for.
3582 char* get_property_name() {
3583 return clutter_animator_key_get_property_name(&this);
3586 // Retrieves the #GType of the property a key applies to
3588 // You can use this type to initialize the #GValue to pass to
3589 // clutter_animator_key_get_value()
3590 // RETURNS: the #GType of the property
3591 Type get_property_type() {
3592 return clutter_animator_key_get_property_type(&this);
3595 // Retrieves a copy of the value for a #ClutterAnimatorKey.
3597 // The passed in #GValue needs to be already initialized for the value
3598 // type of the key or to a type that allow transformation from the value
3599 // type of the key.
3601 // Use g_value_unset() when done.
3603 // %FALSE otherwise
3604 // RETURNS: %TRUE if the passed #GValue was successfully set, and
3605 // <value>: a #GValue initialized with the correct type for the animator key
3606 int get_value(GObject2.Value* value) {
3607 return clutter_animator_key_get_value(&this, value);
3611 struct AnimatorPrivate {
3614 // Common members for a #ClutterEvent
3615 struct AnyEvent /* Version 0.2 */ {
3616 EventType type;
3617 uint time;
3618 EventFlags flags;
3619 Stage* stage;
3620 Actor* source;
3623 enum int Aogonek = 417;
3624 enum int ApplicationLeft = 269025104;
3625 enum int ApplicationRight = 269025105;
3626 enum int Arabic_0 = 16778848;
3627 enum int Arabic_1 = 16778849;
3628 enum int Arabic_2 = 16778850;
3629 enum int Arabic_3 = 16778851;
3630 enum int Arabic_4 = 16778852;
3631 enum int Arabic_5 = 16778853;
3632 enum int Arabic_6 = 16778854;
3633 enum int Arabic_7 = 16778855;
3634 enum int Arabic_8 = 16778856;
3635 enum int Arabic_9 = 16778857;
3636 enum int Arabic_ain = 1497;
3637 enum int Arabic_alef = 1479;
3638 enum int Arabic_alefmaksura = 1513;
3639 enum int Arabic_beh = 1480;
3640 enum int Arabic_comma = 1452;
3641 enum int Arabic_dad = 1494;
3642 enum int Arabic_dal = 1487;
3643 enum int Arabic_damma = 1519;
3644 enum int Arabic_dammatan = 1516;
3645 enum int Arabic_ddal = 16778888;
3646 enum int Arabic_farsi_yeh = 16778956;
3647 enum int Arabic_fatha = 1518;
3648 enum int Arabic_fathatan = 1515;
3649 enum int Arabic_feh = 1505;
3650 enum int Arabic_fullstop = 16778964;
3651 enum int Arabic_gaf = 16778927;
3652 enum int Arabic_ghain = 1498;
3653 enum int Arabic_ha = 1511;
3654 enum int Arabic_hah = 1485;
3655 enum int Arabic_hamza = 1473;
3656 enum int Arabic_hamza_above = 16778836;
3657 enum int Arabic_hamza_below = 16778837;
3658 enum int Arabic_hamzaonalef = 1475;
3659 enum int Arabic_hamzaonwaw = 1476;
3660 enum int Arabic_hamzaonyeh = 1478;
3661 enum int Arabic_hamzaunderalef = 1477;
3662 enum int Arabic_heh = 1511;
3663 enum int Arabic_heh_doachashmee = 16778942;
3664 enum int Arabic_heh_goal = 16778945;
3665 enum int Arabic_jeem = 1484;
3666 enum int Arabic_jeh = 16778904;
3667 enum int Arabic_kaf = 1507;
3668 enum int Arabic_kasra = 1520;
3669 enum int Arabic_kasratan = 1517;
3670 enum int Arabic_keheh = 16778921;
3671 enum int Arabic_khah = 1486;
3672 enum int Arabic_lam = 1508;
3673 enum int Arabic_madda_above = 16778835;
3674 enum int Arabic_maddaonalef = 1474;
3675 enum int Arabic_meem = 1509;
3676 enum int Arabic_noon = 1510;
3677 enum int Arabic_noon_ghunna = 16778938;
3678 enum int Arabic_peh = 16778878;
3679 enum int Arabic_percent = 16778858;
3680 enum int Arabic_qaf = 1506;
3681 enum int Arabic_question_mark = 1471;
3682 enum int Arabic_ra = 1489;
3683 enum int Arabic_rreh = 16778897;
3684 enum int Arabic_sad = 1493;
3685 enum int Arabic_seen = 1491;
3686 enum int Arabic_semicolon = 1467;
3687 enum int Arabic_shadda = 1521;
3688 enum int Arabic_sheen = 1492;
3689 enum int Arabic_sukun = 1522;
3690 enum int Arabic_superscript_alef = 16778864;
3691 enum int Arabic_switch = 65406;
3692 enum int Arabic_tah = 1495;
3693 enum int Arabic_tatweel = 1504;
3694 enum int Arabic_tcheh = 16778886;
3695 enum int Arabic_teh = 1482;
3696 enum int Arabic_tehmarbuta = 1481;
3697 enum int Arabic_thal = 1488;
3698 enum int Arabic_theh = 1483;
3699 enum int Arabic_tteh = 16778873;
3700 enum int Arabic_veh = 16778916;
3701 enum int Arabic_waw = 1512;
3702 enum int Arabic_yeh = 1514;
3703 enum int Arabic_yeh_baree = 16778962;
3704 enum int Arabic_zah = 1496;
3705 enum int Arabic_zain = 1490;
3706 enum int Aring = 197;
3707 enum int Armenian_AT = 16778552;
3708 enum int Armenian_AYB = 16778545;
3709 enum int Armenian_BEN = 16778546;
3710 enum int Armenian_CHA = 16778569;
3711 enum int Armenian_DA = 16778548;
3712 enum int Armenian_DZA = 16778561;
3713 enum int Armenian_E = 16778551;
3714 enum int Armenian_FE = 16778582;
3715 enum int Armenian_GHAT = 16778562;
3716 enum int Armenian_GIM = 16778547;
3717 enum int Armenian_HI = 16778565;
3718 enum int Armenian_HO = 16778560;
3719 enum int Armenian_INI = 16778555;
3720 enum int Armenian_JE = 16778571;
3721 enum int Armenian_KE = 16778580;
3722 enum int Armenian_KEN = 16778559;
3723 enum int Armenian_KHE = 16778557;
3724 enum int Armenian_LYUN = 16778556;
3725 enum int Armenian_MEN = 16778564;
3726 enum int Armenian_NU = 16778566;
3727 enum int Armenian_O = 16778581;
3728 enum int Armenian_PE = 16778570;
3729 enum int Armenian_PYUR = 16778579;
3730 enum int Armenian_RA = 16778572;
3731 enum int Armenian_RE = 16778576;
3732 enum int Armenian_SE = 16778573;
3733 enum int Armenian_SHA = 16778567;
3734 enum int Armenian_TCHE = 16778563;
3735 enum int Armenian_TO = 16778553;
3736 enum int Armenian_TSA = 16778558;
3737 enum int Armenian_TSO = 16778577;
3738 enum int Armenian_TYUN = 16778575;
3739 enum int Armenian_VEV = 16778574;
3740 enum int Armenian_VO = 16778568;
3741 enum int Armenian_VYUN = 16778578;
3742 enum int Armenian_YECH = 16778549;
3743 enum int Armenian_ZA = 16778550;
3744 enum int Armenian_ZHE = 16778554;
3745 enum int Armenian_accent = 16778587;
3746 enum int Armenian_amanak = 16778588;
3747 enum int Armenian_apostrophe = 16778586;
3748 enum int Armenian_at = 16778600;
3749 enum int Armenian_ayb = 16778593;
3750 enum int Armenian_ben = 16778594;
3751 enum int Armenian_but = 16778589;
3752 enum int Armenian_cha = 16778617;
3753 enum int Armenian_da = 16778596;
3754 enum int Armenian_dza = 16778609;
3755 enum int Armenian_e = 16778599;
3756 enum int Armenian_exclam = 16778588;
3757 enum int Armenian_fe = 16778630;
3758 enum int Armenian_full_stop = 16778633;
3759 enum int Armenian_ghat = 16778610;
3760 enum int Armenian_gim = 16778595;
3761 enum int Armenian_hi = 16778613;
3762 enum int Armenian_ho = 16778608;
3763 enum int Armenian_hyphen = 16778634;
3764 enum int Armenian_ini = 16778603;
3765 enum int Armenian_je = 16778619;
3766 enum int Armenian_ke = 16778628;
3767 enum int Armenian_ken = 16778607;
3768 enum int Armenian_khe = 16778605;
3769 enum int Armenian_ligature_ew = 16778631;
3770 enum int Armenian_lyun = 16778604;
3771 enum int Armenian_men = 16778612;
3772 enum int Armenian_nu = 16778614;
3773 enum int Armenian_o = 16778629;
3774 enum int Armenian_paruyk = 16778590;
3775 enum int Armenian_pe = 16778618;
3776 enum int Armenian_pyur = 16778627;
3777 enum int Armenian_question = 16778590;
3778 enum int Armenian_ra = 16778620;
3779 enum int Armenian_re = 16778624;
3780 enum int Armenian_se = 16778621;
3781 enum int Armenian_separation_mark = 16778589;
3782 enum int Armenian_sha = 16778615;
3783 enum int Armenian_shesht = 16778587;
3784 enum int Armenian_tche = 16778611;
3785 enum int Armenian_to = 16778601;
3786 enum int Armenian_tsa = 16778606;
3787 enum int Armenian_tso = 16778625;
3788 enum int Armenian_tyun = 16778623;
3789 enum int Armenian_verjaket = 16778633;
3790 enum int Armenian_vev = 16778622;
3791 enum int Armenian_vo = 16778616;
3792 enum int Armenian_vyun = 16778626;
3793 enum int Armenian_yech = 16778597;
3794 enum int Armenian_yentamna = 16778634;
3795 enum int Armenian_za = 16778598;
3796 enum int Armenian_zhe = 16778602;
3797 enum int Atilde = 195;
3798 enum int AudibleBell_Enable = 65146;
3799 enum int AudioCycleTrack = 269025179;
3800 enum int AudioForward = 269025175;
3801 enum int AudioLowerVolume = 269025041;
3802 enum int AudioMedia = 269025074;
3803 enum int AudioMute = 269025042;
3804 enum int AudioNext = 269025047;
3805 enum int AudioPause = 269025073;
3806 enum int AudioPlay = 269025044;
3807 enum int AudioPrev = 269025046;
3808 enum int AudioRaiseVolume = 269025043;
3809 enum int AudioRandomPlay = 269025177;
3810 enum int AudioRecord = 269025052;
3811 enum int AudioRepeat = 269025176;
3812 enum int AudioRewind = 269025086;
3813 enum int AudioStop = 269025045;
3814 enum int Away = 269025165;
3815 enum int B = 66;
3816 enum int Babovedot = 16784898;
3817 enum int Back = 269025062;
3818 enum int BackForward = 269025087;
3819 enum int BackSpace = 65288;
3821 // <structname>ClutterBackend</structname> is an opaque structure whose
3822 // members cannot be directly accessed.
3823 struct Backend /* : GObject.Object */ /* Version 0.4 */ {
3824 alias method_parent this;
3825 alias method_parent super_;
3826 alias method_parent object;
3827 GObject2.Object method_parent;
3830 // Retrieves the distance used to verify a double click event
3831 // RETURNS: a distance, in pixels.
3832 uint get_double_click_distance() {
3833 return clutter_backend_get_double_click_distance(&this);
3836 // Gets the maximum time between two button press events, as set
3837 // by clutter_backend_set_double_click_time().
3838 // RETURNS: a time in milliseconds
3839 uint get_double_click_time() {
3840 return clutter_backend_get_double_click_time(&this);
3843 // Retrieves the default font name as set by
3844 // clutter_backend_set_font_name().
3846 // owned by the #ClutterBackend and should never be modified or freed
3847 // RETURNS: the font name for the backend. The returned string is
3848 char* get_font_name() {
3849 return clutter_backend_get_font_name(&this);
3852 // Retrieves the font options for @backend.
3854 // The returned #cairo_font_options_t is owned by the backend and should
3855 // not be modified or freed
3856 // RETURNS: the font options of the #ClutterBackend.
3857 cairo.FontOptions* get_font_options() {
3858 return clutter_backend_get_font_options(&this);
3861 // Gets the resolution for font handling on the screen.
3863 // The resolution is a scale factor between points specified in a
3864 // #PangoFontDescription and cairo units. The default value is 96.0,
3865 // meaning that a 10 point font will be 13 units
3866 // high (10 * 96. / 72. = 13.3).
3868 // Clutter will set the resolution using the current backend when
3869 // initializing; the resolution is also stored in the
3870 // #ClutterSettings:font-dpi property.
3872 // has been set.
3873 // RETURNS: the current resolution, or -1 if no resolution
3874 double get_resolution() {
3875 return clutter_backend_get_resolution(&this);
3878 // Sets the maximum distance used to verify a double click event.
3879 // <distance>: a distance, in pixels
3880 void set_double_click_distance(uint distance) {
3881 clutter_backend_set_double_click_distance(&this, distance);
3884 // Sets the maximum time between two button press events, used to
3885 // verify whether it's a double click event or not.
3886 // <msec>: milliseconds between two button press events
3887 void set_double_click_time(uint msec) {
3888 clutter_backend_set_double_click_time(&this, msec);
3891 // Sets the default font to be used by Clutter. The @font_name string
3892 // must either be %NULL, which means that the font name from the
3893 // default #ClutterBackend will be used; or be something that can
3894 // be parsed by the pango_font_description_from_string() function.
3895 // <font_name>: the name of the font
3896 void set_font_name(char* font_name) {
3897 clutter_backend_set_font_name(&this, font_name);
3900 // Sets the new font options for @backend. The #ClutterBackend will
3901 // copy the #cairo_font_options_t.
3903 // If @options is %NULL, the first following call to
3904 // clutter_backend_get_font_options() will return the default font
3905 // options for @backend.
3907 // This function is intended for actors creating a Pango layout
3908 // using the PangoCairo API.
3909 // <options>: Cairo font options for the backend, or %NULL
3910 void set_font_options(cairo.FontOptions* options) {
3911 clutter_backend_set_font_options(&this, options);
3914 // Sets the resolution for font handling on the screen. This is a
3915 // scale factor between points specified in a #PangoFontDescription
3916 // and cairo units. The default value is 96, meaning that a 10 point
3917 // font will be 13 units high. (10 * 96. / 72. = 13.3).
3919 // Applications should never need to call this function.
3920 // <dpi>: the resolution in "dots per inch" (Physical inches aren't actually involved; the terminology is conventional).
3921 void set_resolution(double dpi) {
3922 clutter_backend_set_resolution(&this, dpi);
3925 // The ::font-changed signal is emitted each time the font options
3926 // have been changed through #ClutterSettings.
3927 extern (C) alias static void function (Backend* this_, void* user_data=null) signal_font_changed;
3929 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
3930 return super_.signal_connect!name(cb, data, cf);
3933 ulong signal_connect(string name:"font-changed", CB:signal_font_changed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
3934 return signal_connect_data(&this, cast(char*)"font-changed",
3935 cast(GObject2.Callback)cb, data, null, cf);
3938 // The ::resolution-changed signal is emitted each time the font
3939 // resolutions has been changed through #ClutterSettings.
3940 extern (C) alias static void function (Backend* this_, void* user_data=null) signal_resolution_changed;
3941 ulong signal_connect(string name:"resolution-changed", CB:signal_resolution_changed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
3942 return signal_connect_data(&this, cast(char*)"resolution-changed",
3943 cast(GObject2.Callback)cb, data, null, cf);
3946 // The ::settings-changed signal is emitted each time the #ClutterSettings
3947 // properties have been changed.
3948 extern (C) alias static void function (Backend* this_, void* user_data=null) signal_settings_changed;
3949 ulong signal_connect(string name:"settings-changed", CB:signal_settings_changed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
3950 return signal_connect_data(&this, cast(char*)"settings-changed",
3951 cast(GObject2.Callback)cb, data, null, cf);
3955 struct BackendClass {
3958 enum int Battery = 269025171;
3959 enum int Begin = 65368;
3961 // #ClutterBehaviour-struct contains only private data and should
3962 // be accessed with the functions below.
3963 struct Behaviour /* : GObject.Object */ /* Version 0.2 */ {
3964 alias parent this;
3965 alias parent super_;
3966 alias parent object;
3967 GObject2.Object parent;
3968 private BehaviourPrivate* priv;
3971 // Calls @func for every actor driven by @behave.
3972 // <func>: a function called for each actor
3973 // <data>: optional data to be passed to the function, or %NULL
3974 void actors_foreach(BehaviourForeachFunc func, void* data) {
3975 clutter_behaviour_actors_foreach(&this, func, data);
3978 // Applies @behave to @actor. This function adds a reference on
3979 // the actor.
3980 // <actor>: a #ClutterActor
3981 void apply(Actor* actor) {
3982 clutter_behaviour_apply(&this, actor);
3985 // Retrieves all the actors to which @behave applies. It is not recommended
3986 // for derived classes to use this in there alpha notify method but use
3987 // #clutter_behaviour_actors_foreach as it avoids alot of needless allocations.
3989 // actors. You should free the returned list with g_slist_free() when
3990 // finished using it.
3991 // RETURNS: a list of
3992 GLib2.SList* /*new container*/ get_actors() {
3993 return clutter_behaviour_get_actors(&this);
3996 // Retrieves the #ClutterAlpha object bound to @behave.
3998 // object has been bound to this behaviour.
3999 // RETURNS: a #ClutterAlpha object, or %NULL if no alpha
4000 Alpha* get_alpha() {
4001 return clutter_behaviour_get_alpha(&this);
4004 // Gets the number of actors this behaviour is applied too.
4005 // RETURNS: The number of applied actors
4006 int get_n_actors() {
4007 return clutter_behaviour_get_n_actors(&this);
4010 // Gets an actor the behaviour was applied to referenced by index num.
4011 // RETURNS: A Clutter actor or NULL if @index_ is invalid.
4012 // <index_>: the index of an actor this behaviour is applied too.
4013 Actor* get_nth_actor(int index_) {
4014 return clutter_behaviour_get_nth_actor(&this, index_);
4017 // Check if @behave applied to @actor.
4018 // RETURNS: TRUE if actor has behaviour. FALSE otherwise.
4019 // <actor>: a #ClutterActor
4020 int is_applied(Actor* actor) {
4021 return clutter_behaviour_is_applied(&this, actor);
4024 // Removes @actor from the list of #ClutterActor<!-- -->s to which
4025 // @behave applies. This function removes a reference on the actor.
4026 // <actor>: a #ClutterActor
4027 void remove(Actor* actor) {
4028 clutter_behaviour_remove(&this, actor);
4030 // Removes every actor from the list that @behave holds.
4031 void remove_all() {
4032 clutter_behaviour_remove_all(&this);
4035 // Binds @alpha to a #ClutterBehaviour. The #ClutterAlpha object
4036 // is what makes a behaviour work: for each tick of the timeline
4037 // used by #ClutterAlpha a new value of the alpha parameter is
4038 // computed by the alpha function; the value should be used by
4039 // the #ClutterBehaviour to update one or more properties of the
4040 // actors to which the behaviour applies.
4042 // If @alpha is not %NULL, the #ClutterBehaviour will take ownership
4043 // of the #ClutterAlpha instance.
4044 // <alpha>: a #ClutterAlpha or %NULL to unset a previously set alpha
4045 void set_alpha(Alpha* alpha) {
4046 clutter_behaviour_set_alpha(&this, alpha);
4049 // The ::apply signal is emitted each time the behaviour is applied
4050 // to an actor.
4051 // <actor>: the actor the behaviour was applied to.
4052 extern (C) alias static void function (Behaviour* this_, Actor* actor, void* user_data=null) signal_applied;
4054 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
4055 return super_.signal_connect!name(cb, data, cf);
4058 ulong signal_connect(string name:"applied", CB:signal_applied)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
4059 return signal_connect_data(&this, cast(char*)"applied",
4060 cast(GObject2.Callback)cb, data, null, cf);
4063 // The ::removed signal is emitted each time a behaviour is not applied
4064 // to an actor anymore.
4065 // <actor>: the removed actor
4066 extern (C) alias static void function (Behaviour* this_, Actor* actor, void* user_data=null) signal_removed;
4067 ulong signal_connect(string name:"removed", CB:signal_removed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
4068 return signal_connect_data(&this, cast(char*)"removed",
4069 cast(GObject2.Callback)cb, data, null, cf);
4073 // Base class for behaviours.
4074 struct BehaviourClass /* Version 0.2 */ {
4075 private GObject2.ObjectClass parent_class;
4076 extern (C) void function (Behaviour* behave, double alpha_value) alpha_notify;
4077 extern (C) void function (Behaviour* behave, Actor* actor) applied;
4078 extern (C) void function (Behaviour* behave, Actor* actor) removed;
4079 extern (C) void function () _clutter_behaviour1;
4080 extern (C) void function () _clutter_behaviour2;
4081 extern (C) void function () _clutter_behaviour3;
4082 extern (C) void function () _clutter_behaviour4;
4083 extern (C) void function () _clutter_behaviour5;
4084 extern (C) void function () _clutter_behaviour6;
4088 // The #ClutterBehaviourDepth structure contains only private data
4089 // and should be accessed using the provided API
4092 // instead.
4093 struct BehaviourDepth /* : Behaviour */ /* Version 0.2 */ {
4094 alias parent_instance this;
4095 alias parent_instance super_;
4096 alias parent_instance behaviour;
4097 Behaviour parent_instance;
4098 private BehaviourDepthPrivate* priv;
4101 // Creates a new #ClutterBehaviourDepth which can be used to control
4102 // the ClutterActor:depth property of a set of #ClutterActor<!-- -->s.
4104 // If @alpha is not %NULL, the #ClutterBehaviour will take ownership
4105 // of the #ClutterAlpha instance. In the case when @alpha is %NULL,
4106 // it can be set later with clutter_behaviour_set_alpha().
4107 // RETURNS: the newly created behaviour
4108 // <alpha>: a #ClutterAlpha instance, or %NULL
4109 // <depth_start>: initial value of the depth
4110 // <depth_end>: final value of the depth
4111 static BehaviourDepth* /*new*/ new_(Alpha* alpha, int depth_start, int depth_end) {
4112 return clutter_behaviour_depth_new(alpha, depth_start, depth_end);
4115 // Gets the boundaries of the @behaviour
4116 // <depth_start>: return location for the initial depth value, or %NULL
4117 // <depth_end>: return location for the final depth value, or %NULL
4118 void get_bounds(/*out*/ int* depth_start, /*out*/ int* depth_end) {
4119 clutter_behaviour_depth_get_bounds(&this, depth_start, depth_end);
4122 // Sets the boundaries of the @behaviour.
4123 // <depth_start>: initial value of the depth
4124 // <depth_end>: final value of the depth
4125 void set_bounds(int depth_start, int depth_end) {
4126 clutter_behaviour_depth_set_bounds(&this, depth_start, depth_end);
4130 // The #ClutterBehaviourDepthClass structure contains only private data
4131 struct BehaviourDepthClass /* Version 0.2 */ {
4132 private BehaviourClass parent_class;
4135 struct BehaviourDepthPrivate {
4139 // The #ClutterBehaviourEllipse struct contains only private data
4140 // and should be accessed using the provided API
4141 struct BehaviourEllipse /* : Behaviour */ /* Version 0.4 */ {
4142 alias parent_instance this;
4143 alias parent_instance super_;
4144 alias parent_instance behaviour;
4145 Behaviour parent_instance;
4146 private BehaviourEllipsePrivate* priv;
4149 // Creates a behaviour that drives actors along an elliptical path with
4150 // given center, width and height; the movement starts at @start
4151 // degrees (with 0 corresponding to 12 o'clock) and ends at @end
4152 // degrees. Angles greated than 360 degrees get clamped to the canonical
4153 // interval <0, 360); if @start is equal to @end, the behaviour will
4154 // rotate by exacly 360 degrees.
4156 // If @alpha is not %NULL, the #ClutterBehaviour will take ownership
4157 // of the #ClutterAlpha instance. In the case when @alpha is %NULL,
4158 // it can be set later with clutter_behaviour_set_alpha().
4159 // RETURNS: the newly created #ClutterBehaviourEllipse
4160 // <alpha>: a #ClutterAlpha instance, or %NULL
4161 // <x>: x coordinace of the center
4162 // <y>: y coordiance of the center
4163 // <width>: width of the ellipse
4164 // <height>: height of the ellipse
4165 // <direction>: #ClutterRotateDirection of rotation
4166 // <start>: angle in degrees at which movement starts, between 0 and 360
4167 // <end>: angle in degrees at which movement ends, between 0 and 360
4168 static BehaviourEllipse* /*new*/ new_(Alpha* alpha, int x, int y, int width, int height, RotateDirection direction, double start, double end) {
4169 return clutter_behaviour_ellipse_new(alpha, x, y, width, height, direction, start, end);
4172 // Gets the at which movements ends.
4173 // RETURNS: angle in degrees
4174 double get_angle_end() {
4175 return clutter_behaviour_ellipse_get_angle_end(&this);
4178 // Gets the angle at which movements starts.
4179 // RETURNS: angle in degrees
4180 double get_angle_start() {
4181 return clutter_behaviour_ellipse_get_angle_start(&this);
4184 // Gets the tilt of the ellipse around the center in the given axis.
4185 // RETURNS: angle in degrees.
4186 // <axis>: a #ClutterRotateAxis
4187 double get_angle_tilt(RotateAxis axis) {
4188 return clutter_behaviour_ellipse_get_angle_tilt(&this, axis);
4191 // Gets the center of the elliptical path path.
4192 // <x>: return location for the X coordinate of the center, or %NULL
4193 // <y>: return location for the Y coordinate of the center, or %NULL
4194 void get_center(/*out*/ int* x, /*out*/ int* y) {
4195 clutter_behaviour_ellipse_get_center(&this, x, y);
4198 // Retrieves the #ClutterRotateDirection used by the ellipse behaviour.
4199 // RETURNS: the rotation direction
4200 RotateDirection get_direction() {
4201 return clutter_behaviour_ellipse_get_direction(&this);
4204 // Gets the height of the elliptical path.
4205 // RETURNS: the height of the path
4206 int get_height() {
4207 return clutter_behaviour_ellipse_get_height(&this);
4210 // Gets the tilt of the ellipse around the center in Y axis.
4211 // <angle_tilt_x>: return location for tilt angle on the X axis, or %NULL.
4212 // <angle_tilt_y>: return location for tilt angle on the Y axis, or %NULL.
4213 // <angle_tilt_z>: return location for tilt angle on the Z axis, or %NULL.
4214 void get_tilt(/*out*/ double* angle_tilt_x, /*out*/ double* angle_tilt_y, /*out*/ double* angle_tilt_z) {
4215 clutter_behaviour_ellipse_get_tilt(&this, angle_tilt_x, angle_tilt_y, angle_tilt_z);
4218 // Gets the width of the elliptical path.
4219 // RETURNS: the width of the path
4220 int get_width() {
4221 return clutter_behaviour_ellipse_get_width(&this);
4224 // Sets the angle at which movement ends; angles >= 360 degress get clamped
4225 // to the canonical interval <0, 360).
4226 // <angle_end>: angle at which movement ends in degrees, between 0 and 360.
4227 void set_angle_end(double angle_end) {
4228 clutter_behaviour_ellipse_set_angle_end(&this, angle_end);
4231 // Sets the angle at which movement starts; angles >= 360 degress get clamped
4232 // to the canonical interval <0, 360).
4233 // <angle_start>: angle at which movement starts in degrees, between 0 and 360.
4234 void set_angle_start(double angle_start) {
4235 clutter_behaviour_ellipse_set_angle_start(&this, angle_start);
4238 // Sets the angle at which the ellipse should be tilted around it's center.
4239 // <axis>: a #ClutterRotateAxis
4240 // <angle_tilt>: tilt of the elipse around the center in the given axis in degrees.
4241 void set_angle_tilt(RotateAxis axis, double angle_tilt) {
4242 clutter_behaviour_ellipse_set_angle_tilt(&this, axis, angle_tilt);
4245 // Sets the center of the elliptical path to the point represented by knot.
4246 // <x>: x coordinace of centre
4247 // <y>: y coordinace of centre
4248 void set_center(int x, int y) {
4249 clutter_behaviour_ellipse_set_center(&this, x, y);
4252 // Sets the rotation direction used by the ellipse behaviour.
4253 // <direction>: the rotation direction
4254 void set_direction(RotateDirection direction) {
4255 clutter_behaviour_ellipse_set_direction(&this, direction);
4258 // Sets the height of the elliptical path.
4259 // <height>: height of the ellipse
4260 void set_height(int height) {
4261 clutter_behaviour_ellipse_set_height(&this, height);
4264 // Sets the angles at which the ellipse should be tilted around it's center.
4265 // <angle_tilt_x>: tilt of the elipse around the center in X axis in degrees.
4266 // <angle_tilt_y>: tilt of the elipse around the center in Y axis in degrees.
4267 // <angle_tilt_z>: tilt of the elipse around the center in Z axis in degrees.
4268 void set_tilt(double angle_tilt_x, double angle_tilt_y, double angle_tilt_z) {
4269 clutter_behaviour_ellipse_set_tilt(&this, angle_tilt_x, angle_tilt_y, angle_tilt_z);
4272 // Sets the width of the elliptical path.
4273 // <width>: width of the ellipse
4274 void set_width(int width) {
4275 clutter_behaviour_ellipse_set_width(&this, width);
4279 // The #ClutterBehaviourEllipseClass struct contains only private data
4280 struct BehaviourEllipseClass /* Version 0.4 */ {
4281 private BehaviourClass parent_class;
4284 struct BehaviourEllipsePrivate {
4288 // This function is passed to clutter_behaviour_actors_foreach() and
4289 // will be called for each actor driven by @behaviour.
4290 // <behaviour>: the #ClutterBehaviour
4291 // <actor>: an actor driven by @behaviour
4292 // <data>: optional data passed to the function
4293 extern (C) alias void function (Behaviour* behaviour, Actor* actor, void* data) BehaviourForeachFunc;
4296 // The #ClutterBehaviourOpacity structure contains only private data and
4297 // should be accessed using the provided API
4300 // instead.
4301 struct BehaviourOpacity /* : Behaviour */ /* Version 0.2 */ {
4302 alias parent this;
4303 alias parent super_;
4304 alias parent behaviour;
4305 Behaviour parent;
4306 private BehaviourOpacityPrivate* priv;
4309 // Creates a new #ClutterBehaviourOpacity object, driven by @alpha
4310 // which controls the opacity property of every actor, making it
4311 // change in the interval between @opacity_start and @opacity_end.
4313 // If @alpha is not %NULL, the #ClutterBehaviour will take ownership
4314 // of the #ClutterAlpha instance. In the case when @alpha is %NULL,
4315 // it can be set later with clutter_behaviour_set_alpha().
4316 // RETURNS: the newly created #ClutterBehaviourOpacity
4317 // <alpha>: a #ClutterAlpha instance, or %NULL
4318 // <opacity_start>: minimum level of opacity
4319 // <opacity_end>: maximum level of opacity
4320 static BehaviourOpacity* /*new*/ new_(Alpha* alpha, ubyte opacity_start, ubyte opacity_end) {
4321 return clutter_behaviour_opacity_new(alpha, opacity_start, opacity_end);
4324 // Gets the initial and final levels of the opacity applied by @behaviour
4325 // on each actor it controls.
4326 // <opacity_start>: return location for the minimum level of opacity, or %NULL
4327 // <opacity_end>: return location for the maximum level of opacity, or %NULL
4328 void get_bounds(/*out*/ ubyte* opacity_start, /*out*/ ubyte* opacity_end) {
4329 clutter_behaviour_opacity_get_bounds(&this, opacity_start, opacity_end);
4332 // Sets the initial and final levels of the opacity applied by @behaviour
4333 // on each actor it controls.
4334 // <opacity_start>: minimum level of opacity
4335 // <opacity_end>: maximum level of opacity
4336 void set_bounds(ubyte opacity_start, ubyte opacity_end) {
4337 clutter_behaviour_opacity_set_bounds(&this, opacity_start, opacity_end);
4341 // The #ClutterBehaviourOpacityClass structure contains only private data
4342 struct BehaviourOpacityClass /* Version 0.2 */ {
4343 private BehaviourClass parent_class;
4346 struct BehaviourOpacityPrivate {
4350 // The #ClutterBehaviourPath structure contains only private data
4351 // and should be accessed using the provided API
4354 // instead.
4355 struct BehaviourPath /* : Behaviour */ /* Version 0.2 */ {
4356 alias parent this;
4357 alias parent super_;
4358 alias parent behaviour;
4359 Behaviour parent;
4360 private BehaviourPathPrivate* priv;
4363 // Creates a new path behaviour. You can use this behaviour to drive
4364 // actors along the nodes of a path, described by @path.
4366 // This will claim the floating reference on the #ClutterPath so you
4367 // do not need to unref if it.
4369 // If @alpha is not %NULL, the #ClutterBehaviour will take ownership
4370 // of the #ClutterAlpha instance. In the case when @alpha is %NULL,
4371 // it can be set later with clutter_behaviour_set_alpha().
4372 // RETURNS: a #ClutterBehaviour
4373 // <alpha>: a #ClutterAlpha instance, or %NULL
4374 // <path>: a #ClutterPath or %NULL for an empty path
4375 static BehaviourPath* /*new*/ new_(Alpha* alpha, Path* path) {
4376 return clutter_behaviour_path_new(alpha, path);
4379 // Creates a new path behaviour using the path described by @desc. See
4380 // clutter_path_add_string() for a description of the format.
4382 // If @alpha is not %NULL, the #ClutterBehaviour will take ownership
4383 // of the #ClutterAlpha instance. In the case when @alpha is %NULL,
4384 // it can be set later with clutter_behaviour_set_alpha().
4385 // RETURNS: a #ClutterBehaviour
4386 // <alpha>: a #ClutterAlpha instance, or %NULL
4387 // <desc>: a string description of the path
4388 static BehaviourPath* /*new*/ new_with_description(Alpha* alpha, char* desc) {
4389 return clutter_behaviour_path_new_with_description(alpha, desc);
4392 // Creates a new path behaviour that will make the actors visit all of
4393 // the given knots in order with straight lines in between.
4395 // A path will be created where the first knot is used in a
4396 // %CLUTTER_PATH_MOVE_TO and the subsequent knots are used in
4397 // %CLUTTER_PATH_LINE_TO<!-- -->s.
4399 // If @alpha is not %NULL, the #ClutterBehaviour will take ownership
4400 // of the #ClutterAlpha instance. In the case when @alpha is %NULL,
4401 // it can be set later with clutter_behaviour_set_alpha().
4402 // RETURNS: a #ClutterBehaviour
4403 // <alpha>: a #ClutterAlpha instance, or %NULL
4404 // <knots>: an array of #ClutterKnot<!-- -->s
4405 // <n_knots>: number of entries in @knots
4406 static BehaviourPath* /*new*/ new_with_knots(Alpha* alpha, Knot* knots, uint n_knots) {
4407 return clutter_behaviour_path_new_with_knots(alpha, knots, n_knots);
4410 // Get the current path of the behaviour
4411 // RETURNS: the path
4412 Path* get_path() {
4413 return clutter_behaviour_path_get_path(&this);
4416 // Change the path that the actors will follow. This will take the
4417 // floating reference on the #ClutterPath so you do not need to unref
4418 // it.
4419 // <path>: the new path to follow
4420 void set_path(Path* path) {
4421 clutter_behaviour_path_set_path(&this, path);
4424 // This signal is emitted each time a node defined inside the path
4425 // is reached.
4426 // <knot_num>: the index of the #ClutterKnot reached
4427 extern (C) alias static void function (BehaviourPath* this_, c_uint knot_num, void* user_data=null) signal_knot_reached;
4429 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
4430 return super_.signal_connect!name(cb, data, cf);
4433 ulong signal_connect(string name:"knot-reached", CB:signal_knot_reached)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
4434 return signal_connect_data(&this, cast(char*)"knot-reached",
4435 cast(GObject2.Callback)cb, data, null, cf);
4439 // The #ClutterBehaviourPathClass struct contains only private data
4440 struct BehaviourPathClass /* Version 0.2 */ {
4441 private BehaviourClass parent_class;
4442 extern (C) void function (BehaviourPath* pathb, uint knot_num) knot_reached;
4443 extern (C) void function () _clutter_path_1;
4444 extern (C) void function () _clutter_path_2;
4445 extern (C) void function () _clutter_path_3;
4446 extern (C) void function () _clutter_path_4;
4449 struct BehaviourPathPrivate {
4452 struct BehaviourPrivate {
4456 // The #ClutterBehaviourRotate struct contains only private data and
4457 // should be accessed using the provided API
4458 struct BehaviourRotate /* : Behaviour */ /* Version 0.4 */ {
4459 alias parent_instance this;
4460 alias parent_instance super_;
4461 alias parent_instance behaviour;
4462 Behaviour parent_instance;
4463 private BehaviourRotatePrivate* priv;
4466 // Creates a new #ClutterBehaviourRotate. This behaviour will rotate actors
4467 // bound to it on @axis, following @direction, between @angle_start and
4468 // @angle_end. Angles >= 360 degrees will be clamped to the canonical interval
4469 // <0, 360), if angle_start == angle_end, the behaviour will carry out a
4470 // single rotation of 360 degrees.
4472 // If @alpha is not %NULL, the #ClutterBehaviour will take ownership
4473 // of the #ClutterAlpha instance. In the case when @alpha is %NULL,
4474 // it can be set later with clutter_behaviour_set_alpha().
4475 // RETURNS: the newly created #ClutterBehaviourRotate.
4476 // <alpha>: a #ClutterAlpha instance, or %NULL
4477 // <axis>: the rotation axis
4478 // <direction>: the rotation direction
4479 // <angle_start>: the starting angle in degrees, between 0 and 360.
4480 // <angle_end>: the final angle in degrees, between 0 and 360.
4481 static BehaviourRotate* /*new*/ new_(Alpha* alpha, RotateAxis axis, RotateDirection direction, double angle_start, double angle_end) {
4482 return clutter_behaviour_rotate_new(alpha, axis, direction, angle_start, angle_end);
4485 // Retrieves the #ClutterRotateAxis used by the rotate behaviour.
4486 // RETURNS: the rotation axis
4487 RotateAxis get_axis() {
4488 return clutter_behaviour_rotate_get_axis(&this);
4491 // Retrieves the rotation boundaries of the rotate behaviour.
4492 // <angle_start>: return value for the initial angle
4493 // <angle_end>: return value for the final angle
4494 void get_bounds(/*out*/ double* angle_start, /*out*/ double* angle_end) {
4495 clutter_behaviour_rotate_get_bounds(&this, angle_start, angle_end);
4498 // Retrieves the center of rotation set using
4499 // clutter_behaviour_rotate_set_center().
4500 // <x>: return location for the X center of rotation
4501 // <y>: return location for the Y center of rotation
4502 // <z>: return location for the Z center of rotation
4503 void get_center(/*out*/ int* x, /*out*/ int* y, /*out*/ int* z) {
4504 clutter_behaviour_rotate_get_center(&this, x, y, z);
4507 // Retrieves the #ClutterRotateDirection used by the rotate behaviour.
4508 // RETURNS: the rotation direction
4509 RotateDirection get_direction() {
4510 return clutter_behaviour_rotate_get_direction(&this);
4513 // Sets the axis used by the rotate behaviour.
4514 // <axis>: a #ClutterRotateAxis
4515 void set_axis(RotateAxis axis) {
4516 clutter_behaviour_rotate_set_axis(&this, axis);
4519 // Sets the initial and final angles of a rotation behaviour; angles >= 360
4520 // degrees get clamped to the canonical interval <0, 360).
4521 // <angle_start>: initial angle in degrees, between 0 and 360.
4522 // <angle_end>: final angle in degrees, between 0 and 360.
4523 void set_bounds(double angle_start, double angle_end) {
4524 clutter_behaviour_rotate_set_bounds(&this, angle_start, angle_end);
4527 // Sets the center of rotation. The coordinates are relative to the plane
4528 // normal to the rotation axis set with clutter_behaviour_rotate_set_axis().
4529 // <x>: X axis center of rotation
4530 // <y>: Y axis center of rotation
4531 // <z>: Z axis center of rotation
4532 void set_center(int x, int y, int z) {
4533 clutter_behaviour_rotate_set_center(&this, x, y, z);
4536 // Sets the rotation direction used by the rotate behaviour.
4537 // <direction>: the rotation direction
4538 void set_direction(RotateDirection direction) {
4539 clutter_behaviour_rotate_set_direction(&this, direction);
4543 // The #ClutterBehaviourRotateClass struct contains only private data
4544 struct BehaviourRotateClass /* Version 0.4 */ {
4545 private BehaviourClass parent_class;
4548 struct BehaviourRotatePrivate {
4552 // The #ClutterBehaviourScale struct contains only private data and
4553 // should be accessed using the provided API
4556 // and #ClutterActor:scale-y instead.
4557 struct BehaviourScale /* : Behaviour */ /* Version 0.2 */ {
4558 alias parent_instance this;
4559 alias parent_instance super_;
4560 alias parent_instance behaviour;
4561 Behaviour parent_instance;
4562 private BehaviourScalePrivate* priv;
4565 // Creates a new #ClutterBehaviourScale instance.
4567 // If @alpha is not %NULL, the #ClutterBehaviour will take ownership
4568 // of the #ClutterAlpha instance. In the case when @alpha is %NULL,
4569 // it can be set later with clutter_behaviour_set_alpha().
4570 // RETURNS: the newly created #ClutterBehaviourScale
4571 // <alpha>: a #ClutterAlpha instance, or %NULL
4572 // <x_scale_start>: initial scale factor on the X axis
4573 // <y_scale_start>: initial scale factor on the Y axis
4574 // <x_scale_end>: final scale factor on the X axis
4575 // <y_scale_end>: final scale factor on the Y axis
4576 static BehaviourScale* /*new*/ new_(Alpha* alpha, double x_scale_start, double y_scale_start, double x_scale_end, double y_scale_end) {
4577 return clutter_behaviour_scale_new(alpha, x_scale_start, y_scale_start, x_scale_end, y_scale_end);
4580 // Retrieves the bounds used by scale behaviour.
4581 // <x_scale_start>: return location for the initial scale factor on the X axis, or %NULL
4582 // <y_scale_start>: return location for the initial scale factor on the Y axis, or %NULL
4583 // <x_scale_end>: return location for the final scale factor on the X axis, or %NULL
4584 // <y_scale_end>: return location for the final scale factor on the Y axis, or %NULL
4585 void get_bounds(/*out*/ double* x_scale_start, /*out*/ double* y_scale_start, /*out*/ double* x_scale_end, /*out*/ double* y_scale_end) {
4586 clutter_behaviour_scale_get_bounds(&this, x_scale_start, y_scale_start, x_scale_end, y_scale_end);
4589 // Sets the bounds used by scale behaviour.
4590 // <x_scale_start>: initial scale factor on the X axis
4591 // <y_scale_start>: initial scale factor on the Y axis
4592 // <x_scale_end>: final scale factor on the X axis
4593 // <y_scale_end>: final scale factor on the Y axis
4594 void set_bounds(double x_scale_start, double y_scale_start, double x_scale_end, double y_scale_end) {
4595 clutter_behaviour_scale_set_bounds(&this, x_scale_start, y_scale_start, x_scale_end, y_scale_end);
4599 // The #ClutterBehaviourScaleClass struct contains only private data
4600 struct BehaviourScaleClass /* Version 0.2 */ {
4601 private BehaviourClass parent_class;
4604 struct BehaviourScalePrivate {
4607 // The alignment policies available on each axis for #ClutterBinLayout
4608 enum BinAlignment /* Version 1.2 */ {
4609 FIXED = 0,
4610 FILL = 1,
4611 START = 2,
4612 END = 3,
4613 CENTER = 4
4616 // The #ClutterBinLayout structure contains only private data
4617 // and should be accessed using the provided API
4618 struct BinLayout /* : LayoutManager */ /* Version 1.2 */ {
4619 alias parent_instance this;
4620 alias parent_instance super_;
4621 alias parent_instance layoutmanager;
4622 LayoutManager parent_instance;
4623 private BinLayoutPrivate* priv;
4626 // Creates a new #ClutterBinLayout layout manager
4627 // RETURNS: the newly created layout manager
4628 // <x_align>: the default alignment policy to be used on the horizontal axis
4629 // <y_align>: the default alignment policy to be used on the vertical axis
4630 static BinLayout* new_(BinAlignment x_align, BinAlignment y_align) {
4631 return clutter_bin_layout_new(x_align, y_align);
4634 // Adds a #ClutterActor to the container using @self and
4635 // sets the alignment policies for it
4637 // This function is equivalent to clutter_container_add_actor()
4638 // and clutter_layout_manager_child_set_property() but it does not
4639 // require a pointer to the #ClutterContainer associated to the
4640 // #ClutterBinLayout
4641 // <child>: a #ClutterActor
4642 // <x_align>: horizontal alignment policy for @child
4643 // <y_align>: vertical alignment policy for @child
4644 void add(Actor* child, BinAlignment x_align, BinAlignment y_align) {
4645 clutter_bin_layout_add(&this, child, x_align, y_align);
4648 // Retrieves the horizontal and vertical alignment policies for
4649 // a child of @self
4651 // If @child is %NULL the default alignment policies will be returned
4652 // instead
4653 // <child>: a child of @container
4654 // <x_align>: return location for the horizontal alignment policy
4655 // <y_align>: return location for the vertical alignment policy
4656 void get_alignment(Actor* child=null, /*out*/ BinAlignment* x_align=null, /*out*/ BinAlignment* y_align=null) {
4657 clutter_bin_layout_get_alignment(&this, child, x_align, y_align);
4660 // Sets the horizontal and vertical alignment policies to be applied
4661 // to a @child of @self
4663 // If @child is %NULL then the @x_align and @y_align values will
4664 // be set as the default alignment policies
4665 // <child>: a child of @container
4666 // <x_align>: the horizontal alignment policy to be used for the @child inside @container
4667 // <y_align>: the vertical aligment policy to be used on the @child inside @container
4668 void set_alignment(Actor* child, BinAlignment x_align, BinAlignment y_align) {
4669 clutter_bin_layout_set_alignment(&this, child, x_align, y_align);
4674 // The #ClutterBinLayoutClass structure contains only private
4675 // data and should be accessed using the provided API
4676 struct BinLayoutClass /* Version 1.2 */ {
4677 private LayoutManagerClass parent_class;
4680 struct BinLayoutPrivate {
4684 // <structname>ClutterBindConstraint</structname> is an opaque structure
4685 // whose members cannot be directly accessed
4686 struct BindConstraint /* : Constraint */ /* Version 1.4 */ {
4687 alias method_parent this;
4688 alias method_parent super_;
4689 alias method_parent constraint;
4690 Constraint method_parent;
4693 // Creates a new constraint, binding a #ClutterActor's position to
4694 // the given @coordinate of the position of @source
4695 // RETURNS: the newly created #ClutterBindConstraint
4696 // <source>: the #ClutterActor to use as the source of the binding, or %NULL
4697 // <coordinate>: the coordinate to bind
4698 // <offset>: the offset to apply to the binding, in pixels
4699 static BindConstraint* new_(Actor* source, BindCoordinate coordinate, float offset) {
4700 return clutter_bind_constraint_new(source, coordinate, offset);
4703 // Retrieves the bound coordinate of the constraint
4704 // RETURNS: the bound coordinate
4705 BindCoordinate get_coordinate() {
4706 return clutter_bind_constraint_get_coordinate(&this);
4709 // Retrieves the offset set using clutter_bind_constraint_set_offset()
4710 // RETURNS: the offset, in pixels
4711 float get_offset() {
4712 return clutter_bind_constraint_get_offset(&this);
4715 // Retrieves the #ClutterActor set using clutter_bind_constraint_set_source()
4716 // RETURNS: a pointer to the source actor
4717 Actor* get_source() {
4718 return clutter_bind_constraint_get_source(&this);
4721 // Sets the coordinate to bind in the constraint
4722 // <coordinate>: the coordinate to bind
4723 void set_coordinate(BindCoordinate coordinate) {
4724 clutter_bind_constraint_set_coordinate(&this, coordinate);
4727 // Sets the offset to be applied to the constraint
4728 // <offset>: the offset to apply, in pixels
4729 void set_offset(float offset) {
4730 clutter_bind_constraint_set_offset(&this, offset);
4733 // Sets the source #ClutterActor for the constraint
4734 // <source>: a #ClutterActor, or %NULL to unset the source
4735 void set_source(Actor* source=null) {
4736 clutter_bind_constraint_set_source(&this, source);
4740 struct BindConstraintClass {
4743 // Specifies which property should be used in a binding
4744 enum BindCoordinate /* Version 1.4 */ {
4745 X = 0,
4746 Y = 1,
4747 WIDTH = 2,
4748 HEIGHT = 3,
4749 POSITION = 4,
4750 SIZE = 5
4753 // The prototype for the callback function registered with
4754 // clutter_binding_pool_install_action() and invoked by
4755 // clutter_binding_pool_activate().
4757 // binding has been handled, and return %FALSE otherwise
4758 // RETURNS: the function should return %TRUE if the key
4759 // <gobject>: a #GObject
4760 // <action_name>: the name of the action
4761 // <key_val>: the key symbol
4762 // <modifiers>: bitmask of the modifier flags
4763 extern (C) alias int function (GObject2.Object* gobject, char* action_name, uint key_val, ModifierType modifiers) BindingActionFunc;
4766 // Container of key bindings. The #ClutterBindingPool struct is
4767 // private.
4768 struct BindingPool /* : GObject.Object */ /* Version 1.0 */ {
4769 alias method_parent this;
4770 alias method_parent super_;
4771 alias method_parent object;
4772 GObject2.Object method_parent;
4775 // Creates a new #ClutterBindingPool that can be used to store
4776 // key bindings for an actor. The @name must be a unique identifier
4777 // for the binding pool, so that clutter_binding_pool_find() will
4778 // be able to return the correct binding pool.
4780 // name. Use g_object_unref() when done.
4781 // RETURNS: the newly created binding pool with the given
4782 // <name>: the name of the binding pool
4783 static BindingPool* /*new*/ new_(char* name) {
4784 return clutter_binding_pool_new(name);
4787 // Finds the #ClutterBindingPool with @name.
4788 // RETURNS: a pointer to the #ClutterBindingPool, or %NULL
4789 // <name>: the name of the binding pool to find
4790 static BindingPool* find(char* name) {
4791 return clutter_binding_pool_find(name);
4794 // Retrieves the #ClutterBindingPool for the given #GObject class
4795 // and, eventually, creates it. This function is a wrapper around
4796 // clutter_binding_pool_new() and uses the class type name as the
4797 // unique name for the binding pool.
4799 // Calling this function multiple times will return the same
4800 // #ClutterBindingPool.
4802 // A binding pool for a class can also be retrieved using
4803 // clutter_binding_pool_find() with the class type name:
4805 // |[
4806 // pool = clutter_binding_pool_find (G_OBJECT_TYPE_NAME (instance));
4807 // ]|
4809 // The returned #ClutterBindingPool is owned by Clutter and should not
4810 // be freed directly
4811 // RETURNS: the binding pool for the given class.
4812 // <klass>: a #GObjectClass pointer
4813 static BindingPool* get_for_class(void* klass) {
4814 return clutter_binding_pool_get_for_class(klass);
4817 // Activates the callback associated to the action that is
4818 // bound to the @key_val and @modifiers pair.
4820 // The callback has the following signature:
4822 // |[
4823 // void (* callback) (GObject *gobject,
4824 // const gchar *action_name,
4825 // guint key_val,
4826 // ClutterModifierType modifiers,
4827 // gpointer user_data);
4828 // ]|
4830 // Where the #GObject instance is @gobject and the user data
4831 // is the one passed when installing the action with
4832 // clutter_binding_pool_install_action().
4834 // If the action bound to the @key_val, @modifiers pair has been
4835 // blocked using clutter_binding_pool_block_action(), the callback
4836 // will not be invoked, and this function will return %FALSE.
4837 // RETURNS: %TRUE if an action was found and was activated
4838 // <key_val>: the key symbol
4839 // <modifiers>: bitmask for the modifiers
4840 // <gobject>: a #GObject
4841 int activate(uint key_val, ModifierType modifiers, GObject2.Object* gobject) {
4842 return clutter_binding_pool_activate(&this, key_val, modifiers, gobject);
4845 // Blocks all the actions with name @action_name inside @pool.
4846 // <action_name>: an action name
4847 void block_action(char* action_name) {
4848 clutter_binding_pool_block_action(&this, action_name);
4851 // Retrieves the name of the action matching the given key symbol
4852 // and modifiers bitmask.
4854 // returned string is owned by the binding pool and should never
4855 // be modified or freed
4856 // RETURNS: the name of the action, if found, or %NULL. The
4857 // <key_val>: a key symbol
4858 // <modifiers>: a bitmask for the modifiers
4859 char* find_action(uint key_val, ModifierType modifiers) {
4860 return clutter_binding_pool_find_action(&this, key_val, modifiers);
4863 // Installs a new action inside a #ClutterBindingPool. The action
4864 // is bound to @key_val and @modifiers.
4866 // The same action name can be used for multiple @key_val, @modifiers
4867 // pairs.
4869 // When an action has been activated using clutter_binding_pool_activate()
4870 // the passed @callback will be invoked (with @data).
4872 // Actions can be blocked with clutter_binding_pool_block_action()
4873 // and then unblocked using clutter_binding_pool_unblock_action().
4874 // <action_name>: the name of the action
4875 // <key_val>: key symbol
4876 // <modifiers>: bitmask of modifiers
4877 // <callback>: function to be called when the action is activated
4878 // <data>: data to be passed to @callback
4879 // <notify>: function to be called when the action is removed from the pool
4880 void install_action(char* action_name, uint key_val, ModifierType modifiers, GObject2.Callback callback, void* data, GLib2.DestroyNotify notify) {
4881 clutter_binding_pool_install_action(&this, action_name, key_val, modifiers, callback, data, notify);
4884 // A #GClosure variant of clutter_binding_pool_install_action().
4886 // Installs a new action inside a #ClutterBindingPool. The action
4887 // is bound to @key_val and @modifiers.
4889 // The same action name can be used for multiple @key_val, @modifiers
4890 // pairs.
4892 // When an action has been activated using clutter_binding_pool_activate()
4893 // the passed @closure will be invoked.
4895 // Actions can be blocked with clutter_binding_pool_block_action()
4896 // and then unblocked using clutter_binding_pool_unblock_action().
4897 // <action_name>: the name of the action
4898 // <key_val>: key symbol
4899 // <modifiers>: bitmask of modifiers
4900 // <closure>: a #GClosure
4901 void install_closure(char* action_name, uint key_val, ModifierType modifiers, GObject2.Closure* closure) {
4902 clutter_binding_pool_install_closure(&this, action_name, key_val, modifiers, closure);
4905 // Allows overriding the action for @key_val and @modifiers inside a
4906 // #ClutterBindingPool. See clutter_binding_pool_install_action().
4908 // When an action has been activated using clutter_binding_pool_activate()
4909 // the passed @callback will be invoked (with @data).
4911 // Actions can be blocked with clutter_binding_pool_block_action()
4912 // and then unblocked using clutter_binding_pool_unblock_action().
4913 // <key_val>: key symbol
4914 // <modifiers>: bitmask of modifiers
4915 // <callback>: function to be called when the action is activated
4916 // <data>: data to be passed to @callback
4917 // <notify>: function to be called when the action is removed from the pool
4918 void override_action(uint key_val, ModifierType modifiers, GObject2.Callback callback, void* data, GLib2.DestroyNotify notify) {
4919 clutter_binding_pool_override_action(&this, key_val, modifiers, callback, data, notify);
4922 // A #GClosure variant of clutter_binding_pool_override_action().
4924 // Allows overriding the action for @key_val and @modifiers inside a
4925 // #ClutterBindingPool. See clutter_binding_pool_install_closure().
4927 // When an action has been activated using clutter_binding_pool_activate()
4928 // the passed @callback will be invoked (with @data).
4930 // Actions can be blocked with clutter_binding_pool_block_action()
4931 // and then unblocked using clutter_binding_pool_unblock_action().
4932 // <key_val>: key symbol
4933 // <modifiers>: bitmask of modifiers
4934 // <closure>: a #GClosure
4935 void override_closure(uint key_val, ModifierType modifiers, GObject2.Closure* closure) {
4936 clutter_binding_pool_override_closure(&this, key_val, modifiers, closure);
4939 // Removes the action matching the given @key_val, @modifiers pair,
4940 // if any exists.
4941 // <key_val>: a key symbol
4942 // <modifiers>: a bitmask for the modifiers
4943 void remove_action(uint key_val, ModifierType modifiers) {
4944 clutter_binding_pool_remove_action(&this, key_val, modifiers);
4947 // Unblockes all the actions with name @action_name inside @pool.
4949 // Unblocking an action does not cause the callback bound to it to
4950 // be invoked in case clutter_binding_pool_activate() was called on
4951 // an action previously blocked with clutter_binding_pool_block_action().
4952 // <action_name>: an action name
4953 void unblock_action(char* action_name) {
4954 clutter_binding_pool_unblock_action(&this, action_name);
4958 struct BindingPoolClass {
4961 enum int Blue = 269025190;
4962 enum int Bluetooth = 269025172;
4964 // <structname>ClutterBlurEffect</structname> is an opaque structure
4965 // whose members cannot be accessed directly
4966 struct BlurEffect /* : OffscreenEffect */ /* Version 1.4 */ {
4967 alias method_parent this;
4968 alias method_parent super_;
4969 alias method_parent offscreeneffect;
4970 OffscreenEffect method_parent;
4973 // Creates a new #ClutterBlurEffect to be used with
4974 // clutter_actor_add_effect()
4975 // RETURNS: the newly created #ClutterBlurEffect or %NULL
4976 static BlurEffect* new_() {
4977 return clutter_blur_effect_new();
4981 struct BlurEffectClass {
4984 enum int Book = 269025106;
4985 enum int BounceKeys_Enable = 65140;
4987 // The #ClutterBox structure contains only private data and should
4988 // be accessed using the provided API
4989 struct Box /* : Actor */ /* Version 1.2 */ {
4990 alias parent_instance this;
4991 alias parent_instance super_;
4992 alias parent_instance actor;
4993 Actor parent_instance;
4994 private BoxPrivate* priv;
4997 // Creates a new #ClutterBox. The children of the box will be layed
4998 // out by the passed @manager
4999 // RETURNS: the newly created #ClutterBox actor
5000 // <manager>: a #ClutterLayoutManager
5001 static Box* new_(LayoutManager* manager) {
5002 return clutter_box_new(manager);
5005 // Retrieves the background color of @box
5007 // If the #ClutterBox:color-set property is set to %FALSE the
5008 // returned #ClutterColor is undefined
5009 // <color>: return location for a #ClutterColor
5010 void get_color(/*out*/ Color* color) {
5011 clutter_box_get_color(&this, color);
5014 // Retrieves the #ClutterLayoutManager instance used by @box
5016 // #ClutterLayoutManager is owned by the #ClutterBox and it should not
5017 // be unreferenced
5018 // RETURNS: a #ClutterLayoutManager. The returned
5019 LayoutManager* get_layout_manager() {
5020 return clutter_box_get_layout_manager(&this);
5023 // Unintrospectable method: pack() / clutter_box_pack()
5024 // Adds @actor to @box and sets layout properties at the same time,
5025 // if the #ClutterLayoutManager used by @box has them
5027 // This function is a wrapper around clutter_container_add_actor()
5028 // and clutter_layout_manager_child_set()
5030 // Language bindings should use the vector-based clutter_box_packv()
5031 // variant instead
5032 // <actor>: a #ClutterActor
5033 // <first_property>: the name of the first property to set, or %NULL
5034 /+ Not available -- variadic methods unsupported - use the C function directly.
5035 alias clutter_box_pack pack; // Variadic
5038 // Unintrospectable method: pack_after() / clutter_box_pack_after()
5039 // Adds @actor to @box, placing it after @sibling, and sets layout
5040 // properties at the same time, if the #ClutterLayoutManager used by
5041 // @box supports them
5043 // If @sibling is %NULL then @actor is placed at the end of the
5044 // list of children, to be allocated and painted after every other child
5046 // This function is a wrapper around clutter_container_add_actor(),
5047 // clutter_container_raise_child() and clutter_layout_manager_child_set()
5048 // <actor>: a #ClutterActor
5049 // <sibling>: a #ClutterActor or %NULL
5050 // <first_property>: the name of the first property to set, or %NULL
5051 /+ Not available -- variadic methods unsupported - use the C function directly.
5052 alias clutter_box_pack_after pack_after; // Variadic
5055 // Unintrospectable method: pack_at() / clutter_box_pack_at()
5056 // Adds @actor to @box, placing it at @position, and sets layout
5057 // properties at the same time, if the #ClutterLayoutManager used by
5058 // @box supports them
5060 // If @position is a negative number, or is larger than the number of
5061 // children of @box, the new child is added at the end of the list of
5062 // children
5063 // <actor>: a #ClutterActor
5064 // <position>: the position to insert the @actor at
5065 // <first_property>: the name of the first property to set, or %NULL
5066 /+ Not available -- variadic methods unsupported - use the C function directly.
5067 alias clutter_box_pack_at pack_at; // Variadic
5070 // Unintrospectable method: pack_before() / clutter_box_pack_before()
5071 // Adds @actor to @box, placing it before @sibling, and sets layout
5072 // properties at the same time, if the #ClutterLayoutManager used by
5073 // @box supports them
5075 // If @sibling is %NULL then @actor is placed at the beginning of the
5076 // list of children, to be allocated and painted below every other child
5078 // This function is a wrapper around clutter_container_add_actor(),
5079 // clutter_container_lower_child() and clutter_layout_manager_child_set()
5080 // <actor>: a #ClutterActor
5081 // <sibling>: a #ClutterActor or %NULL
5082 // <first_property>: the name of the first property to set, or %NULL
5083 /+ Not available -- variadic methods unsupported - use the C function directly.
5084 alias clutter_box_pack_before pack_before; // Variadic
5087 // Vector-based variant of clutter_box_pack(), intended for language
5088 // bindings to use
5089 // <actor>: a #ClutterActor
5090 // <n_properties>: the number of properties to set
5091 // <properties>: a vector containing the property names to set
5092 // <values>: a vector containing the property values to set
5093 void packv(Actor* actor, uint n_properties, char* properties, GObject2.Value* values) {
5094 clutter_box_packv(&this, actor, n_properties, properties, values);
5097 // Sets (or unsets) the background color for @box
5098 // <color>: the background color, or %NULL to unset
5099 void set_color(Color* color=null) {
5100 clutter_box_set_color(&this, color);
5103 // Sets the #ClutterLayoutManager for @box
5105 // A #ClutterLayoutManager is a delegate object that controls the
5106 // layout of the children of @box
5107 // <manager>: a #ClutterLayoutManager
5108 void set_layout_manager(LayoutManager* manager) {
5109 clutter_box_set_layout_manager(&this, manager);
5113 // The alignment policies available on each axis of the #ClutterBoxLayout
5114 enum BoxAlignment /* Version 1.2 */ {
5115 START = 0,
5116 END = 1,
5117 CENTER = 2
5119 // The #ClutterBoxClass structure contains only private data
5120 struct BoxClass /* Version 1.2 */ {
5121 private ActorClass parent_class;
5122 extern (C) void function () clutter_padding_1;
5123 extern (C) void function () clutter_padding_2;
5124 extern (C) void function () clutter_padding_3;
5125 extern (C) void function () clutter_padding_4;
5126 extern (C) void function () clutter_padding_5;
5127 extern (C) void function () clutter_padding_6;
5131 // The #ClutterBoxLayout structure contains only private data
5132 // and should be accessed using the provided API
5133 struct BoxLayout /* : LayoutManager */ /* Version 1.2 */ {
5134 alias parent_instance this;
5135 alias parent_instance super_;
5136 alias parent_instance layoutmanager;
5137 LayoutManager parent_instance;
5138 private BoxLayoutPrivate* priv;
5141 // Creates a new #ClutterBoxLayout layout manager
5142 // RETURNS: the newly created #ClutterBoxLayout
5143 static BoxLayout* new_() {
5144 return clutter_box_layout_new();
5147 // Retrieves the horizontal and vertical alignment policies for @actor
5148 // as set using clutter_box_layout_pack() or clutter_box_layout_set_alignment()
5149 // <actor>: a #ClutterActor child of @layout
5150 // <x_align>: return location for the horizontal alignment policy
5151 // <y_align>: return location for the vertical alignment policy
5152 void get_alignment(Actor* actor, /*out*/ BoxAlignment* x_align, /*out*/ BoxAlignment* y_align) {
5153 clutter_box_layout_get_alignment(&this, actor, x_align, y_align);
5156 // Retrieves the duration set using clutter_box_layout_set_easing_duration()
5157 // RETURNS: the duration of the animations, in milliseconds
5158 uint get_easing_duration() {
5159 return clutter_box_layout_get_easing_duration(&this);
5162 // Retrieves the easing mode set using clutter_box_layout_set_easing_mode()
5163 // RETURNS: an easing mode
5164 c_ulong get_easing_mode() {
5165 return clutter_box_layout_get_easing_mode(&this);
5168 // Retrieves whether @actor should expand inside @layout
5169 // RETURNS: %TRUE if the #ClutterActor should expand, %FALSE otherwise
5170 // <actor>: a #ClutterActor child of @layout
5171 int get_expand(Actor* actor) {
5172 return clutter_box_layout_get_expand(&this, actor);
5175 // Retrieves the horizontal and vertical fill policies for @actor
5176 // as set using clutter_box_layout_pack() or clutter_box_layout_set_fill()
5177 // <actor>: a #ClutterActor child of @layout
5178 // <x_fill>: return location for the horizontal fill policy
5179 // <y_fill>: return location for the vertical fill policy
5180 void get_fill(Actor* actor, /*out*/ int* x_fill, /*out*/ int* y_fill) {
5181 clutter_box_layout_get_fill(&this, actor, x_fill, y_fill);
5184 // Retrieves if the children sizes are allocated homogeneously.
5186 // homogeneously, and %FALSE otherwise
5187 // RETURNS: %TRUE if the #ClutterBoxLayout is arranging its children
5188 int get_homogeneous() {
5189 return clutter_box_layout_get_homogeneous(&this);
5192 // Retrieves the value set using clutter_box_layout_set_pack_start()
5194 // at the beginning of the layout, and %FALSE otherwise
5195 // RETURNS: %TRUE if the #ClutterBoxLayout should pack children
5196 int get_pack_start() {
5197 return clutter_box_layout_get_pack_start(&this);
5200 // Retrieves the spacing set using clutter_box_layout_set_spacing()
5201 // RETURNS: the spacing between children of the #ClutterBoxLayout
5202 uint get_spacing() {
5203 return clutter_box_layout_get_spacing(&this);
5206 // Retrieves whether @layout should animate changes in the layout properties
5208 // Since clutter_box_layout_set_use_animations()
5209 // RETURNS: %TRUE if the animations should be used, %FALSE otherwise
5210 int get_use_animations() {
5211 return clutter_box_layout_get_use_animations(&this);
5214 // Retrieves the orientation of the @layout as set using the
5215 // clutter_box_layout_set_vertical() function
5217 // vertically, and %FALSE otherwise
5218 // RETURNS: %TRUE if the #ClutterBoxLayout is arranging its children
5219 int get_vertical() {
5220 return clutter_box_layout_get_vertical(&this);
5223 // Packs @actor inside the #ClutterContainer associated to @layout
5224 // and sets the layout properties
5225 // <actor>: a #ClutterActor
5226 // <expand>: whether the @actor should expand
5227 // <x_fill>: whether the @actor should fill horizontally
5228 // <y_fill>: whether the @actor should fill vertically
5229 // <x_align>: the horizontal alignment policy for @actor
5230 // <y_align>: the vertical alignment policy for @actor
5231 void pack(Actor* actor, int expand, int x_fill, int y_fill, BoxAlignment x_align, BoxAlignment y_align) {
5232 clutter_box_layout_pack(&this, actor, expand, x_fill, y_fill, x_align, y_align);
5235 // Sets the horizontal and vertical alignment policies for @actor
5236 // inside @layout
5237 // <actor>: a #ClutterActor child of @layout
5238 // <x_align>: Horizontal alignment policy for @actor
5239 // <y_align>: Vertical alignment policy for @actor
5240 void set_alignment(Actor* actor, BoxAlignment x_align, BoxAlignment y_align) {
5241 clutter_box_layout_set_alignment(&this, actor, x_align, y_align);
5244 // Sets the duration of the animations used by @layout when animating changes
5245 // in the layout properties
5247 // Use clutter_box_layout_set_use_animations() to enable and disable the
5248 // animations
5249 // <msecs>: the duration of the animations, in milliseconds
5250 void set_easing_duration(uint msecs) {
5251 clutter_box_layout_set_easing_duration(&this, msecs);
5254 // Sets the easing mode to be used by @layout when animating changes in layout
5255 // properties
5257 // Use clutter_box_layout_set_use_animations() to enable and disable the
5258 // animations
5259 // <mode>: an easing mode, either from #ClutterAnimationMode or a logical id from clutter_alpha_register_func()
5260 void set_easing_mode(c_ulong mode) {
5261 clutter_box_layout_set_easing_mode(&this, mode);
5264 // Sets whether @actor should expand inside @layout
5265 // <actor>: a #ClutterActor child of @layout
5266 // <expand>: whether @actor should expand
5267 void set_expand(Actor* actor, int expand) {
5268 clutter_box_layout_set_expand(&this, actor, expand);
5271 // Sets the horizontal and vertical fill policies for @actor
5272 // inside @layout
5273 // <actor>: a #ClutterActor child of @layout
5274 // <x_fill>: whether @actor should fill horizontally the allocated space
5275 // <y_fill>: whether @actor should fill vertically the allocated space
5276 void set_fill(Actor* actor, int x_fill, int y_fill) {
5277 clutter_box_layout_set_fill(&this, actor, x_fill, y_fill);
5280 // Sets whether the size of @layout children should be
5281 // homogeneous
5282 // <homogeneous>: %TRUE if the layout should be homogeneous
5283 void set_homogeneous(int homogeneous) {
5284 clutter_box_layout_set_homogeneous(&this, homogeneous);
5287 // Sets whether children of @layout should be layed out by appending
5288 // them or by prepending them
5289 // <pack_start>: %TRUE if the @layout should pack children at the beginning of the layout
5290 void set_pack_start(int pack_start) {
5291 clutter_box_layout_set_pack_start(&this, pack_start);
5294 // Sets the spacing between children of @layout
5295 // <spacing>: the spacing between children of the layout, in pixels
5296 void set_spacing(uint spacing) {
5297 clutter_box_layout_set_spacing(&this, spacing);
5300 // Sets whether @layout should animate changes in the layout properties
5302 // The duration of the animations is controlled by
5303 // clutter_box_layout_set_easing_duration(); the easing mode to be used
5304 // by the animations is controlled by clutter_box_layout_set_easing_mode()
5305 // <animate>: %TRUE if the @layout should use animations
5306 void set_use_animations(int animate) {
5307 clutter_box_layout_set_use_animations(&this, animate);
5310 // Sets whether @layout should arrange its children vertically alongside
5311 // the Y axis, instead of horizontally alongside the X axis
5312 // <vertical>: %TRUE if the layout should be vertical
5313 void set_vertical(int vertical) {
5314 clutter_box_layout_set_vertical(&this, vertical);
5319 // The #ClutterBoxLayoutClass structure contains only private
5320 // data and should be accessed using the provided API
5321 struct BoxLayoutClass /* Version 1.2 */ {
5322 private LayoutManagerClass parent_class;
5325 struct BoxLayoutPrivate {
5328 struct BoxPrivate {
5331 enum int Break = 65387;
5332 enum int BrightnessAdjust = 269025083;
5334 // Button event.
5336 // The event coordinates are relative to the stage that received the
5337 // event, and can be transformed into actor-relative coordinates by
5338 // using clutter_actor_transform_stage_point().
5339 struct ButtonEvent /* Version 0.2 */ {
5340 EventType type;
5341 uint time;
5342 EventFlags flags;
5343 Stage* stage;
5344 Actor* source;
5345 float x, y;
5346 ModifierType modifier_state;
5347 uint button;
5348 uint click_count;
5349 double* axes;
5350 InputDevice* device;
5353 enum int Byelorussian_SHORTU = 1726;
5354 enum int Byelorussian_shortu = 1710;
5355 enum int C = 67;
5356 enum int CD = 269025107;
5357 enum COGL = "undefined";
5358 enum int CURRENT_TIME = 0;
5359 enum int Cabovedot = 709;
5360 enum int Cacute = 454;
5361 // The #ClutterCairoTexture struct contains only private data.
5362 struct CairoTexture /* : Texture */ /* Version 1.0 */ {
5363 alias parent_instance this;
5364 alias parent_instance super_;
5365 alias parent_instance texture;
5366 Texture parent_instance;
5367 private CairoTexturePrivate* priv;
5370 // Creates a new #ClutterCairoTexture actor, with a surface of @width by
5371 // @height pixels.
5372 // RETURNS: the newly created #ClutterCairoTexture actor
5373 // <width>: the width of the surface
5374 // <height>: the height of the surface
5375 static CairoTexture* new_(uint width, uint height) {
5376 return clutter_cairo_texture_new(width, height);
5379 // Clears @self's internal drawing surface, so that the next upload
5380 // will replace the previous contents of the #ClutterCairoTexture
5381 // rather than adding to it.
5383 // Calling this function from within a #ClutterCairoTexture::draw
5384 // signal handler will clear the invalidated area.
5385 void clear() {
5386 clutter_cairo_texture_clear(&this);
5389 // Creates a new Cairo context for the @cairo texture. It is
5390 // similar to using clutter_cairo_texture_create_region() with @x_offset
5391 // and @y_offset of 0, @width equal to the @cairo texture surface width
5392 // and @height equal to the @cairo texture surface height.
5394 // <warning><para>Do not call this function within the paint virtual
5395 // function or from a callback to the #ClutterActor::paint
5396 // signal.</para></warning>
5398 // to upload the contents of the context when done drawing
5401 // the clutter_cairo_texture_invalidate() function to obtain a
5402 // Cairo context for 2D drawing.
5403 // RETURNS: a newly created Cairo context. Use cairo_destroy()
5404 cairo.Context* /*new*/ create() {
5405 return clutter_cairo_texture_create(&this);
5408 // Creates a new Cairo context that will updat the region defined
5409 // by @x_offset, @y_offset, @width and @height.
5411 // <warning><para>Do not call this function within the paint virtual
5412 // function or from a callback to the #ClutterActor::paint
5413 // signal.</para></warning>
5415 // to upload the contents of the context when done drawing
5418 // clutter_cairo_texture_invalidate_rectangle() to obtain a
5419 // clipped Cairo context for 2D drawing.
5420 // RETURNS: a newly created Cairo context. Use cairo_destroy()
5421 // <x_offset>: offset of the region on the X axis
5422 // <y_offset>: offset of the region on the Y axis
5423 // <width>: width of the region, or -1 for the full surface width
5424 // <height>: height of the region, or -1 for the full surface height
5425 cairo.Context* /*new*/ create_region(int x_offset, int y_offset, int width, int height) {
5426 return clutter_cairo_texture_create_region(&this, x_offset, y_offset, width, height);
5429 // Retrieves the value set using clutter_cairo_texture_set_auto_resize().
5431 // allocation, and %FALSE otherwise
5432 // RETURNS: %TRUE if the #ClutterCairoTexture should track the
5433 int get_auto_resize() {
5434 return clutter_cairo_texture_get_auto_resize(&this);
5437 // Retrieves the surface width and height for @self.
5438 // <width>: return location for the surface width, or %NULL
5439 // <height>: return location for the surface height, or %NULL
5440 void get_surface_size(/*out*/ uint* width, /*out*/ uint* height) {
5441 clutter_cairo_texture_get_surface_size(&this, width, height);
5444 // Invalidates the whole surface of a #ClutterCairoTexture.
5446 // This function will cause the #ClutterCairoTexture::draw signal
5447 // to be emitted.
5449 // See also: clutter_cairo_texture_invalidate_rectangle()
5450 void invalidate() {
5451 clutter_cairo_texture_invalidate(&this);
5454 // Invalidates a rectangular region of a #ClutterCairoTexture.
5456 // The invalidation will cause the #ClutterCairoTexture::draw signal
5457 // to be emitted.
5459 // See also: clutter_cairo_texture_invalidate()
5460 // <rect>: a rectangle with the area to invalida, or %NULL to perform an unbounded invalidation
5461 void invalidate_rectangle(cairo.RectangleInt* rect=null) {
5462 clutter_cairo_texture_invalidate_rectangle(&this, rect);
5465 // Sets whether the #ClutterCairoTexture should ensure that the
5466 // backing Cairo surface used matches the allocation assigned to
5467 // the actor. If the allocation changes, the contents of the
5468 // #ClutterCairoTexture will also be invalidated automatically.
5469 // <value>: %TRUE if the #ClutterCairoTexture should bind the surface size to the allocation
5470 void set_auto_resize(int value) {
5471 clutter_cairo_texture_set_auto_resize(&this, value);
5474 // Resizes the Cairo surface used by @self to @width and @height.
5476 // This function will not invalidate the contents of the Cairo
5477 // texture: you will have to explicitly call either
5478 // clutter_cairo_texture_invalidate_rectangle() or
5479 // clutter_cairo_texture_invalidate().
5480 // <width>: the new width of the surface
5481 // <height>: the new height of the surface
5482 void set_surface_size(uint width, uint height) {
5483 clutter_cairo_texture_set_surface_size(&this, width, height);
5486 // The ::create-surface signal is emitted when a #ClutterCairoTexture
5487 // news its surface (re)created, which happens either when the Cairo
5488 // context is created with clutter_cairo_texture_create() or
5489 // clutter_cairo_texture_create_region(), or when the surface is resized
5490 // through clutter_cairo_texture_set_surface_size().
5492 // The first signal handler that returns a non-%NULL, valid surface will
5493 // stop any further signal emission, and the returned surface will be
5494 // the one used.
5495 // RETURNS: the newly created #cairo_surface_t for the texture
5496 // <width>: the width of the surface to create
5497 // <height>: the height of the surface to create
5498 extern (C) alias static cairo.Surface* /*new*/ function (CairoTexture* this_, c_uint width, c_uint height, void* user_data=null) signal_create_surface;
5500 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
5501 return super_.signal_connect!name(cb, data, cf);
5504 ulong signal_connect(string name:"create-surface", CB:signal_create_surface)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
5505 return signal_connect_data(&this, cast(char*)"create-surface",
5506 cast(GObject2.Callback)cb, data, null, cf);
5509 // The ::draw signal is emitted each time a #ClutterCairoTexture has
5510 // been invalidated.
5512 // The passed Cairo context passed will be clipped to the invalidated
5513 // area.
5515 // It is safe to connect multiple callbacks to this signals; the state
5516 // of the Cairo context passed to each callback is automatically saved
5517 // and restored, so it's not necessary to call cairo_save() and
5518 // cairo_restore().
5520 // to continue
5521 // RETURNS: %TRUE if the signal emission should stop, and %FALSE
5522 // <cr>: the Cairo context to use to draw
5523 extern (C) alias static c_int function (CairoTexture* this_, cairo.Context* cr, void* user_data=null) signal_draw;
5524 ulong signal_connect(string name:"draw", CB:signal_draw)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
5525 return signal_connect_data(&this, cast(char*)"draw",
5526 cast(GObject2.Callback)cb, data, null, cf);
5530 // The #ClutterCairoTextureClass struct contains only private data.
5531 struct CairoTextureClass /* Version 1.0 */ {
5532 private TextureClass parent_class;
5533 extern (C) cairo.Surface* /*new*/ function (CairoTexture* texture, uint width, uint height) create_surface;
5534 extern (C) int function (CairoTexture* texture, cairo.Context* cr) draw;
5535 extern (C) void function () _clutter_cairo_3;
5536 extern (C) void function () _clutter_cairo_4;
5539 struct CairoTexturePrivate {
5542 enum int Calculator = 269025053;
5543 enum int Calendar = 269025056;
5545 // Generic callback
5546 // <actor>: a #ClutterActor
5547 // <data>: user data
5548 extern (C) alias void function (Actor* actor, void* data) Callback;
5550 enum int Cancel = 65385;
5551 enum int Caps_Lock = 65509;
5552 enum int Ccaron = 456;
5553 enum int Ccedilla = 199;
5554 enum int Ccircumflex = 710;
5556 // Base interface for container specific state for child actors. A child
5557 // data is meant to be used when you need to keep track of information
5558 // about each individual child added to a container.
5560 // In order to use it you should create your own subclass of
5561 // #ClutterChildMeta and set the #ClutterContainerIface child_meta_type
5562 // interface member to your subclass type, like:
5564 // |[
5565 // static void
5566 // my_container_iface_init (ClutterContainerIface *iface)
5567 // {
5568 // /&ast; set the rest of the #ClutterContainer vtable &ast;/
5570 // container_iface->child_meta_type = MY_TYPE_CHILD_META;
5571 // }
5572 // ]|
5574 // This will automatically create a #ClutterChildMeta of type
5575 // MY_TYPE_CHILD_META for every actor that is added to the container.
5577 // The child data for an actor can be retrieved using the
5578 // clutter_container_get_child_meta() function.
5580 // The properties of the data and your subclass can be manipulated with
5581 // clutter_container_child_set() and clutter_container_child_get() which
5582 // act like g_object_set() and g_object_get().
5584 // You can provide hooks for your own storage as well as control the
5585 // instantiation by overriding the #ClutterContainerIface virtual functions
5586 // <function>create_child_meta</function>,
5587 // <function>destroy_child_meta</function>,
5588 // and <function>get_child_meta</function>.
5589 struct ChildMeta /* : GObject.Object */ /* Version 0.8 */ {
5590 alias parent_instance this;
5591 alias parent_instance super_;
5592 alias parent_instance object;
5593 GObject2.Object parent_instance;
5594 Container* container;
5595 Actor* actor;
5598 // Retrieves the actor wrapped by @data
5599 // RETURNS: a #ClutterActor
5600 Actor* get_actor() {
5601 return clutter_child_meta_get_actor(&this);
5604 // Retrieves the container using @data
5605 // RETURNS: a #ClutterContainer
5606 Container* get_container() {
5607 return clutter_child_meta_get_container(&this);
5611 // The #ClutterChildMetaClass contains only private data
5612 struct ChildMetaClass /* Version 0.8 */ {
5613 private GObject2.ObjectClass parent_class;
5616 enum int Clear = 65291;
5617 enum int ClearGrab = 269024801;
5619 // The <structname>ClutterClickAction</structname> structure contains
5620 // only private data and should be accessed using the provided API
5621 struct ClickAction /* : Action */ /* Version 1.4 */ {
5622 alias parent_instance this;
5623 alias parent_instance super_;
5624 alias parent_instance action;
5625 Action parent_instance;
5626 private ClickActionPrivate* priv;
5629 // Creates a new #ClutterClickAction instance
5630 // RETURNS: the newly created #ClutterClickAction
5631 static ClickAction* new_() {
5632 return clutter_click_action_new();
5635 // Retrieves the button that was pressed.
5636 // RETURNS: the button value
5637 uint get_button() {
5638 return clutter_click_action_get_button(&this);
5641 // Retrieves the screen coordinates of the button press.
5642 // <press_x>: return location for the X coordinate, or %NULL
5643 // <press_y>: return location for the Y coordinate, or %NULL
5644 void get_coords(/*out*/ float* press_x, /*out*/ float* press_y) {
5645 clutter_click_action_get_coords(&this, press_x, press_y);
5648 // Retrieves the modifier state of the click action.
5649 // RETURNS: the modifier state parameter, or 0
5650 ModifierType get_state() {
5651 return clutter_click_action_get_state(&this);
5654 // Emulates a release of the pointer button, which ungrabs the pointer
5655 // and unsets the #ClutterClickAction:pressed state.
5657 // This function will also cancel the long press gesture if one was
5658 // initiated.
5660 // This function is useful to break a grab, for instance after a certain
5661 // amount of time has passed.
5662 void release() {
5663 clutter_click_action_release(&this);
5666 // The ::clicked signal is emitted when the #ClutterActor to which
5667 // a #ClutterClickAction has been applied should respond to a
5668 // pointer button press and release events
5669 // <actor>: the #ClutterActor attached to the @action
5670 extern (C) alias static void function (ClickAction* this_, Actor* actor, void* user_data=null) signal_clicked;
5672 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
5673 return super_.signal_connect!name(cb, data, cf);
5676 ulong signal_connect(string name:"clicked", CB:signal_clicked)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
5677 return signal_connect_data(&this, cast(char*)"clicked",
5678 cast(GObject2.Callback)cb, data, null, cf);
5681 // The ::long-press signal is emitted during the long press gesture
5682 // handling.
5684 // This signal can be emitted multiple times with different states.
5686 // The %CLUTTER_LONG_PRESS_QUERY state will be emitted on button presses,
5687 // and its return value will determine whether the long press handling
5688 // should be initiated. If the signal handlers will return %TRUE, the
5689 // %CLUTTER_LONG_PRESS_QUERY state will be followed either by a signal
5690 // emission with the %CLUTTER_LONG_PRESS_ACTIVATE state if the long press
5691 // constraints were respected, or by a signal emission with the
5692 // %CLUTTER_LONG_PRESS_CANCEL state if the long press was cancelled.
5694 // It is possible to forcibly cancel a long press detection using
5695 // clutter_click_action_release().
5697 // returned value of the handler; other states will ignore it
5698 // RETURNS: Only the %CLUTTER_LONG_PRESS_QUERY state uses the
5699 // <actor>: the #ClutterActor attached to the @action
5700 // <state>: the long press state
5701 extern (C) alias static c_int function (ClickAction* this_, Actor* actor, LongPressState* state, void* user_data=null) signal_long_press;
5702 ulong signal_connect(string name:"long-press", CB:signal_long_press)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
5703 return signal_connect_data(&this, cast(char*)"long-press",
5704 cast(GObject2.Callback)cb, data, null, cf);
5709 // The <structname>ClutterClickActionClass</structname> structure
5710 // contains only private data
5711 struct ClickActionClass /* Version 1.4 */ {
5712 private ActionClass parent_class;
5713 extern (C) void function (ClickAction* action, Actor* actor) clicked;
5714 extern (C) int function (ClickAction* action, Actor* actor, LongPressState state) long_press;
5715 extern (C) void function () _clutter_click_action1;
5716 extern (C) void function () _clutter_click_action2;
5717 extern (C) void function () _clutter_click_action3;
5718 extern (C) void function () _clutter_click_action4;
5719 extern (C) void function () _clutter_click_action5;
5720 extern (C) void function () _clutter_click_action6;
5721 extern (C) void function () _clutter_click_action7;
5724 struct ClickActionPrivate {
5728 // The #ClutterClone structure contains only private data
5729 // and should be accessed using the provided API
5730 struct Clone /* : Actor */ /* Version 1.0 */ {
5731 alias parent_instance this;
5732 alias parent_instance super_;
5733 alias parent_instance actor;
5734 Actor parent_instance;
5735 private ClonePrivate* priv;
5738 // Creates a new #ClutterActor which clones @source/
5739 // RETURNS: the newly created #ClutterClone
5740 // <source>: a #ClutterActor, or %NULL
5741 static Clone* new_(Actor* source) {
5742 return clutter_clone_new(source);
5745 // Retrieves the source #ClutterActor being cloned by @clone
5746 // RETURNS: the actor source for the clone
5747 Actor* get_source() {
5748 return clutter_clone_get_source(&this);
5751 // Sets @source as the source actor to be cloned by @clone.
5752 // <source>: a #ClutterActor, or %NULL
5753 void set_source(Actor* source) {
5754 clutter_clone_set_source(&this, source);
5758 // The #ClutterCloneClass structure contains only private data
5759 struct CloneClass /* Version 1.0 */ {
5760 private ActorClass parent_class;
5761 extern (C) void function () _clutter_actor_clone1;
5762 extern (C) void function () _clutter_actor_clone2;
5763 extern (C) void function () _clutter_actor_clone3;
5764 extern (C) void function () _clutter_actor_clone4;
5767 struct ClonePrivate {
5770 enum int Close = 269025110;
5771 enum int Codeinput = 65335;
5772 enum int ColonSign = 16785569;
5773 // Color representation.
5774 struct Color {
5775 ubyte red, green, blue, alpha;
5778 // Creates a new #ClutterColor with the given values.
5780 // Use clutter_color_free() when done
5781 // RETURNS: the newly allocated color.
5782 // <red>: red component of the color, between 0 and 255
5783 // <green>: green component of the color, between 0 and 255
5784 // <blue>: blue component of the color, between 0 and 255
5785 // <alpha>: alpha component of the color, between 0 and 255
5786 static Color* /*new*/ new_(ubyte red, ubyte green, ubyte blue, ubyte alpha) {
5787 return clutter_color_new(red, green, blue, alpha);
5790 // Adds @a to @b and saves the resulting color inside @result.
5792 // The alpha channel of @result is set as as the maximum value
5793 // between the alpha channels of @a and @b.
5794 // <b>: a #ClutterColor
5795 // <result>: return location for the result
5796 void add(Color* b, /*out*/ Color* result) {
5797 clutter_color_add(&this, b, result);
5800 // Makes a copy of the color structure. The result must be
5801 // freed using clutter_color_free().
5802 // RETURNS: an allocated copy of @color.
5803 Color* /*new*/ copy() {
5804 return clutter_color_copy(&this);
5807 // Darkens @color by a fixed amount, and saves the changed color
5808 // in @result.
5809 // <result>: return location for the darker color
5810 void darken(/*out*/ Color* result) {
5811 clutter_color_darken(&this, result);
5813 // Frees a color structure created with clutter_color_copy().
5814 void free() {
5815 clutter_color_free(&this);
5818 // Converts a color expressed in HLS (hue, luminance and saturation)
5819 // values into a #ClutterColor.
5820 // <hue>: hue value, in the 0 .. 360 range
5821 // <luminance>: luminance value, in the 0 .. 1 range
5822 // <saturation>: saturation value, in the 0 .. 1 range
5823 void from_hls(float hue, float luminance, float saturation) {
5824 clutter_color_from_hls(&this, hue, luminance, saturation);
5827 // Converts @pixel from the packed representation of a four 8 bit channel
5828 // color to a #ClutterColor.
5829 // <pixel>: a 32 bit packed integer containing a color
5830 void from_pixel(uint pixel) {
5831 clutter_color_from_pixel(&this, pixel);
5834 // Parses a string definition of a color, filling the
5835 // <structfield>red</structfield>, <structfield>green</structfield>,
5836 // <structfield>blue</structfield> and <structfield>alpha</structfield>
5837 // channels of @color.
5839 // The @color is not allocated.
5841 // The format of @str can be either one of:
5843 // <itemizedlist>
5844 // <listitem>
5845 // <para>a standard name (as taken from the X11 rgb.txt file)</para>
5846 // </listitem>
5847 // <listitem>
5848 // <para>an hexadecimal value in the form: <literal>&num;rgb</literal>,
5849 // <literal>&num;rrggbb</literal>, <literal>&num;rgba</literal> or
5850 // <literal>&num;rrggbbaa</literal></para>
5851 // </listitem>
5852 // <listitem>
5853 // <para>a RGB color in the form: <literal>rgb(r, g, b)</literal></para>
5854 // </listitem>
5855 // <listitem>
5856 // <para>a RGB color in the form: <literal>rgba(r, g, b, a)</literal></para>
5857 // </listitem>
5858 // <listitem>
5859 // <para>a HSL color in the form: <literal>hsl(h, s, l)</literal></para>
5860 // </listitem>
5861 // <listitem>
5862 // <para>a HSL color in the form: <literal>hsla(h, s, l, a)</literal></para>
5863 // </listitem>
5864 // </itemizedlist>
5866 // where 'r', 'g', 'b' and 'a' are (respectively) the red, green, blue color
5867 // intensities and the opacity. The 'h', 's' and 'l' are (respectively) the
5868 // hue, saturation and luminance values.
5870 // In the rgb() and rgba() formats, the 'r', 'g', and 'b' values are either
5871 // integers between 0 and 255, or percentage values in the range between 0%
5872 // and 100%; the percentages require the '%' character. The 'a' value, if
5873 // specified, can only be a floating point value between 0.0 and 1.0.
5875 // In the hls() and hlsa() formats, the 'h' value (hue) it's an angle between
5876 // 0 and 360.0 degrees; the 'l' and 's' values (luminance and saturation) are
5877 // a floating point value between 0.0 and 1.0. The 'a' value, if specified,
5878 // can only be a floating point value between 0.0 and 1.0.
5880 // Whitespace inside the definitions is ignored; no leading whitespace
5881 // is allowed.
5883 // If the alpha component is not specified then it is assumed to be set to
5884 // be fully opaque.
5885 // RETURNS: %TRUE if parsing succeeded, and %FALSE otherwise
5886 // <str>: a string specifiying a color
5887 int from_string(char* str) {
5888 return clutter_color_from_string(&this, str);
5891 // Interpolates between @initial and @final #ClutterColor<!-- -->s
5892 // using @progress
5893 // <final>: the final #ClutterColor
5894 // <progress>: the interpolation progress
5895 // <result>: return location for the interpolation
5896 void interpolate(Color* final, double progress, /*out*/ Color* result) {
5897 clutter_color_interpolate(&this, final, progress, result);
5900 // Lightens @color by a fixed amount, and saves the changed color
5901 // in @result.
5902 // <result>: return location for the lighter color
5903 void lighten(/*out*/ Color* result) {
5904 clutter_color_lighten(&this, result);
5907 // Shades @color by @factor and saves the modified color into @result.
5908 // <factor>: the shade factor to apply
5909 // <result>: return location for the shaded color
5910 void shade(double factor, /*out*/ Color* result) {
5911 clutter_color_shade(&this, factor, result);
5914 // Subtracts @b from @a and saves the resulting color inside @result.
5916 // This function assumes that the components of @a are greater than the
5917 // components of @b; the result is, otherwise, undefined.
5919 // The alpha channel of @result is set as the minimum value
5920 // between the alpha channels of @a and @b.
5921 // <b>: a #ClutterColor
5922 // <result>: return location for the result
5923 void subtract(Color* b, /*out*/ Color* result) {
5924 clutter_color_subtract(&this, b, result);
5927 // Converts @color to the HLS format.
5929 // The @hue value is in the 0 .. 360 range. The @luminance and
5930 // @saturation values are in the 0 .. 1 range.
5931 // <hue>: return location for the hue value or %NULL
5932 // <luminance>: return location for the luminance value or %NULL
5933 // <saturation>: return location for the saturation value or %NULL
5934 void to_hls(/*out*/ float* hue, /*out*/ float* luminance, /*out*/ float* saturation) {
5935 clutter_color_to_hls(&this, hue, luminance, saturation);
5938 // Converts @color into a packed 32 bit integer, containing
5939 // all the four 8 bit channels used by #ClutterColor.
5940 // RETURNS: a packed color
5941 uint to_pixel() {
5942 return clutter_color_to_pixel(&this);
5945 // Returns a textual specification of @color in the hexadecimal form
5946 // <literal>&num;rrggbbaa</literal>, where <literal>r</literal>,
5947 // <literal>g</literal>, <literal>b</literal> and <literal>a</literal> are
5948 // hexadecimal digits representing the red, green, blue and alpha components
5949 // respectively.
5950 // RETURNS: a newly-allocated text string
5951 char* /*new*/ to_string() {
5952 return clutter_color_to_string(&this);
5955 // Compares two #ClutterColor<!-- -->s and checks if they are the same.
5957 // This function can be passed to g_hash_table_new() as the @key_equal_func
5958 // parameter, when using #ClutterColor<!-- -->s as keys in a #GHashTable.
5959 // RETURNS: %TRUE if the two colors are the same.
5960 // <v1>: a #ClutterColor
5961 // <v2>: a #ClutterColor
5962 static int equal(const(void)* v1, const(void)* v2) {
5963 return clutter_color_equal(v1, v2);
5966 // Retrieves a static color for the given @color name
5968 // Static colors are created by Clutter and are guaranteed to always be
5969 // available and valid
5971 // is owned by Clutter and it should never be modified or freed
5972 // RETURNS: a pointer to a static color; the returned pointer
5973 // <color>: the named global color
5974 static Color* get_static(StaticColor color) {
5975 return clutter_color_get_static(color);
5978 // Converts a #ClutterColor to a hash value.
5980 // This function can be passed to g_hash_table_new() as the @hash_func
5981 // parameter, when using #ClutterColor<!-- -->s as keys in a #GHashTable.
5982 // RETURNS: a hash value corresponding to the color
5983 // <v>: a #ClutterColor
5984 static uint hash(const(void)* v) {
5985 return clutter_color_hash(v);
5990 // <structname>ClutterColorizeEffect</structname> is an opaque structure
5991 // whose members cannot be directly accessed
5992 struct ColorizeEffect /* : OffscreenEffect */ /* Version 1.4 */ {
5993 alias method_parent this;
5994 alias method_parent super_;
5995 alias method_parent offscreeneffect;
5996 OffscreenEffect method_parent;
5999 // Creates a new #ClutterColorizeEffect to be used with
6000 // clutter_actor_add_effect()
6001 // RETURNS: the newly created #ClutterColorizeEffect or %NULL
6002 // <tint>: the color to be used
6003 static ColorizeEffect* new_(Color* tint) {
6004 return clutter_colorize_effect_new(tint);
6007 // Retrieves the tint used by @effect
6008 // <tint>: return location for the color used
6009 void get_tint(/*out*/ Color* tint) {
6010 clutter_colorize_effect_get_tint(&this, tint);
6013 // Sets the tint to be used when colorizing
6014 // <tint>: the color to be used
6015 void set_tint(Color* tint) {
6016 clutter_colorize_effect_set_tint(&this, tint);
6020 struct ColorizeEffectClass {
6023 enum int Community = 269025085;
6025 // The <structname>ClutterConstraint</structname> structure contains only
6026 // private data and should be accessed using the provided API
6027 struct Constraint /* : ActorMeta */ /* Version 1.4 */ {
6028 alias parent_instance this;
6029 alias parent_instance super_;
6030 alias parent_instance actormeta;
6031 ActorMeta parent_instance;
6035 // The <structname>ClutterConstraintClass</structname> structure contains
6036 // only private data
6037 struct ConstraintClass /* Version 1.4 */ {
6038 private ActorMetaClass parent_class;
6039 extern (C) void function (Constraint* constraint, Actor* actor, ActorBox* allocation) update_allocation;
6040 extern (C) void function () _clutter_constraint1;
6041 extern (C) void function () _clutter_constraint2;
6042 extern (C) void function () _clutter_constraint3;
6043 extern (C) void function () _clutter_constraint4;
6044 extern (C) void function () _clutter_constraint5;
6045 extern (C) void function () _clutter_constraint6;
6046 extern (C) void function () _clutter_constraint7;
6047 extern (C) void function () _clutter_constraint8;
6051 // #ClutterContainer is an opaque structure whose members cannot be directly
6052 // accessed
6053 struct Container /* Version 0.4 */ {
6055 // Looks up the #GParamSpec for a child property of @klass.
6057 // if no such property exist.
6058 // RETURNS: The #GParamSpec for the property or %NULL
6059 // <klass>: a #GObjectClass implementing the #ClutterContainer interface.
6060 // <property_name>: a property name.
6061 static GObject2.ParamSpec* class_find_child_property(GObject2.ObjectClass* klass, char* property_name) {
6062 return clutter_container_class_find_child_property(klass, property_name);
6065 // Returns an array of #GParamSpec for all child properties.
6067 // of #GParamSpec<!-- -->s which should be freed after use.
6068 // RETURNS: an array
6069 // <klass>: a #GObjectClass implementing the #ClutterContainer interface.
6070 // <n_properties>: return location for length of returned array.
6071 static GObject2.ParamSpec** /*new*/ class_list_child_properties(GObject2.ObjectClass* klass, /*out*/ uint* n_properties) {
6072 return clutter_container_class_list_child_properties(klass, n_properties);
6075 // Unintrospectable method: add() / clutter_container_add()
6076 // Adds a list of #ClutterActor<!-- -->s to @container. Each time and
6077 // actor is added, the "actor-added" signal is emitted. Each actor should
6078 // be parented to @container, which takes a reference on the actor. You
6079 // cannot add a #ClutterActor to more than one #ClutterContainer.
6080 // <first_actor>: the first #ClutterActor to add
6081 /+ Not available -- variadic methods unsupported - use the C function directly.
6082 alias clutter_container_add add; // Variadic
6085 // Adds a #ClutterActor to @container. This function will emit the
6086 // "actor-added" signal. The actor should be parented to
6087 // @container. You cannot add a #ClutterActor to more than one
6088 // #ClutterContainer.
6089 // <actor>: the first #ClutterActor to add
6090 void add_actor(Actor* actor) {
6091 clutter_container_add_actor(&this, actor);
6094 // Unintrospectable method: add_valist() / clutter_container_add_valist()
6095 // Alternative va_list version of clutter_container_add().
6096 // <first_actor>: the first #ClutterActor to add
6097 // <var_args>: list of actors to add, followed by %NULL
6098 void add_valist(Actor* first_actor, va_list var_args) {
6099 clutter_container_add_valist(&this, first_actor, var_args);
6102 // Unintrospectable method: child_get() / clutter_container_child_get()
6103 // Gets @container specific properties of an actor.
6105 // In general, a copy is made of the property contents and the caller is
6106 // responsible for freeing the memory in the appropriate manner for the type, for
6107 // instance by calling g_free() or g_object_unref().
6108 // <actor>: a #ClutterActor that is a child of @container.
6109 // <first_prop>: name of the first property to be set.
6110 /+ Not available -- variadic methods unsupported - use the C function directly.
6111 alias clutter_container_child_get child_get; // Variadic
6114 // Gets a container specific property of a child of @container, In general,
6115 // a copy is made of the property contents and the caller is responsible for
6116 // freeing the memory by calling g_value_unset().
6118 // Note that clutter_container_child_set_property() is really intended for
6119 // language bindings, clutter_container_child_set() is much more convenient
6120 // for C programming.
6121 // <child>: a #ClutterActor that is a child of @container.
6122 // <property>: the name of the property to set.
6123 // <value>: the value.
6124 void child_get_property(Actor* child, char* property, GObject2.Value* value) {
6125 clutter_container_child_get_property(&this, child, property, value);
6128 // Calls the <function>child_notify()</function> virtual function of
6129 // #ClutterContainer. The default implementation will emit the
6130 // #ClutterContainer::child-notify signal.
6131 // <child>: a #ClutterActor
6132 // <pspec>: a #GParamSpec
6133 void child_notify(Actor* child, GObject2.ParamSpec* pspec) {
6134 clutter_container_child_notify(&this, child, pspec);
6137 // Unintrospectable method: child_set() / clutter_container_child_set()
6138 // Sets container specific properties on the child of a container.
6139 // <actor>: a #ClutterActor that is a child of @container.
6140 // <first_prop>: name of the first property to be set.
6141 /+ Not available -- variadic methods unsupported - use the C function directly.
6142 alias clutter_container_child_set child_set; // Variadic
6145 // Sets a container-specific property on a child of @container.
6146 // <child>: a #ClutterActor that is a child of @container.
6147 // <property>: the name of the property to set.
6148 // <value>: the value.
6149 void child_set_property(Actor* child, char* property, GObject2.Value* value) {
6150 clutter_container_child_set_property(&this, child, property, value);
6153 // Creates the #ClutterChildMeta wrapping @actor inside the
6154 // @container, if the #ClutterContainerIface::child_meta_type
6155 // class member is not set to %G_TYPE_INVALID.
6157 // This function is only useful when adding a #ClutterActor to
6158 // a #ClutterContainer implementation outside of the
6159 // #ClutterContainer::add() virtual function implementation.
6161 // Applications should not call this function.
6162 // <actor>: a #ClutterActor
6163 void create_child_meta(Actor* actor) {
6164 clutter_container_create_child_meta(&this, actor);
6167 // Destroys the #ClutterChildMeta wrapping @actor inside the
6168 // @container, if any.
6170 // This function is only useful when removing a #ClutterActor to
6171 // a #ClutterContainer implementation outside of the
6172 // #ClutterContainer::add() virtual function implementation.
6174 // Applications should not call this function.
6175 // <actor>: a #ClutterActor
6176 void destroy_child_meta(Actor* actor) {
6177 clutter_container_destroy_child_meta(&this, actor);
6180 // Finds a child actor of a container by its name. Search recurses
6181 // into any child container.
6183 // or %NULL if no actor with that name was found.
6184 // RETURNS: The child actor with the requested name,
6185 // <child_name>: the name of the requested child.
6186 Actor* find_child_by_name(char* child_name) {
6187 return clutter_container_find_child_by_name(&this, child_name);
6190 // Calls @callback for each child of @container that was added
6191 // by the application (with clutter_container_add_actor()). Does
6192 // not iterate over "internal" children that are part of the
6193 // container's own implementation, if any.
6194 // <callback>: a function to be called for each child
6195 // <user_data>: data to be passed to the function, or %NULL
6196 void foreach_(Callback callback, void* user_data) {
6197 clutter_container_foreach(&this, callback, user_data);
6200 // Calls @callback for each child of @container, including "internal"
6201 // children built in to the container itself that were never added
6202 // by the application.
6203 // <callback>: a function to be called for each child
6204 // <user_data>: data to be passed to the function, or %NULL
6205 void foreach_with_internals(Callback callback, void* user_data) {
6206 clutter_container_foreach_with_internals(&this, callback, user_data);
6209 // Retrieves the #ClutterChildMeta which contains the data about the
6210 // @container specific state for @actor.
6212 // of @container or %NULL if the specifiec actor does not exist or the
6213 // container is not configured to provide #ClutterChildMeta<!-- -->s
6214 // RETURNS: the #ClutterChildMeta for the @actor child
6215 // <actor>: a #ClutterActor that is a child of @container.
6216 ChildMeta* get_child_meta(Actor* actor) {
6217 return clutter_container_get_child_meta(&this, actor);
6220 // Retrieves all the children of @container.
6222 // of #ClutterActor<!-- -->s. Use g_list_free() on the returned
6223 // list when done.
6224 // RETURNS: a list
6225 GLib2.List* /*new container*/ get_children() {
6226 return clutter_container_get_children(&this);
6229 // Lowers @actor to @sibling level, in the depth ordering.
6230 // <actor>: the actor to raise
6231 // <sibling>: the sibling to lower to, or %NULL to lower to the bottom
6232 void lower_child(Actor* actor, Actor* sibling=null) {
6233 clutter_container_lower_child(&this, actor, sibling);
6236 // Raises @actor to @sibling level, in the depth ordering.
6237 // <actor>: the actor to raise
6238 // <sibling>: the sibling to raise to, or %NULL to raise to the top
6239 void raise_child(Actor* actor, Actor* sibling=null) {
6240 clutter_container_raise_child(&this, actor, sibling);
6243 // Unintrospectable method: remove() / clutter_container_remove()
6244 // Removes a %NULL terminated list of #ClutterActor<!-- -->s from
6245 // @container. Each actor should be unparented, so if you want to keep it
6246 // around you must hold a reference to it yourself, using g_object_ref().
6247 // Each time an actor is removed, the "actor-removed" signal is
6248 // emitted by @container.
6249 // <first_actor>: first #ClutterActor to remove
6250 /+ Not available -- variadic methods unsupported - use the C function directly.
6251 alias clutter_container_remove remove; // Variadic
6254 // Removes @actor from @container. The actor should be unparented, so
6255 // if you want to keep it around you must hold a reference to it
6256 // yourself, using g_object_ref(). When the actor has been removed,
6257 // the "actor-removed" signal is emitted by @container.
6258 // <actor>: a #ClutterActor
6259 void remove_actor(Actor* actor) {
6260 clutter_container_remove_actor(&this, actor);
6263 // Unintrospectable method: remove_valist() / clutter_container_remove_valist()
6264 // Alternative va_list version of clutter_container_remove().
6265 // <first_actor>: the first #ClutterActor to add
6266 // <var_args>: list of actors to remove, followed by %NULL
6267 void remove_valist(Actor* first_actor, va_list var_args) {
6268 clutter_container_remove_valist(&this, first_actor, var_args);
6271 // Sorts a container's children using their depth. This function should not
6272 // be normally used by applications.
6273 void sort_depth_order() {
6274 clutter_container_sort_depth_order(&this);
6277 // The ::actor-added signal is emitted each time an actor
6278 // has been added to @container.
6279 // <actor>: the new child that has been added to @container
6280 extern (C) alias static void function (Container* this_, Actor* actor, void* user_data=null) signal_actor_added;
6282 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6283 return super_.signal_connect!name(cb, data, cf);
6286 ulong signal_connect(string name:"actor-added", CB:signal_actor_added)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6287 return signal_connect_data(&this, cast(char*)"actor-added",
6288 cast(GObject2.Callback)cb, data, null, cf);
6291 // The ::actor-removed signal is emitted each time an actor
6292 // is removed from @container.
6293 // <actor>: the child that has been removed from @container
6294 extern (C) alias static void function (Container* this_, Actor* actor, void* user_data=null) signal_actor_removed;
6295 ulong signal_connect(string name:"actor-removed", CB:signal_actor_removed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6296 return signal_connect_data(&this, cast(char*)"actor-removed",
6297 cast(GObject2.Callback)cb, data, null, cf);
6300 // The ::child-notify signal is emitted each time a property is
6301 // being set through the clutter_container_child_set() and
6302 // clutter_container_child_set_property() calls.
6303 // <actor>: the child that has had a property set
6304 // <pspec>: the #GParamSpec of the property set
6305 extern (C) alias static void function (Container* this_, Actor* actor, GObject2.ParamSpec* pspec, void* user_data=null) signal_child_notify;
6306 ulong signal_connect(string name:"child-notify", CB:signal_child_notify)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6307 return signal_connect_data(&this, cast(char*)"child-notify",
6308 cast(GObject2.Callback)cb, data, null, cf);
6313 // Base interface for container actors. The @add, @remove and @foreach
6314 // virtual functions must be provided by any implementation; the other
6315 // virtual functions are optional.
6316 struct ContainerIface /* Version 0.4 */ {
6317 private GObject2.TypeInterface g_iface;
6318 // <actor>: the first #ClutterActor to add
6319 extern (C) void function (Container* container, Actor* actor) add;
6320 // <actor>: a #ClutterActor
6321 extern (C) void function (Container* container, Actor* actor) remove;
6323 // <callback>: a function to be called for each child
6324 // <user_data>: data to be passed to the function, or %NULL
6325 extern (C) void function (Container* container, Callback callback, void* user_data) foreach_;
6327 // <callback>: a function to be called for each child
6328 // <user_data>: data to be passed to the function, or %NULL
6329 extern (C) void function (Container* container, Callback callback, void* user_data) foreach_with_internals;
6331 // <actor>: the actor to raise
6332 // <sibling>: the sibling to raise to, or %NULL to raise to the top
6333 extern (C) void function (Container* container, Actor* actor, Actor* sibling=null) raise;
6335 // <actor>: the actor to raise
6336 // <sibling>: the sibling to lower to, or %NULL to lower to the bottom
6337 extern (C) void function (Container* container, Actor* actor, Actor* sibling=null) lower;
6338 extern (C) void function (Container* container) sort_depth_order;
6339 Type child_meta_type;
6340 // <actor>: a #ClutterActor
6341 extern (C) void function (Container* container, Actor* actor) create_child_meta;
6342 // <actor>: a #ClutterActor
6343 extern (C) void function (Container* container, Actor* actor) destroy_child_meta;
6345 // RETURNS: the #ClutterChildMeta for the @actor child
6346 // <actor>: a #ClutterActor that is a child of @container.
6347 extern (C) ChildMeta* function (Container* container, Actor* actor) get_child_meta;
6348 extern (C) void function (Container* container, Actor* actor) actor_added;
6349 extern (C) void function (Container* container, Actor* actor) actor_removed;
6351 // <child>: a #ClutterActor
6352 // <pspec>: a #GParamSpec
6353 extern (C) void function (Container* container, Actor* child, GObject2.ParamSpec* pspec) child_notify;
6356 enum int ContrastAdjust = 269025058;
6357 enum int Control_L = 65507;
6358 enum int Control_R = 65508;
6359 enum int Copy = 269025111;
6360 // Event for the movement of the pointer across different actors
6361 struct CrossingEvent /* Version 0.2 */ {
6362 EventType type;
6363 uint time;
6364 EventFlags flags;
6365 Stage* stage;
6366 Actor* source;
6367 float x, y;
6368 InputDevice* device;
6369 Actor* related;
6372 enum int CruzeiroSign = 16785570;
6373 enum int Cut = 269025112;
6374 enum int CycleAngle = 269025180;
6375 enum int Cyrillic_A = 1761;
6376 enum int Cyrillic_BE = 1762;
6377 enum int Cyrillic_CHE = 1790;
6378 enum int Cyrillic_CHE_descender = 16778422;
6379 enum int Cyrillic_CHE_vertstroke = 16778424;
6380 enum int Cyrillic_DE = 1764;
6381 enum int Cyrillic_DZHE = 1727;
6382 enum int Cyrillic_E = 1788;
6383 enum int Cyrillic_EF = 1766;
6384 enum int Cyrillic_EL = 1772;
6385 enum int Cyrillic_EM = 1773;
6386 enum int Cyrillic_EN = 1774;
6387 enum int Cyrillic_EN_descender = 16778402;
6388 enum int Cyrillic_ER = 1778;
6389 enum int Cyrillic_ES = 1779;
6390 enum int Cyrillic_GHE = 1767;
6391 enum int Cyrillic_GHE_bar = 16778386;
6392 enum int Cyrillic_HA = 1768;
6393 enum int Cyrillic_HARDSIGN = 1791;
6394 enum int Cyrillic_HA_descender = 16778418;
6395 enum int Cyrillic_I = 1769;
6396 enum int Cyrillic_IE = 1765;
6397 enum int Cyrillic_IO = 1715;
6398 enum int Cyrillic_I_macron = 16778466;
6399 enum int Cyrillic_JE = 1720;
6400 enum int Cyrillic_KA = 1771;
6401 enum int Cyrillic_KA_descender = 16778394;
6402 enum int Cyrillic_KA_vertstroke = 16778396;
6403 enum int Cyrillic_LJE = 1721;
6404 enum int Cyrillic_NJE = 1722;
6405 enum int Cyrillic_O = 1775;
6406 enum int Cyrillic_O_bar = 16778472;
6407 enum int Cyrillic_PE = 1776;
6408 enum int Cyrillic_SCHWA = 16778456;
6409 enum int Cyrillic_SHA = 1787;
6410 enum int Cyrillic_SHCHA = 1789;
6411 enum int Cyrillic_SHHA = 16778426;
6412 enum int Cyrillic_SHORTI = 1770;
6413 enum int Cyrillic_SOFTSIGN = 1784;
6414 enum int Cyrillic_TE = 1780;
6415 enum int Cyrillic_TSE = 1763;
6416 enum int Cyrillic_U = 1781;
6417 enum int Cyrillic_U_macron = 16778478;
6418 enum int Cyrillic_U_straight = 16778414;
6419 enum int Cyrillic_U_straight_bar = 16778416;
6420 enum int Cyrillic_VE = 1783;
6421 enum int Cyrillic_YA = 1777;
6422 enum int Cyrillic_YERU = 1785;
6423 enum int Cyrillic_YU = 1760;
6424 enum int Cyrillic_ZE = 1786;
6425 enum int Cyrillic_ZHE = 1782;
6426 enum int Cyrillic_ZHE_descender = 16778390;
6427 enum int Cyrillic_a = 1729;
6428 enum int Cyrillic_be = 1730;
6429 enum int Cyrillic_che = 1758;
6430 enum int Cyrillic_che_descender = 16778423;
6431 enum int Cyrillic_che_vertstroke = 16778425;
6432 enum int Cyrillic_de = 1732;
6433 enum int Cyrillic_dzhe = 1711;
6434 enum int Cyrillic_e = 1756;
6435 enum int Cyrillic_ef = 1734;
6436 enum int Cyrillic_el = 1740;
6437 enum int Cyrillic_em = 1741;
6438 enum int Cyrillic_en = 1742;
6439 enum int Cyrillic_en_descender = 16778403;
6440 enum int Cyrillic_er = 1746;
6441 enum int Cyrillic_es = 1747;
6442 enum int Cyrillic_ghe = 1735;
6443 enum int Cyrillic_ghe_bar = 16778387;
6444 enum int Cyrillic_ha = 1736;
6445 enum int Cyrillic_ha_descender = 16778419;
6446 enum int Cyrillic_hardsign = 1759;
6447 enum int Cyrillic_i = 1737;
6448 enum int Cyrillic_i_macron = 16778467;
6449 enum int Cyrillic_ie = 1733;
6450 enum int Cyrillic_io = 1699;
6451 enum int Cyrillic_je = 1704;
6452 enum int Cyrillic_ka = 1739;
6453 enum int Cyrillic_ka_descender = 16778395;
6454 enum int Cyrillic_ka_vertstroke = 16778397;
6455 enum int Cyrillic_lje = 1705;
6456 enum int Cyrillic_nje = 1706;
6457 enum int Cyrillic_o = 1743;
6458 enum int Cyrillic_o_bar = 16778473;
6459 enum int Cyrillic_pe = 1744;
6460 enum int Cyrillic_schwa = 16778457;
6461 enum int Cyrillic_sha = 1755;
6462 enum int Cyrillic_shcha = 1757;
6463 enum int Cyrillic_shha = 16778427;
6464 enum int Cyrillic_shorti = 1738;
6465 enum int Cyrillic_softsign = 1752;
6466 enum int Cyrillic_te = 1748;
6467 enum int Cyrillic_tse = 1731;
6468 enum int Cyrillic_u = 1749;
6469 enum int Cyrillic_u_macron = 16778479;
6470 enum int Cyrillic_u_straight = 16778415;
6471 enum int Cyrillic_u_straight_bar = 16778417;
6472 enum int Cyrillic_ve = 1751;
6473 enum int Cyrillic_ya = 1745;
6474 enum int Cyrillic_yeru = 1753;
6475 enum int Cyrillic_yu = 1728;
6476 enum int Cyrillic_ze = 1754;
6477 enum int Cyrillic_zhe = 1750;
6478 enum int Cyrillic_zhe_descender = 16778391;
6479 enum int D = 68;
6480 enum int DOS = 269025114;
6481 enum int Dabovedot = 16784906;
6482 enum int Dcaron = 463;
6484 // The <structname>ClutterDeformEffect</structname> structure contains
6485 // only private data and should be accessed using the provided API
6486 struct DeformEffect /* : OffscreenEffect */ /* Version 1.4 */ {
6487 alias parent_instance this;
6488 alias parent_instance super_;
6489 alias parent_instance offscreeneffect;
6490 OffscreenEffect parent_instance;
6491 private DeformEffectPrivate* priv;
6494 // Retrieves the handle to the back face material used by @effect
6496 // The returned material is owned by the #ClutterDeformEffect and it
6497 // should not be freed directly
6498 // RETURNS: a handle for the material, or %NULL.
6499 Cogl.Handle get_back_material() {
6500 return clutter_deform_effect_get_back_material(&this);
6503 // Retrieves the number of horizontal and vertical tiles used to sub-divide
6504 // the actor's geometry during the effect
6505 // <x_tiles>: return location for the number of horizontal tiles, or %NULL
6506 // <y_tiles>: return location for the number of vertical tiles, or %NULL
6507 void get_n_tiles(/*out*/ uint* x_tiles, /*out*/ uint* y_tiles) {
6508 clutter_deform_effect_get_n_tiles(&this, x_tiles, y_tiles);
6511 // Invalidates the @effect<!-- -->'s vertices and, if it is associated
6512 // to an actor, it will queue a redraw
6513 void invalidate() {
6514 clutter_deform_effect_invalidate(&this);
6517 // Sets the material that should be used when drawing the back face
6518 // of the actor during a deformation
6520 // The #ClutterDeformEffect will take a reference on the material's
6521 // handle
6522 // <material>: a handle to a Cogl material
6523 void set_back_material(Cogl.Handle material=null) {
6524 clutter_deform_effect_set_back_material(&this, material);
6527 // Sets the number of horizontal and vertical tiles to be used
6528 // when applying the effect
6530 // More tiles allow a finer grained deformation at the expenses
6531 // of computation
6532 // <x_tiles>: number of horizontal tiles
6533 // <y_tiles>: number of vertical tiles
6534 void set_n_tiles(uint x_tiles, uint y_tiles) {
6535 clutter_deform_effect_set_n_tiles(&this, x_tiles, y_tiles);
6540 // The <structname>ClutterDeformEffectClass</structname> structure contains
6541 // only private data
6542 struct DeformEffectClass /* Version 1.4 */ {
6543 private OffscreenEffectClass parent_class;
6544 extern (C) void function (DeformEffect* effect, float width, float height, Cogl.TextureVertex* vertex) deform_vertex;
6545 extern (C) void function () _clutter_deform1;
6546 extern (C) void function () _clutter_deform2;
6547 extern (C) void function () _clutter_deform3;
6548 extern (C) void function () _clutter_deform4;
6549 extern (C) void function () _clutter_deform5;
6550 extern (C) void function () _clutter_deform6;
6551 extern (C) void function () _clutter_deform7;
6554 struct DeformEffectPrivate {
6557 enum int Delete = 65535;
6559 // <structname>ClutterDesaturateEffect</structname> is an opaque structure
6560 // whose members cannot be directly accessed
6561 struct DesaturateEffect /* : OffscreenEffect */ /* Version 1.4 */ {
6562 alias method_parent this;
6563 alias method_parent super_;
6564 alias method_parent offscreeneffect;
6565 OffscreenEffect method_parent;
6568 // Creates a new #ClutterDesaturateEffect to be used with
6569 // clutter_actor_add_effect()
6570 // RETURNS: the newly created #ClutterDesaturateEffect or %NULL
6571 // <factor>: the desaturation factor, between 0.0 and 1.0
6572 static DesaturateEffect* new_(double factor) {
6573 return clutter_desaturate_effect_new(factor);
6576 // Retrieves the desaturation factor of @effect
6577 // RETURNS: the desaturation factor
6578 double get_factor() {
6579 return clutter_desaturate_effect_get_factor(&this);
6582 // Sets the desaturation factor for @effect, with 0.0 being "do not desaturate"
6583 // and 1.0 being "fully desaturate"
6584 // <factor>: the desaturation factor, between 0.0 and 1.0
6585 void set_factor(double factor) {
6586 clutter_desaturate_effect_set_factor(&this, factor);
6590 struct DesaturateEffectClass {
6593 // The #ClutterDeviceManager structure contains only private data
6594 struct DeviceManager /* : GObject.Object */ /* Version 1.2 */ {
6595 alias parent_instance this;
6596 alias parent_instance super_;
6597 alias parent_instance object;
6598 GObject2.Object parent_instance;
6599 private DeviceManagerPrivate* priv;
6602 // Retrieves the device manager singleton
6604 // The returned instance is owned by Clutter and it should not be
6605 // modified or freed
6606 // RETURNS: the #ClutterDeviceManager singleton.
6607 static DeviceManager* get_default() {
6608 return clutter_device_manager_get_default();
6611 // Retrieves the core #ClutterInputDevice of type @device_type
6613 // Core devices are devices created automatically by the default
6614 // Clutter backend
6616 // returned device is owned by the #ClutterDeviceManager and should
6617 // not be modified or freed
6618 // RETURNS: a #ClutterInputDevice or %NULL. The
6619 // <device_type>: the type of the core device
6620 InputDevice* get_core_device(InputDeviceType device_type) {
6621 return clutter_device_manager_get_core_device(&this, device_type);
6624 // Retrieves the #ClutterInputDevice with the given @device_id
6626 // returned device is owned by the #ClutterDeviceManager and should
6627 // never be modified or freed
6628 // RETURNS: a #ClutterInputDevice or %NULL. The
6629 // <device_id>: the integer id of a device
6630 InputDevice* get_device(int device_id) {
6631 return clutter_device_manager_get_device(&this, device_id);
6634 // Lists all currently registered input devices
6636 // a newly allocated list of #ClutterInputDevice objects. Use
6637 // g_slist_free() to deallocate it when done
6638 GLib2.SList* /*new container*/ list_devices() {
6639 return clutter_device_manager_list_devices(&this);
6642 // Lists all currently registered input devices
6644 // a pointer to the internal list of #ClutterInputDevice objects. The
6645 // returned list is owned by the #ClutterDeviceManager and should never
6646 // be modified or freed
6647 GLib2.SList* peek_devices() {
6648 return clutter_device_manager_peek_devices(&this);
6651 // The ::device-added signal is emitted each time a device has been
6652 // added to the #ClutterDeviceManager
6653 // <device>: the newly added #ClutterInputDevice
6654 extern (C) alias static void function (DeviceManager* this_, InputDevice* device, void* user_data=null) signal_device_added;
6656 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6657 return super_.signal_connect!name(cb, data, cf);
6660 ulong signal_connect(string name:"device-added", CB:signal_device_added)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6661 return signal_connect_data(&this, cast(char*)"device-added",
6662 cast(GObject2.Callback)cb, data, null, cf);
6665 // The ::device-removed signal is emitted each time a device has been
6666 // removed from the #ClutterDeviceManager
6667 // <device>: the removed #ClutterInputDevice
6668 extern (C) alias static void function (DeviceManager* this_, InputDevice* device, void* user_data=null) signal_device_removed;
6669 ulong signal_connect(string name:"device-removed", CB:signal_device_removed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6670 return signal_connect_data(&this, cast(char*)"device-removed",
6671 cast(GObject2.Callback)cb, data, null, cf);
6675 // The #ClutterDeviceManagerClass structure contains only private data
6676 struct DeviceManagerClass /* Version 1.2 */ {
6677 private GObject2.ObjectClass parent_class;
6678 // Unintrospectable functionp: get_devices() / ()
6679 extern (C) GLib2.SList* function (DeviceManager* device_manager) get_devices;
6681 // RETURNS: a #ClutterInputDevice or %NULL. The
6682 // <device_type>: the type of the core device
6683 extern (C) InputDevice* function (DeviceManager* device_manager, InputDeviceType device_type) get_core_device;
6685 // RETURNS: a #ClutterInputDevice or %NULL. The
6686 // <device_id>: the integer id of a device
6687 extern (C) InputDevice* function (DeviceManager* device_manager, int device_id) get_device;
6688 extern (C) void function (DeviceManager* manager, InputDevice* device) add_device;
6689 extern (C) void function (DeviceManager* manager, InputDevice* device) remove_device;
6690 private void*[8] _padding;
6693 struct DeviceManagerPrivate {
6696 enum int Display = 269025113;
6697 enum int Documents = 269025115;
6698 enum int DongSign = 16785579;
6699 enum int Down = 65364;
6701 // The <structname>ClutterDragAction</structname> structure contains only
6702 // private data and should be accessed using the provided API
6703 struct DragAction /* : Action */ /* Version 1.4 */ {
6704 alias parent_instance this;
6705 alias parent_instance super_;
6706 alias parent_instance action;
6707 Action parent_instance;
6708 private DragActionPrivate* priv;
6711 // Creates a new #ClutterDragAction instance
6712 // RETURNS: the newly created #ClutterDragAction
6713 static DragAction* new_() {
6714 return clutter_drag_action_new();
6717 // Retrieves the axis constraint set by clutter_drag_action_set_drag_axis()
6718 // RETURNS: the axis constraint
6719 DragAxis get_drag_axis() {
6720 return clutter_drag_action_get_drag_axis(&this);
6723 // Retrieves the drag handle set by clutter_drag_action_set_drag_handle()
6725 // handle, or %NULL if none was set
6726 // RETURNS: a #ClutterActor, used as the drag
6727 Actor* get_drag_handle() {
6728 return clutter_drag_action_get_drag_handle(&this);
6731 // Retrieves the values set by clutter_drag_action_set_drag_threshold().
6733 // If the #ClutterDragAction:x-drag-threshold property or the
6734 // #ClutterDragAction:y-drag-threshold property have been set to -1 then
6735 // this function will return the default drag threshold value as stored
6736 // by the #ClutterSettings:dnd-drag-threshold property of #ClutterSettings.
6737 // <x_threshold>: return location for the horizontal drag threshold value, in pixels
6738 // <y_threshold>: return location for the vertical drag threshold value, in pixels
6739 void get_drag_threshold(/*out*/ uint* x_threshold, /*out*/ uint* y_threshold) {
6740 clutter_drag_action_get_drag_threshold(&this, x_threshold, y_threshold);
6743 // Retrieves the coordinates, in stage space, of the latest motion
6744 // event during the dragging
6745 // <motion_x>: return location for the latest motion event's X coordinate
6746 // <motion_y>: return location for the latest motion event's Y coordinate
6747 void get_motion_coords(/*out*/ float* motion_x, /*out*/ float* motion_y) {
6748 clutter_drag_action_get_motion_coords(&this, motion_x, motion_y);
6751 // Retrieves the coordinates, in stage space, of the press event
6752 // that started the dragging
6753 // <press_x>: return location for the press event's X coordinate
6754 // <press_y>: return location for the press event's Y coordinate
6755 void get_press_coords(/*out*/ float* press_x, /*out*/ float* press_y) {
6756 clutter_drag_action_get_press_coords(&this, press_x, press_y);
6759 // Restricts the dragging action to a specific axis
6760 // <axis>: the axis to constraint the dragging to
6761 void set_drag_axis(DragAxis axis) {
6762 clutter_drag_action_set_drag_axis(&this, axis);
6765 // Sets the actor to be used as the drag handle.
6766 // <handle>: a #ClutterActor, or %NULL to unset
6767 void set_drag_handle(Actor* handle=null) {
6768 clutter_drag_action_set_drag_handle(&this, handle);
6771 // Sets the horizontal and vertical drag thresholds that must be
6772 // cleared by the pointer before @action can begin the dragging.
6774 // If @x_threshold or @y_threshold are set to -1 then the default
6775 // drag threshold stored in the #ClutterSettings:dnd-drag-threshold
6776 // property of #ClutterSettings will be used.
6777 // <x_threshold>: a distance on the horizontal axis, in pixels, or -1 to use the default drag threshold from #ClutterSettings
6778 // <y_threshold>: a distance on the vertical axis, in pixels, or -1 to use the default drag threshold from #ClutterSettings
6779 void set_drag_threshold(int x_threshold, int y_threshold) {
6780 clutter_drag_action_set_drag_threshold(&this, x_threshold, y_threshold);
6783 // The ::drag-begin signal is emitted when the #ClutterDragAction
6784 // starts the dragging
6786 // The emission of this signal can be delayed by using the
6787 // #ClutterDragAction:x-drag-threshold and
6788 // #ClutterDragAction:y-drag-threshold properties
6789 // <actor>: the #ClutterActor attached to the action
6790 // <event_x>: the X coordinate (in stage space) of the press event
6791 // <event_y>: the Y coordinate (in stage space) of the press event
6792 // <modifiers>: the modifiers of the press event
6793 extern (C) alias static void function (DragAction* this_, Actor* actor, float event_x, float event_y, ModifierType* modifiers, void* user_data=null) signal_drag_begin;
6795 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6796 return super_.signal_connect!name(cb, data, cf);
6799 ulong signal_connect(string name:"drag-begin", CB:signal_drag_begin)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6800 return signal_connect_data(&this, cast(char*)"drag-begin",
6801 cast(GObject2.Callback)cb, data, null, cf);
6804 // The ::drag-end signal is emitted at the end of the dragging,
6805 // when the pointer button's is released
6807 // This signal is emitted if and only if the #ClutterDragAction::drag-begin
6808 // signal has been emitted first
6809 // <actor>: the #ClutterActor attached to the action
6810 // <event_x>: the X coordinate (in stage space) of the release event
6811 // <event_y>: the Y coordinate (in stage space) of the release event
6812 // <modifiers>: the modifiers of the release event
6813 extern (C) alias static void function (DragAction* this_, Actor* actor, float event_x, float event_y, ModifierType* modifiers, void* user_data=null) signal_drag_end;
6814 ulong signal_connect(string name:"drag-end", CB:signal_drag_end)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6815 return signal_connect_data(&this, cast(char*)"drag-end",
6816 cast(GObject2.Callback)cb, data, null, cf);
6819 // The ::drag-motion signal is emitted for each motion event after
6820 // the #ClutterDragAction::drag-begin signal has been emitted.
6822 // The components of the distance between the press event and the
6823 // latest motion event are computed in the actor's coordinate space,
6824 // to take into account eventual transformations. If you want the
6825 // stage coordinates of the latest motion event you can use
6826 // clutter_drag_action_get_motion_coords().
6828 // The default handler of the signal will call clutter_actor_move_by()
6829 // either on @actor or, if set, of #ClutterDragAction:drag-handle using
6830 // the @delta_x and @delta_y components of the dragging motion. If you
6831 // want to override the default behaviour, you can connect to this
6832 // signal and call g_signal_stop_emission_by_name() from within your
6833 // callback.
6834 // <actor>: the #ClutterActor attached to the action
6835 // <delta_x>: the X component of the distance between the press event that began the dragging and the current position of the pointer, as of the latest motion event
6836 // <delta_y>: the Y component of the distance between the press event that began the dragging and the current position of the pointer, as of the latest motion event
6837 extern (C) alias static void function (DragAction* this_, Actor* actor, float delta_x, float delta_y, void* user_data=null) signal_drag_motion;
6838 ulong signal_connect(string name:"drag-motion", CB:signal_drag_motion)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6839 return signal_connect_data(&this, cast(char*)"drag-motion",
6840 cast(GObject2.Callback)cb, data, null, cf);
6845 // The <structname>ClutterDragActionClass</structname> structure contains
6846 // only private data
6847 struct DragActionClass /* Version 1.4 */ {
6848 private ActionClass parent_class;
6849 extern (C) void function (DragAction* action, Actor* actor, float event_x, float event_y, ModifierType modifiers) drag_begin;
6850 extern (C) void function (DragAction* action, Actor* actor, float delta_x, float delta_y) drag_motion;
6851 extern (C) void function (DragAction* action, Actor* actor, float event_x, float event_y, ModifierType modifiers) drag_end;
6852 extern (C) void function () _clutter_drag_action1;
6853 extern (C) void function () _clutter_drag_action2;
6854 extern (C) void function () _clutter_drag_action3;
6855 extern (C) void function () _clutter_drag_action4;
6856 extern (C) void function () _clutter_drag_action5;
6859 struct DragActionPrivate {
6863 // The axis of the constraint that should be applied on the
6864 // dragging action
6865 enum DragAxis /* Version 1.4 */ {
6866 AXIS_NONE = 0,
6867 X_AXIS = 1,
6868 Y_AXIS = 2
6871 // The <structname>ClutterDropAction</structname> structure contains only
6872 // private data and should be accessed using the provided API.
6873 struct DropAction /* : Action */ /* Version 1.8 */ {
6874 alias parent_instance this;
6875 alias parent_instance super_;
6876 alias parent_instance action;
6877 Action parent_instance;
6878 private DropActionPrivate* priv;
6881 // Creates a new #ClutterDropAction.
6883 // Use clutter_actor_add_action() to add the action to a #ClutterActor.
6884 // RETURNS: the newly created #ClutterDropAction
6885 static DropAction* new_() {
6886 return clutter_drop_action_new();
6889 // The ::can-drop signal is emitted when the dragged actor is dropped
6890 // on @actor. The return value of the ::can-drop signal will determine
6891 // whether or not the #ClutterDropAction::drop signal is going to be
6892 // emitted on @action.
6894 // The default implementation of #ClutterDropAction returns %TRUE for
6895 // this signal.
6896 // RETURNS: %TRUE if the drop is accepted, and %FALSE otherwise
6897 // <actor>: the #ClutterActor attached to the @action
6898 // <returns>: %TRUE if the drop is accepted, and %FALSE otherwise
6899 extern (C) alias static c_int function (DropAction* this_, Actor* actor, float returns, float since, void* user_data=null) signal_can_drop;
6901 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6902 return super_.signal_connect!name(cb, data, cf);
6905 ulong signal_connect(string name:"can-drop", CB:signal_can_drop)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6906 return signal_connect_data(&this, cast(char*)"can-drop",
6907 cast(GObject2.Callback)cb, data, null, cf);
6910 // The ::drop signal is emitted when the dragged actor is dropped
6911 // on @actor. This signal is only emitted if at least an handler of
6912 // #ClutterDropAction::can-drop returns %TRUE.
6913 extern (C) alias static void function (DropAction* this_, Actor* object, float p0, float p1, void* user_data=null) signal_drop;
6914 ulong signal_connect(string name:"drop", CB:signal_drop)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6915 return signal_connect_data(&this, cast(char*)"drop",
6916 cast(GObject2.Callback)cb, data, null, cf);
6919 // The ::over-in signal is emitted when the dragged actor crosses
6920 // into @actor.
6921 // <actor>: the #ClutterActor attached to the @action
6922 extern (C) alias static void function (DropAction* this_, Actor* actor, void* user_data=null) signal_over_in;
6923 ulong signal_connect(string name:"over-in", CB:signal_over_in)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6924 return signal_connect_data(&this, cast(char*)"over-in",
6925 cast(GObject2.Callback)cb, data, null, cf);
6928 // The ::over-out signal is emitted when the dragged actor crosses
6929 // outside @actor.
6930 // <actor>: the #ClutterActor attached to the @action
6931 extern (C) alias static void function (DropAction* this_, Actor* actor, void* user_data=null) signal_over_out;
6932 ulong signal_connect(string name:"over-out", CB:signal_over_out)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
6933 return signal_connect_data(&this, cast(char*)"over-out",
6934 cast(GObject2.Callback)cb, data, null, cf);
6939 // The <structname>ClutterDropActionClass</structname> structure contains
6940 // only private data.
6941 struct DropActionClass /* Version 1.8 */ {
6942 private ActionClass parent_class;
6943 extern (C) int function (DropAction* action, Actor* actor, float event_x, float event_y) can_drop;
6944 extern (C) void function (DropAction* action, Actor* actor) over_in;
6945 extern (C) void function (DropAction* action, Actor* actor) over_out;
6946 extern (C) void function (DropAction* action, Actor* actor, float event_x, float event_y) drop;
6947 extern (C) void function () _clutter_drop_action1;
6948 extern (C) void function () _clutter_drop_action2;
6949 extern (C) void function () _clutter_drop_action3;
6950 extern (C) void function () _clutter_drop_action4;
6951 extern (C) void function () _clutter_drop_action5;
6952 extern (C) void function () _clutter_drop_action6;
6953 extern (C) void function () _clutter_drop_action7;
6954 extern (C) void function () _clutter_drop_action8;
6957 struct DropActionPrivate {
6960 enum int Dstroke = 464;
6961 enum int E = 69;
6962 enum int ENG = 957;
6963 enum int ETH = 208;
6964 enum int Eabovedot = 972;
6965 enum int Eacute = 201;
6966 enum int Ebelowdot = 16785080;
6967 enum int Ecaron = 460;
6968 enum int Ecircumflex = 202;
6969 enum int Ecircumflexacute = 16785086;
6970 enum int Ecircumflexbelowdot = 16785094;
6971 enum int Ecircumflexgrave = 16785088;
6972 enum int Ecircumflexhook = 16785090;
6973 enum int Ecircumflextilde = 16785092;
6974 enum int EcuSign = 16785568;
6975 enum int Ediaeresis = 203;
6977 // The #ClutterEffect structure contains only private data and should
6978 // be accessed using the provided API
6979 struct Effect /* : ActorMeta */ /* Version 1.4 */ {
6980 alias parent_instance this;
6981 alias parent_instance super_;
6982 alias parent_instance actormeta;
6983 ActorMeta parent_instance;
6986 // Queues a repaint of the effect. The effect can detect when the ‘paint’
6987 // method is called as a result of this function because it will not
6988 // have the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY flag set. In that case the
6989 // effect is free to assume that the actor has not changed its
6990 // appearance since the last time it was painted so it doesn't need to
6991 // call clutter_actor_continue_paint() if it can draw a cached
6992 // image. This is mostly intended for effects that are using a
6993 // %CoglOffscreen to redirect the actor (such as
6994 // %ClutterOffscreenEffect). In that case the effect can save a bit of
6995 // rendering time by painting the cached texture without causing the
6996 // entire actor to be painted.
6998 // This function can be used by effects that have their own animatable
6999 // parameters. For example, an effect which adds a varying degree of a
7000 // red tint to an actor by redirecting it through a CoglOffscreen
7001 // might have a property to specify the level of tint. When this value
7002 // changes, the underlying actor doesn't need to be redrawn so the
7003 // effect can call clutter_effect_queue_repaint() to make sure the
7004 // effect is repainted.
7006 // Note however that modifying the position of the parent of an actor
7007 // may change the appearance of the actor because its transformation
7008 // matrix would change. In this case a redraw wouldn't be queued on
7009 // the actor itself so the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY would still
7010 // not be set. The effect can detect this case by keeping track of the
7011 // last modelview matrix that was used to render the actor and
7012 // veryifying that it remains the same in the next paint.
7014 // Any other effects that are layered on top of the passed in effect
7015 // will still be passed the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY flag. If
7016 // anything queues a redraw on the actor without specifying an effect
7017 // or with an effect that is lower in the chain of effects than this
7018 // one then that will override this call. In that case this effect
7019 // will instead be called with the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY
7020 // flag set.
7021 void queue_repaint() {
7022 clutter_effect_queue_repaint(&this);
7026 // The #ClutterEffectClass structure contains only private data
7027 struct EffectClass /* Version 1.4 */ {
7028 private ActorMetaClass parent_class;
7029 extern (C) int function (Effect* effect) pre_paint;
7030 extern (C) void function (Effect* effect) post_paint;
7031 extern (C) int function (Effect* effect, PaintVolume* volume) get_paint_volume;
7032 extern (C) void function (Effect* effect, EffectPaintFlags flags) paint;
7033 extern (C) void function (Effect* effect, EffectPaintFlags flags) pick;
7034 extern (C) void function () _clutter_effect4;
7035 extern (C) void function () _clutter_effect5;
7036 extern (C) void function () _clutter_effect6;
7039 // Flags passed to the ‘paint’ or ‘pick’ method of #ClutterEffect.
7040 enum EffectPaintFlags {
7041 ACTOR_DIRTY = 1
7043 enum int Egrave = 200;
7044 enum int Ehook = 16785082;
7045 enum int Eisu_Shift = 65327;
7046 enum int Eisu_toggle = 65328;
7047 enum int Eject = 269025068;
7048 enum int Emacron = 938;
7049 enum int End = 65367;
7050 enum int Eogonek = 458;
7051 enum int Escape = 65307;
7052 enum int Eth = 208;
7053 enum int Etilde = 16785084;
7054 enum int EuroSign = 8364;
7055 // Generic event wrapper.
7056 union Event /* Version 0.2 */ {
7057 private EventType type_;
7058 private AnyEvent any;
7059 private ButtonEvent button;
7060 private KeyEvent key;
7061 private MotionEvent motion;
7062 private ScrollEvent scroll;
7063 private StageStateEvent stage_state;
7064 private CrossingEvent crossing;
7067 // Creates a new #ClutterEvent of the specified type.
7068 // RETURNS: A newly allocated #ClutterEvent.
7069 // <type>: The type of event.
7070 static Event* /*new*/ new_(EventType type) {
7071 return clutter_event_new(type);
7074 // Copies @event.
7075 // RETURNS: A newly allocated #ClutterEvent
7076 Event* /*new*/ copy() {
7077 return clutter_event_copy(&this);
7079 // Frees all resources used by @event.
7080 void free() {
7081 clutter_event_free(&this);
7084 // Retrieves the array of axes values attached to the event.
7085 // RETURNS: an array of axis values
7086 // <n_axes>: return location for the number of axes returned
7087 double* get_axes(/*out*/ uint* n_axes) {
7088 return clutter_event_get_axes(&this, n_axes);
7091 // Retrieves the button number of @event
7092 // RETURNS: the button number
7093 uint get_button() {
7094 return clutter_event_get_button(&this);
7097 // Retrieves the number of clicks of @event
7098 // RETURNS: the click count
7099 uint get_click_count() {
7100 return clutter_event_get_click_count(&this);
7103 // Retrieves the coordinates of @event and puts them into @x and @y.
7104 // <x>: return location for the X coordinate, or %NULL
7105 // <y>: return location for the Y coordinate, or %NULL
7106 void get_coords(/*out*/ float* x, /*out*/ float* y) {
7107 clutter_event_get_coords(&this, x, y);
7110 // Retrieves the #ClutterInputDevice for the event.
7112 // The #ClutterInputDevice structure is completely opaque and should
7113 // be cast to the platform-specific implementation.
7115 // returned device is owned by the #ClutterEvent and it should not
7116 // be unreferenced
7117 // RETURNS: the #ClutterInputDevice or %NULL. The
7118 InputDevice* get_device() {
7119 return clutter_event_get_device(&this);
7122 // Retrieves the events device id if set.
7124 // no specific device set.
7125 // RETURNS: A unique identifier for the device or -1 if the event has
7126 int get_device_id() {
7127 return clutter_event_get_device_id(&this);
7130 // Retrieves the type of the device for @event
7132 // any is set
7133 // RETURNS: the #ClutterInputDeviceType for the device, if
7134 InputDeviceType get_device_type() {
7135 return clutter_event_get_device_type(&this);
7138 // Retrieves the #ClutterEventFlags of @event
7139 // RETURNS: the event flags
7140 EventFlags get_flags() {
7141 return clutter_event_get_flags(&this);
7144 // Retrieves the keycode of the key that caused @event
7145 // RETURNS: The keycode representing the key
7146 ushort get_key_code() {
7147 return clutter_event_get_key_code(&this);
7150 // Retrieves the key symbol of @event
7151 // RETURNS: the key symbol representing the key
7152 uint get_key_symbol() {
7153 return clutter_event_get_key_symbol(&this);
7156 // Retrieves the unicode value for the key that caused @keyev.
7157 // RETURNS: The unicode value representing the key
7158 uint get_key_unicode() {
7159 return clutter_event_get_key_unicode(&this);
7162 // Retrieves the related actor of a crossing event.
7163 // RETURNS: the related #ClutterActor, or %NULL
7164 Actor* get_related() {
7165 return clutter_event_get_related(&this);
7168 // Retrieves the direction of the scrolling of @event
7169 // RETURNS: the scrolling direction
7170 ScrollDirection get_scroll_direction() {
7171 return clutter_event_get_scroll_direction(&this);
7174 // Retrieves the source #ClutterActor the event originated from, or
7175 // NULL if the event has no source.
7176 // RETURNS: a #ClutterActor
7177 Actor* get_source() {
7178 return clutter_event_get_source(&this);
7181 // Retrieves the hardware device that originated the event.
7183 // If you need the virtual device, use clutter_event_get_device().
7185 // If no hardware device originated this event, this function will
7186 // return the same device as clutter_event_get_device().
7188 // or %NULL
7189 // RETURNS: a pointer to a #ClutterInputDevice
7190 InputDevice* get_source_device() {
7191 return clutter_event_get_source_device(&this);
7194 // Retrieves the source #ClutterStage the event originated for, or
7195 // %NULL if the event has no stage.
7196 // RETURNS: a #ClutterStage
7197 Stage* get_stage() {
7198 return clutter_event_get_stage(&this);
7201 // Retrieves the modifier state of the event.
7202 // RETURNS: the modifier state parameter, or 0
7203 ModifierType get_state() {
7204 return clutter_event_get_state(&this);
7207 // Retrieves the time of the event.
7208 // RETURNS: the time of the event, or %CLUTTER_CURRENT_TIME
7209 uint get_time() {
7210 return clutter_event_get_time(&this);
7213 // Puts a copy of the event on the back of the event queue. The event will
7214 // have the %CLUTTER_EVENT_FLAG_SYNTHETIC flag set. If the source is set
7215 // event signals will be emitted for this source and capture/bubbling for
7216 // its ancestors. If the source is not set it will be generated by picking
7217 // or use the actor that currently has keyboard focus
7218 void put() {
7219 clutter_event_put(&this);
7222 // Sets the button number of @event
7223 // <button>: the button number
7224 void set_button(uint button) {
7225 clutter_event_set_button(&this, button);
7228 // Sets the coordinates of the @event.
7229 // <x>: the X coordinate of the event
7230 // <y>: the Y coordinate of the event
7231 void set_coords(float x, float y) {
7232 clutter_event_set_coords(&this, x, y);
7235 // Sets the device for @event.
7236 // <device>: a #ClutterInputDevice, or %NULL
7237 void set_device(InputDevice* device=null) {
7238 clutter_event_set_device(&this, device);
7241 // Sets the #ClutterEventFlags of @event
7242 // <flags>: a binary OR of #ClutterEventFlags values
7243 void set_flags(EventFlags flags) {
7244 clutter_event_set_flags(&this, flags);
7247 // Sets the keycode of the @event.
7248 // <key_code>: the keycode representing the key
7249 void set_key_code(ushort key_code) {
7250 clutter_event_set_key_code(&this, key_code);
7253 // Sets the key symbol of @event.
7254 // <key_sym>: the key symbol representing the key
7255 void set_key_symbol(uint key_sym) {
7256 clutter_event_set_key_symbol(&this, key_sym);
7259 // Sets the Unicode value of @event.
7260 // <key_unicode>: the Unicode value representing the key
7261 void set_key_unicode(uint key_unicode) {
7262 clutter_event_set_key_unicode(&this, key_unicode);
7265 // Sets the related actor of a crossing event
7266 // <actor>: a #ClutterActor or %NULL
7267 void set_related(Actor* actor=null) {
7268 clutter_event_set_related(&this, actor);
7271 // Sets the direction of the scrolling of @event
7272 // <direction>: the scrolling direction
7273 void set_scroll_direction(ScrollDirection direction) {
7274 clutter_event_set_scroll_direction(&this, direction);
7277 // Sets the source #ClutterActor of @event.
7278 // <actor>: a #ClutterActor, or %NULL
7279 void set_source(Actor* actor=null) {
7280 clutter_event_set_source(&this, actor);
7283 // Sets the source #ClutterInputDevice for @event.
7285 // The #ClutterEvent must have been created using clutter_event_new().
7286 // <device>: a #ClutterInputDevice
7287 void set_source_device(InputDevice* device=null) {
7288 clutter_event_set_source_device(&this, device);
7291 // Sets the source #ClutterStage of the event.
7292 // <stage>: a #ClutterStage, or %NULL
7293 void set_stage(Stage* stage=null) {
7294 clutter_event_set_stage(&this, stage);
7297 // Sets the modifier state of the event.
7298 // <state>: the modifier state to set
7299 void set_state(ModifierType state) {
7300 clutter_event_set_state(&this, state);
7303 // Sets the time of the event.
7304 // <time_>: the time of the event
7305 void set_time(uint time_) {
7306 clutter_event_set_time(&this, time_);
7309 // Retrieves the type of the event.
7310 // RETURNS: a #ClutterEventType
7311 EventType type() {
7312 return clutter_event_type(&this);
7315 // Pops an event off the event queue. Applications should not need to call
7316 // this.
7317 // RETURNS: A #ClutterEvent or NULL if queue empty
7318 static Event* /*new*/ get() {
7319 return clutter_event_get();
7322 // Returns a pointer to the first event from the event queue but
7323 // does not remove it.
7324 // RETURNS: A #ClutterEvent or NULL if queue empty.
7325 static Event* peek() {
7326 return clutter_event_peek();
7330 // Flags for the #ClutterEvent
7331 enum EventFlags /* Version 0.6 */ {
7332 NONE = 0,
7333 FLAG_SYNTHETIC = 1
7335 // Types of events.
7336 enum EventType /* Version 0.4 */ {
7337 NOTHING = 0,
7338 KEY_PRESS = 1,
7339 KEY_RELEASE = 2,
7340 MOTION = 3,
7341 ENTER = 4,
7342 LEAVE = 5,
7343 BUTTON_PRESS = 6,
7344 BUTTON_RELEASE = 7,
7345 SCROLL = 8,
7346 STAGE_STATE = 9,
7347 DESTROY_NOTIFY = 10,
7348 CLIENT_MESSAGE = 11,
7349 DELETE = 12
7351 enum int Excel = 269025116;
7352 enum int Execute = 65378;
7353 enum int Explorer = 269025117;
7354 enum int F = 70;
7355 enum int F1 = 65470;
7356 enum int F10 = 65479;
7357 enum int F11 = 65480;
7358 enum int F12 = 65481;
7359 enum int F13 = 65482;
7360 enum int F14 = 65483;
7361 enum int F15 = 65484;
7362 enum int F16 = 65485;
7363 enum int F17 = 65486;
7364 enum int F18 = 65487;
7365 enum int F19 = 65488;
7366 enum int F2 = 65471;
7367 enum int F20 = 65489;
7368 enum int F21 = 65490;
7369 enum int F22 = 65491;
7370 enum int F23 = 65492;
7371 enum int F24 = 65493;
7372 enum int F25 = 65494;
7373 enum int F26 = 65495;
7374 enum int F27 = 65496;
7375 enum int F28 = 65497;
7376 enum int F29 = 65498;
7377 enum int F3 = 65472;
7378 enum int F30 = 65499;
7379 enum int F31 = 65500;
7380 enum int F32 = 65501;
7381 enum int F33 = 65502;
7382 enum int F34 = 65503;
7383 enum int F35 = 65504;
7384 enum int F4 = 65473;
7385 enum int F5 = 65474;
7386 enum int F6 = 65475;
7387 enum int F7 = 65476;
7388 enum int F8 = 65477;
7389 enum int F9 = 65478;
7390 enum int FFrancSign = 16785571;
7391 enum FLAVOUR = "glx";
7392 enum int Fabovedot = 16784926;
7393 enum int Farsi_0 = 16778992;
7394 enum int Farsi_1 = 16778993;
7395 enum int Farsi_2 = 16778994;
7396 enum int Farsi_3 = 16778995;
7397 enum int Farsi_4 = 16778996;
7398 enum int Farsi_5 = 16778997;
7399 enum int Farsi_6 = 16778998;
7400 enum int Farsi_7 = 16778999;
7401 enum int Farsi_8 = 16779000;
7402 enum int Farsi_9 = 16779001;
7403 enum int Farsi_yeh = 16778956;
7404 enum int Favorites = 269025072;
7406 // Runtime flags indicating specific features available via Clutter window
7407 // sysytem and graphics backend.
7408 enum FeatureFlags /* Version 0.4 */ {
7409 TEXTURE_NPOT = 4,
7410 SYNC_TO_VBLANK = 8,
7411 TEXTURE_YUV = 16,
7412 TEXTURE_READ_PIXELS = 32,
7413 STAGE_STATIC = 64,
7414 STAGE_USER_RESIZE = 128,
7415 STAGE_CURSOR = 256,
7416 SHADERS_GLSL = 512,
7417 OFFSCREEN = 1024,
7418 STAGE_MULTIPLE = 2048,
7419 SWAP_EVENTS = 4096
7421 enum int Finance = 269025084;
7422 enum int Find = 65384;
7423 enum int First_Virtual_Screen = 65232;
7425 // The #ClutterFixedLayout structure contains only private data and
7426 // it should be accessed using the provided API
7427 struct FixedLayout /* : LayoutManager */ /* Version 1.2 */ {
7428 alias parent_instance this;
7429 alias parent_instance super_;
7430 alias parent_instance layoutmanager;
7431 LayoutManager parent_instance;
7434 // Creates a new #ClutterFixedLayout
7435 // RETURNS: the newly created #ClutterFixedLayout
7436 static FixedLayout* new_() {
7437 return clutter_fixed_layout_new();
7442 // The #ClutterFixedLayoutClass structure contains only private data
7443 // and it should be accessed using the provided API
7444 struct FixedLayoutClass /* Version 1.2 */ {
7445 private LayoutManagerClass parent_class;
7449 // The #ClutterFlowLayout structure contains only private data
7450 // and should be accessed using the provided API
7451 struct FlowLayout /* : LayoutManager */ /* Version 1.2 */ {
7452 alias parent_instance this;
7453 alias parent_instance super_;
7454 alias parent_instance layoutmanager;
7455 LayoutManager parent_instance;
7456 private FlowLayoutPrivate* priv;
7459 // Creates a new #ClutterFlowLayout with the given @orientation
7460 // RETURNS: the newly created #ClutterFlowLayout
7461 // <orientation>: the orientation of the flow layout
7462 static FlowLayout* new_(FlowOrientation orientation) {
7463 return clutter_flow_layout_new(orientation);
7466 // Retrieves the spacing between columns
7468 // in pixels
7469 // RETURNS: the spacing between columns of the #ClutterFlowLayout,
7470 float get_column_spacing() {
7471 return clutter_flow_layout_get_column_spacing(&this);
7474 // Retrieves the minimum and maximum column widths
7475 // <min_width>: return location for the minimum column width, or %NULL
7476 // <max_width>: return location for the maximum column width, or %NULL
7477 void get_column_width(/*out*/ float* min_width, /*out*/ float* max_width) {
7478 clutter_flow_layout_get_column_width(&this, min_width, max_width);
7481 // Retrieves whether the @layout is homogeneous
7482 // RETURNS: %TRUE if the #ClutterFlowLayout is homogeneous
7483 int get_homogeneous() {
7484 return clutter_flow_layout_get_homogeneous(&this);
7487 // Retrieves the orientation of the @layout
7488 // RETURNS: the orientation of the #ClutterFlowLayout
7489 FlowOrientation get_orientation() {
7490 return clutter_flow_layout_get_orientation(&this);
7493 // Retrieves the minimum and maximum row heights
7494 // <min_height>: return location for the minimum row height, or %NULL
7495 // <max_height>: return location for the maximum row height, or %NULL
7496 void get_row_height(/*out*/ float* min_height, /*out*/ float* max_height) {
7497 clutter_flow_layout_get_row_height(&this, min_height, max_height);
7500 // Retrieves the spacing between rows
7502 // in pixels
7503 // RETURNS: the spacing between rows of the #ClutterFlowLayout,
7504 float get_row_spacing() {
7505 return clutter_flow_layout_get_row_spacing(&this);
7508 // Sets the space between columns, in pixels
7509 // <spacing>: the space between columns
7510 void set_column_spacing(float spacing) {
7511 clutter_flow_layout_set_column_spacing(&this, spacing);
7514 // Sets the minimum and maximum widths that a column can have
7515 // <min_width>: minimum width of a column
7516 // <max_width>: maximum width of a column
7517 void set_column_width(float min_width, float max_width) {
7518 clutter_flow_layout_set_column_width(&this, min_width, max_width);
7521 // Sets whether the @layout should allocate the same space for
7522 // each child
7523 // <homogeneous>: whether the layout should be homogeneous or not
7524 void set_homogeneous(int homogeneous) {
7525 clutter_flow_layout_set_homogeneous(&this, homogeneous);
7528 // Sets the orientation of the flow layout
7530 // The orientation controls the direction used to allocate
7531 // the children: either horizontally or vertically. The
7532 // orientation also controls the direction of the overflowing
7533 // <orientation>: the orientation of the layout
7534 void set_orientation(FlowOrientation orientation) {
7535 clutter_flow_layout_set_orientation(&this, orientation);
7538 // Sets the minimum and maximum heights that a row can have
7539 // <min_height>: the minimum height of a row
7540 // <max_height>: the maximum height of a row
7541 void set_row_height(float min_height, float max_height) {
7542 clutter_flow_layout_set_row_height(&this, min_height, max_height);
7545 // Sets the spacing between rows, in pixels
7546 // <spacing>: the space between rows
7547 void set_row_spacing(float spacing) {
7548 clutter_flow_layout_set_row_spacing(&this, spacing);
7553 // The #ClutterFlowLayoutClass structure contains only private data
7554 // and should be accessed using the provided API
7555 struct FlowLayoutClass /* Version 1.2 */ {
7556 private LayoutManagerClass parent_class;
7559 struct FlowLayoutPrivate {
7563 // The direction of the arrangement of the children inside
7564 // a #ClutterFlowLayout
7565 enum FlowOrientation /* Version 1.2 */ {
7566 HORIZONTAL = 0,
7567 VERTICAL = 1
7569 // Fog settings used to create the depth cueing effect.
7570 struct Fog /* Version 0.6 */ {
7571 float z_near, z_far;
7575 // Runtime flags to change the font quality. To be used with
7576 // clutter_set_font_flags().
7577 enum FontFlags /* Version 1.0 */ {
7578 MIPMAPPING = 1,
7579 HINTING = 2
7581 enum int Forward = 269025063;
7582 enum int FrameBack = 269025181;
7583 enum int FrameForward = 269025182;
7584 enum int G = 71;
7585 enum int Gabovedot = 725;
7586 enum int Game = 269025118;
7587 enum int Gbreve = 683;
7588 enum int Gcaron = 16777702;
7589 enum int Gcedilla = 939;
7590 enum int Gcircumflex = 728;
7591 // The rectangle containing an actor's bounding box, measured in pixels.
7592 struct Geometry {
7593 int x, y;
7594 uint width, height;
7597 // Determines if @geometry0 and geometry1 intersect returning %TRUE if
7598 // they do else %FALSE.
7600 // %FALSE.
7601 // RETURNS: %TRUE of @geometry0 and geometry1 intersect else
7602 // <geometry1>: The second geometry to test
7603 int intersects(Geometry* geometry1) {
7604 return clutter_geometry_intersects(&this, geometry1);
7607 // Find the union of two rectangles represented as #ClutterGeometry.
7608 // <geometry_b>: another #ClutterGeometry
7609 // <result>: location to store the result
7610 void union_(Geometry* geometry_b, /*out*/ Geometry* result) {
7611 clutter_geometry_union(&this, geometry_b, result);
7615 enum int Georgian_an = 16781520;
7616 enum int Georgian_ban = 16781521;
7617 enum int Georgian_can = 16781546;
7618 enum int Georgian_char = 16781549;
7619 enum int Georgian_chin = 16781545;
7620 enum int Georgian_cil = 16781548;
7621 enum int Georgian_don = 16781523;
7622 enum int Georgian_en = 16781524;
7623 enum int Georgian_fi = 16781558;
7624 enum int Georgian_gan = 16781522;
7625 enum int Georgian_ghan = 16781542;
7626 enum int Georgian_hae = 16781552;
7627 enum int Georgian_har = 16781556;
7628 enum int Georgian_he = 16781553;
7629 enum int Georgian_hie = 16781554;
7630 enum int Georgian_hoe = 16781557;
7631 enum int Georgian_in = 16781528;
7632 enum int Georgian_jhan = 16781551;
7633 enum int Georgian_jil = 16781547;
7634 enum int Georgian_kan = 16781529;
7635 enum int Georgian_khar = 16781541;
7636 enum int Georgian_las = 16781530;
7637 enum int Georgian_man = 16781531;
7638 enum int Georgian_nar = 16781532;
7639 enum int Georgian_on = 16781533;
7640 enum int Georgian_par = 16781534;
7641 enum int Georgian_phar = 16781540;
7642 enum int Georgian_qar = 16781543;
7643 enum int Georgian_rae = 16781536;
7644 enum int Georgian_san = 16781537;
7645 enum int Georgian_shin = 16781544;
7646 enum int Georgian_tan = 16781527;
7647 enum int Georgian_tar = 16781538;
7648 enum int Georgian_un = 16781539;
7649 enum int Georgian_vin = 16781525;
7650 enum int Georgian_we = 16781555;
7651 enum int Georgian_xan = 16781550;
7652 enum int Georgian_zen = 16781526;
7653 enum int Georgian_zhar = 16781535;
7655 // The <structname>ClutterGestureAction</structname> structure contains
7656 // only private data and should be accessed using the provided API
7657 struct GestureAction /* : Action */ /* Version 1.8 */ {
7658 alias parent_instance this;
7659 alias parent_instance super_;
7660 alias parent_instance action;
7661 Action parent_instance;
7662 private GestureActionPrivate* priv;
7665 // Creates a new #ClutterGestureAction instance.
7666 // RETURNS: the newly created #ClutterGestureAction
7667 static GestureAction* new_() {
7668 return clutter_gesture_action_new();
7671 // Retrieves the coordinates, in stage space, of the latest motion
7672 // event during the dragging
7673 // <device>: currently unused, set to 0
7674 // <motion_x>: return location for the latest motion event's X coordinate
7675 // <motion_y>: return location for the latest motion event's Y coordinate
7676 void get_motion_coords(uint device, /*out*/ float* motion_x, /*out*/ float* motion_y) {
7677 clutter_gesture_action_get_motion_coords(&this, device, motion_x, motion_y);
7680 // Retrieves the coordinates, in stage space, of the press event
7681 // that started the dragging for an specific pointer device
7682 // <device>: currently unused, set to 0
7683 // <press_x>: return location for the press event's X coordinate
7684 // <press_y>: return location for the press event's Y coordinate
7685 void get_press_coords(uint device, /*out*/ float* press_x, /*out*/ float* press_y) {
7686 clutter_gesture_action_get_press_coords(&this, device, press_x, press_y);
7689 // Retrieves the coordinates, in stage space, of the point where the pointer
7690 // device was last released.
7691 // <device>: currently unused, set to 0
7692 // <release_x>: return location for the X coordinate of the last release
7693 // <release_y>: return location for the Y coordinate of the last release
7694 void get_release_coords(uint device, /*out*/ float* release_x, /*out*/ float* release_y) {
7695 clutter_gesture_action_get_release_coords(&this, device, release_x, release_y);
7698 // The ::gesture_begin signal is emitted when the #ClutterActor to which
7699 // a #ClutterGestureAction has been applied starts receiving a gesture.
7701 // the gesture should be ignored.
7702 // RETURNS: %TRUE if the gesture should start, and %FALSE if
7703 // <actor>: the #ClutterActor attached to the @action
7704 extern (C) alias static c_int function (GestureAction* this_, Actor* actor, void* user_data=null) signal_gesture_begin;
7706 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
7707 return super_.signal_connect!name(cb, data, cf);
7710 ulong signal_connect(string name:"gesture-begin", CB:signal_gesture_begin)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
7711 return signal_connect_data(&this, cast(char*)"gesture-begin",
7712 cast(GObject2.Callback)cb, data, null, cf);
7715 // The ::gesture-cancel signal is emitted when the ongoing gesture gets
7716 // cancelled from the #ClutterGestureAction::gesture-progress signal handler.
7718 // This signal is emitted if and only if the #ClutterGestureAction::gesture-begin
7719 // signal has been emitted first.
7720 // <actor>: the #ClutterActor attached to the @action
7721 extern (C) alias static void function (GestureAction* this_, Actor* actor, void* user_data=null) signal_gesture_cancel;
7722 ulong signal_connect(string name:"gesture-cancel", CB:signal_gesture_cancel)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
7723 return signal_connect_data(&this, cast(char*)"gesture-cancel",
7724 cast(GObject2.Callback)cb, data, null, cf);
7727 // The ::gesture-end signal is emitted at the end of the gesture gesture,
7728 // when the pointer's button is released
7730 // This signal is emitted if and only if the #ClutterGestureAction::gesture-begin
7731 // signal has been emitted first.
7732 // <actor>: the #ClutterActor attached to the @action
7733 extern (C) alias static void function (GestureAction* this_, Actor* actor, void* user_data=null) signal_gesture_end;
7734 ulong signal_connect(string name:"gesture-end", CB:signal_gesture_end)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
7735 return signal_connect_data(&this, cast(char*)"gesture-end",
7736 cast(GObject2.Callback)cb, data, null, cf);
7739 // The ::gesture-progress signal is emitted for each motion event after
7740 // the #ClutterGestureAction::gesture-begin signal has been emitted.
7742 // the gesture should be cancelled.
7743 // RETURNS: %TRUE if the gesture should continue, and %FALSE if
7744 // <actor>: the #ClutterActor attached to the @action
7745 extern (C) alias static c_int function (GestureAction* this_, Actor* actor, void* user_data=null) signal_gesture_progress;
7746 ulong signal_connect(string name:"gesture-progress", CB:signal_gesture_progress)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
7747 return signal_connect_data(&this, cast(char*)"gesture-progress",
7748 cast(GObject2.Callback)cb, data, null, cf);
7753 // The <structname>ClutterGestureClass</structname> structure contains only
7754 // private data.
7755 struct GestureActionClass /* Version 1.8 */ {
7756 private ActionClass parent_class;
7757 extern (C) int function (GestureAction* action, Actor* actor) gesture_begin;
7758 extern (C) int function (GestureAction* action, Actor* actor) gesture_progress;
7759 extern (C) void function (GestureAction* action, Actor* actor) gesture_end;
7760 extern (C) void function (GestureAction* action, Actor* actor) gesture_cancel;
7761 extern (C) void function () _clutter_gesture_action1;
7762 extern (C) void function () _clutter_gesture_action2;
7763 extern (C) void function () _clutter_gesture_action3;
7764 extern (C) void function () _clutter_gesture_action4;
7765 extern (C) void function () _clutter_gesture_action5;
7766 extern (C) void function () _clutter_gesture_action6;
7767 extern (C) void function () _clutter_gesture_action7;
7770 struct GestureActionPrivate {
7773 enum int Go = 269025119;
7775 // Gravity of the scaling operations. When a gravity different than
7776 // %CLUTTER_GRAVITY_NONE is used, an actor is scaled keeping the position
7777 // of the specified portion at the same coordinates.
7778 enum Gravity /* Version 0.2 */ {
7779 NONE = 0,
7780 NORTH = 1,
7781 NORTH_EAST = 2,
7782 EAST = 3,
7783 SOUTH_EAST = 4,
7784 SOUTH = 5,
7785 SOUTH_WEST = 6,
7786 WEST = 7,
7787 NORTH_WEST = 8,
7788 CENTER = 9
7790 enum int Greek_ALPHA = 1985;
7791 enum int Greek_ALPHAaccent = 1953;
7792 enum int Greek_BETA = 1986;
7793 enum int Greek_CHI = 2007;
7794 enum int Greek_DELTA = 1988;
7795 enum int Greek_EPSILON = 1989;
7796 enum int Greek_EPSILONaccent = 1954;
7797 enum int Greek_ETA = 1991;
7798 enum int Greek_ETAaccent = 1955;
7799 enum int Greek_GAMMA = 1987;
7800 enum int Greek_IOTA = 1993;
7801 enum int Greek_IOTAaccent = 1956;
7802 enum int Greek_IOTAdiaeresis = 1957;
7803 enum int Greek_IOTAdieresis = 1957;
7804 enum int Greek_KAPPA = 1994;
7805 enum int Greek_LAMBDA = 1995;
7806 enum int Greek_LAMDA = 1995;
7807 enum int Greek_MU = 1996;
7808 enum int Greek_NU = 1997;
7809 enum int Greek_OMEGA = 2009;
7810 enum int Greek_OMEGAaccent = 1963;
7811 enum int Greek_OMICRON = 1999;
7812 enum int Greek_OMICRONaccent = 1959;
7813 enum int Greek_PHI = 2006;
7814 enum int Greek_PI = 2000;
7815 enum int Greek_PSI = 2008;
7816 enum int Greek_RHO = 2001;
7817 enum int Greek_SIGMA = 2002;
7818 enum int Greek_TAU = 2004;
7819 enum int Greek_THETA = 1992;
7820 enum int Greek_UPSILON = 2005;
7821 enum int Greek_UPSILONaccent = 1960;
7822 enum int Greek_UPSILONdieresis = 1961;
7823 enum int Greek_XI = 1998;
7824 enum int Greek_ZETA = 1990;
7825 enum int Greek_accentdieresis = 1966;
7826 enum int Greek_alpha = 2017;
7827 enum int Greek_alphaaccent = 1969;
7828 enum int Greek_beta = 2018;
7829 enum int Greek_chi = 2039;
7830 enum int Greek_delta = 2020;
7831 enum int Greek_epsilon = 2021;
7832 enum int Greek_epsilonaccent = 1970;
7833 enum int Greek_eta = 2023;
7834 enum int Greek_etaaccent = 1971;
7835 enum int Greek_finalsmallsigma = 2035;
7836 enum int Greek_gamma = 2019;
7837 enum int Greek_horizbar = 1967;
7838 enum int Greek_iota = 2025;
7839 enum int Greek_iotaaccent = 1972;
7840 enum int Greek_iotaaccentdieresis = 1974;
7841 enum int Greek_iotadieresis = 1973;
7842 enum int Greek_kappa = 2026;
7843 enum int Greek_lambda = 2027;
7844 enum int Greek_lamda = 2027;
7845 enum int Greek_mu = 2028;
7846 enum int Greek_nu = 2029;
7847 enum int Greek_omega = 2041;
7848 enum int Greek_omegaaccent = 1979;
7849 enum int Greek_omicron = 2031;
7850 enum int Greek_omicronaccent = 1975;
7851 enum int Greek_phi = 2038;
7852 enum int Greek_pi = 2032;
7853 enum int Greek_psi = 2040;
7854 enum int Greek_rho = 2033;
7855 enum int Greek_sigma = 2034;
7856 enum int Greek_switch = 65406;
7857 enum int Greek_tau = 2036;
7858 enum int Greek_theta = 2024;
7859 enum int Greek_upsilon = 2037;
7860 enum int Greek_upsilonaccent = 1976;
7861 enum int Greek_upsilonaccentdieresis = 1978;
7862 enum int Greek_upsilondieresis = 1977;
7863 enum int Greek_xi = 2030;
7864 enum int Greek_zeta = 2022;
7865 enum int Green = 269025188;
7867 // The #ClutterGroup structure contains only private data
7868 // and should be accessed using the provided API
7869 struct Group /* : Actor */ /* Version 0.1 */ {
7870 alias parent_instance this;
7871 alias parent_instance super_;
7872 alias parent_instance actor;
7873 Actor parent_instance;
7874 private GroupPrivate* priv;
7877 // Create a new #ClutterGroup.
7878 // RETURNS: the newly created #ClutterGroup actor
7879 static Group* new_() {
7880 return clutter_group_new();
7883 // Gets the number of actors held in the group.
7884 // RETURNS: The number of child actors held in the group.
7885 int get_n_children() {
7886 return clutter_group_get_n_children(&this);
7889 // Gets a groups child held at @index_ in stack.
7891 // @index_ is invalid.
7892 // RETURNS: A Clutter actor, or %NULL if
7893 // <index_>: the position of the requested actor.
7894 Actor* get_nth_child(int index_) {
7895 return clutter_group_get_nth_child(&this, index_);
7897 // Removes all children actors from the #ClutterGroup.
7898 void remove_all() {
7899 clutter_group_remove_all(&this);
7903 // The #ClutterGroupClass structure contains only private data
7904 struct GroupClass /* Version 0.1 */ {
7905 private ActorClass parent_class;
7906 extern (C) void function () _clutter_reserved1;
7907 extern (C) void function () _clutter_reserved2;
7908 extern (C) void function () _clutter_reserved3;
7909 extern (C) void function () _clutter_reserved4;
7910 extern (C) void function () _clutter_reserved5;
7911 extern (C) void function () _clutter_reserved6;
7914 struct GroupPrivate {
7917 enum int H = 72;
7918 enum int Hangul = 65329;
7919 enum int Hangul_A = 3775;
7920 enum int Hangul_AE = 3776;
7921 enum int Hangul_AraeA = 3830;
7922 enum int Hangul_AraeAE = 3831;
7923 enum int Hangul_Banja = 65337;
7924 enum int Hangul_Cieuc = 3770;
7925 enum int Hangul_Codeinput = 65335;
7926 enum int Hangul_Dikeud = 3751;
7927 enum int Hangul_E = 3780;
7928 enum int Hangul_EO = 3779;
7929 enum int Hangul_EU = 3793;
7930 enum int Hangul_End = 65331;
7931 enum int Hangul_Hanja = 65332;
7932 enum int Hangul_Hieuh = 3774;
7933 enum int Hangul_I = 3795;
7934 enum int Hangul_Ieung = 3767;
7935 enum int Hangul_J_Cieuc = 3818;
7936 enum int Hangul_J_Dikeud = 3802;
7937 enum int Hangul_J_Hieuh = 3822;
7938 enum int Hangul_J_Ieung = 3816;
7939 enum int Hangul_J_Jieuj = 3817;
7940 enum int Hangul_J_Khieuq = 3819;
7941 enum int Hangul_J_Kiyeog = 3796;
7942 enum int Hangul_J_KiyeogSios = 3798;
7943 enum int Hangul_J_KkogjiDalrinIeung = 3833;
7944 enum int Hangul_J_Mieum = 3811;
7945 enum int Hangul_J_Nieun = 3799;
7946 enum int Hangul_J_NieunHieuh = 3801;
7947 enum int Hangul_J_NieunJieuj = 3800;
7948 enum int Hangul_J_PanSios = 3832;
7949 enum int Hangul_J_Phieuf = 3821;
7950 enum int Hangul_J_Pieub = 3812;
7951 enum int Hangul_J_PieubSios = 3813;
7952 enum int Hangul_J_Rieul = 3803;
7953 enum int Hangul_J_RieulHieuh = 3810;
7954 enum int Hangul_J_RieulKiyeog = 3804;
7955 enum int Hangul_J_RieulMieum = 3805;
7956 enum int Hangul_J_RieulPhieuf = 3809;
7957 enum int Hangul_J_RieulPieub = 3806;
7958 enum int Hangul_J_RieulSios = 3807;
7959 enum int Hangul_J_RieulTieut = 3808;
7960 enum int Hangul_J_Sios = 3814;
7961 enum int Hangul_J_SsangKiyeog = 3797;
7962 enum int Hangul_J_SsangSios = 3815;
7963 enum int Hangul_J_Tieut = 3820;
7964 enum int Hangul_J_YeorinHieuh = 3834;
7965 enum int Hangul_Jamo = 65333;
7966 enum int Hangul_Jeonja = 65336;
7967 enum int Hangul_Jieuj = 3768;
7968 enum int Hangul_Khieuq = 3771;
7969 enum int Hangul_Kiyeog = 3745;
7970 enum int Hangul_KiyeogSios = 3747;
7971 enum int Hangul_KkogjiDalrinIeung = 3827;
7972 enum int Hangul_Mieum = 3761;
7973 enum int Hangul_MultipleCandidate = 65341;
7974 enum int Hangul_Nieun = 3748;
7975 enum int Hangul_NieunHieuh = 3750;
7976 enum int Hangul_NieunJieuj = 3749;
7977 enum int Hangul_O = 3783;
7978 enum int Hangul_OE = 3786;
7979 enum int Hangul_PanSios = 3826;
7980 enum int Hangul_Phieuf = 3773;
7981 enum int Hangul_Pieub = 3762;
7982 enum int Hangul_PieubSios = 3764;
7983 enum int Hangul_PostHanja = 65339;
7984 enum int Hangul_PreHanja = 65338;
7985 enum int Hangul_PreviousCandidate = 65342;
7986 enum int Hangul_Rieul = 3753;
7987 enum int Hangul_RieulHieuh = 3760;
7988 enum int Hangul_RieulKiyeog = 3754;
7989 enum int Hangul_RieulMieum = 3755;
7990 enum int Hangul_RieulPhieuf = 3759;
7991 enum int Hangul_RieulPieub = 3756;
7992 enum int Hangul_RieulSios = 3757;
7993 enum int Hangul_RieulTieut = 3758;
7994 enum int Hangul_RieulYeorinHieuh = 3823;
7995 enum int Hangul_Romaja = 65334;
7996 enum int Hangul_SingleCandidate = 65340;
7997 enum int Hangul_Sios = 3765;
7998 enum int Hangul_Special = 65343;
7999 enum int Hangul_SsangDikeud = 3752;
8000 enum int Hangul_SsangJieuj = 3769;
8001 enum int Hangul_SsangKiyeog = 3746;
8002 enum int Hangul_SsangPieub = 3763;
8003 enum int Hangul_SsangSios = 3766;
8004 enum int Hangul_Start = 65330;
8005 enum int Hangul_SunkyeongeumMieum = 3824;
8006 enum int Hangul_SunkyeongeumPhieuf = 3828;
8007 enum int Hangul_SunkyeongeumPieub = 3825;
8008 enum int Hangul_Tieut = 3772;
8009 enum int Hangul_U = 3788;
8010 enum int Hangul_WA = 3784;
8011 enum int Hangul_WAE = 3785;
8012 enum int Hangul_WE = 3790;
8013 enum int Hangul_WEO = 3789;
8014 enum int Hangul_WI = 3791;
8015 enum int Hangul_YA = 3777;
8016 enum int Hangul_YAE = 3778;
8017 enum int Hangul_YE = 3782;
8018 enum int Hangul_YEO = 3781;
8019 enum int Hangul_YI = 3794;
8020 enum int Hangul_YO = 3787;
8021 enum int Hangul_YU = 3792;
8022 enum int Hangul_YeorinHieuh = 3829;
8023 enum int Hangul_switch = 65406;
8024 enum int Hankaku = 65321;
8025 enum int Hcircumflex = 678;
8026 enum int Hebrew_switch = 65406;
8027 enum int Help = 65386;
8028 enum int Henkan = 65315;
8029 enum int Henkan_Mode = 65315;
8030 enum int Hibernate = 269025192;
8031 enum int Hiragana = 65317;
8032 enum int Hiragana_Katakana = 65319;
8033 enum int History = 269025079;
8034 enum int Home = 65360;
8035 enum int HomePage = 269025048;
8036 enum int HotLinks = 269025082;
8037 enum int Hstroke = 673;
8038 enum int Hyper_L = 65517;
8039 enum int Hyper_R = 65518;
8040 enum int I = 73;
8041 enum int ISO_Center_Object = 65075;
8042 enum int ISO_Continuous_Underline = 65072;
8043 enum int ISO_Discontinuous_Underline = 65073;
8044 enum int ISO_Emphasize = 65074;
8045 enum int ISO_Enter = 65076;
8046 enum int ISO_Fast_Cursor_Down = 65071;
8047 enum int ISO_Fast_Cursor_Left = 65068;
8048 enum int ISO_Fast_Cursor_Right = 65069;
8049 enum int ISO_Fast_Cursor_Up = 65070;
8050 enum int ISO_First_Group = 65036;
8051 enum int ISO_First_Group_Lock = 65037;
8052 enum int ISO_Group_Latch = 65030;
8053 enum int ISO_Group_Lock = 65031;
8054 enum int ISO_Group_Shift = 65406;
8055 enum int ISO_Last_Group = 65038;
8056 enum int ISO_Last_Group_Lock = 65039;
8057 enum int ISO_Left_Tab = 65056;
8058 enum int ISO_Level2_Latch = 65026;
8059 enum int ISO_Level3_Latch = 65028;
8060 enum int ISO_Level3_Lock = 65029;
8061 enum int ISO_Level3_Shift = 65027;
8062 enum int ISO_Level5_Latch = 65042;
8063 enum int ISO_Level5_Lock = 65043;
8064 enum int ISO_Level5_Shift = 65041;
8065 enum int ISO_Lock = 65025;
8066 enum int ISO_Move_Line_Down = 65058;
8067 enum int ISO_Move_Line_Up = 65057;
8068 enum int ISO_Next_Group = 65032;
8069 enum int ISO_Next_Group_Lock = 65033;
8070 enum int ISO_Partial_Line_Down = 65060;
8071 enum int ISO_Partial_Line_Up = 65059;
8072 enum int ISO_Partial_Space_Left = 65061;
8073 enum int ISO_Partial_Space_Right = 65062;
8074 enum int ISO_Prev_Group = 65034;
8075 enum int ISO_Prev_Group_Lock = 65035;
8076 enum int ISO_Release_Both_Margins = 65067;
8077 enum int ISO_Release_Margin_Left = 65065;
8078 enum int ISO_Release_Margin_Right = 65066;
8079 enum int ISO_Set_Margin_Left = 65063;
8080 enum int ISO_Set_Margin_Right = 65064;
8081 enum int Iabovedot = 681;
8082 enum int Iacute = 205;
8083 enum int Ibelowdot = 16785098;
8084 enum int Ibreve = 16777516;
8085 enum int Icircumflex = 206;
8086 enum int Idiaeresis = 207;
8087 enum int Igrave = 204;
8088 enum int Ihook = 16785096;
8089 enum int Imacron = 975;
8090 // Error conditions returned by clutter_init() and clutter_init_with_args().
8091 enum InitError /* Version 0.2 */ {
8092 SUCCESS = 1,
8093 ERROR_UNKNOWN = 0,
8094 ERROR_THREADS = -1,
8095 ERROR_BACKEND = -2,
8096 ERROR_INTERNAL = -3
8098 // The type of axes Clutter recognizes on a #ClutterInputDevice
8099 enum InputAxis /* Version 1.6 */ {
8100 IGNORE = 0,
8101 X = 1,
8102 Y = 2,
8103 PRESSURE = 3,
8104 XTILT = 4,
8105 YTILT = 5,
8106 WHEEL = 6
8109 // Generic representation of an input device. The actual contents of this
8110 // structure depend on the backend used.
8111 struct InputDevice /* : GObject.Object */ {
8112 alias method_parent this;
8113 alias method_parent super_;
8114 alias method_parent object;
8115 GObject2.Object method_parent;
8118 // Retrieves a pointer to the #ClutterInputDevice that has been
8119 // associated to @device.
8121 // If the #ClutterInputDevice:device-mode property of @device is
8122 // set to %CLUTTER_INPUT_MODE_MASTER, this function will return
8123 // %NULL.
8124 // RETURNS: a #ClutterInputDevice, or %NULL
8125 InputDevice* get_associated_device() {
8126 return clutter_input_device_get_associated_device(&this);
8129 // Retrieves the type of axis on @device at the given index.
8130 // RETURNS: the axis type
8131 // <index_>: the index of the axis
8132 InputAxis get_axis(uint index_) {
8133 return clutter_input_device_get_axis(&this, index_);
8136 // Extracts the value of the given @axis of a #ClutterInputDevice from
8137 // an array of axis values.
8139 // An example of typical usage for this function is:
8141 // |[
8142 // ClutterInputDevice *device = clutter_event_get_device (event);
8143 // gdouble *axes = clutter_event_get_axes (event, NULL);
8144 // gdouble pressure_value = 0;
8146 // clutter_input_device_get_axis_value (device, axes,
8147 // CLUTTER_INPUT_AXIS_PRESSURE,
8148 // &amp;pressure_value);
8149 // ]|
8150 // RETURNS: %TRUE if the value was set, and %FALSE otherwise
8151 // <axes>: an array of axes values, typically coming from clutter_event_get_axes()
8152 // <axis>: the axis to extract
8153 // <value>: return location for the axis value
8154 int get_axis_value(double* axes, InputAxis axis, /*out*/ double* value) {
8155 return clutter_input_device_get_axis_value(&this, axes, axis, value);
8158 // Retrieves the latest coordinates of the pointer of @device
8159 // <x>: return location for the X coordinate
8160 // <y>: return location for the Y coordinate
8161 void get_device_coords(/*out*/ int* x, /*out*/ int* y) {
8162 clutter_input_device_get_device_coords(&this, x, y);
8165 // Retrieves the unique identifier of @device
8166 // RETURNS: the identifier of the device
8167 int get_device_id() {
8168 return clutter_input_device_get_device_id(&this);
8171 // Retrieves the #ClutterInputMode of @device.
8172 // RETURNS: the device mode
8173 InputMode get_device_mode() {
8174 return clutter_input_device_get_device_mode(&this);
8177 // Retrieves the name of the @device
8179 // is owned by the #ClutterInputDevice and should never be modified
8180 // or freed
8181 // RETURNS: the name of the device, or %NULL. The returned string
8182 char* get_device_name() {
8183 return clutter_input_device_get_device_name(&this);
8186 // Retrieves the type of @device
8187 // RETURNS: the type of the device
8188 InputDeviceType get_device_type() {
8189 return clutter_input_device_get_device_type(&this);
8192 // Retrieves whether @device is enabled.
8193 // RETURNS: %TRUE if the device is enabled
8194 int get_enabled() {
8195 return clutter_input_device_get_enabled(&this);
8198 // Retrieves whether @device has a pointer that follows the
8199 // device motion.
8200 // RETURNS: %TRUE if the device has a cursor
8201 int get_has_cursor() {
8202 return clutter_input_device_get_has_cursor(&this);
8205 // Retrieves the key set using clutter_input_device_set_key()
8206 // RETURNS: %TRUE if a key was set at the given index
8207 // <index_>: the index of the key
8208 // <keyval>: return location for the keyval at @index_
8209 // <modifiers>: return location for the modifiers at @index_
8210 int get_key(uint index_, /*out*/ uint* keyval, /*out*/ ModifierType* modifiers) {
8211 return clutter_input_device_get_key(&this, index_, keyval, modifiers);
8214 // Retrieves the number of axes available on @device.
8215 // RETURNS: the number of axes on the device
8216 uint get_n_axes() {
8217 return clutter_input_device_get_n_axes(&this);
8220 // Retrieves the number of keys registered for @device.
8221 // RETURNS: the number of registered keys
8222 uint get_n_keys() {
8223 return clutter_input_device_get_n_keys(&this);
8226 // Retrieves the #ClutterActor underneath the pointer of @device
8227 // RETURNS: a pointer to the #ClutterActor or %NULL
8228 Actor* get_pointer_actor() {
8229 return clutter_input_device_get_pointer_actor(&this);
8232 // Retrieves the #ClutterStage underneath the pointer of @device
8233 // RETURNS: a pointer to the #ClutterStage or %NULL
8234 Stage* get_pointer_stage() {
8235 return clutter_input_device_get_pointer_stage(&this);
8238 // Retrieves the slave devices attached to @device.
8240 // list of #ClutterInputDevice, or %NULL. The contents of the list are
8241 // owned by the device. Use g_list_free() when done
8242 // RETURNS: a
8243 GLib2.List* /*new container*/ get_slave_devices() {
8244 return clutter_input_device_get_slave_devices(&this);
8247 // Enables or disables a #ClutterInputDevice.
8249 // Only devices with a #ClutterInputDevice:device-mode property set
8250 // to %CLUTTER_INPUT_MODE_SLAVE or %CLUTTER_INPUT_MODE_FLOATING can
8251 // be disabled.
8252 // <enabled>: %TRUE to enable the @device
8253 void set_enabled(int enabled) {
8254 clutter_input_device_set_enabled(&this, enabled);
8257 // Sets the keyval and modifiers at the given @index_ for @device.
8259 // Clutter will use the keyval and modifiers set when filling out
8260 // an event coming from the same input device.
8261 // <index_>: the index of the key
8262 // <keyval>: the keyval
8263 // <modifiers>: a bitmask of modifiers
8264 void set_key(uint index_, uint keyval, ModifierType modifiers) {
8265 clutter_input_device_set_key(&this, index_, keyval, modifiers);
8268 // Forcibly updates the state of the @device using a #ClutterEvent
8270 // This function should never be used by applications: it is meant
8271 // for integration with embedding toolkits, like clutter-gtk
8273 // Embedding toolkits that disable the event collection inside Clutter
8274 // need to use this function to update the state of input devices depending
8275 // on a #ClutterEvent that they are going to submit to the event handling code
8276 // in Clutter though clutter_do_event(). Since the input devices hold the state
8277 // that is going to be used to fill in fields like the #ClutterButtonEvent
8278 // click count, or to emit synthesized events like %CLUTTER_ENTER and
8279 // %CLUTTER_LEAVE, it is necessary for embedding toolkits to also be
8280 // responsible of updating the input device state.
8282 // For instance, this might be the code to translate an embedding toolkit
8283 // native motion notification into a Clutter #ClutterMotionEvent and ask
8284 // Clutter to process it:
8286 // |[
8287 // ClutterEvent c_event;
8289 // translate_native_event_to_clutter (native_event, &amp;c_event);
8291 // clutter_do_event (&amp;c_event);
8292 // ]|
8294 // Before letting clutter_do_event() process the event, it is necessary to call
8295 // clutter_input_device_update_from_event():
8297 // |[
8298 // ClutterEvent c_event;
8299 // ClutterDeviceManager *manager;
8300 // ClutterInputDevice *device;
8302 // translate_native_event_to_clutter (native_event, &amp;c_event);
8304 // /&ast; get the device manager &ast;/
8305 // manager = clutter_device_manager_get_default ();
8307 // /&ast; use the default Core Pointer that Clutter
8308 // &ast; backends register by default
8309 // &ast;/
8310 // device = clutter_device_manager_get_core_device (manager, %CLUTTER_POINTER_DEVICE);
8312 // /&ast; update the state of the input device &ast;/
8313 // clutter_input_device_update_from_event (device, &amp;c_event, FALSE);
8315 // clutter_do_event (&amp;c_event);
8316 // ]|
8318 // The @update_stage boolean argument should be used when the input device
8319 // enters and leaves a #ClutterStage; it will use the #ClutterStage field
8320 // of the passed @event to update the stage associated to the input device.
8321 // <event>: a #ClutterEvent
8322 // <update_stage>: whether to update the #ClutterStage of the @device using the stage of the event
8323 void update_from_event(Event* event, int update_stage) {
8324 clutter_input_device_update_from_event(&this, event, update_stage);
8328 struct InputDeviceClass {
8332 // The types of input devices available.
8334 // The #ClutterInputDeviceType enumeration can be extended at later
8335 // date; not every platform supports every input device type.
8336 enum InputDeviceType /* Version 1.0 */ {
8337 POINTER_DEVICE = 0,
8338 KEYBOARD_DEVICE = 1,
8339 EXTENSION_DEVICE = 2,
8340 JOYSTICK_DEVICE = 3,
8341 TABLET_DEVICE = 4,
8342 TOUCHPAD_DEVICE = 5,
8343 TOUCHSCREEN_DEVICE = 6,
8344 PEN_DEVICE = 7,
8345 ERASER_DEVICE = 8,
8346 CURSOR_DEVICE = 9,
8347 N_DEVICE_TYPES = 10
8349 // The mode for input devices available.
8350 enum InputMode /* Version 1.6 */ {
8351 MASTER = 0,
8352 SLAVE = 1,
8353 FLOATING = 2
8355 enum int Insert = 65379;
8356 // The mode of interpolation between key frames
8357 enum Interpolation /* Version 1.2 */ {
8358 LINEAR = 0,
8359 CUBIC = 1
8362 // The #ClutterInterval structure contains only private data and should
8363 // be accessed using the provided functions.
8364 struct Interval /* : GObject.InitiallyUnowned */ /* Version 1.0 */ {
8365 alias parent_instance this;
8366 alias parent_instance super_;
8367 alias parent_instance initiallyunowned;
8368 GObject2.InitiallyUnowned parent_instance;
8369 private IntervalPrivate* priv;
8372 // Unintrospectable constructor: new() / clutter_interval_new()
8373 // Creates a new #ClutterInterval holding values of type @gtype.
8375 // This function avoids using a #GValue for the initial and final values
8376 // of the interval:
8378 // |[
8379 // interval = clutter_interval_new (G_TYPE_FLOAT, 0.0, 1.0);
8380 // interval = clutter_interval_new (G_TYPE_BOOLEAN, FALSE, TRUE);
8381 // interval = clutter_interval_new (G_TYPE_INT, 0, 360);
8382 // ]|
8383 // RETURNS: the newly created #ClutterInterval
8384 // <gtype>: the type of the values in the interval
8385 alias clutter_interval_new new_; // Variadic
8387 // Creates a new #ClutterInterval of type @gtype, between @initial
8388 // and @final.
8390 // This function is useful for language bindings.
8391 // RETURNS: the newly created #ClutterInterval
8392 // <gtype>: the type of the values in the interval
8393 // <initial>: a #GValue holding the initial value of the interval
8394 // <final>: a #GValue holding the final value of the interval
8395 static Interval* new_with_values(Type gtype, GObject2.Value* initial, GObject2.Value* final) {
8396 return clutter_interval_new_with_values(gtype, initial, final);
8399 // Unintrospectable function: register_progress_func() / clutter_interval_register_progress_func()
8400 // Sets the progress function for a given @value_type, like:
8402 // |[
8403 // clutter_interval_register_progress_func (MY_TYPE_FOO,
8404 // my_foo_progress);
8405 // ]|
8407 // Whenever a #ClutterInterval instance using the default
8408 // #ClutterInterval::compute_value implementation is set as an
8409 // interval between two #GValue of type @value_type, it will call
8410 // @func to establish the value depending on the given progress,
8411 // for instance:
8413 // |[
8414 // static gboolean
8415 // my_int_progress (const GValue *a,
8416 // const GValue *b,
8417 // gdouble progress,
8418 // GValue *retval)
8419 // {
8420 // gint ia = g_value_get_int (a);
8421 // gint ib = g_value_get_int (b);
8422 // gint res = factor * (ib - ia) + ia;
8424 // g_value_set_int (retval, res);
8426 // return TRUE;
8427 // }
8429 // clutter_interval_register_progress_func (G_TYPE_INT, my_int_progress);
8430 // ]|
8432 // To unset a previously set progress function of a #GType, pass %NULL
8433 // for @func.
8434 // <value_type>: a #GType
8435 // <func>: a #ClutterProgressFunc, or %NULL to unset a previously set progress function
8436 static void register_progress_func(Type value_type, ProgressFunc func) {
8437 clutter_interval_register_progress_func(value_type, func);
8440 // Creates a copy of @interval.
8441 // RETURNS: the newly created #ClutterInterval
8442 Interval* /*new*/ clone() {
8443 return clutter_interval_clone(&this);
8446 // Computes the value between the @interval boundaries given the
8447 // progress @factor
8449 // Unlike clutter_interval_compute_value(), this function will
8450 // return a const pointer to the computed value
8452 // You should use this function if you immediately pass the computed
8453 // value to another function that makes a copy of it, like
8454 // g_object_set_property()
8456 // or %NULL if the computation was not successfull
8457 // RETURNS: a pointer to the computed value,
8458 // <factor>: the progress factor, between 0 and 1
8459 GObject2.Value* compute(double factor) {
8460 return clutter_interval_compute(&this, factor);
8463 // Computes the value between the @interval boundaries given the
8464 // progress @factor and copies it into @value.
8465 // RETURNS: %TRUE if the operation was successful
8466 // <factor>: the progress factor, between 0 and 1
8467 // <value>: return location for an initialized #GValue
8468 int compute_value(double factor, /*out*/ GObject2.Value* value) {
8469 return clutter_interval_compute_value(&this, factor, value);
8472 // Retrieves the final value of @interval and copies
8473 // it into @value.
8475 // The passed #GValue must be initialized to the value held by
8476 // the #ClutterInterval.
8477 // <value>: a #GValue
8478 void get_final_value(/*out*/ GObject2.Value* value) {
8479 clutter_interval_get_final_value(&this, value);
8482 // Retrieves the initial value of @interval and copies
8483 // it into @value.
8485 // The passed #GValue must be initialized to the value held by
8486 // the #ClutterInterval.
8487 // <value>: a #GValue
8488 void get_initial_value(/*out*/ GObject2.Value* value) {
8489 clutter_interval_get_initial_value(&this, value);
8492 // Unintrospectable method: get_interval() / clutter_interval_get_interval()
8493 // Variable arguments wrapper for clutter_interval_get_initial_value()
8494 // and clutter_interval_get_final_value() that avoids using the
8495 // #GValue arguments:
8497 // |[
8498 // gint a = 0, b = 0;
8499 // clutter_interval_get_interval (interval, &a, &b);
8500 // ]|
8502 // This function is meant for the convenience of the C API; bindings
8503 // should reimplement this function using the #GValue-based API.
8504 /+ Not available -- variadic methods unsupported - use the C function directly.
8505 alias clutter_interval_get_interval get_interval; // Variadic
8508 // Retrieves the #GType of the values inside @interval.
8509 // RETURNS: the type of the value, or G_TYPE_INVALID
8510 Type get_value_type() {
8511 return clutter_interval_get_value_type(&this);
8514 // Gets the pointer to the final value of @interval
8516 // The value is owned by the #ClutterInterval and it should not be
8517 // modified or freed
8518 // RETURNS: the final value of the interval.
8519 GObject2.Value* peek_final_value() {
8520 return clutter_interval_peek_final_value(&this);
8523 // Gets the pointer to the initial value of @interval
8525 // The value is owned by the #ClutterInterval and it should not be
8526 // modified or freed
8527 // RETURNS: the initial value of the interval.
8528 GObject2.Value* peek_initial_value() {
8529 return clutter_interval_peek_initial_value(&this);
8532 // Sets the final value of @interval to @value. The value is
8533 // copied inside the #ClutterInterval.
8534 // <value>: a #GValue
8535 void set_final_value(GObject2.Value* value) {
8536 clutter_interval_set_final_value(&this, value);
8539 // Sets the initial value of @interval to @value. The value is copied
8540 // inside the #ClutterInterval.
8541 // <value>: a #GValue
8542 void set_initial_value(GObject2.Value* value) {
8543 clutter_interval_set_initial_value(&this, value);
8546 // Unintrospectable method: set_interval() / clutter_interval_set_interval()
8547 // Variable arguments wrapper for clutter_interval_set_initial_value()
8548 // and clutter_interval_set_final_value() that avoids using the
8549 // #GValue arguments:
8551 // |[
8552 // clutter_interval_set_interval (interval, 0, 50);
8553 // clutter_interval_set_interval (interval, 1.0, 0.0);
8554 // clutter_interval_set_interval (interval, FALSE, TRUE);
8555 // ]|
8557 // This function is meant for the convenience of the C API; bindings
8558 // should reimplement this function using the #GValue-based API.
8559 /+ Not available -- variadic methods unsupported - use the C function directly.
8560 alias clutter_interval_set_interval set_interval; // Variadic
8563 // Validates the initial and final values of @interval against
8564 // a #GParamSpec.
8565 // RETURNS: %TRUE if the #ClutterInterval is valid, %FALSE otherwise
8566 // <pspec>: a #GParamSpec
8567 int validate(GObject2.ParamSpec* pspec) {
8568 return clutter_interval_validate(&this, pspec);
8572 // The #ClutterIntervalClass contains only private data.
8573 struct IntervalClass /* Version 1.0 */ {
8574 private GObject2.InitiallyUnownedClass parent_class;
8576 // RETURNS: %TRUE if the #ClutterInterval is valid, %FALSE otherwise
8577 // <pspec>: a #GParamSpec
8578 extern (C) int function (Interval* interval, GObject2.ParamSpec* pspec) validate;
8580 // RETURNS: %TRUE if the operation was successful
8581 // <factor>: the progress factor, between 0 and 1
8582 // <value>: return location for an initialized #GValue
8583 extern (C) int function (Interval* interval, double factor, /*out*/ GObject2.Value* value) compute_value;
8584 extern (C) void function () _clutter_reserved1;
8585 extern (C) void function () _clutter_reserved2;
8586 extern (C) void function () _clutter_reserved3;
8587 extern (C) void function () _clutter_reserved4;
8588 extern (C) void function () _clutter_reserved5;
8589 extern (C) void function () _clutter_reserved6;
8592 struct IntervalPrivate {
8595 enum int Iogonek = 967;
8596 enum int Itilde = 933;
8597 enum int J = 74;
8598 enum int Jcircumflex = 684;
8599 enum int K = 75;
8600 enum int KEY_0 = 48;
8601 enum int KEY_1 = 49;
8602 enum int KEY_2 = 50;
8603 enum int KEY_3 = 51;
8604 enum int KEY_3270_AltCursor = 64784;
8605 enum int KEY_3270_Attn = 64782;
8606 enum int KEY_3270_BackTab = 64773;
8607 enum int KEY_3270_ChangeScreen = 64793;
8608 enum int KEY_3270_Copy = 64789;
8609 enum int KEY_3270_CursorBlink = 64783;
8610 enum int KEY_3270_CursorSelect = 64796;
8611 enum int KEY_3270_DeleteWord = 64794;
8612 enum int KEY_3270_Duplicate = 64769;
8613 enum int KEY_3270_Enter = 64798;
8614 enum int KEY_3270_EraseEOF = 64774;
8615 enum int KEY_3270_EraseInput = 64775;
8616 enum int KEY_3270_ExSelect = 64795;
8617 enum int KEY_3270_FieldMark = 64770;
8618 enum int KEY_3270_Ident = 64787;
8619 enum int KEY_3270_Jump = 64786;
8620 enum int KEY_3270_KeyClick = 64785;
8621 enum int KEY_3270_Left2 = 64772;
8622 enum int KEY_3270_PA1 = 64778;
8623 enum int KEY_3270_PA2 = 64779;
8624 enum int KEY_3270_PA3 = 64780;
8625 enum int KEY_3270_Play = 64790;
8626 enum int KEY_3270_PrintScreen = 64797;
8627 enum int KEY_3270_Quit = 64777;
8628 enum int KEY_3270_Record = 64792;
8629 enum int KEY_3270_Reset = 64776;
8630 enum int KEY_3270_Right2 = 64771;
8631 enum int KEY_3270_Rule = 64788;
8632 enum int KEY_3270_Setup = 64791;
8633 enum int KEY_3270_Test = 64781;
8634 enum int KEY_4 = 52;
8635 enum int KEY_5 = 53;
8636 enum int KEY_6 = 54;
8637 enum int KEY_7 = 55;
8638 enum int KEY_8 = 56;
8639 enum int KEY_9 = 57;
8640 enum int KEY_A = 65;
8641 enum int KEY_AE = 198;
8642 enum int KEY_Aacute = 193;
8643 enum int KEY_Abelowdot = 16785056;
8644 enum int KEY_Abreve = 451;
8645 enum int KEY_Abreveacute = 16785070;
8646 enum int KEY_Abrevebelowdot = 16785078;
8647 enum int KEY_Abrevegrave = 16785072;
8648 enum int KEY_Abrevehook = 16785074;
8649 enum int KEY_Abrevetilde = 16785076;
8650 enum int KEY_AccessX_Enable = 65136;
8651 enum int KEY_AccessX_Feedback_Enable = 65137;
8652 enum int KEY_Acircumflex = 194;
8653 enum int KEY_Acircumflexacute = 16785060;
8654 enum int KEY_Acircumflexbelowdot = 16785068;
8655 enum int KEY_Acircumflexgrave = 16785062;
8656 enum int KEY_Acircumflexhook = 16785064;
8657 enum int KEY_Acircumflextilde = 16785066;
8658 enum int KEY_AddFavorite = 269025081;
8659 enum int KEY_Adiaeresis = 196;
8660 enum int KEY_Agrave = 192;
8661 enum int KEY_Ahook = 16785058;
8662 enum int KEY_Alt_L = 65513;
8663 enum int KEY_Alt_R = 65514;
8664 enum int KEY_Amacron = 960;
8665 enum int KEY_Aogonek = 417;
8666 enum int KEY_ApplicationLeft = 269025104;
8667 enum int KEY_ApplicationRight = 269025105;
8668 enum int KEY_Arabic_0 = 16778848;
8669 enum int KEY_Arabic_1 = 16778849;
8670 enum int KEY_Arabic_2 = 16778850;
8671 enum int KEY_Arabic_3 = 16778851;
8672 enum int KEY_Arabic_4 = 16778852;
8673 enum int KEY_Arabic_5 = 16778853;
8674 enum int KEY_Arabic_6 = 16778854;
8675 enum int KEY_Arabic_7 = 16778855;
8676 enum int KEY_Arabic_8 = 16778856;
8677 enum int KEY_Arabic_9 = 16778857;
8678 enum int KEY_Arabic_ain = 1497;
8679 enum int KEY_Arabic_alef = 1479;
8680 enum int KEY_Arabic_alefmaksura = 1513;
8681 enum int KEY_Arabic_beh = 1480;
8682 enum int KEY_Arabic_comma = 1452;
8683 enum int KEY_Arabic_dad = 1494;
8684 enum int KEY_Arabic_dal = 1487;
8685 enum int KEY_Arabic_damma = 1519;
8686 enum int KEY_Arabic_dammatan = 1516;
8687 enum int KEY_Arabic_ddal = 16778888;
8688 enum int KEY_Arabic_farsi_yeh = 16778956;
8689 enum int KEY_Arabic_fatha = 1518;
8690 enum int KEY_Arabic_fathatan = 1515;
8691 enum int KEY_Arabic_feh = 1505;
8692 enum int KEY_Arabic_fullstop = 16778964;
8693 enum int KEY_Arabic_gaf = 16778927;
8694 enum int KEY_Arabic_ghain = 1498;
8695 enum int KEY_Arabic_ha = 1511;
8696 enum int KEY_Arabic_hah = 1485;
8697 enum int KEY_Arabic_hamza = 1473;
8698 enum int KEY_Arabic_hamza_above = 16778836;
8699 enum int KEY_Arabic_hamza_below = 16778837;
8700 enum int KEY_Arabic_hamzaonalef = 1475;
8701 enum int KEY_Arabic_hamzaonwaw = 1476;
8702 enum int KEY_Arabic_hamzaonyeh = 1478;
8703 enum int KEY_Arabic_hamzaunderalef = 1477;
8704 enum int KEY_Arabic_heh = 1511;
8705 enum int KEY_Arabic_heh_doachashmee = 16778942;
8706 enum int KEY_Arabic_heh_goal = 16778945;
8707 enum int KEY_Arabic_jeem = 1484;
8708 enum int KEY_Arabic_jeh = 16778904;
8709 enum int KEY_Arabic_kaf = 1507;
8710 enum int KEY_Arabic_kasra = 1520;
8711 enum int KEY_Arabic_kasratan = 1517;
8712 enum int KEY_Arabic_keheh = 16778921;
8713 enum int KEY_Arabic_khah = 1486;
8714 enum int KEY_Arabic_lam = 1508;
8715 enum int KEY_Arabic_madda_above = 16778835;
8716 enum int KEY_Arabic_maddaonalef = 1474;
8717 enum int KEY_Arabic_meem = 1509;
8718 enum int KEY_Arabic_noon = 1510;
8719 enum int KEY_Arabic_noon_ghunna = 16778938;
8720 enum int KEY_Arabic_peh = 16778878;
8721 enum int KEY_Arabic_percent = 16778858;
8722 enum int KEY_Arabic_qaf = 1506;
8723 enum int KEY_Arabic_question_mark = 1471;
8724 enum int KEY_Arabic_ra = 1489;
8725 enum int KEY_Arabic_rreh = 16778897;
8726 enum int KEY_Arabic_sad = 1493;
8727 enum int KEY_Arabic_seen = 1491;
8728 enum int KEY_Arabic_semicolon = 1467;
8729 enum int KEY_Arabic_shadda = 1521;
8730 enum int KEY_Arabic_sheen = 1492;
8731 enum int KEY_Arabic_sukun = 1522;
8732 enum int KEY_Arabic_superscript_alef = 16778864;
8733 enum int KEY_Arabic_switch = 65406;
8734 enum int KEY_Arabic_tah = 1495;
8735 enum int KEY_Arabic_tatweel = 1504;
8736 enum int KEY_Arabic_tcheh = 16778886;
8737 enum int KEY_Arabic_teh = 1482;
8738 enum int KEY_Arabic_tehmarbuta = 1481;
8739 enum int KEY_Arabic_thal = 1488;
8740 enum int KEY_Arabic_theh = 1483;
8741 enum int KEY_Arabic_tteh = 16778873;
8742 enum int KEY_Arabic_veh = 16778916;
8743 enum int KEY_Arabic_waw = 1512;
8744 enum int KEY_Arabic_yeh = 1514;
8745 enum int KEY_Arabic_yeh_baree = 16778962;
8746 enum int KEY_Arabic_zah = 1496;
8747 enum int KEY_Arabic_zain = 1490;
8748 enum int KEY_Aring = 197;
8749 enum int KEY_Armenian_AT = 16778552;
8750 enum int KEY_Armenian_AYB = 16778545;
8751 enum int KEY_Armenian_BEN = 16778546;
8752 enum int KEY_Armenian_CHA = 16778569;
8753 enum int KEY_Armenian_DA = 16778548;
8754 enum int KEY_Armenian_DZA = 16778561;
8755 enum int KEY_Armenian_E = 16778551;
8756 enum int KEY_Armenian_FE = 16778582;
8757 enum int KEY_Armenian_GHAT = 16778562;
8758 enum int KEY_Armenian_GIM = 16778547;
8759 enum int KEY_Armenian_HI = 16778565;
8760 enum int KEY_Armenian_HO = 16778560;
8761 enum int KEY_Armenian_INI = 16778555;
8762 enum int KEY_Armenian_JE = 16778571;
8763 enum int KEY_Armenian_KE = 16778580;
8764 enum int KEY_Armenian_KEN = 16778559;
8765 enum int KEY_Armenian_KHE = 16778557;
8766 enum int KEY_Armenian_LYUN = 16778556;
8767 enum int KEY_Armenian_MEN = 16778564;
8768 enum int KEY_Armenian_NU = 16778566;
8769 enum int KEY_Armenian_O = 16778581;
8770 enum int KEY_Armenian_PE = 16778570;
8771 enum int KEY_Armenian_PYUR = 16778579;
8772 enum int KEY_Armenian_RA = 16778572;
8773 enum int KEY_Armenian_RE = 16778576;
8774 enum int KEY_Armenian_SE = 16778573;
8775 enum int KEY_Armenian_SHA = 16778567;
8776 enum int KEY_Armenian_TCHE = 16778563;
8777 enum int KEY_Armenian_TO = 16778553;
8778 enum int KEY_Armenian_TSA = 16778558;
8779 enum int KEY_Armenian_TSO = 16778577;
8780 enum int KEY_Armenian_TYUN = 16778575;
8781 enum int KEY_Armenian_VEV = 16778574;
8782 enum int KEY_Armenian_VO = 16778568;
8783 enum int KEY_Armenian_VYUN = 16778578;
8784 enum int KEY_Armenian_YECH = 16778549;
8785 enum int KEY_Armenian_ZA = 16778550;
8786 enum int KEY_Armenian_ZHE = 16778554;
8787 enum int KEY_Armenian_accent = 16778587;
8788 enum int KEY_Armenian_amanak = 16778588;
8789 enum int KEY_Armenian_apostrophe = 16778586;
8790 enum int KEY_Armenian_at = 16778600;
8791 enum int KEY_Armenian_ayb = 16778593;
8792 enum int KEY_Armenian_ben = 16778594;
8793 enum int KEY_Armenian_but = 16778589;
8794 enum int KEY_Armenian_cha = 16778617;
8795 enum int KEY_Armenian_da = 16778596;
8796 enum int KEY_Armenian_dza = 16778609;
8797 enum int KEY_Armenian_e = 16778599;
8798 enum int KEY_Armenian_exclam = 16778588;
8799 enum int KEY_Armenian_fe = 16778630;
8800 enum int KEY_Armenian_full_stop = 16778633;
8801 enum int KEY_Armenian_ghat = 16778610;
8802 enum int KEY_Armenian_gim = 16778595;
8803 enum int KEY_Armenian_hi = 16778613;
8804 enum int KEY_Armenian_ho = 16778608;
8805 enum int KEY_Armenian_hyphen = 16778634;
8806 enum int KEY_Armenian_ini = 16778603;
8807 enum int KEY_Armenian_je = 16778619;
8808 enum int KEY_Armenian_ke = 16778628;
8809 enum int KEY_Armenian_ken = 16778607;
8810 enum int KEY_Armenian_khe = 16778605;
8811 enum int KEY_Armenian_ligature_ew = 16778631;
8812 enum int KEY_Armenian_lyun = 16778604;
8813 enum int KEY_Armenian_men = 16778612;
8814 enum int KEY_Armenian_nu = 16778614;
8815 enum int KEY_Armenian_o = 16778629;
8816 enum int KEY_Armenian_paruyk = 16778590;
8817 enum int KEY_Armenian_pe = 16778618;
8818 enum int KEY_Armenian_pyur = 16778627;
8819 enum int KEY_Armenian_question = 16778590;
8820 enum int KEY_Armenian_ra = 16778620;
8821 enum int KEY_Armenian_re = 16778624;
8822 enum int KEY_Armenian_se = 16778621;
8823 enum int KEY_Armenian_separation_mark = 16778589;
8824 enum int KEY_Armenian_sha = 16778615;
8825 enum int KEY_Armenian_shesht = 16778587;
8826 enum int KEY_Armenian_tche = 16778611;
8827 enum int KEY_Armenian_to = 16778601;
8828 enum int KEY_Armenian_tsa = 16778606;
8829 enum int KEY_Armenian_tso = 16778625;
8830 enum int KEY_Armenian_tyun = 16778623;
8831 enum int KEY_Armenian_verjaket = 16778633;
8832 enum int KEY_Armenian_vev = 16778622;
8833 enum int KEY_Armenian_vo = 16778616;
8834 enum int KEY_Armenian_vyun = 16778626;
8835 enum int KEY_Armenian_yech = 16778597;
8836 enum int KEY_Armenian_yentamna = 16778634;
8837 enum int KEY_Armenian_za = 16778598;
8838 enum int KEY_Armenian_zhe = 16778602;
8839 enum int KEY_Atilde = 195;
8840 enum int KEY_AudibleBell_Enable = 65146;
8841 enum int KEY_AudioCycleTrack = 269025179;
8842 enum int KEY_AudioForward = 269025175;
8843 enum int KEY_AudioLowerVolume = 269025041;
8844 enum int KEY_AudioMedia = 269025074;
8845 enum int KEY_AudioMute = 269025042;
8846 enum int KEY_AudioNext = 269025047;
8847 enum int KEY_AudioPause = 269025073;
8848 enum int KEY_AudioPlay = 269025044;
8849 enum int KEY_AudioPrev = 269025046;
8850 enum int KEY_AudioRaiseVolume = 269025043;
8851 enum int KEY_AudioRandomPlay = 269025177;
8852 enum int KEY_AudioRecord = 269025052;
8853 enum int KEY_AudioRepeat = 269025176;
8854 enum int KEY_AudioRewind = 269025086;
8855 enum int KEY_AudioStop = 269025045;
8856 enum int KEY_Away = 269025165;
8857 enum int KEY_B = 66;
8858 enum int KEY_Babovedot = 16784898;
8859 enum int KEY_Back = 269025062;
8860 enum int KEY_BackForward = 269025087;
8861 enum int KEY_BackSpace = 65288;
8862 enum int KEY_Battery = 269025171;
8863 enum int KEY_Begin = 65368;
8864 enum int KEY_Blue = 269025190;
8865 enum int KEY_Bluetooth = 269025172;
8866 enum int KEY_Book = 269025106;
8867 enum int KEY_BounceKeys_Enable = 65140;
8868 enum int KEY_Break = 65387;
8869 enum int KEY_BrightnessAdjust = 269025083;
8870 enum int KEY_Byelorussian_SHORTU = 1726;
8871 enum int KEY_Byelorussian_shortu = 1710;
8872 enum int KEY_C = 67;
8873 enum int KEY_CD = 269025107;
8874 enum int KEY_Cabovedot = 709;
8875 enum int KEY_Cacute = 454;
8876 enum int KEY_Calculator = 269025053;
8877 enum int KEY_Calendar = 269025056;
8878 enum int KEY_Cancel = 65385;
8879 enum int KEY_Caps_Lock = 65509;
8880 enum int KEY_Ccaron = 456;
8881 enum int KEY_Ccedilla = 199;
8882 enum int KEY_Ccircumflex = 710;
8883 enum int KEY_Clear = 65291;
8884 enum int KEY_ClearGrab = 269024801;
8885 enum int KEY_Close = 269025110;
8886 enum int KEY_Codeinput = 65335;
8887 enum int KEY_ColonSign = 16785569;
8888 enum int KEY_Community = 269025085;
8889 enum int KEY_ContrastAdjust = 269025058;
8890 enum int KEY_Control_L = 65507;
8891 enum int KEY_Control_R = 65508;
8892 enum int KEY_Copy = 269025111;
8893 enum int KEY_CruzeiroSign = 16785570;
8894 enum int KEY_Cut = 269025112;
8895 enum int KEY_CycleAngle = 269025180;
8896 enum int KEY_Cyrillic_A = 1761;
8897 enum int KEY_Cyrillic_BE = 1762;
8898 enum int KEY_Cyrillic_CHE = 1790;
8899 enum int KEY_Cyrillic_CHE_descender = 16778422;
8900 enum int KEY_Cyrillic_CHE_vertstroke = 16778424;
8901 enum int KEY_Cyrillic_DE = 1764;
8902 enum int KEY_Cyrillic_DZHE = 1727;
8903 enum int KEY_Cyrillic_E = 1788;
8904 enum int KEY_Cyrillic_EF = 1766;
8905 enum int KEY_Cyrillic_EL = 1772;
8906 enum int KEY_Cyrillic_EM = 1773;
8907 enum int KEY_Cyrillic_EN = 1774;
8908 enum int KEY_Cyrillic_EN_descender = 16778402;
8909 enum int KEY_Cyrillic_ER = 1778;
8910 enum int KEY_Cyrillic_ES = 1779;
8911 enum int KEY_Cyrillic_GHE = 1767;
8912 enum int KEY_Cyrillic_GHE_bar = 16778386;
8913 enum int KEY_Cyrillic_HA = 1768;
8914 enum int KEY_Cyrillic_HARDSIGN = 1791;
8915 enum int KEY_Cyrillic_HA_descender = 16778418;
8916 enum int KEY_Cyrillic_I = 1769;
8917 enum int KEY_Cyrillic_IE = 1765;
8918 enum int KEY_Cyrillic_IO = 1715;
8919 enum int KEY_Cyrillic_I_macron = 16778466;
8920 enum int KEY_Cyrillic_JE = 1720;
8921 enum int KEY_Cyrillic_KA = 1771;
8922 enum int KEY_Cyrillic_KA_descender = 16778394;
8923 enum int KEY_Cyrillic_KA_vertstroke = 16778396;
8924 enum int KEY_Cyrillic_LJE = 1721;
8925 enum int KEY_Cyrillic_NJE = 1722;
8926 enum int KEY_Cyrillic_O = 1775;
8927 enum int KEY_Cyrillic_O_bar = 16778472;
8928 enum int KEY_Cyrillic_PE = 1776;
8929 enum int KEY_Cyrillic_SCHWA = 16778456;
8930 enum int KEY_Cyrillic_SHA = 1787;
8931 enum int KEY_Cyrillic_SHCHA = 1789;
8932 enum int KEY_Cyrillic_SHHA = 16778426;
8933 enum int KEY_Cyrillic_SHORTI = 1770;
8934 enum int KEY_Cyrillic_SOFTSIGN = 1784;
8935 enum int KEY_Cyrillic_TE = 1780;
8936 enum int KEY_Cyrillic_TSE = 1763;
8937 enum int KEY_Cyrillic_U = 1781;
8938 enum int KEY_Cyrillic_U_macron = 16778478;
8939 enum int KEY_Cyrillic_U_straight = 16778414;
8940 enum int KEY_Cyrillic_U_straight_bar = 16778416;
8941 enum int KEY_Cyrillic_VE = 1783;
8942 enum int KEY_Cyrillic_YA = 1777;
8943 enum int KEY_Cyrillic_YERU = 1785;
8944 enum int KEY_Cyrillic_YU = 1760;
8945 enum int KEY_Cyrillic_ZE = 1786;
8946 enum int KEY_Cyrillic_ZHE = 1782;
8947 enum int KEY_Cyrillic_ZHE_descender = 16778390;
8948 enum int KEY_Cyrillic_a = 1729;
8949 enum int KEY_Cyrillic_be = 1730;
8950 enum int KEY_Cyrillic_che = 1758;
8951 enum int KEY_Cyrillic_che_descender = 16778423;
8952 enum int KEY_Cyrillic_che_vertstroke = 16778425;
8953 enum int KEY_Cyrillic_de = 1732;
8954 enum int KEY_Cyrillic_dzhe = 1711;
8955 enum int KEY_Cyrillic_e = 1756;
8956 enum int KEY_Cyrillic_ef = 1734;
8957 enum int KEY_Cyrillic_el = 1740;
8958 enum int KEY_Cyrillic_em = 1741;
8959 enum int KEY_Cyrillic_en = 1742;
8960 enum int KEY_Cyrillic_en_descender = 16778403;
8961 enum int KEY_Cyrillic_er = 1746;
8962 enum int KEY_Cyrillic_es = 1747;
8963 enum int KEY_Cyrillic_ghe = 1735;
8964 enum int KEY_Cyrillic_ghe_bar = 16778387;
8965 enum int KEY_Cyrillic_ha = 1736;
8966 enum int KEY_Cyrillic_ha_descender = 16778419;
8967 enum int KEY_Cyrillic_hardsign = 1759;
8968 enum int KEY_Cyrillic_i = 1737;
8969 enum int KEY_Cyrillic_i_macron = 16778467;
8970 enum int KEY_Cyrillic_ie = 1733;
8971 enum int KEY_Cyrillic_io = 1699;
8972 enum int KEY_Cyrillic_je = 1704;
8973 enum int KEY_Cyrillic_ka = 1739;
8974 enum int KEY_Cyrillic_ka_descender = 16778395;
8975 enum int KEY_Cyrillic_ka_vertstroke = 16778397;
8976 enum int KEY_Cyrillic_lje = 1705;
8977 enum int KEY_Cyrillic_nje = 1706;
8978 enum int KEY_Cyrillic_o = 1743;
8979 enum int KEY_Cyrillic_o_bar = 16778473;
8980 enum int KEY_Cyrillic_pe = 1744;
8981 enum int KEY_Cyrillic_schwa = 16778457;
8982 enum int KEY_Cyrillic_sha = 1755;
8983 enum int KEY_Cyrillic_shcha = 1757;
8984 enum int KEY_Cyrillic_shha = 16778427;
8985 enum int KEY_Cyrillic_shorti = 1738;
8986 enum int KEY_Cyrillic_softsign = 1752;
8987 enum int KEY_Cyrillic_te = 1748;
8988 enum int KEY_Cyrillic_tse = 1731;
8989 enum int KEY_Cyrillic_u = 1749;
8990 enum int KEY_Cyrillic_u_macron = 16778479;
8991 enum int KEY_Cyrillic_u_straight = 16778415;
8992 enum int KEY_Cyrillic_u_straight_bar = 16778417;
8993 enum int KEY_Cyrillic_ve = 1751;
8994 enum int KEY_Cyrillic_ya = 1745;
8995 enum int KEY_Cyrillic_yeru = 1753;
8996 enum int KEY_Cyrillic_yu = 1728;
8997 enum int KEY_Cyrillic_ze = 1754;
8998 enum int KEY_Cyrillic_zhe = 1750;
8999 enum int KEY_Cyrillic_zhe_descender = 16778391;
9000 enum int KEY_D = 68;
9001 enum int KEY_DOS = 269025114;
9002 enum int KEY_Dabovedot = 16784906;
9003 enum int KEY_Dcaron = 463;
9004 enum int KEY_Delete = 65535;
9005 enum int KEY_Display = 269025113;
9006 enum int KEY_Documents = 269025115;
9007 enum int KEY_DongSign = 16785579;
9008 enum int KEY_Down = 65364;
9009 enum int KEY_Dstroke = 464;
9010 enum int KEY_E = 69;
9011 enum int KEY_ENG = 957;
9012 enum int KEY_ETH = 208;
9013 enum int KEY_Eabovedot = 972;
9014 enum int KEY_Eacute = 201;
9015 enum int KEY_Ebelowdot = 16785080;
9016 enum int KEY_Ecaron = 460;
9017 enum int KEY_Ecircumflex = 202;
9018 enum int KEY_Ecircumflexacute = 16785086;
9019 enum int KEY_Ecircumflexbelowdot = 16785094;
9020 enum int KEY_Ecircumflexgrave = 16785088;
9021 enum int KEY_Ecircumflexhook = 16785090;
9022 enum int KEY_Ecircumflextilde = 16785092;
9023 enum int KEY_EcuSign = 16785568;
9024 enum int KEY_Ediaeresis = 203;
9025 enum int KEY_Egrave = 200;
9026 enum int KEY_Ehook = 16785082;
9027 enum int KEY_Eisu_Shift = 65327;
9028 enum int KEY_Eisu_toggle = 65328;
9029 enum int KEY_Eject = 269025068;
9030 enum int KEY_Emacron = 938;
9031 enum int KEY_End = 65367;
9032 enum int KEY_Eogonek = 458;
9033 enum int KEY_Escape = 65307;
9034 enum int KEY_Eth = 208;
9035 enum int KEY_Etilde = 16785084;
9036 enum int KEY_EuroSign = 8364;
9037 enum int KEY_Excel = 269025116;
9038 enum int KEY_Execute = 65378;
9039 enum int KEY_Explorer = 269025117;
9040 enum int KEY_F = 70;
9041 enum int KEY_F1 = 65470;
9042 enum int KEY_F10 = 65479;
9043 enum int KEY_F11 = 65480;
9044 enum int KEY_F12 = 65481;
9045 enum int KEY_F13 = 65482;
9046 enum int KEY_F14 = 65483;
9047 enum int KEY_F15 = 65484;
9048 enum int KEY_F16 = 65485;
9049 enum int KEY_F17 = 65486;
9050 enum int KEY_F18 = 65487;
9051 enum int KEY_F19 = 65488;
9052 enum int KEY_F2 = 65471;
9053 enum int KEY_F20 = 65489;
9054 enum int KEY_F21 = 65490;
9055 enum int KEY_F22 = 65491;
9056 enum int KEY_F23 = 65492;
9057 enum int KEY_F24 = 65493;
9058 enum int KEY_F25 = 65494;
9059 enum int KEY_F26 = 65495;
9060 enum int KEY_F27 = 65496;
9061 enum int KEY_F28 = 65497;
9062 enum int KEY_F29 = 65498;
9063 enum int KEY_F3 = 65472;
9064 enum int KEY_F30 = 65499;
9065 enum int KEY_F31 = 65500;
9066 enum int KEY_F32 = 65501;
9067 enum int KEY_F33 = 65502;
9068 enum int KEY_F34 = 65503;
9069 enum int KEY_F35 = 65504;
9070 enum int KEY_F4 = 65473;
9071 enum int KEY_F5 = 65474;
9072 enum int KEY_F6 = 65475;
9073 enum int KEY_F7 = 65476;
9074 enum int KEY_F8 = 65477;
9075 enum int KEY_F9 = 65478;
9076 enum int KEY_FFrancSign = 16785571;
9077 enum int KEY_Fabovedot = 16784926;
9078 enum int KEY_Farsi_0 = 16778992;
9079 enum int KEY_Farsi_1 = 16778993;
9080 enum int KEY_Farsi_2 = 16778994;
9081 enum int KEY_Farsi_3 = 16778995;
9082 enum int KEY_Farsi_4 = 16778996;
9083 enum int KEY_Farsi_5 = 16778997;
9084 enum int KEY_Farsi_6 = 16778998;
9085 enum int KEY_Farsi_7 = 16778999;
9086 enum int KEY_Farsi_8 = 16779000;
9087 enum int KEY_Farsi_9 = 16779001;
9088 enum int KEY_Farsi_yeh = 16778956;
9089 enum int KEY_Favorites = 269025072;
9090 enum int KEY_Finance = 269025084;
9091 enum int KEY_Find = 65384;
9092 enum int KEY_First_Virtual_Screen = 65232;
9093 enum int KEY_Forward = 269025063;
9094 enum int KEY_FrameBack = 269025181;
9095 enum int KEY_FrameForward = 269025182;
9096 enum int KEY_G = 71;
9097 enum int KEY_Gabovedot = 725;
9098 enum int KEY_Game = 269025118;
9099 enum int KEY_Gbreve = 683;
9100 enum int KEY_Gcaron = 16777702;
9101 enum int KEY_Gcedilla = 939;
9102 enum int KEY_Gcircumflex = 728;
9103 enum int KEY_Georgian_an = 16781520;
9104 enum int KEY_Georgian_ban = 16781521;
9105 enum int KEY_Georgian_can = 16781546;
9106 enum int KEY_Georgian_char = 16781549;
9107 enum int KEY_Georgian_chin = 16781545;
9108 enum int KEY_Georgian_cil = 16781548;
9109 enum int KEY_Georgian_don = 16781523;
9110 enum int KEY_Georgian_en = 16781524;
9111 enum int KEY_Georgian_fi = 16781558;
9112 enum int KEY_Georgian_gan = 16781522;
9113 enum int KEY_Georgian_ghan = 16781542;
9114 enum int KEY_Georgian_hae = 16781552;
9115 enum int KEY_Georgian_har = 16781556;
9116 enum int KEY_Georgian_he = 16781553;
9117 enum int KEY_Georgian_hie = 16781554;
9118 enum int KEY_Georgian_hoe = 16781557;
9119 enum int KEY_Georgian_in = 16781528;
9120 enum int KEY_Georgian_jhan = 16781551;
9121 enum int KEY_Georgian_jil = 16781547;
9122 enum int KEY_Georgian_kan = 16781529;
9123 enum int KEY_Georgian_khar = 16781541;
9124 enum int KEY_Georgian_las = 16781530;
9125 enum int KEY_Georgian_man = 16781531;
9126 enum int KEY_Georgian_nar = 16781532;
9127 enum int KEY_Georgian_on = 16781533;
9128 enum int KEY_Georgian_par = 16781534;
9129 enum int KEY_Georgian_phar = 16781540;
9130 enum int KEY_Georgian_qar = 16781543;
9131 enum int KEY_Georgian_rae = 16781536;
9132 enum int KEY_Georgian_san = 16781537;
9133 enum int KEY_Georgian_shin = 16781544;
9134 enum int KEY_Georgian_tan = 16781527;
9135 enum int KEY_Georgian_tar = 16781538;
9136 enum int KEY_Georgian_un = 16781539;
9137 enum int KEY_Georgian_vin = 16781525;
9138 enum int KEY_Georgian_we = 16781555;
9139 enum int KEY_Georgian_xan = 16781550;
9140 enum int KEY_Georgian_zen = 16781526;
9141 enum int KEY_Georgian_zhar = 16781535;
9142 enum int KEY_Go = 269025119;
9143 enum int KEY_Greek_ALPHA = 1985;
9144 enum int KEY_Greek_ALPHAaccent = 1953;
9145 enum int KEY_Greek_BETA = 1986;
9146 enum int KEY_Greek_CHI = 2007;
9147 enum int KEY_Greek_DELTA = 1988;
9148 enum int KEY_Greek_EPSILON = 1989;
9149 enum int KEY_Greek_EPSILONaccent = 1954;
9150 enum int KEY_Greek_ETA = 1991;
9151 enum int KEY_Greek_ETAaccent = 1955;
9152 enum int KEY_Greek_GAMMA = 1987;
9153 enum int KEY_Greek_IOTA = 1993;
9154 enum int KEY_Greek_IOTAaccent = 1956;
9155 enum int KEY_Greek_IOTAdiaeresis = 1957;
9156 enum int KEY_Greek_IOTAdieresis = 1957;
9157 enum int KEY_Greek_KAPPA = 1994;
9158 enum int KEY_Greek_LAMBDA = 1995;
9159 enum int KEY_Greek_LAMDA = 1995;
9160 enum int KEY_Greek_MU = 1996;
9161 enum int KEY_Greek_NU = 1997;
9162 enum int KEY_Greek_OMEGA = 2009;
9163 enum int KEY_Greek_OMEGAaccent = 1963;
9164 enum int KEY_Greek_OMICRON = 1999;
9165 enum int KEY_Greek_OMICRONaccent = 1959;
9166 enum int KEY_Greek_PHI = 2006;
9167 enum int KEY_Greek_PI = 2000;
9168 enum int KEY_Greek_PSI = 2008;
9169 enum int KEY_Greek_RHO = 2001;
9170 enum int KEY_Greek_SIGMA = 2002;
9171 enum int KEY_Greek_TAU = 2004;
9172 enum int KEY_Greek_THETA = 1992;
9173 enum int KEY_Greek_UPSILON = 2005;
9174 enum int KEY_Greek_UPSILONaccent = 1960;
9175 enum int KEY_Greek_UPSILONdieresis = 1961;
9176 enum int KEY_Greek_XI = 1998;
9177 enum int KEY_Greek_ZETA = 1990;
9178 enum int KEY_Greek_accentdieresis = 1966;
9179 enum int KEY_Greek_alpha = 2017;
9180 enum int KEY_Greek_alphaaccent = 1969;
9181 enum int KEY_Greek_beta = 2018;
9182 enum int KEY_Greek_chi = 2039;
9183 enum int KEY_Greek_delta = 2020;
9184 enum int KEY_Greek_epsilon = 2021;
9185 enum int KEY_Greek_epsilonaccent = 1970;
9186 enum int KEY_Greek_eta = 2023;
9187 enum int KEY_Greek_etaaccent = 1971;
9188 enum int KEY_Greek_finalsmallsigma = 2035;
9189 enum int KEY_Greek_gamma = 2019;
9190 enum int KEY_Greek_horizbar = 1967;
9191 enum int KEY_Greek_iota = 2025;
9192 enum int KEY_Greek_iotaaccent = 1972;
9193 enum int KEY_Greek_iotaaccentdieresis = 1974;
9194 enum int KEY_Greek_iotadieresis = 1973;
9195 enum int KEY_Greek_kappa = 2026;
9196 enum int KEY_Greek_lambda = 2027;
9197 enum int KEY_Greek_lamda = 2027;
9198 enum int KEY_Greek_mu = 2028;
9199 enum int KEY_Greek_nu = 2029;
9200 enum int KEY_Greek_omega = 2041;
9201 enum int KEY_Greek_omegaaccent = 1979;
9202 enum int KEY_Greek_omicron = 2031;
9203 enum int KEY_Greek_omicronaccent = 1975;
9204 enum int KEY_Greek_phi = 2038;
9205 enum int KEY_Greek_pi = 2032;
9206 enum int KEY_Greek_psi = 2040;
9207 enum int KEY_Greek_rho = 2033;
9208 enum int KEY_Greek_sigma = 2034;
9209 enum int KEY_Greek_switch = 65406;
9210 enum int KEY_Greek_tau = 2036;
9211 enum int KEY_Greek_theta = 2024;
9212 enum int KEY_Greek_upsilon = 2037;
9213 enum int KEY_Greek_upsilonaccent = 1976;
9214 enum int KEY_Greek_upsilonaccentdieresis = 1978;
9215 enum int KEY_Greek_upsilondieresis = 1977;
9216 enum int KEY_Greek_xi = 2030;
9217 enum int KEY_Greek_zeta = 2022;
9218 enum int KEY_Green = 269025188;
9219 enum int KEY_H = 72;
9220 enum int KEY_Hangul = 65329;
9221 enum int KEY_Hangul_A = 3775;
9222 enum int KEY_Hangul_AE = 3776;
9223 enum int KEY_Hangul_AraeA = 3830;
9224 enum int KEY_Hangul_AraeAE = 3831;
9225 enum int KEY_Hangul_Banja = 65337;
9226 enum int KEY_Hangul_Cieuc = 3770;
9227 enum int KEY_Hangul_Codeinput = 65335;
9228 enum int KEY_Hangul_Dikeud = 3751;
9229 enum int KEY_Hangul_E = 3780;
9230 enum int KEY_Hangul_EO = 3779;
9231 enum int KEY_Hangul_EU = 3793;
9232 enum int KEY_Hangul_End = 65331;
9233 enum int KEY_Hangul_Hanja = 65332;
9234 enum int KEY_Hangul_Hieuh = 3774;
9235 enum int KEY_Hangul_I = 3795;
9236 enum int KEY_Hangul_Ieung = 3767;
9237 enum int KEY_Hangul_J_Cieuc = 3818;
9238 enum int KEY_Hangul_J_Dikeud = 3802;
9239 enum int KEY_Hangul_J_Hieuh = 3822;
9240 enum int KEY_Hangul_J_Ieung = 3816;
9241 enum int KEY_Hangul_J_Jieuj = 3817;
9242 enum int KEY_Hangul_J_Khieuq = 3819;
9243 enum int KEY_Hangul_J_Kiyeog = 3796;
9244 enum int KEY_Hangul_J_KiyeogSios = 3798;
9245 enum int KEY_Hangul_J_KkogjiDalrinIeung = 3833;
9246 enum int KEY_Hangul_J_Mieum = 3811;
9247 enum int KEY_Hangul_J_Nieun = 3799;
9248 enum int KEY_Hangul_J_NieunHieuh = 3801;
9249 enum int KEY_Hangul_J_NieunJieuj = 3800;
9250 enum int KEY_Hangul_J_PanSios = 3832;
9251 enum int KEY_Hangul_J_Phieuf = 3821;
9252 enum int KEY_Hangul_J_Pieub = 3812;
9253 enum int KEY_Hangul_J_PieubSios = 3813;
9254 enum int KEY_Hangul_J_Rieul = 3803;
9255 enum int KEY_Hangul_J_RieulHieuh = 3810;
9256 enum int KEY_Hangul_J_RieulKiyeog = 3804;
9257 enum int KEY_Hangul_J_RieulMieum = 3805;
9258 enum int KEY_Hangul_J_RieulPhieuf = 3809;
9259 enum int KEY_Hangul_J_RieulPieub = 3806;
9260 enum int KEY_Hangul_J_RieulSios = 3807;
9261 enum int KEY_Hangul_J_RieulTieut = 3808;
9262 enum int KEY_Hangul_J_Sios = 3814;
9263 enum int KEY_Hangul_J_SsangKiyeog = 3797;
9264 enum int KEY_Hangul_J_SsangSios = 3815;
9265 enum int KEY_Hangul_J_Tieut = 3820;
9266 enum int KEY_Hangul_J_YeorinHieuh = 3834;
9267 enum int KEY_Hangul_Jamo = 65333;
9268 enum int KEY_Hangul_Jeonja = 65336;
9269 enum int KEY_Hangul_Jieuj = 3768;
9270 enum int KEY_Hangul_Khieuq = 3771;
9271 enum int KEY_Hangul_Kiyeog = 3745;
9272 enum int KEY_Hangul_KiyeogSios = 3747;
9273 enum int KEY_Hangul_KkogjiDalrinIeung = 3827;
9274 enum int KEY_Hangul_Mieum = 3761;
9275 enum int KEY_Hangul_MultipleCandidate = 65341;
9276 enum int KEY_Hangul_Nieun = 3748;
9277 enum int KEY_Hangul_NieunHieuh = 3750;
9278 enum int KEY_Hangul_NieunJieuj = 3749;
9279 enum int KEY_Hangul_O = 3783;
9280 enum int KEY_Hangul_OE = 3786;
9281 enum int KEY_Hangul_PanSios = 3826;
9282 enum int KEY_Hangul_Phieuf = 3773;
9283 enum int KEY_Hangul_Pieub = 3762;
9284 enum int KEY_Hangul_PieubSios = 3764;
9285 enum int KEY_Hangul_PostHanja = 65339;
9286 enum int KEY_Hangul_PreHanja = 65338;
9287 enum int KEY_Hangul_PreviousCandidate = 65342;
9288 enum int KEY_Hangul_Rieul = 3753;
9289 enum int KEY_Hangul_RieulHieuh = 3760;
9290 enum int KEY_Hangul_RieulKiyeog = 3754;
9291 enum int KEY_Hangul_RieulMieum = 3755;
9292 enum int KEY_Hangul_RieulPhieuf = 3759;
9293 enum int KEY_Hangul_RieulPieub = 3756;
9294 enum int KEY_Hangul_RieulSios = 3757;
9295 enum int KEY_Hangul_RieulTieut = 3758;
9296 enum int KEY_Hangul_RieulYeorinHieuh = 3823;
9297 enum int KEY_Hangul_Romaja = 65334;
9298 enum int KEY_Hangul_SingleCandidate = 65340;
9299 enum int KEY_Hangul_Sios = 3765;
9300 enum int KEY_Hangul_Special = 65343;
9301 enum int KEY_Hangul_SsangDikeud = 3752;
9302 enum int KEY_Hangul_SsangJieuj = 3769;
9303 enum int KEY_Hangul_SsangKiyeog = 3746;
9304 enum int KEY_Hangul_SsangPieub = 3763;
9305 enum int KEY_Hangul_SsangSios = 3766;
9306 enum int KEY_Hangul_Start = 65330;
9307 enum int KEY_Hangul_SunkyeongeumMieum = 3824;
9308 enum int KEY_Hangul_SunkyeongeumPhieuf = 3828;
9309 enum int KEY_Hangul_SunkyeongeumPieub = 3825;
9310 enum int KEY_Hangul_Tieut = 3772;
9311 enum int KEY_Hangul_U = 3788;
9312 enum int KEY_Hangul_WA = 3784;
9313 enum int KEY_Hangul_WAE = 3785;
9314 enum int KEY_Hangul_WE = 3790;
9315 enum int KEY_Hangul_WEO = 3789;
9316 enum int KEY_Hangul_WI = 3791;
9317 enum int KEY_Hangul_YA = 3777;
9318 enum int KEY_Hangul_YAE = 3778;
9319 enum int KEY_Hangul_YE = 3782;
9320 enum int KEY_Hangul_YEO = 3781;
9321 enum int KEY_Hangul_YI = 3794;
9322 enum int KEY_Hangul_YO = 3787;
9323 enum int KEY_Hangul_YU = 3792;
9324 enum int KEY_Hangul_YeorinHieuh = 3829;
9325 enum int KEY_Hangul_switch = 65406;
9326 enum int KEY_Hankaku = 65321;
9327 enum int KEY_Hcircumflex = 678;
9328 enum int KEY_Hebrew_switch = 65406;
9329 enum int KEY_Help = 65386;
9330 enum int KEY_Henkan = 65315;
9331 enum int KEY_Henkan_Mode = 65315;
9332 enum int KEY_Hibernate = 269025192;
9333 enum int KEY_Hiragana = 65317;
9334 enum int KEY_Hiragana_Katakana = 65319;
9335 enum int KEY_History = 269025079;
9336 enum int KEY_Home = 65360;
9337 enum int KEY_HomePage = 269025048;
9338 enum int KEY_HotLinks = 269025082;
9339 enum int KEY_Hstroke = 673;
9340 enum int KEY_Hyper_L = 65517;
9341 enum int KEY_Hyper_R = 65518;
9342 enum int KEY_I = 73;
9343 enum int KEY_ISO_Center_Object = 65075;
9344 enum int KEY_ISO_Continuous_Underline = 65072;
9345 enum int KEY_ISO_Discontinuous_Underline = 65073;
9346 enum int KEY_ISO_Emphasize = 65074;
9347 enum int KEY_ISO_Enter = 65076;
9348 enum int KEY_ISO_Fast_Cursor_Down = 65071;
9349 enum int KEY_ISO_Fast_Cursor_Left = 65068;
9350 enum int KEY_ISO_Fast_Cursor_Right = 65069;
9351 enum int KEY_ISO_Fast_Cursor_Up = 65070;
9352 enum int KEY_ISO_First_Group = 65036;
9353 enum int KEY_ISO_First_Group_Lock = 65037;
9354 enum int KEY_ISO_Group_Latch = 65030;
9355 enum int KEY_ISO_Group_Lock = 65031;
9356 enum int KEY_ISO_Group_Shift = 65406;
9357 enum int KEY_ISO_Last_Group = 65038;
9358 enum int KEY_ISO_Last_Group_Lock = 65039;
9359 enum int KEY_ISO_Left_Tab = 65056;
9360 enum int KEY_ISO_Level2_Latch = 65026;
9361 enum int KEY_ISO_Level3_Latch = 65028;
9362 enum int KEY_ISO_Level3_Lock = 65029;
9363 enum int KEY_ISO_Level3_Shift = 65027;
9364 enum int KEY_ISO_Level5_Latch = 65042;
9365 enum int KEY_ISO_Level5_Lock = 65043;
9366 enum int KEY_ISO_Level5_Shift = 65041;
9367 enum int KEY_ISO_Lock = 65025;
9368 enum int KEY_ISO_Move_Line_Down = 65058;
9369 enum int KEY_ISO_Move_Line_Up = 65057;
9370 enum int KEY_ISO_Next_Group = 65032;
9371 enum int KEY_ISO_Next_Group_Lock = 65033;
9372 enum int KEY_ISO_Partial_Line_Down = 65060;
9373 enum int KEY_ISO_Partial_Line_Up = 65059;
9374 enum int KEY_ISO_Partial_Space_Left = 65061;
9375 enum int KEY_ISO_Partial_Space_Right = 65062;
9376 enum int KEY_ISO_Prev_Group = 65034;
9377 enum int KEY_ISO_Prev_Group_Lock = 65035;
9378 enum int KEY_ISO_Release_Both_Margins = 65067;
9379 enum int KEY_ISO_Release_Margin_Left = 65065;
9380 enum int KEY_ISO_Release_Margin_Right = 65066;
9381 enum int KEY_ISO_Set_Margin_Left = 65063;
9382 enum int KEY_ISO_Set_Margin_Right = 65064;
9383 enum int KEY_Iabovedot = 681;
9384 enum int KEY_Iacute = 205;
9385 enum int KEY_Ibelowdot = 16785098;
9386 enum int KEY_Ibreve = 16777516;
9387 enum int KEY_Icircumflex = 206;
9388 enum int KEY_Idiaeresis = 207;
9389 enum int KEY_Igrave = 204;
9390 enum int KEY_Ihook = 16785096;
9391 enum int KEY_Imacron = 975;
9392 enum int KEY_Insert = 65379;
9393 enum int KEY_Iogonek = 967;
9394 enum int KEY_Itilde = 933;
9395 enum int KEY_J = 74;
9396 enum int KEY_Jcircumflex = 684;
9397 enum int KEY_K = 75;
9398 enum int KEY_KP_0 = 65456;
9399 enum int KEY_KP_1 = 65457;
9400 enum int KEY_KP_2 = 65458;
9401 enum int KEY_KP_3 = 65459;
9402 enum int KEY_KP_4 = 65460;
9403 enum int KEY_KP_5 = 65461;
9404 enum int KEY_KP_6 = 65462;
9405 enum int KEY_KP_7 = 65463;
9406 enum int KEY_KP_8 = 65464;
9407 enum int KEY_KP_9 = 65465;
9408 enum int KEY_KP_Add = 65451;
9409 enum int KEY_KP_Begin = 65437;
9410 enum int KEY_KP_Decimal = 65454;
9411 enum int KEY_KP_Delete = 65439;
9412 enum int KEY_KP_Divide = 65455;
9413 enum int KEY_KP_Down = 65433;
9414 enum int KEY_KP_End = 65436;
9415 enum int KEY_KP_Enter = 65421;
9416 enum int KEY_KP_Equal = 65469;
9417 enum int KEY_KP_F1 = 65425;
9418 enum int KEY_KP_F2 = 65426;
9419 enum int KEY_KP_F3 = 65427;
9420 enum int KEY_KP_F4 = 65428;
9421 enum int KEY_KP_Home = 65429;
9422 enum int KEY_KP_Insert = 65438;
9423 enum int KEY_KP_Left = 65430;
9424 enum int KEY_KP_Multiply = 65450;
9425 enum int KEY_KP_Next = 65435;
9426 enum int KEY_KP_Page_Down = 65435;
9427 enum int KEY_KP_Page_Up = 65434;
9428 enum int KEY_KP_Prior = 65434;
9429 enum int KEY_KP_Right = 65432;
9430 enum int KEY_KP_Separator = 65452;
9431 enum int KEY_KP_Space = 65408;
9432 enum int KEY_KP_Subtract = 65453;
9433 enum int KEY_KP_Tab = 65417;
9434 enum int KEY_KP_Up = 65431;
9435 enum int KEY_Kana_Lock = 65325;
9436 enum int KEY_Kana_Shift = 65326;
9437 enum int KEY_Kanji = 65313;
9438 enum int KEY_Kanji_Bangou = 65335;
9439 enum int KEY_Katakana = 65318;
9440 enum int KEY_KbdBrightnessDown = 269025030;
9441 enum int KEY_KbdBrightnessUp = 269025029;
9442 enum int KEY_KbdLightOnOff = 269025028;
9443 enum int KEY_Kcedilla = 979;
9444 enum int KEY_Korean_Won = 3839;
9445 enum int KEY_L = 76;
9446 enum int KEY_L1 = 65480;
9447 enum int KEY_L10 = 65489;
9448 enum int KEY_L2 = 65481;
9449 enum int KEY_L3 = 65482;
9450 enum int KEY_L4 = 65483;
9451 enum int KEY_L5 = 65484;
9452 enum int KEY_L6 = 65485;
9453 enum int KEY_L7 = 65486;
9454 enum int KEY_L8 = 65487;
9455 enum int KEY_L9 = 65488;
9456 enum int KEY_Lacute = 453;
9457 enum int KEY_Last_Virtual_Screen = 65236;
9458 enum int KEY_Launch0 = 269025088;
9459 enum int KEY_Launch1 = 269025089;
9460 enum int KEY_Launch2 = 269025090;
9461 enum int KEY_Launch3 = 269025091;
9462 enum int KEY_Launch4 = 269025092;
9463 enum int KEY_Launch5 = 269025093;
9464 enum int KEY_Launch6 = 269025094;
9465 enum int KEY_Launch7 = 269025095;
9466 enum int KEY_Launch8 = 269025096;
9467 enum int KEY_Launch9 = 269025097;
9468 enum int KEY_LaunchA = 269025098;
9469 enum int KEY_LaunchB = 269025099;
9470 enum int KEY_LaunchC = 269025100;
9471 enum int KEY_LaunchD = 269025101;
9472 enum int KEY_LaunchE = 269025102;
9473 enum int KEY_LaunchF = 269025103;
9474 enum int KEY_Lbelowdot = 16784950;
9475 enum int KEY_Lcaron = 421;
9476 enum int KEY_Lcedilla = 934;
9477 enum int KEY_Left = 65361;
9478 enum int KEY_LightBulb = 269025077;
9479 enum int KEY_Linefeed = 65290;
9480 enum int KEY_LiraSign = 16785572;
9481 enum int KEY_LogOff = 269025121;
9482 enum int KEY_Lstroke = 419;
9483 enum int KEY_M = 77;
9484 enum int KEY_Mabovedot = 16784960;
9485 enum int KEY_Macedonia_DSE = 1717;
9486 enum int KEY_Macedonia_GJE = 1714;
9487 enum int KEY_Macedonia_KJE = 1724;
9488 enum int KEY_Macedonia_dse = 1701;
9489 enum int KEY_Macedonia_gje = 1698;
9490 enum int KEY_Macedonia_kje = 1708;
9491 enum int KEY_Mae_Koho = 65342;
9492 enum int KEY_Mail = 269025049;
9493 enum int KEY_MailForward = 269025168;
9494 enum int KEY_Market = 269025122;
9495 enum int KEY_Massyo = 65324;
9496 enum int KEY_Meeting = 269025123;
9497 enum int KEY_Memo = 269025054;
9498 enum int KEY_Menu = 65383;
9499 enum int KEY_MenuKB = 269025125;
9500 enum int KEY_MenuPB = 269025126;
9501 enum int KEY_Messenger = 269025166;
9502 enum int KEY_Meta_L = 65511;
9503 enum int KEY_Meta_R = 65512;
9504 enum int KEY_MillSign = 16785573;
9505 enum int KEY_ModeLock = 269025025;
9506 enum int KEY_Mode_switch = 65406;
9507 enum int KEY_MonBrightnessDown = 269025027;
9508 enum int KEY_MonBrightnessUp = 269025026;
9509 enum int KEY_MouseKeys_Accel_Enable = 65143;
9510 enum int KEY_MouseKeys_Enable = 65142;
9511 enum int KEY_Muhenkan = 65314;
9512 enum int KEY_Multi_key = 65312;
9513 enum int KEY_MultipleCandidate = 65341;
9514 enum int KEY_Music = 269025170;
9515 enum int KEY_MyComputer = 269025075;
9516 enum int KEY_MySites = 269025127;
9517 enum int KEY_N = 78;
9518 enum int KEY_Nacute = 465;
9519 enum int KEY_NairaSign = 16785574;
9520 enum int KEY_Ncaron = 466;
9521 enum int KEY_Ncedilla = 977;
9522 enum int KEY_New = 269025128;
9523 enum int KEY_NewSheqelSign = 16785578;
9524 enum int KEY_News = 269025129;
9525 enum int KEY_Next = 65366;
9526 enum int KEY_Next_VMode = 269024802;
9527 enum int KEY_Next_Virtual_Screen = 65234;
9528 enum int KEY_Ntilde = 209;
9529 enum int KEY_Num_Lock = 65407;
9530 enum int KEY_O = 79;
9531 enum int KEY_OE = 5052;
9532 enum int KEY_Oacute = 211;
9533 enum int KEY_Obarred = 16777631;
9534 enum int KEY_Obelowdot = 16785100;
9535 enum int KEY_Ocaron = 16777681;
9536 enum int KEY_Ocircumflex = 212;
9537 enum int KEY_Ocircumflexacute = 16785104;
9538 enum int KEY_Ocircumflexbelowdot = 16785112;
9539 enum int KEY_Ocircumflexgrave = 16785106;
9540 enum int KEY_Ocircumflexhook = 16785108;
9541 enum int KEY_Ocircumflextilde = 16785110;
9542 enum int KEY_Odiaeresis = 214;
9543 enum int KEY_Odoubleacute = 469;
9544 enum int KEY_OfficeHome = 269025130;
9545 enum int KEY_Ograve = 210;
9546 enum int KEY_Ohook = 16785102;
9547 enum int KEY_Ohorn = 16777632;
9548 enum int KEY_Ohornacute = 16785114;
9549 enum int KEY_Ohornbelowdot = 16785122;
9550 enum int KEY_Ohorngrave = 16785116;
9551 enum int KEY_Ohornhook = 16785118;
9552 enum int KEY_Ohorntilde = 16785120;
9553 enum int KEY_Omacron = 978;
9554 enum int KEY_Ooblique = 216;
9555 enum int KEY_Open = 269025131;
9556 enum int KEY_OpenURL = 269025080;
9557 enum int KEY_Option = 269025132;
9558 enum int KEY_Oslash = 216;
9559 enum int KEY_Otilde = 213;
9560 enum int KEY_Overlay1_Enable = 65144;
9561 enum int KEY_Overlay2_Enable = 65145;
9562 enum int KEY_P = 80;
9563 enum int KEY_Pabovedot = 16784982;
9564 enum int KEY_Page_Down = 65366;
9565 enum int KEY_Page_Up = 65365;
9566 enum int KEY_Paste = 269025133;
9567 enum int KEY_Pause = 65299;
9568 enum int KEY_PesetaSign = 16785575;
9569 enum int KEY_Phone = 269025134;
9570 enum int KEY_Pictures = 269025169;
9571 enum int KEY_Pointer_Accelerate = 65274;
9572 enum int KEY_Pointer_Button1 = 65257;
9573 enum int KEY_Pointer_Button2 = 65258;
9574 enum int KEY_Pointer_Button3 = 65259;
9575 enum int KEY_Pointer_Button4 = 65260;
9576 enum int KEY_Pointer_Button5 = 65261;
9577 enum int KEY_Pointer_Button_Dflt = 65256;
9578 enum int KEY_Pointer_DblClick1 = 65263;
9579 enum int KEY_Pointer_DblClick2 = 65264;
9580 enum int KEY_Pointer_DblClick3 = 65265;
9581 enum int KEY_Pointer_DblClick4 = 65266;
9582 enum int KEY_Pointer_DblClick5 = 65267;
9583 enum int KEY_Pointer_DblClick_Dflt = 65262;
9584 enum int KEY_Pointer_DfltBtnNext = 65275;
9585 enum int KEY_Pointer_DfltBtnPrev = 65276;
9586 enum int KEY_Pointer_Down = 65251;
9587 enum int KEY_Pointer_DownLeft = 65254;
9588 enum int KEY_Pointer_DownRight = 65255;
9589 enum int KEY_Pointer_Drag1 = 65269;
9590 enum int KEY_Pointer_Drag2 = 65270;
9591 enum int KEY_Pointer_Drag3 = 65271;
9592 enum int KEY_Pointer_Drag4 = 65272;
9593 enum int KEY_Pointer_Drag5 = 65277;
9594 enum int KEY_Pointer_Drag_Dflt = 65268;
9595 enum int KEY_Pointer_EnableKeys = 65273;
9596 enum int KEY_Pointer_Left = 65248;
9597 enum int KEY_Pointer_Right = 65249;
9598 enum int KEY_Pointer_Up = 65250;
9599 enum int KEY_Pointer_UpLeft = 65252;
9600 enum int KEY_Pointer_UpRight = 65253;
9601 enum int KEY_PowerDown = 269025057;
9602 enum int KEY_PowerOff = 269025066;
9603 enum int KEY_Prev_VMode = 269024803;
9604 enum int KEY_Prev_Virtual_Screen = 65233;
9605 enum int KEY_PreviousCandidate = 65342;
9606 enum int KEY_Print = 65377;
9607 enum int KEY_Prior = 65365;
9608 enum int KEY_Q = 81;
9609 enum int KEY_R = 82;
9610 enum int KEY_R1 = 65490;
9611 enum int KEY_R10 = 65499;
9612 enum int KEY_R11 = 65500;
9613 enum int KEY_R12 = 65501;
9614 enum int KEY_R13 = 65502;
9615 enum int KEY_R14 = 65503;
9616 enum int KEY_R15 = 65504;
9617 enum int KEY_R2 = 65491;
9618 enum int KEY_R3 = 65492;
9619 enum int KEY_R4 = 65493;
9620 enum int KEY_R5 = 65494;
9621 enum int KEY_R6 = 65495;
9622 enum int KEY_R7 = 65496;
9623 enum int KEY_R8 = 65497;
9624 enum int KEY_R9 = 65498;
9625 enum int KEY_Racute = 448;
9626 enum int KEY_Rcaron = 472;
9627 enum int KEY_Rcedilla = 931;
9628 enum int KEY_Red = 269025187;
9629 enum int KEY_Redo = 65382;
9630 enum int KEY_Refresh = 269025065;
9631 enum int KEY_Reload = 269025139;
9632 enum int KEY_RepeatKeys_Enable = 65138;
9633 enum int KEY_Reply = 269025138;
9634 enum int KEY_Return = 65293;
9635 enum int KEY_Right = 65363;
9636 enum int KEY_RockerDown = 269025060;
9637 enum int KEY_RockerEnter = 269025061;
9638 enum int KEY_RockerUp = 269025059;
9639 enum int KEY_Romaji = 65316;
9640 enum int KEY_RotateWindows = 269025140;
9641 enum int KEY_RotationKB = 269025142;
9642 enum int KEY_RotationPB = 269025141;
9643 enum int KEY_RupeeSign = 16785576;
9644 enum int KEY_S = 83;
9645 enum int KEY_SCHWA = 16777615;
9646 enum int KEY_Sabovedot = 16784992;
9647 enum int KEY_Sacute = 422;
9648 enum int KEY_Save = 269025143;
9649 enum int KEY_Scaron = 425;
9650 enum int KEY_Scedilla = 426;
9651 enum int KEY_Scircumflex = 734;
9652 enum int KEY_ScreenSaver = 269025069;
9653 enum int KEY_ScrollClick = 269025146;
9654 enum int KEY_ScrollDown = 269025145;
9655 enum int KEY_ScrollUp = 269025144;
9656 enum int KEY_Scroll_Lock = 65300;
9657 enum int KEY_Search = 269025051;
9658 enum int KEY_Select = 65376;
9659 enum int KEY_SelectButton = 269025184;
9660 enum int KEY_Send = 269025147;
9661 enum int KEY_Serbian_DJE = 1713;
9662 enum int KEY_Serbian_DZE = 1727;
9663 enum int KEY_Serbian_JE = 1720;
9664 enum int KEY_Serbian_LJE = 1721;
9665 enum int KEY_Serbian_NJE = 1722;
9666 enum int KEY_Serbian_TSHE = 1723;
9667 enum int KEY_Serbian_dje = 1697;
9668 enum int KEY_Serbian_dze = 1711;
9669 enum int KEY_Serbian_je = 1704;
9670 enum int KEY_Serbian_lje = 1705;
9671 enum int KEY_Serbian_nje = 1706;
9672 enum int KEY_Serbian_tshe = 1707;
9673 enum int KEY_Shift_L = 65505;
9674 enum int KEY_Shift_Lock = 65510;
9675 enum int KEY_Shift_R = 65506;
9676 enum int KEY_Shop = 269025078;
9677 enum int KEY_SingleCandidate = 65340;
9678 enum int KEY_Sinh_a = 16780677;
9679 enum int KEY_Sinh_aa = 16780678;
9680 enum int KEY_Sinh_aa2 = 16780751;
9681 enum int KEY_Sinh_ae = 16780679;
9682 enum int KEY_Sinh_ae2 = 16780752;
9683 enum int KEY_Sinh_aee = 16780680;
9684 enum int KEY_Sinh_aee2 = 16780753;
9685 enum int KEY_Sinh_ai = 16780691;
9686 enum int KEY_Sinh_ai2 = 16780763;
9687 enum int KEY_Sinh_al = 16780746;
9688 enum int KEY_Sinh_au = 16780694;
9689 enum int KEY_Sinh_au2 = 16780766;
9690 enum int KEY_Sinh_ba = 16780726;
9691 enum int KEY_Sinh_bha = 16780727;
9692 enum int KEY_Sinh_ca = 16780704;
9693 enum int KEY_Sinh_cha = 16780705;
9694 enum int KEY_Sinh_dda = 16780713;
9695 enum int KEY_Sinh_ddha = 16780714;
9696 enum int KEY_Sinh_dha = 16780719;
9697 enum int KEY_Sinh_dhha = 16780720;
9698 enum int KEY_Sinh_e = 16780689;
9699 enum int KEY_Sinh_e2 = 16780761;
9700 enum int KEY_Sinh_ee = 16780690;
9701 enum int KEY_Sinh_ee2 = 16780762;
9702 enum int KEY_Sinh_fa = 16780742;
9703 enum int KEY_Sinh_ga = 16780700;
9704 enum int KEY_Sinh_gha = 16780701;
9705 enum int KEY_Sinh_h2 = 16780675;
9706 enum int KEY_Sinh_ha = 16780740;
9707 enum int KEY_Sinh_i = 16780681;
9708 enum int KEY_Sinh_i2 = 16780754;
9709 enum int KEY_Sinh_ii = 16780682;
9710 enum int KEY_Sinh_ii2 = 16780755;
9711 enum int KEY_Sinh_ja = 16780706;
9712 enum int KEY_Sinh_jha = 16780707;
9713 enum int KEY_Sinh_jnya = 16780709;
9714 enum int KEY_Sinh_ka = 16780698;
9715 enum int KEY_Sinh_kha = 16780699;
9716 enum int KEY_Sinh_kunddaliya = 16780788;
9717 enum int KEY_Sinh_la = 16780733;
9718 enum int KEY_Sinh_lla = 16780741;
9719 enum int KEY_Sinh_lu = 16780687;
9720 enum int KEY_Sinh_lu2 = 16780767;
9721 enum int KEY_Sinh_luu = 16780688;
9722 enum int KEY_Sinh_luu2 = 16780787;
9723 enum int KEY_Sinh_ma = 16780728;
9724 enum int KEY_Sinh_mba = 16780729;
9725 enum int KEY_Sinh_na = 16780721;
9726 enum int KEY_Sinh_ndda = 16780716;
9727 enum int KEY_Sinh_ndha = 16780723;
9728 enum int KEY_Sinh_ng = 16780674;
9729 enum int KEY_Sinh_ng2 = 16780702;
9730 enum int KEY_Sinh_nga = 16780703;
9731 enum int KEY_Sinh_nja = 16780710;
9732 enum int KEY_Sinh_nna = 16780715;
9733 enum int KEY_Sinh_nya = 16780708;
9734 enum int KEY_Sinh_o = 16780692;
9735 enum int KEY_Sinh_o2 = 16780764;
9736 enum int KEY_Sinh_oo = 16780693;
9737 enum int KEY_Sinh_oo2 = 16780765;
9738 enum int KEY_Sinh_pa = 16780724;
9739 enum int KEY_Sinh_pha = 16780725;
9740 enum int KEY_Sinh_ra = 16780731;
9741 enum int KEY_Sinh_ri = 16780685;
9742 enum int KEY_Sinh_rii = 16780686;
9743 enum int KEY_Sinh_ru2 = 16780760;
9744 enum int KEY_Sinh_ruu2 = 16780786;
9745 enum int KEY_Sinh_sa = 16780739;
9746 enum int KEY_Sinh_sha = 16780737;
9747 enum int KEY_Sinh_ssha = 16780738;
9748 enum int KEY_Sinh_tha = 16780717;
9749 enum int KEY_Sinh_thha = 16780718;
9750 enum int KEY_Sinh_tta = 16780711;
9751 enum int KEY_Sinh_ttha = 16780712;
9752 enum int KEY_Sinh_u = 16780683;
9753 enum int KEY_Sinh_u2 = 16780756;
9754 enum int KEY_Sinh_uu = 16780684;
9755 enum int KEY_Sinh_uu2 = 16780758;
9756 enum int KEY_Sinh_va = 16780736;
9757 enum int KEY_Sinh_ya = 16780730;
9758 enum int KEY_Sleep = 269025071;
9759 enum int KEY_SlowKeys_Enable = 65139;
9760 enum int KEY_Spell = 269025148;
9761 enum int KEY_SplitScreen = 269025149;
9762 enum int KEY_Standby = 269025040;
9763 enum int KEY_Start = 269025050;
9764 enum int KEY_StickyKeys_Enable = 65141;
9765 enum int KEY_Stop = 269025064;
9766 enum int KEY_Subtitle = 269025178;
9767 enum int KEY_Super_L = 65515;
9768 enum int KEY_Super_R = 65516;
9769 enum int KEY_Support = 269025150;
9770 enum int KEY_Suspend = 269025191;
9771 enum int KEY_Switch_VT_1 = 269024769;
9772 enum int KEY_Switch_VT_10 = 269024778;
9773 enum int KEY_Switch_VT_11 = 269024779;
9774 enum int KEY_Switch_VT_12 = 269024780;
9775 enum int KEY_Switch_VT_2 = 269024770;
9776 enum int KEY_Switch_VT_3 = 269024771;
9777 enum int KEY_Switch_VT_4 = 269024772;
9778 enum int KEY_Switch_VT_5 = 269024773;
9779 enum int KEY_Switch_VT_6 = 269024774;
9780 enum int KEY_Switch_VT_7 = 269024775;
9781 enum int KEY_Switch_VT_8 = 269024776;
9782 enum int KEY_Switch_VT_9 = 269024777;
9783 enum int KEY_Sys_Req = 65301;
9784 enum int KEY_T = 84;
9785 enum int KEY_THORN = 222;
9786 enum int KEY_Tab = 65289;
9787 enum int KEY_Tabovedot = 16785002;
9788 enum int KEY_TaskPane = 269025151;
9789 enum int KEY_Tcaron = 427;
9790 enum int KEY_Tcedilla = 478;
9791 enum int KEY_Terminal = 269025152;
9792 enum int KEY_Terminate_Server = 65237;
9793 enum int KEY_Thai_baht = 3551;
9794 enum int KEY_Thai_bobaimai = 3514;
9795 enum int KEY_Thai_chochan = 3496;
9796 enum int KEY_Thai_chochang = 3498;
9797 enum int KEY_Thai_choching = 3497;
9798 enum int KEY_Thai_chochoe = 3500;
9799 enum int KEY_Thai_dochada = 3502;
9800 enum int KEY_Thai_dodek = 3508;
9801 enum int KEY_Thai_fofa = 3517;
9802 enum int KEY_Thai_fofan = 3519;
9803 enum int KEY_Thai_hohip = 3531;
9804 enum int KEY_Thai_honokhuk = 3534;
9805 enum int KEY_Thai_khokhai = 3490;
9806 enum int KEY_Thai_khokhon = 3493;
9807 enum int KEY_Thai_khokhuat = 3491;
9808 enum int KEY_Thai_khokhwai = 3492;
9809 enum int KEY_Thai_khorakhang = 3494;
9810 enum int KEY_Thai_kokai = 3489;
9811 enum int KEY_Thai_lakkhangyao = 3557;
9812 enum int KEY_Thai_lekchet = 3575;
9813 enum int KEY_Thai_lekha = 3573;
9814 enum int KEY_Thai_lekhok = 3574;
9815 enum int KEY_Thai_lekkao = 3577;
9816 enum int KEY_Thai_leknung = 3569;
9817 enum int KEY_Thai_lekpaet = 3576;
9818 enum int KEY_Thai_leksam = 3571;
9819 enum int KEY_Thai_leksi = 3572;
9820 enum int KEY_Thai_leksong = 3570;
9821 enum int KEY_Thai_leksun = 3568;
9822 enum int KEY_Thai_lochula = 3532;
9823 enum int KEY_Thai_loling = 3525;
9824 enum int KEY_Thai_lu = 3526;
9825 enum int KEY_Thai_maichattawa = 3563;
9826 enum int KEY_Thai_maiek = 3560;
9827 enum int KEY_Thai_maihanakat = 3537;
9828 enum int KEY_Thai_maihanakat_maitho = 3550;
9829 enum int KEY_Thai_maitaikhu = 3559;
9830 enum int KEY_Thai_maitho = 3561;
9831 enum int KEY_Thai_maitri = 3562;
9832 enum int KEY_Thai_maiyamok = 3558;
9833 enum int KEY_Thai_moma = 3521;
9834 enum int KEY_Thai_ngongu = 3495;
9835 enum int KEY_Thai_nikhahit = 3565;
9836 enum int KEY_Thai_nonen = 3507;
9837 enum int KEY_Thai_nonu = 3513;
9838 enum int KEY_Thai_oang = 3533;
9839 enum int KEY_Thai_paiyannoi = 3535;
9840 enum int KEY_Thai_phinthu = 3546;
9841 enum int KEY_Thai_phophan = 3518;
9842 enum int KEY_Thai_phophung = 3516;
9843 enum int KEY_Thai_phosamphao = 3520;
9844 enum int KEY_Thai_popla = 3515;
9845 enum int KEY_Thai_rorua = 3523;
9846 enum int KEY_Thai_ru = 3524;
9847 enum int KEY_Thai_saraa = 3536;
9848 enum int KEY_Thai_saraaa = 3538;
9849 enum int KEY_Thai_saraae = 3553;
9850 enum int KEY_Thai_saraaimaimalai = 3556;
9851 enum int KEY_Thai_saraaimaimuan = 3555;
9852 enum int KEY_Thai_saraam = 3539;
9853 enum int KEY_Thai_sarae = 3552;
9854 enum int KEY_Thai_sarai = 3540;
9855 enum int KEY_Thai_saraii = 3541;
9856 enum int KEY_Thai_sarao = 3554;
9857 enum int KEY_Thai_sarau = 3544;
9858 enum int KEY_Thai_saraue = 3542;
9859 enum int KEY_Thai_sarauee = 3543;
9860 enum int KEY_Thai_sarauu = 3545;
9861 enum int KEY_Thai_sorusi = 3529;
9862 enum int KEY_Thai_sosala = 3528;
9863 enum int KEY_Thai_soso = 3499;
9864 enum int KEY_Thai_sosua = 3530;
9865 enum int KEY_Thai_thanthakhat = 3564;
9866 enum int KEY_Thai_thonangmontho = 3505;
9867 enum int KEY_Thai_thophuthao = 3506;
9868 enum int KEY_Thai_thothahan = 3511;
9869 enum int KEY_Thai_thothan = 3504;
9870 enum int KEY_Thai_thothong = 3512;
9871 enum int KEY_Thai_thothung = 3510;
9872 enum int KEY_Thai_topatak = 3503;
9873 enum int KEY_Thai_totao = 3509;
9874 enum int KEY_Thai_wowaen = 3527;
9875 enum int KEY_Thai_yoyak = 3522;
9876 enum int KEY_Thai_yoying = 3501;
9877 enum int KEY_Thorn = 222;
9878 enum int KEY_Time = 269025183;
9879 enum int KEY_ToDoList = 269025055;
9880 enum int KEY_Tools = 269025153;
9881 enum int KEY_TopMenu = 269025186;
9882 enum int KEY_TouchpadOff = 269025201;
9883 enum int KEY_TouchpadOn = 269025200;
9884 enum int KEY_TouchpadToggle = 269025193;
9885 enum int KEY_Touroku = 65323;
9886 enum int KEY_Travel = 269025154;
9887 enum int KEY_Tslash = 940;
9888 enum int KEY_U = 85;
9889 enum int KEY_UWB = 269025174;
9890 enum int KEY_Uacute = 218;
9891 enum int KEY_Ubelowdot = 16785124;
9892 enum int KEY_Ubreve = 733;
9893 enum int KEY_Ucircumflex = 219;
9894 enum int KEY_Udiaeresis = 220;
9895 enum int KEY_Udoubleacute = 475;
9896 enum int KEY_Ugrave = 217;
9897 enum int KEY_Uhook = 16785126;
9898 enum int KEY_Uhorn = 16777647;
9899 enum int KEY_Uhornacute = 16785128;
9900 enum int KEY_Uhornbelowdot = 16785136;
9901 enum int KEY_Uhorngrave = 16785130;
9902 enum int KEY_Uhornhook = 16785132;
9903 enum int KEY_Uhorntilde = 16785134;
9904 enum int KEY_Ukrainian_GHE_WITH_UPTURN = 1725;
9905 enum int KEY_Ukrainian_I = 1718;
9906 enum int KEY_Ukrainian_IE = 1716;
9907 enum int KEY_Ukrainian_YI = 1719;
9908 enum int KEY_Ukrainian_ghe_with_upturn = 1709;
9909 enum int KEY_Ukrainian_i = 1702;
9910 enum int KEY_Ukrainian_ie = 1700;
9911 enum int KEY_Ukrainian_yi = 1703;
9912 enum int KEY_Ukranian_I = 1718;
9913 enum int KEY_Ukranian_JE = 1716;
9914 enum int KEY_Ukranian_YI = 1719;
9915 enum int KEY_Ukranian_i = 1702;
9916 enum int KEY_Ukranian_je = 1700;
9917 enum int KEY_Ukranian_yi = 1703;
9918 enum int KEY_Umacron = 990;
9919 enum int KEY_Undo = 65381;
9920 enum int KEY_Ungrab = 269024800;
9921 enum int KEY_Uogonek = 985;
9922 enum int KEY_Up = 65362;
9923 enum int KEY_Uring = 473;
9924 enum int KEY_User1KB = 269025157;
9925 enum int KEY_User2KB = 269025158;
9926 enum int KEY_UserPB = 269025156;
9927 enum int KEY_Utilde = 989;
9928 enum int KEY_V = 86;
9929 enum int KEY_VendorHome = 269025076;
9930 enum int KEY_Video = 269025159;
9931 enum int KEY_View = 269025185;
9932 enum int KEY_VoidSymbol = 16777215;
9933 enum int KEY_W = 87;
9934 enum int KEY_WLAN = 269025173;
9935 enum int KEY_WWW = 269025070;
9936 enum int KEY_Wacute = 16785026;
9937 enum int KEY_WakeUp = 269025067;
9938 enum int KEY_Wcircumflex = 16777588;
9939 enum int KEY_Wdiaeresis = 16785028;
9940 enum int KEY_WebCam = 269025167;
9941 enum int KEY_Wgrave = 16785024;
9942 enum int KEY_WheelButton = 269025160;
9943 enum int KEY_WindowClear = 269025109;
9944 enum int KEY_WonSign = 16785577;
9945 enum int KEY_Word = 269025161;
9946 enum int KEY_X = 88;
9947 enum int KEY_Xabovedot = 16785034;
9948 enum int KEY_Xfer = 269025162;
9949 enum int KEY_Y = 89;
9950 enum int KEY_Yacute = 221;
9951 enum int KEY_Ybelowdot = 16785140;
9952 enum int KEY_Ycircumflex = 16777590;
9953 enum int KEY_Ydiaeresis = 5054;
9954 enum int KEY_Yellow = 269025189;
9955 enum int KEY_Ygrave = 16785138;
9956 enum int KEY_Yhook = 16785142;
9957 enum int KEY_Ytilde = 16785144;
9958 enum int KEY_Z = 90;
9959 enum int KEY_Zabovedot = 431;
9960 enum int KEY_Zacute = 428;
9961 enum int KEY_Zcaron = 430;
9962 enum int KEY_Zen_Koho = 65341;
9963 enum int KEY_Zenkaku = 65320;
9964 enum int KEY_Zenkaku_Hankaku = 65322;
9965 enum int KEY_ZoomIn = 269025163;
9966 enum int KEY_ZoomOut = 269025164;
9967 enum int KEY_Zstroke = 16777653;
9968 enum int KEY_a = 97;
9969 enum int KEY_aacute = 225;
9970 enum int KEY_abelowdot = 16785057;
9971 enum int KEY_abovedot = 511;
9972 enum int KEY_abreve = 483;
9973 enum int KEY_abreveacute = 16785071;
9974 enum int KEY_abrevebelowdot = 16785079;
9975 enum int KEY_abrevegrave = 16785073;
9976 enum int KEY_abrevehook = 16785075;
9977 enum int KEY_abrevetilde = 16785077;
9978 enum int KEY_acircumflex = 226;
9979 enum int KEY_acircumflexacute = 16785061;
9980 enum int KEY_acircumflexbelowdot = 16785069;
9981 enum int KEY_acircumflexgrave = 16785063;
9982 enum int KEY_acircumflexhook = 16785065;
9983 enum int KEY_acircumflextilde = 16785067;
9984 enum int KEY_acute = 180;
9985 enum int KEY_adiaeresis = 228;
9986 enum int KEY_ae = 230;
9987 enum int KEY_agrave = 224;
9988 enum int KEY_ahook = 16785059;
9989 enum int KEY_amacron = 992;
9990 enum int KEY_ampersand = 38;
9991 enum int KEY_aogonek = 433;
9992 enum int KEY_apostrophe = 39;
9993 enum int KEY_approxeq = 16785992;
9994 enum int KEY_approximate = 2248;
9995 enum int KEY_aring = 229;
9996 enum int KEY_asciicircum = 94;
9997 enum int KEY_asciitilde = 126;
9998 enum int KEY_asterisk = 42;
9999 enum int KEY_at = 64;
10000 enum int KEY_atilde = 227;
10001 enum int KEY_b = 98;
10002 enum int KEY_babovedot = 16784899;
10003 enum int KEY_backslash = 92;
10004 enum int KEY_ballotcross = 2804;
10005 enum int KEY_bar = 124;
10006 enum int KEY_because = 16785973;
10007 enum int KEY_blank = 2527;
10008 enum int KEY_botintegral = 2213;
10009 enum int KEY_botleftparens = 2220;
10010 enum int KEY_botleftsqbracket = 2216;
10011 enum int KEY_botleftsummation = 2226;
10012 enum int KEY_botrightparens = 2222;
10013 enum int KEY_botrightsqbracket = 2218;
10014 enum int KEY_botrightsummation = 2230;
10015 enum int KEY_bott = 2550;
10016 enum int KEY_botvertsummationconnector = 2228;
10017 enum int KEY_braceleft = 123;
10018 enum int KEY_braceright = 125;
10019 enum int KEY_bracketleft = 91;
10020 enum int KEY_bracketright = 93;
10021 enum int KEY_braille_blank = 16787456;
10022 enum int KEY_braille_dot_1 = 65521;
10023 enum int KEY_braille_dot_10 = 65530;
10024 enum int KEY_braille_dot_2 = 65522;
10025 enum int KEY_braille_dot_3 = 65523;
10026 enum int KEY_braille_dot_4 = 65524;
10027 enum int KEY_braille_dot_5 = 65525;
10028 enum int KEY_braille_dot_6 = 65526;
10029 enum int KEY_braille_dot_7 = 65527;
10030 enum int KEY_braille_dot_8 = 65528;
10031 enum int KEY_braille_dot_9 = 65529;
10032 enum int KEY_braille_dots_1 = 16787457;
10033 enum int KEY_braille_dots_12 = 16787459;
10034 enum int KEY_braille_dots_123 = 16787463;
10035 enum int KEY_braille_dots_1234 = 16787471;
10036 enum int KEY_braille_dots_12345 = 16787487;
10037 enum int KEY_braille_dots_123456 = 16787519;
10038 enum int KEY_braille_dots_1234567 = 16787583;
10039 enum int KEY_braille_dots_12345678 = 16787711;
10040 enum int KEY_braille_dots_1234568 = 16787647;
10041 enum int KEY_braille_dots_123457 = 16787551;
10042 enum int KEY_braille_dots_1234578 = 16787679;
10043 enum int KEY_braille_dots_123458 = 16787615;
10044 enum int KEY_braille_dots_12346 = 16787503;
10045 enum int KEY_braille_dots_123467 = 16787567;
10046 enum int KEY_braille_dots_1234678 = 16787695;
10047 enum int KEY_braille_dots_123468 = 16787631;
10048 enum int KEY_braille_dots_12347 = 16787535;
10049 enum int KEY_braille_dots_123478 = 16787663;
10050 enum int KEY_braille_dots_12348 = 16787599;
10051 enum int KEY_braille_dots_1235 = 16787479;
10052 enum int KEY_braille_dots_12356 = 16787511;
10053 enum int KEY_braille_dots_123567 = 16787575;
10054 enum int KEY_braille_dots_1235678 = 16787703;
10055 enum int KEY_braille_dots_123568 = 16787639;
10056 enum int KEY_braille_dots_12357 = 16787543;
10057 enum int KEY_braille_dots_123578 = 16787671;
10058 enum int KEY_braille_dots_12358 = 16787607;
10059 enum int KEY_braille_dots_1236 = 16787495;
10060 enum int KEY_braille_dots_12367 = 16787559;
10061 enum int KEY_braille_dots_123678 = 16787687;
10062 enum int KEY_braille_dots_12368 = 16787623;
10063 enum int KEY_braille_dots_1237 = 16787527;
10064 enum int KEY_braille_dots_12378 = 16787655;
10065 enum int KEY_braille_dots_1238 = 16787591;
10066 enum int KEY_braille_dots_124 = 16787467;
10067 enum int KEY_braille_dots_1245 = 16787483;
10068 enum int KEY_braille_dots_12456 = 16787515;
10069 enum int KEY_braille_dots_124567 = 16787579;
10070 enum int KEY_braille_dots_1245678 = 16787707;
10071 enum int KEY_braille_dots_124568 = 16787643;
10072 enum int KEY_braille_dots_12457 = 16787547;
10073 enum int KEY_braille_dots_124578 = 16787675;
10074 enum int KEY_braille_dots_12458 = 16787611;
10075 enum int KEY_braille_dots_1246 = 16787499;
10076 enum int KEY_braille_dots_12467 = 16787563;
10077 enum int KEY_braille_dots_124678 = 16787691;
10078 enum int KEY_braille_dots_12468 = 16787627;
10079 enum int KEY_braille_dots_1247 = 16787531;
10080 enum int KEY_braille_dots_12478 = 16787659;
10081 enum int KEY_braille_dots_1248 = 16787595;
10082 enum int KEY_braille_dots_125 = 16787475;
10083 enum int KEY_braille_dots_1256 = 16787507;
10084 enum int KEY_braille_dots_12567 = 16787571;
10085 enum int KEY_braille_dots_125678 = 16787699;
10086 enum int KEY_braille_dots_12568 = 16787635;
10087 enum int KEY_braille_dots_1257 = 16787539;
10088 enum int KEY_braille_dots_12578 = 16787667;
10089 enum int KEY_braille_dots_1258 = 16787603;
10090 enum int KEY_braille_dots_126 = 16787491;
10091 enum int KEY_braille_dots_1267 = 16787555;
10092 enum int KEY_braille_dots_12678 = 16787683;
10093 enum int KEY_braille_dots_1268 = 16787619;
10094 enum int KEY_braille_dots_127 = 16787523;
10095 enum int KEY_braille_dots_1278 = 16787651;
10096 enum int KEY_braille_dots_128 = 16787587;
10097 enum int KEY_braille_dots_13 = 16787461;
10098 enum int KEY_braille_dots_134 = 16787469;
10099 enum int KEY_braille_dots_1345 = 16787485;
10100 enum int KEY_braille_dots_13456 = 16787517;
10101 enum int KEY_braille_dots_134567 = 16787581;
10102 enum int KEY_braille_dots_1345678 = 16787709;
10103 enum int KEY_braille_dots_134568 = 16787645;
10104 enum int KEY_braille_dots_13457 = 16787549;
10105 enum int KEY_braille_dots_134578 = 16787677;
10106 enum int KEY_braille_dots_13458 = 16787613;
10107 enum int KEY_braille_dots_1346 = 16787501;
10108 enum int KEY_braille_dots_13467 = 16787565;
10109 enum int KEY_braille_dots_134678 = 16787693;
10110 enum int KEY_braille_dots_13468 = 16787629;
10111 enum int KEY_braille_dots_1347 = 16787533;
10112 enum int KEY_braille_dots_13478 = 16787661;
10113 enum int KEY_braille_dots_1348 = 16787597;
10114 enum int KEY_braille_dots_135 = 16787477;
10115 enum int KEY_braille_dots_1356 = 16787509;
10116 enum int KEY_braille_dots_13567 = 16787573;
10117 enum int KEY_braille_dots_135678 = 16787701;
10118 enum int KEY_braille_dots_13568 = 16787637;
10119 enum int KEY_braille_dots_1357 = 16787541;
10120 enum int KEY_braille_dots_13578 = 16787669;
10121 enum int KEY_braille_dots_1358 = 16787605;
10122 enum int KEY_braille_dots_136 = 16787493;
10123 enum int KEY_braille_dots_1367 = 16787557;
10124 enum int KEY_braille_dots_13678 = 16787685;
10125 enum int KEY_braille_dots_1368 = 16787621;
10126 enum int KEY_braille_dots_137 = 16787525;
10127 enum int KEY_braille_dots_1378 = 16787653;
10128 enum int KEY_braille_dots_138 = 16787589;
10129 enum int KEY_braille_dots_14 = 16787465;
10130 enum int KEY_braille_dots_145 = 16787481;
10131 enum int KEY_braille_dots_1456 = 16787513;
10132 enum int KEY_braille_dots_14567 = 16787577;
10133 enum int KEY_braille_dots_145678 = 16787705;
10134 enum int KEY_braille_dots_14568 = 16787641;
10135 enum int KEY_braille_dots_1457 = 16787545;
10136 enum int KEY_braille_dots_14578 = 16787673;
10137 enum int KEY_braille_dots_1458 = 16787609;
10138 enum int KEY_braille_dots_146 = 16787497;
10139 enum int KEY_braille_dots_1467 = 16787561;
10140 enum int KEY_braille_dots_14678 = 16787689;
10141 enum int KEY_braille_dots_1468 = 16787625;
10142 enum int KEY_braille_dots_147 = 16787529;
10143 enum int KEY_braille_dots_1478 = 16787657;
10144 enum int KEY_braille_dots_148 = 16787593;
10145 enum int KEY_braille_dots_15 = 16787473;
10146 enum int KEY_braille_dots_156 = 16787505;
10147 enum int KEY_braille_dots_1567 = 16787569;
10148 enum int KEY_braille_dots_15678 = 16787697;
10149 enum int KEY_braille_dots_1568 = 16787633;
10150 enum int KEY_braille_dots_157 = 16787537;
10151 enum int KEY_braille_dots_1578 = 16787665;
10152 enum int KEY_braille_dots_158 = 16787601;
10153 enum int KEY_braille_dots_16 = 16787489;
10154 enum int KEY_braille_dots_167 = 16787553;
10155 enum int KEY_braille_dots_1678 = 16787681;
10156 enum int KEY_braille_dots_168 = 16787617;
10157 enum int KEY_braille_dots_17 = 16787521;
10158 enum int KEY_braille_dots_178 = 16787649;
10159 enum int KEY_braille_dots_18 = 16787585;
10160 enum int KEY_braille_dots_2 = 16787458;
10161 enum int KEY_braille_dots_23 = 16787462;
10162 enum int KEY_braille_dots_234 = 16787470;
10163 enum int KEY_braille_dots_2345 = 16787486;
10164 enum int KEY_braille_dots_23456 = 16787518;
10165 enum int KEY_braille_dots_234567 = 16787582;
10166 enum int KEY_braille_dots_2345678 = 16787710;
10167 enum int KEY_braille_dots_234568 = 16787646;
10168 enum int KEY_braille_dots_23457 = 16787550;
10169 enum int KEY_braille_dots_234578 = 16787678;
10170 enum int KEY_braille_dots_23458 = 16787614;
10171 enum int KEY_braille_dots_2346 = 16787502;
10172 enum int KEY_braille_dots_23467 = 16787566;
10173 enum int KEY_braille_dots_234678 = 16787694;
10174 enum int KEY_braille_dots_23468 = 16787630;
10175 enum int KEY_braille_dots_2347 = 16787534;
10176 enum int KEY_braille_dots_23478 = 16787662;
10177 enum int KEY_braille_dots_2348 = 16787598;
10178 enum int KEY_braille_dots_235 = 16787478;
10179 enum int KEY_braille_dots_2356 = 16787510;
10180 enum int KEY_braille_dots_23567 = 16787574;
10181 enum int KEY_braille_dots_235678 = 16787702;
10182 enum int KEY_braille_dots_23568 = 16787638;
10183 enum int KEY_braille_dots_2357 = 16787542;
10184 enum int KEY_braille_dots_23578 = 16787670;
10185 enum int KEY_braille_dots_2358 = 16787606;
10186 enum int KEY_braille_dots_236 = 16787494;
10187 enum int KEY_braille_dots_2367 = 16787558;
10188 enum int KEY_braille_dots_23678 = 16787686;
10189 enum int KEY_braille_dots_2368 = 16787622;
10190 enum int KEY_braille_dots_237 = 16787526;
10191 enum int KEY_braille_dots_2378 = 16787654;
10192 enum int KEY_braille_dots_238 = 16787590;
10193 enum int KEY_braille_dots_24 = 16787466;
10194 enum int KEY_braille_dots_245 = 16787482;
10195 enum int KEY_braille_dots_2456 = 16787514;
10196 enum int KEY_braille_dots_24567 = 16787578;
10197 enum int KEY_braille_dots_245678 = 16787706;
10198 enum int KEY_braille_dots_24568 = 16787642;
10199 enum int KEY_braille_dots_2457 = 16787546;
10200 enum int KEY_braille_dots_24578 = 16787674;
10201 enum int KEY_braille_dots_2458 = 16787610;
10202 enum int KEY_braille_dots_246 = 16787498;
10203 enum int KEY_braille_dots_2467 = 16787562;
10204 enum int KEY_braille_dots_24678 = 16787690;
10205 enum int KEY_braille_dots_2468 = 16787626;
10206 enum int KEY_braille_dots_247 = 16787530;
10207 enum int KEY_braille_dots_2478 = 16787658;
10208 enum int KEY_braille_dots_248 = 16787594;
10209 enum int KEY_braille_dots_25 = 16787474;
10210 enum int KEY_braille_dots_256 = 16787506;
10211 enum int KEY_braille_dots_2567 = 16787570;
10212 enum int KEY_braille_dots_25678 = 16787698;
10213 enum int KEY_braille_dots_2568 = 16787634;
10214 enum int KEY_braille_dots_257 = 16787538;
10215 enum int KEY_braille_dots_2578 = 16787666;
10216 enum int KEY_braille_dots_258 = 16787602;
10217 enum int KEY_braille_dots_26 = 16787490;
10218 enum int KEY_braille_dots_267 = 16787554;
10219 enum int KEY_braille_dots_2678 = 16787682;
10220 enum int KEY_braille_dots_268 = 16787618;
10221 enum int KEY_braille_dots_27 = 16787522;
10222 enum int KEY_braille_dots_278 = 16787650;
10223 enum int KEY_braille_dots_28 = 16787586;
10224 enum int KEY_braille_dots_3 = 16787460;
10225 enum int KEY_braille_dots_34 = 16787468;
10226 enum int KEY_braille_dots_345 = 16787484;
10227 enum int KEY_braille_dots_3456 = 16787516;
10228 enum int KEY_braille_dots_34567 = 16787580;
10229 enum int KEY_braille_dots_345678 = 16787708;
10230 enum int KEY_braille_dots_34568 = 16787644;
10231 enum int KEY_braille_dots_3457 = 16787548;
10232 enum int KEY_braille_dots_34578 = 16787676;
10233 enum int KEY_braille_dots_3458 = 16787612;
10234 enum int KEY_braille_dots_346 = 16787500;
10235 enum int KEY_braille_dots_3467 = 16787564;
10236 enum int KEY_braille_dots_34678 = 16787692;
10237 enum int KEY_braille_dots_3468 = 16787628;
10238 enum int KEY_braille_dots_347 = 16787532;
10239 enum int KEY_braille_dots_3478 = 16787660;
10240 enum int KEY_braille_dots_348 = 16787596;
10241 enum int KEY_braille_dots_35 = 16787476;
10242 enum int KEY_braille_dots_356 = 16787508;
10243 enum int KEY_braille_dots_3567 = 16787572;
10244 enum int KEY_braille_dots_35678 = 16787700;
10245 enum int KEY_braille_dots_3568 = 16787636;
10246 enum int KEY_braille_dots_357 = 16787540;
10247 enum int KEY_braille_dots_3578 = 16787668;
10248 enum int KEY_braille_dots_358 = 16787604;
10249 enum int KEY_braille_dots_36 = 16787492;
10250 enum int KEY_braille_dots_367 = 16787556;
10251 enum int KEY_braille_dots_3678 = 16787684;
10252 enum int KEY_braille_dots_368 = 16787620;
10253 enum int KEY_braille_dots_37 = 16787524;
10254 enum int KEY_braille_dots_378 = 16787652;
10255 enum int KEY_braille_dots_38 = 16787588;
10256 enum int KEY_braille_dots_4 = 16787464;
10257 enum int KEY_braille_dots_45 = 16787480;
10258 enum int KEY_braille_dots_456 = 16787512;
10259 enum int KEY_braille_dots_4567 = 16787576;
10260 enum int KEY_braille_dots_45678 = 16787704;
10261 enum int KEY_braille_dots_4568 = 16787640;
10262 enum int KEY_braille_dots_457 = 16787544;
10263 enum int KEY_braille_dots_4578 = 16787672;
10264 enum int KEY_braille_dots_458 = 16787608;
10265 enum int KEY_braille_dots_46 = 16787496;
10266 enum int KEY_braille_dots_467 = 16787560;
10267 enum int KEY_braille_dots_4678 = 16787688;
10268 enum int KEY_braille_dots_468 = 16787624;
10269 enum int KEY_braille_dots_47 = 16787528;
10270 enum int KEY_braille_dots_478 = 16787656;
10271 enum int KEY_braille_dots_48 = 16787592;
10272 enum int KEY_braille_dots_5 = 16787472;
10273 enum int KEY_braille_dots_56 = 16787504;
10274 enum int KEY_braille_dots_567 = 16787568;
10275 enum int KEY_braille_dots_5678 = 16787696;
10276 enum int KEY_braille_dots_568 = 16787632;
10277 enum int KEY_braille_dots_57 = 16787536;
10278 enum int KEY_braille_dots_578 = 16787664;
10279 enum int KEY_braille_dots_58 = 16787600;
10280 enum int KEY_braille_dots_6 = 16787488;
10281 enum int KEY_braille_dots_67 = 16787552;
10282 enum int KEY_braille_dots_678 = 16787680;
10283 enum int KEY_braille_dots_68 = 16787616;
10284 enum int KEY_braille_dots_7 = 16787520;
10285 enum int KEY_braille_dots_78 = 16787648;
10286 enum int KEY_braille_dots_8 = 16787584;
10287 enum int KEY_breve = 418;
10288 enum int KEY_brokenbar = 166;
10289 enum int KEY_c = 99;
10290 enum int KEY_cabovedot = 741;
10291 enum int KEY_cacute = 486;
10292 enum int KEY_careof = 2744;
10293 enum int KEY_caret = 2812;
10294 enum int KEY_caron = 439;
10295 enum int KEY_ccaron = 488;
10296 enum int KEY_ccedilla = 231;
10297 enum int KEY_ccircumflex = 742;
10298 enum int KEY_cedilla = 184;
10299 enum int KEY_cent = 162;
10300 enum int KEY_checkerboard = 2529;
10301 enum int KEY_checkmark = 2803;
10302 enum int KEY_circle = 3023;
10303 enum int KEY_club = 2796;
10304 enum int KEY_colon = 58;
10305 enum int KEY_comma = 44;
10306 enum int KEY_containsas = 16785931;
10307 enum int KEY_copyright = 169;
10308 enum int KEY_cr = 2532;
10309 enum int KEY_crossinglines = 2542;
10310 enum int KEY_cuberoot = 16785947;
10311 enum int KEY_currency = 164;
10312 enum int KEY_cursor = 2815;
10313 enum int KEY_d = 100;
10314 enum int KEY_dabovedot = 16784907;
10315 enum int KEY_dagger = 2801;
10316 enum int KEY_dcaron = 495;
10317 enum int KEY_dead_A = 65153;
10318 enum int KEY_dead_E = 65155;
10319 enum int KEY_dead_I = 65157;
10320 enum int KEY_dead_O = 65159;
10321 enum int KEY_dead_U = 65161;
10322 enum int KEY_dead_a = 65152;
10323 enum int KEY_dead_abovecomma = 65124;
10324 enum int KEY_dead_abovedot = 65110;
10325 enum int KEY_dead_abovereversedcomma = 65125;
10326 enum int KEY_dead_abovering = 65112;
10327 enum int KEY_dead_acute = 65105;
10328 enum int KEY_dead_belowbreve = 65131;
10329 enum int KEY_dead_belowcircumflex = 65129;
10330 enum int KEY_dead_belowcomma = 65134;
10331 enum int KEY_dead_belowdiaeresis = 65132;
10332 enum int KEY_dead_belowdot = 65120;
10333 enum int KEY_dead_belowmacron = 65128;
10334 enum int KEY_dead_belowring = 65127;
10335 enum int KEY_dead_belowtilde = 65130;
10336 enum int KEY_dead_breve = 65109;
10337 enum int KEY_dead_capital_schwa = 65163;
10338 enum int KEY_dead_caron = 65114;
10339 enum int KEY_dead_cedilla = 65115;
10340 enum int KEY_dead_circumflex = 65106;
10341 enum int KEY_dead_currency = 65135;
10342 enum int KEY_dead_dasia = 65125;
10343 enum int KEY_dead_diaeresis = 65111;
10344 enum int KEY_dead_doubleacute = 65113;
10345 enum int KEY_dead_doublegrave = 65126;
10346 enum int KEY_dead_e = 65154;
10347 enum int KEY_dead_grave = 65104;
10348 enum int KEY_dead_hook = 65121;
10349 enum int KEY_dead_horn = 65122;
10350 enum int KEY_dead_i = 65156;
10351 enum int KEY_dead_invertedbreve = 65133;
10352 enum int KEY_dead_iota = 65117;
10353 enum int KEY_dead_macron = 65108;
10354 enum int KEY_dead_o = 65158;
10355 enum int KEY_dead_ogonek = 65116;
10356 enum int KEY_dead_perispomeni = 65107;
10357 enum int KEY_dead_psili = 65124;
10358 enum int KEY_dead_semivoiced_sound = 65119;
10359 enum int KEY_dead_small_schwa = 65162;
10360 enum int KEY_dead_stroke = 65123;
10361 enum int KEY_dead_tilde = 65107;
10362 enum int KEY_dead_u = 65160;
10363 enum int KEY_dead_voiced_sound = 65118;
10364 enum int KEY_decimalpoint = 2749;
10365 enum int KEY_degree = 176;
10366 enum int KEY_diaeresis = 168;
10367 enum int KEY_diamond = 2797;
10368 enum int KEY_digitspace = 2725;
10369 enum int KEY_dintegral = 16785964;
10370 enum int KEY_division = 247;
10371 enum int KEY_dollar = 36;
10372 enum int KEY_doubbaselinedot = 2735;
10373 enum int KEY_doubleacute = 445;
10374 enum int KEY_doubledagger = 2802;
10375 enum int KEY_doublelowquotemark = 2814;
10376 enum int KEY_downarrow = 2302;
10377 enum int KEY_downcaret = 2984;
10378 enum int KEY_downshoe = 3030;
10379 enum int KEY_downstile = 3012;
10380 enum int KEY_downtack = 3010;
10381 enum int KEY_dstroke = 496;
10382 enum int KEY_e = 101;
10383 enum int KEY_eabovedot = 1004;
10384 enum int KEY_eacute = 233;
10385 enum int KEY_ebelowdot = 16785081;
10386 enum int KEY_ecaron = 492;
10387 enum int KEY_ecircumflex = 234;
10388 enum int KEY_ecircumflexacute = 16785087;
10389 enum int KEY_ecircumflexbelowdot = 16785095;
10390 enum int KEY_ecircumflexgrave = 16785089;
10391 enum int KEY_ecircumflexhook = 16785091;
10392 enum int KEY_ecircumflextilde = 16785093;
10393 enum int KEY_ediaeresis = 235;
10394 enum int KEY_egrave = 232;
10395 enum int KEY_ehook = 16785083;
10396 enum int KEY_eightsubscript = 16785544;
10397 enum int KEY_eightsuperior = 16785528;
10398 enum int KEY_elementof = 16785928;
10399 enum int KEY_ellipsis = 2734;
10400 enum int KEY_em3space = 2723;
10401 enum int KEY_em4space = 2724;
10402 enum int KEY_emacron = 954;
10403 enum int KEY_emdash = 2729;
10404 enum int KEY_emfilledcircle = 2782;
10405 enum int KEY_emfilledrect = 2783;
10406 enum int KEY_emopencircle = 2766;
10407 enum int KEY_emopenrectangle = 2767;
10408 enum int KEY_emptyset = 16785925;
10409 enum int KEY_emspace = 2721;
10410 enum int KEY_endash = 2730;
10411 enum int KEY_enfilledcircbullet = 2790;
10412 enum int KEY_enfilledsqbullet = 2791;
10413 enum int KEY_eng = 959;
10414 enum int KEY_enopencircbullet = 2784;
10415 enum int KEY_enopensquarebullet = 2785;
10416 enum int KEY_enspace = 2722;
10417 enum int KEY_eogonek = 490;
10418 enum int KEY_equal = 61;
10419 enum int KEY_eth = 240;
10420 enum int KEY_etilde = 16785085;
10421 enum int KEY_exclam = 33;
10422 enum int KEY_exclamdown = 161;
10423 enum int KEY_f = 102;
10424 enum int KEY_fabovedot = 16784927;
10425 enum int KEY_femalesymbol = 2808;
10426 enum int KEY_ff = 2531;
10427 enum int KEY_figdash = 2747;
10428 enum int KEY_filledlefttribullet = 2780;
10429 enum int KEY_filledrectbullet = 2779;
10430 enum int KEY_filledrighttribullet = 2781;
10431 enum int KEY_filledtribulletdown = 2793;
10432 enum int KEY_filledtribulletup = 2792;
10433 enum int KEY_fiveeighths = 2757;
10434 enum int KEY_fivesixths = 2743;
10435 enum int KEY_fivesubscript = 16785541;
10436 enum int KEY_fivesuperior = 16785525;
10437 enum int KEY_fourfifths = 2741;
10438 enum int KEY_foursubscript = 16785540;
10439 enum int KEY_foursuperior = 16785524;
10440 enum int KEY_fourthroot = 16785948;
10441 enum int KEY_function = 2294;
10442 enum int KEY_g = 103;
10443 enum int KEY_gabovedot = 757;
10444 enum int KEY_gbreve = 699;
10445 enum int KEY_gcaron = 16777703;
10446 enum int KEY_gcedilla = 955;
10447 enum int KEY_gcircumflex = 760;
10448 enum int KEY_grave = 96;
10449 enum int KEY_greater = 62;
10450 enum int KEY_greaterthanequal = 2238;
10451 enum int KEY_guillemotleft = 171;
10452 enum int KEY_guillemotright = 187;
10453 enum int KEY_h = 104;
10454 enum int KEY_hairspace = 2728;
10455 enum int KEY_hcircumflex = 694;
10456 enum int KEY_heart = 2798;
10457 enum int KEY_hebrew_aleph = 3296;
10458 enum int KEY_hebrew_ayin = 3314;
10459 enum int KEY_hebrew_bet = 3297;
10460 enum int KEY_hebrew_beth = 3297;
10461 enum int KEY_hebrew_chet = 3303;
10462 enum int KEY_hebrew_dalet = 3299;
10463 enum int KEY_hebrew_daleth = 3299;
10464 enum int KEY_hebrew_doublelowline = 3295;
10465 enum int KEY_hebrew_finalkaph = 3306;
10466 enum int KEY_hebrew_finalmem = 3309;
10467 enum int KEY_hebrew_finalnun = 3311;
10468 enum int KEY_hebrew_finalpe = 3315;
10469 enum int KEY_hebrew_finalzade = 3317;
10470 enum int KEY_hebrew_finalzadi = 3317;
10471 enum int KEY_hebrew_gimel = 3298;
10472 enum int KEY_hebrew_gimmel = 3298;
10473 enum int KEY_hebrew_he = 3300;
10474 enum int KEY_hebrew_het = 3303;
10475 enum int KEY_hebrew_kaph = 3307;
10476 enum int KEY_hebrew_kuf = 3319;
10477 enum int KEY_hebrew_lamed = 3308;
10478 enum int KEY_hebrew_mem = 3310;
10479 enum int KEY_hebrew_nun = 3312;
10480 enum int KEY_hebrew_pe = 3316;
10481 enum int KEY_hebrew_qoph = 3319;
10482 enum int KEY_hebrew_resh = 3320;
10483 enum int KEY_hebrew_samech = 3313;
10484 enum int KEY_hebrew_samekh = 3313;
10485 enum int KEY_hebrew_shin = 3321;
10486 enum int KEY_hebrew_taf = 3322;
10487 enum int KEY_hebrew_taw = 3322;
10488 enum int KEY_hebrew_tet = 3304;
10489 enum int KEY_hebrew_teth = 3304;
10490 enum int KEY_hebrew_waw = 3301;
10491 enum int KEY_hebrew_yod = 3305;
10492 enum int KEY_hebrew_zade = 3318;
10493 enum int KEY_hebrew_zadi = 3318;
10494 enum int KEY_hebrew_zain = 3302;
10495 enum int KEY_hebrew_zayin = 3302;
10496 enum int KEY_hexagram = 2778;
10497 enum int KEY_horizconnector = 2211;
10498 enum int KEY_horizlinescan1 = 2543;
10499 enum int KEY_horizlinescan3 = 2544;
10500 enum int KEY_horizlinescan5 = 2545;
10501 enum int KEY_horizlinescan7 = 2546;
10502 enum int KEY_horizlinescan9 = 2547;
10503 enum int KEY_hstroke = 689;
10504 enum int KEY_ht = 2530;
10505 enum int KEY_hyphen = 173;
10506 enum int KEY_i = 105;
10507 enum int KEY_iTouch = 269025120;
10508 enum int KEY_iacute = 237;
10509 enum int KEY_ibelowdot = 16785099;
10510 enum int KEY_ibreve = 16777517;
10511 enum int KEY_icircumflex = 238;
10512 enum int KEY_identical = 2255;
10513 enum int KEY_idiaeresis = 239;
10514 enum int KEY_idotless = 697;
10515 enum int KEY_ifonlyif = 2253;
10516 enum int KEY_igrave = 236;
10517 enum int KEY_ihook = 16785097;
10518 enum int KEY_imacron = 1007;
10519 enum int KEY_implies = 2254;
10520 enum int KEY_includedin = 2266;
10521 enum int KEY_includes = 2267;
10522 enum int KEY_infinity = 2242;
10523 enum int KEY_integral = 2239;
10524 enum int KEY_intersection = 2268;
10525 enum int KEY_iogonek = 999;
10526 enum int KEY_itilde = 949;
10527 enum int KEY_j = 106;
10528 enum int KEY_jcircumflex = 700;
10529 enum int KEY_jot = 3018;
10530 enum int KEY_k = 107;
10531 enum int KEY_kana_A = 1201;
10532 enum int KEY_kana_CHI = 1217;
10533 enum int KEY_kana_E = 1204;
10534 enum int KEY_kana_FU = 1228;
10535 enum int KEY_kana_HA = 1226;
10536 enum int KEY_kana_HE = 1229;
10537 enum int KEY_kana_HI = 1227;
10538 enum int KEY_kana_HO = 1230;
10539 enum int KEY_kana_HU = 1228;
10540 enum int KEY_kana_I = 1202;
10541 enum int KEY_kana_KA = 1206;
10542 enum int KEY_kana_KE = 1209;
10543 enum int KEY_kana_KI = 1207;
10544 enum int KEY_kana_KO = 1210;
10545 enum int KEY_kana_KU = 1208;
10546 enum int KEY_kana_MA = 1231;
10547 enum int KEY_kana_ME = 1234;
10548 enum int KEY_kana_MI = 1232;
10549 enum int KEY_kana_MO = 1235;
10550 enum int KEY_kana_MU = 1233;
10551 enum int KEY_kana_N = 1245;
10552 enum int KEY_kana_NA = 1221;
10553 enum int KEY_kana_NE = 1224;
10554 enum int KEY_kana_NI = 1222;
10555 enum int KEY_kana_NO = 1225;
10556 enum int KEY_kana_NU = 1223;
10557 enum int KEY_kana_O = 1205;
10558 enum int KEY_kana_RA = 1239;
10559 enum int KEY_kana_RE = 1242;
10560 enum int KEY_kana_RI = 1240;
10561 enum int KEY_kana_RO = 1243;
10562 enum int KEY_kana_RU = 1241;
10563 enum int KEY_kana_SA = 1211;
10564 enum int KEY_kana_SE = 1214;
10565 enum int KEY_kana_SHI = 1212;
10566 enum int KEY_kana_SO = 1215;
10567 enum int KEY_kana_SU = 1213;
10568 enum int KEY_kana_TA = 1216;
10569 enum int KEY_kana_TE = 1219;
10570 enum int KEY_kana_TI = 1217;
10571 enum int KEY_kana_TO = 1220;
10572 enum int KEY_kana_TSU = 1218;
10573 enum int KEY_kana_TU = 1218;
10574 enum int KEY_kana_U = 1203;
10575 enum int KEY_kana_WA = 1244;
10576 enum int KEY_kana_WO = 1190;
10577 enum int KEY_kana_YA = 1236;
10578 enum int KEY_kana_YO = 1238;
10579 enum int KEY_kana_YU = 1237;
10580 enum int KEY_kana_a = 1191;
10581 enum int KEY_kana_closingbracket = 1187;
10582 enum int KEY_kana_comma = 1188;
10583 enum int KEY_kana_conjunctive = 1189;
10584 enum int KEY_kana_e = 1194;
10585 enum int KEY_kana_fullstop = 1185;
10586 enum int KEY_kana_i = 1192;
10587 enum int KEY_kana_middledot = 1189;
10588 enum int KEY_kana_o = 1195;
10589 enum int KEY_kana_openingbracket = 1186;
10590 enum int KEY_kana_switch = 65406;
10591 enum int KEY_kana_tsu = 1199;
10592 enum int KEY_kana_tu = 1199;
10593 enum int KEY_kana_u = 1193;
10594 enum int KEY_kana_ya = 1196;
10595 enum int KEY_kana_yo = 1198;
10596 enum int KEY_kana_yu = 1197;
10597 enum int KEY_kappa = 930;
10598 enum int KEY_kcedilla = 1011;
10599 enum int KEY_kra = 930;
10600 enum int KEY_l = 108;
10601 enum int KEY_lacute = 485;
10602 enum int KEY_latincross = 2777;
10603 enum int KEY_lbelowdot = 16784951;
10604 enum int KEY_lcaron = 437;
10605 enum int KEY_lcedilla = 950;
10606 enum int KEY_leftanglebracket = 2748;
10607 enum int KEY_leftarrow = 2299;
10608 enum int KEY_leftcaret = 2979;
10609 enum int KEY_leftdoublequotemark = 2770;
10610 enum int KEY_leftmiddlecurlybrace = 2223;
10611 enum int KEY_leftopentriangle = 2764;
10612 enum int KEY_leftpointer = 2794;
10613 enum int KEY_leftradical = 2209;
10614 enum int KEY_leftshoe = 3034;
10615 enum int KEY_leftsinglequotemark = 2768;
10616 enum int KEY_leftt = 2548;
10617 enum int KEY_lefttack = 3036;
10618 enum int KEY_less = 60;
10619 enum int KEY_lessthanequal = 2236;
10620 enum int KEY_lf = 2533;
10621 enum int KEY_logicaland = 2270;
10622 enum int KEY_logicalor = 2271;
10623 enum int KEY_lowleftcorner = 2541;
10624 enum int KEY_lowrightcorner = 2538;
10625 enum int KEY_lstroke = 435;
10626 enum int KEY_m = 109;
10627 enum int KEY_mabovedot = 16784961;
10628 enum int KEY_macron = 175;
10629 enum int KEY_malesymbol = 2807;
10630 enum int KEY_maltesecross = 2800;
10631 enum int KEY_marker = 2751;
10632 enum int KEY_masculine = 186;
10633 enum int KEY_minus = 45;
10634 enum int KEY_minutes = 2774;
10635 enum int KEY_mu = 181;
10636 enum int KEY_multiply = 215;
10637 enum int KEY_musicalflat = 2806;
10638 enum int KEY_musicalsharp = 2805;
10639 enum int KEY_n = 110;
10640 enum int KEY_nabla = 2245;
10641 enum int KEY_nacute = 497;
10642 enum int KEY_ncaron = 498;
10643 enum int KEY_ncedilla = 1009;
10644 enum int KEY_ninesubscript = 16785545;
10645 enum int KEY_ninesuperior = 16785529;
10646 enum int KEY_nl = 2536;
10647 enum int KEY_nobreakspace = 160;
10648 enum int KEY_notapproxeq = 16785991;
10649 enum int KEY_notelementof = 16785929;
10650 enum int KEY_notequal = 2237;
10651 enum int KEY_notidentical = 16786018;
10652 enum int KEY_notsign = 172;
10653 enum int KEY_ntilde = 241;
10654 enum int KEY_numbersign = 35;
10655 enum int KEY_numerosign = 1712;
10656 enum int KEY_o = 111;
10657 enum int KEY_oacute = 243;
10658 enum int KEY_obarred = 16777845;
10659 enum int KEY_obelowdot = 16785101;
10660 enum int KEY_ocaron = 16777682;
10661 enum int KEY_ocircumflex = 244;
10662 enum int KEY_ocircumflexacute = 16785105;
10663 enum int KEY_ocircumflexbelowdot = 16785113;
10664 enum int KEY_ocircumflexgrave = 16785107;
10665 enum int KEY_ocircumflexhook = 16785109;
10666 enum int KEY_ocircumflextilde = 16785111;
10667 enum int KEY_odiaeresis = 246;
10668 enum int KEY_odoubleacute = 501;
10669 enum int KEY_oe = 5053;
10670 enum int KEY_ogonek = 434;
10671 enum int KEY_ograve = 242;
10672 enum int KEY_ohook = 16785103;
10673 enum int KEY_ohorn = 16777633;
10674 enum int KEY_ohornacute = 16785115;
10675 enum int KEY_ohornbelowdot = 16785123;
10676 enum int KEY_ohorngrave = 16785117;
10677 enum int KEY_ohornhook = 16785119;
10678 enum int KEY_ohorntilde = 16785121;
10679 enum int KEY_omacron = 1010;
10680 enum int KEY_oneeighth = 2755;
10681 enum int KEY_onefifth = 2738;
10682 enum int KEY_onehalf = 189;
10683 enum int KEY_onequarter = 188;
10684 enum int KEY_onesixth = 2742;
10685 enum int KEY_onesubscript = 16785537;
10686 enum int KEY_onesuperior = 185;
10687 enum int KEY_onethird = 2736;
10688 enum int KEY_ooblique = 248;
10689 enum int KEY_openrectbullet = 2786;
10690 enum int KEY_openstar = 2789;
10691 enum int KEY_opentribulletdown = 2788;
10692 enum int KEY_opentribulletup = 2787;
10693 enum int KEY_ordfeminine = 170;
10694 enum int KEY_oslash = 248;
10695 enum int KEY_otilde = 245;
10696 enum int KEY_overbar = 3008;
10697 enum int KEY_overline = 1150;
10698 enum int KEY_p = 112;
10699 enum int KEY_pabovedot = 16784983;
10700 enum int KEY_paragraph = 182;
10701 enum int KEY_parenleft = 40;
10702 enum int KEY_parenright = 41;
10703 enum int KEY_partdifferential = 16785922;
10704 enum int KEY_partialderivative = 2287;
10705 enum int KEY_percent = 37;
10706 enum int KEY_period = 46;
10707 enum int KEY_periodcentered = 183;
10708 enum int KEY_phonographcopyright = 2811;
10709 enum int KEY_plus = 43;
10710 enum int KEY_plusminus = 177;
10711 enum int KEY_prescription = 2772;
10712 enum int KEY_prolongedsound = 1200;
10713 enum int KEY_punctspace = 2726;
10714 enum int KEY_q = 113;
10715 enum int KEY_quad = 3020;
10716 enum int KEY_question = 63;
10717 enum int KEY_questiondown = 191;
10718 enum int KEY_quotedbl = 34;
10719 enum int KEY_quoteleft = 96;
10720 enum int KEY_quoteright = 39;
10721 enum int KEY_r = 114;
10722 enum int KEY_racute = 480;
10723 enum int KEY_radical = 2262;
10724 enum int KEY_rcaron = 504;
10725 enum int KEY_rcedilla = 947;
10726 enum int KEY_registered = 174;
10727 enum int KEY_rightanglebracket = 2750;
10728 enum int KEY_rightarrow = 2301;
10729 enum int KEY_rightcaret = 2982;
10730 enum int KEY_rightdoublequotemark = 2771;
10731 enum int KEY_rightmiddlecurlybrace = 2224;
10732 enum int KEY_rightmiddlesummation = 2231;
10733 enum int KEY_rightopentriangle = 2765;
10734 enum int KEY_rightpointer = 2795;
10735 enum int KEY_rightshoe = 3032;
10736 enum int KEY_rightsinglequotemark = 2769;
10737 enum int KEY_rightt = 2549;
10738 enum int KEY_righttack = 3068;
10739 enum int KEY_s = 115;
10740 enum int KEY_sabovedot = 16784993;
10741 enum int KEY_sacute = 438;
10742 enum int KEY_scaron = 441;
10743 enum int KEY_scedilla = 442;
10744 enum int KEY_schwa = 16777817;
10745 enum int KEY_scircumflex = 766;
10746 enum int KEY_script_switch = 65406;
10747 enum int KEY_seconds = 2775;
10748 enum int KEY_section = 167;
10749 enum int KEY_semicolon = 59;
10750 enum int KEY_semivoicedsound = 1247;
10751 enum int KEY_seveneighths = 2758;
10752 enum int KEY_sevensubscript = 16785543;
10753 enum int KEY_sevensuperior = 16785527;
10754 enum int KEY_signaturemark = 2762;
10755 enum int KEY_signifblank = 2732;
10756 enum int KEY_similarequal = 2249;
10757 enum int KEY_singlelowquotemark = 2813;
10758 enum int KEY_sixsubscript = 16785542;
10759 enum int KEY_sixsuperior = 16785526;
10760 enum int KEY_slash = 47;
10761 enum int KEY_soliddiamond = 2528;
10762 enum int KEY_space = 32;
10763 enum int KEY_squareroot = 16785946;
10764 enum int KEY_ssharp = 223;
10765 enum int KEY_sterling = 163;
10766 enum int KEY_stricteq = 16786019;
10767 enum int KEY_t = 116;
10768 enum int KEY_tabovedot = 16785003;
10769 enum int KEY_tcaron = 443;
10770 enum int KEY_tcedilla = 510;
10771 enum int KEY_telephone = 2809;
10772 enum int KEY_telephonerecorder = 2810;
10773 enum int KEY_therefore = 2240;
10774 enum int KEY_thinspace = 2727;
10775 enum int KEY_thorn = 254;
10776 enum int KEY_threeeighths = 2756;
10777 enum int KEY_threefifths = 2740;
10778 enum int KEY_threequarters = 190;
10779 enum int KEY_threesubscript = 16785539;
10780 enum int KEY_threesuperior = 179;
10781 enum int KEY_tintegral = 16785965;
10782 enum int KEY_topintegral = 2212;
10783 enum int KEY_topleftparens = 2219;
10784 enum int KEY_topleftradical = 2210;
10785 enum int KEY_topleftsqbracket = 2215;
10786 enum int KEY_topleftsummation = 2225;
10787 enum int KEY_toprightparens = 2221;
10788 enum int KEY_toprightsqbracket = 2217;
10789 enum int KEY_toprightsummation = 2229;
10790 enum int KEY_topt = 2551;
10791 enum int KEY_topvertsummationconnector = 2227;
10792 enum int KEY_trademark = 2761;
10793 enum int KEY_trademarkincircle = 2763;
10794 enum int KEY_tslash = 956;
10795 enum int KEY_twofifths = 2739;
10796 enum int KEY_twosubscript = 16785538;
10797 enum int KEY_twosuperior = 178;
10798 enum int KEY_twothirds = 2737;
10799 enum int KEY_u = 117;
10800 enum int KEY_uacute = 250;
10801 enum int KEY_ubelowdot = 16785125;
10802 enum int KEY_ubreve = 765;
10803 enum int KEY_ucircumflex = 251;
10804 enum int KEY_udiaeresis = 252;
10805 enum int KEY_udoubleacute = 507;
10806 enum int KEY_ugrave = 249;
10807 enum int KEY_uhook = 16785127;
10808 enum int KEY_uhorn = 16777648;
10809 enum int KEY_uhornacute = 16785129;
10810 enum int KEY_uhornbelowdot = 16785137;
10811 enum int KEY_uhorngrave = 16785131;
10812 enum int KEY_uhornhook = 16785133;
10813 enum int KEY_uhorntilde = 16785135;
10814 enum int KEY_umacron = 1022;
10815 enum int KEY_underbar = 3014;
10816 enum int KEY_underscore = 95;
10817 enum int KEY_union = 2269;
10818 enum int KEY_uogonek = 1017;
10819 enum int KEY_uparrow = 2300;
10820 enum int KEY_upcaret = 2985;
10821 enum int KEY_upleftcorner = 2540;
10822 enum int KEY_uprightcorner = 2539;
10823 enum int KEY_upshoe = 3011;
10824 enum int KEY_upstile = 3027;
10825 enum int KEY_uptack = 3022;
10826 enum int KEY_uring = 505;
10827 enum int KEY_utilde = 1021;
10828 enum int KEY_v = 118;
10829 enum int KEY_variation = 2241;
10830 enum int KEY_vertbar = 2552;
10831 enum int KEY_vertconnector = 2214;
10832 enum int KEY_voicedsound = 1246;
10833 enum int KEY_vt = 2537;
10834 enum int KEY_w = 119;
10835 enum int KEY_wacute = 16785027;
10836 enum int KEY_wcircumflex = 16777589;
10837 enum int KEY_wdiaeresis = 16785029;
10838 enum int KEY_wgrave = 16785025;
10839 enum int KEY_x = 120;
10840 enum int KEY_xabovedot = 16785035;
10841 enum int KEY_y = 121;
10842 enum int KEY_yacute = 253;
10843 enum int KEY_ybelowdot = 16785141;
10844 enum int KEY_ycircumflex = 16777591;
10845 enum int KEY_ydiaeresis = 255;
10846 enum int KEY_yen = 165;
10847 enum int KEY_ygrave = 16785139;
10848 enum int KEY_yhook = 16785143;
10849 enum int KEY_ytilde = 16785145;
10850 enum int KEY_z = 122;
10851 enum int KEY_zabovedot = 447;
10852 enum int KEY_zacute = 444;
10853 enum int KEY_zcaron = 446;
10854 enum int KEY_zerosubscript = 16785536;
10855 enum int KEY_zerosuperior = 16785520;
10856 enum int KEY_zstroke = 16777654;
10857 enum int KP_0 = 65456;
10858 enum int KP_1 = 65457;
10859 enum int KP_2 = 65458;
10860 enum int KP_3 = 65459;
10861 enum int KP_4 = 65460;
10862 enum int KP_5 = 65461;
10863 enum int KP_6 = 65462;
10864 enum int KP_7 = 65463;
10865 enum int KP_8 = 65464;
10866 enum int KP_9 = 65465;
10867 enum int KP_Add = 65451;
10868 enum int KP_Begin = 65437;
10869 enum int KP_Decimal = 65454;
10870 enum int KP_Delete = 65439;
10871 enum int KP_Divide = 65455;
10872 enum int KP_Down = 65433;
10873 enum int KP_End = 65436;
10874 enum int KP_Enter = 65421;
10875 enum int KP_Equal = 65469;
10876 enum int KP_F1 = 65425;
10877 enum int KP_F2 = 65426;
10878 enum int KP_F3 = 65427;
10879 enum int KP_F4 = 65428;
10880 enum int KP_Home = 65429;
10881 enum int KP_Insert = 65438;
10882 enum int KP_Left = 65430;
10883 enum int KP_Multiply = 65450;
10884 enum int KP_Next = 65435;
10885 enum int KP_Page_Down = 65435;
10886 enum int KP_Page_Up = 65434;
10887 enum int KP_Prior = 65434;
10888 enum int KP_Right = 65432;
10889 enum int KP_Separator = 65452;
10890 enum int KP_Space = 65408;
10891 enum int KP_Subtract = 65453;
10892 enum int KP_Tab = 65417;
10893 enum int KP_Up = 65431;
10894 enum int Kana_Lock = 65325;
10895 enum int Kana_Shift = 65326;
10896 enum int Kanji = 65313;
10897 enum int Kanji_Bangou = 65335;
10898 enum int Katakana = 65318;
10899 enum int KbdBrightnessDown = 269025030;
10900 enum int KbdBrightnessUp = 269025029;
10901 enum int KbdLightOnOff = 269025028;
10902 enum int Kcedilla = 979;
10903 // Key event
10904 struct KeyEvent /* Version 0.2 */ {
10905 EventType type;
10906 uint time;
10907 EventFlags flags;
10908 Stage* stage;
10909 Actor* source;
10910 ModifierType modifier_state;
10911 uint keyval;
10912 ushort hardware_keycode;
10913 dchar unicode_value;
10914 InputDevice* device;
10917 // Point in a path behaviour.
10918 struct Knot /* Version 0.2 */ {
10919 int x, y;
10922 // Makes an allocated copy of a knot.
10923 // RETURNS: the copied knot.
10924 Knot* /*new*/ copy() {
10925 return clutter_knot_copy(&this);
10928 // Compares to knot and checks if the point to the same location.
10929 // RETURNS: %TRUE if the knots point to the same location.
10930 // <knot_b>: Second knot
10931 int equal(Knot* knot_b) {
10932 return clutter_knot_equal(&this, knot_b);
10934 // Frees the memory of an allocated knot.
10935 void free() {
10936 clutter_knot_free(&this);
10940 enum int Korean_Won = 3839;
10941 enum int L = 76;
10942 enum int L1 = 65480;
10943 enum int L10 = 65489;
10944 enum int L2 = 65481;
10945 enum int L3 = 65482;
10946 enum int L4 = 65483;
10947 enum int L5 = 65484;
10948 enum int L6 = 65485;
10949 enum int L7 = 65486;
10950 enum int L8 = 65487;
10951 enum int L9 = 65488;
10952 enum int Lacute = 453;
10953 enum int Last_Virtual_Screen = 65236;
10954 enum int Launch0 = 269025088;
10955 enum int Launch1 = 269025089;
10956 enum int Launch2 = 269025090;
10957 enum int Launch3 = 269025091;
10958 enum int Launch4 = 269025092;
10959 enum int Launch5 = 269025093;
10960 enum int Launch6 = 269025094;
10961 enum int Launch7 = 269025095;
10962 enum int Launch8 = 269025096;
10963 enum int Launch9 = 269025097;
10964 enum int LaunchA = 269025098;
10965 enum int LaunchB = 269025099;
10966 enum int LaunchC = 269025100;
10967 enum int LaunchD = 269025101;
10968 enum int LaunchE = 269025102;
10969 enum int LaunchF = 269025103;
10971 // The #ClutterLayoutManager structure contains only private data
10972 // and should be accessed using the provided API
10973 struct LayoutManager /* : GObject.InitiallyUnowned */ /* Version 1.2 */ {
10974 alias parent_instance this;
10975 alias parent_instance super_;
10976 alias parent_instance initiallyunowned;
10977 GObject2.InitiallyUnowned parent_instance;
10978 private void* dummy;
10981 // Allocates the children of @container given an area
10983 // See also clutter_actor_allocate()
10984 // <container>: the #ClutterContainer using @manager
10985 // <allocation>: the #ClutterActorBox containing the allocated area of @container
10986 // <flags>: the allocation flags
10987 void allocate(Container* container, ActorBox* allocation, AllocationFlags flags) {
10988 clutter_layout_manager_allocate(&this, container, allocation, flags);
10991 // Begins an animation of @duration milliseconds, using the provided
10992 // easing @mode
10994 // The easing mode can be specified either as a #ClutterAnimationMode
10995 // or as a logical id returned by clutter_alpha_register_func()
10997 // The result of this function depends on the @manager implementation
10999 // layout manager; the returned instance is owned by the layout
11000 // manager and should not be unreferenced
11001 // RETURNS: The #ClutterAlpha created by the
11002 // <duration>: the duration of the animation, in milliseconds
11003 // <mode>: the easing mode of the animation
11004 Alpha* begin_animation(uint duration, c_ulong mode) {
11005 return clutter_layout_manager_begin_animation(&this, duration, mode);
11008 // Unintrospectable method: child_get() / clutter_layout_manager_child_get()
11009 // Retrieves the values for a list of properties out of the
11010 // #ClutterLayoutMeta created by @manager and attached to the
11011 // child of a @container
11012 // <container>: a #ClutterContainer using @manager
11013 // <actor>: a #ClutterActor child of @container
11014 // <first_property>: the name of the first property
11015 /+ Not available -- variadic methods unsupported - use the C function directly.
11016 alias clutter_layout_manager_child_get child_get; // Variadic
11019 // Gets a property on the #ClutterLayoutMeta created by @manager and
11020 // attached to a child of @container
11022 // The #GValue must already be initialized to the type of the property
11023 // and has to be unset with g_value_unset() after extracting the real
11024 // value out of it
11025 // <container>: a #ClutterContainer using @manager
11026 // <actor>: a #ClutterActor child of @container
11027 // <property_name>: the name of the property to get
11028 // <value>: a #GValue with the value of the property to get
11029 void child_get_property(Container* container, Actor* actor, char* property_name, GObject2.Value* value) {
11030 clutter_layout_manager_child_get_property(&this, container, actor, property_name, value);
11033 // Unintrospectable method: child_set() / clutter_layout_manager_child_set()
11034 // Sets a list of properties and their values on the #ClutterLayoutMeta
11035 // associated by @manager to a child of @container
11037 // Languages bindings should use clutter_layout_manager_child_set_property()
11038 // instead
11039 // <container>: a #ClutterContainer using @manager
11040 // <actor>: a #ClutterActor child of @container
11041 // <first_property>: the first property name
11042 /+ Not available -- variadic methods unsupported - use the C function directly.
11043 alias clutter_layout_manager_child_set child_set; // Variadic
11046 // Sets a property on the #ClutterLayoutMeta created by @manager and
11047 // attached to a child of @container
11048 // <container>: a #ClutterContainer using @manager
11049 // <actor>: a #ClutterActor child of @container
11050 // <property_name>: the name of the property to set
11051 // <value>: a #GValue with the value of the property to set
11052 void child_set_property(Container* container, Actor* actor, char* property_name, GObject2.Value* value) {
11053 clutter_layout_manager_child_set_property(&this, container, actor, property_name, value);
11056 // Ends an animation started by clutter_layout_manager_begin_animation()
11058 // The result of this call depends on the @manager implementation
11059 void end_animation() {
11060 clutter_layout_manager_end_animation(&this);
11063 // Retrieves the #GParamSpec for the layout property @name inside
11064 // the #ClutterLayoutMeta sub-class used by @manager
11066 // or %NULL if no property with that name exists. The returned
11067 // #GParamSpec is owned by the layout manager and should not be
11068 // modified or freed
11069 // RETURNS: a #GParamSpec describing the property,
11070 // <name>: the name of the property
11071 GObject2.ParamSpec* find_child_property(char* name) {
11072 return clutter_layout_manager_find_child_property(&this, name);
11075 // Retrieves the progress of the animation, if one has been started by
11076 // clutter_layout_manager_begin_animation()
11078 // The returned value has the same semantics of the #ClutterAlpha:alpha
11079 // value
11080 // RETURNS: the progress of the animation
11081 double get_animation_progress() {
11082 return clutter_layout_manager_get_animation_progress(&this);
11085 // Retrieves the #ClutterLayoutMeta that the layout @manager associated
11086 // to the @actor child of @container, eventually by creating one if the
11087 // #ClutterLayoutManager supports layout properties
11089 // #ClutterLayoutManager does not have layout properties. The returned
11090 // layout meta instance is owned by the #ClutterLayoutManager and it
11091 // should not be unreferenced
11092 // RETURNS: a #ClutterLayoutMeta, or %NULL if the
11093 // <container>: a #ClutterContainer using @manager
11094 // <actor>: a #ClutterActor child of @container
11095 LayoutMeta* get_child_meta(Container* container, Actor* actor) {
11096 return clutter_layout_manager_get_child_meta(&this, container, actor);
11099 // Computes the minimum and natural heights of the @container according
11100 // to @manager.
11102 // See also clutter_actor_get_preferred_height()
11103 // <container>: the #ClutterContainer using @manager
11104 // <for_width>: the width for which the height should be computed, or -1
11105 // <min_height_p>: return location for the minimum height of the layout, or %NULL
11106 // <nat_height_p>: return location for the natural height of the layout, or %NULL
11107 void get_preferred_height(Container* container, float for_width, /*out*/ float* min_height_p=null, /*out*/ float* nat_height_p=null) {
11108 clutter_layout_manager_get_preferred_height(&this, container, for_width, min_height_p, nat_height_p);
11111 // Computes the minimum and natural widths of the @container according
11112 // to @manager.
11114 // See also clutter_actor_get_preferred_width()
11115 // <container>: the #ClutterContainer using @manager
11116 // <for_height>: the height for which the width should be computed, or -1
11117 // <min_width_p>: return location for the minimum width of the layout, or %NULL
11118 // <nat_width_p>: return location for the natural width of the layout, or %NULL
11119 void get_preferred_width(Container* container, float for_height, /*out*/ float* min_width_p=null, /*out*/ float* nat_width_p=null) {
11120 clutter_layout_manager_get_preferred_width(&this, container, for_height, min_width_p, nat_width_p);
11123 // Emits the #ClutterLayoutManager::layout-changed signal on @manager
11125 // This function should only be called by implementations of the
11126 // #ClutterLayoutManager class
11127 void layout_changed() {
11128 clutter_layout_manager_layout_changed(&this);
11131 // Retrieves all the #GParamSpec<!-- -->s for the layout properties
11132 // stored inside the #ClutterLayoutMeta sub-class used by @manager
11134 // %NULL-terminated array of #GParamSpec<!-- -->s. Use g_free() to free the
11135 // resources allocated for the array
11136 // RETURNS: the newly-allocated,
11137 // <n_pspecs>: return location for the number of returned #GParamSpec<!-- -->s
11138 GObject2.ParamSpec** /*new*/ list_child_properties(/*out*/ uint* n_pspecs) {
11139 return clutter_layout_manager_list_child_properties(&this, n_pspecs);
11142 // If the #ClutterLayoutManager sub-class allows it, allow
11143 // adding a weak reference of the @container using @manager
11144 // from within the layout manager
11146 // The layout manager should not increase the reference
11147 // count of the @container
11148 // <container>: a #ClutterContainer using @manager
11149 void set_container(Container* container=null) {
11150 clutter_layout_manager_set_container(&this, container);
11153 // The ::layout-changed signal is emitted each time a layout manager
11154 // has been changed. Every #ClutterActor using the @manager instance
11155 // as a layout manager should connect a handler to the ::layout-changed
11156 // signal and queue a relayout on themselves:
11158 // |[
11159 // static void layout_changed (ClutterLayoutManager *manager,
11160 // ClutterActor *self)
11161 // {
11162 // clutter_actor_queue_relayout (self);
11163 // }
11164 // ...
11165 // self->manager = g_object_ref_sink (manager);
11166 // g_signal_connect (self->manager, "layout-changed",
11167 // G_CALLBACK (layout_changed),
11168 // self);
11169 // ]|
11171 // Sub-classes of #ClutterLayoutManager that implement a layout that
11172 // can be controlled or changed using parameters should emit the
11173 // ::layout-changed signal whenever one of the parameters changes,
11174 // by using clutter_layout_manager_layout_changed().
11175 extern (C) alias static void function (LayoutManager* this_, void* user_data=null) signal_layout_changed;
11177 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
11178 return super_.signal_connect!name(cb, data, cf);
11181 ulong signal_connect(string name:"layout-changed", CB:signal_layout_changed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
11182 return signal_connect_data(&this, cast(char*)"layout-changed",
11183 cast(GObject2.Callback)cb, data, null, cf);
11188 // The #ClutterLayoutManagerClass structure contains only private
11189 // data and should be accessed using the provided API
11190 struct LayoutManagerClass /* Version 1.2 */ {
11191 private GObject2.InitiallyUnownedClass parent_class;
11193 // <container>: the #ClutterContainer using @manager
11194 // <for_height>: the height for which the width should be computed, or -1
11195 // <min_width_p>: return location for the minimum width of the layout, or %NULL
11196 // <nat_width_p>: return location for the natural width of the layout, or %NULL
11197 extern (C) void function (LayoutManager* manager, Container* container, float for_height, /*out*/ float* min_width_p=null, /*out*/ float* nat_width_p=null) get_preferred_width;
11199 // <container>: the #ClutterContainer using @manager
11200 // <for_width>: the width for which the height should be computed, or -1
11201 // <min_height_p>: return location for the minimum height of the layout, or %NULL
11202 // <nat_height_p>: return location for the natural height of the layout, or %NULL
11203 extern (C) void function (LayoutManager* manager, Container* container, float for_width, /*out*/ float* min_height_p=null, /*out*/ float* nat_height_p=null) get_preferred_height;
11205 // <container>: the #ClutterContainer using @manager
11206 // <allocation>: the #ClutterActorBox containing the allocated area of @container
11207 // <flags>: the allocation flags
11208 extern (C) void function (LayoutManager* manager, Container* container, ActorBox* allocation, AllocationFlags flags) allocate;
11209 // <container>: a #ClutterContainer using @manager
11210 extern (C) void function (LayoutManager* manager, Container* container=null) set_container;
11211 extern (C) Type function (LayoutManager* manager) get_child_meta_type;
11212 // Unintrospectable functionp: create_child_meta() / ()
11213 extern (C) LayoutMeta* function (LayoutManager* manager, Container* container, Actor* actor) create_child_meta;
11215 // RETURNS: The #ClutterAlpha created by the
11216 // <duration>: the duration of the animation, in milliseconds
11217 // <mode>: the easing mode of the animation
11218 extern (C) Alpha* function (LayoutManager* manager, uint duration, c_ulong mode) begin_animation;
11219 // RETURNS: the progress of the animation
11220 extern (C) double function (LayoutManager* manager) get_animation_progress;
11221 extern (C) void function (LayoutManager* manager) end_animation;
11222 extern (C) void function (LayoutManager* manager) layout_changed;
11223 extern (C) void function () _clutter_padding_1;
11224 extern (C) void function () _clutter_padding_2;
11225 extern (C) void function () _clutter_padding_3;
11226 extern (C) void function () _clutter_padding_4;
11227 extern (C) void function () _clutter_padding_5;
11228 extern (C) void function () _clutter_padding_6;
11229 extern (C) void function () _clutter_padding_7;
11230 extern (C) void function () _clutter_padding_8;
11234 // Sub-class of #ClutterChildMeta specific for layout managers
11236 // A #ClutterLayoutManager sub-class should create a #ClutterLayoutMeta
11237 // instance by overriding the #ClutterLayoutManager::create_child_meta()
11238 // virtual function
11239 struct LayoutMeta /* : ChildMeta */ /* Version 1.2 */ {
11240 alias parent_instance this;
11241 alias parent_instance super_;
11242 alias parent_instance childmeta;
11243 ChildMeta parent_instance;
11244 LayoutManager* manager;
11245 private int dummy0;
11246 private void* dummy1;
11249 // Retrieves the actor wrapped by @data
11250 // RETURNS: a #ClutterLayoutManager
11251 LayoutManager* get_manager() {
11252 return clutter_layout_meta_get_manager(&this);
11257 // The #ClutterLayoutMetaClass contains only private data and
11258 // should never be accessed directly
11259 struct LayoutMetaClass /* Version 1.2 */ {
11260 private ChildMetaClass parent_class;
11261 extern (C) void function () _clutter_padding1;
11262 extern (C) void function () _clutter_padding2;
11263 extern (C) void function () _clutter_padding3;
11264 extern (C) void function () _clutter_padding4;
11267 enum int Lbelowdot = 16784950;
11268 enum int Lcaron = 421;
11269 enum int Lcedilla = 934;
11270 enum int Left = 65361;
11271 enum int LightBulb = 269025077;
11272 enum int Linefeed = 65290;
11273 enum int LiraSign = 16785572;
11274 // The #ClutterListModel struct contains only private data.
11275 struct ListModel /* : Model */ /* Version 0.6 */ {
11276 alias parent_instance this;
11277 alias parent_instance super_;
11278 alias parent_instance model;
11279 Model parent_instance;
11280 private ListModelPrivate* priv;
11283 // Unintrospectable constructor: new() / clutter_list_model_new()
11284 // Creates a new default model with @n_columns columns with the types
11285 // and names passed in.
11287 // For example:
11289 // <informalexample><programlisting>
11290 // model = clutter_list_model_new (3,
11291 // G_TYPE_INT, "Score",
11292 // G_TYPE_STRING, "Team",
11293 // GDK_TYPE_PIXBUF, "Logo");
11294 // </programlisting></informalexample>
11296 // will create a new #ClutterModel with three columns of type int,
11297 // string and #GdkPixbuf respectively.
11299 // Note that the name of the column can be set to %NULL, in which case
11300 // the canonical name of the type held by the column will be used as
11301 // the title.
11302 // RETURNS: a new #ClutterListModel
11303 // <n_columns>: number of columns in the model
11304 alias clutter_list_model_new new_; // Variadic
11306 // Non-vararg version of clutter_list_model_new(). This function is
11307 // useful for language bindings.
11308 // RETURNS: a new default #ClutterModel
11309 // <n_columns>: number of columns in the model
11310 // <types>: an array of #GType types for the columns, from first to last
11311 // <names>: an array of names for the columns, from first to last
11312 static ListModel* /*new*/ newv(uint n_columns, Type* types, char* names) {
11313 return clutter_list_model_newv(n_columns, types, names);
11317 // The #ClutterListModelClass struct contains only private data.
11318 struct ListModelClass /* Version 0.6 */ {
11319 private ModelClass parent_class;
11322 struct ListModelPrivate {
11325 enum int LogOff = 269025121;
11326 // The states for the #ClutterClikAction::long-press signal.
11327 enum LongPressState /* Version 1.8 */ {
11328 QUERY = 0,
11329 ACTIVATE = 1,
11330 CANCEL = 2
11332 enum int Lstroke = 419;
11333 enum int M = 77;
11334 enum int MAJOR_VERSION = 1;
11335 enum int MICRO_VERSION = 3;
11336 enum int MINOR_VERSION = 8;
11337 enum int Mabovedot = 16784960;
11338 enum int Macedonia_DSE = 1717;
11339 enum int Macedonia_GJE = 1714;
11340 enum int Macedonia_KJE = 1724;
11341 enum int Macedonia_dse = 1701;
11342 enum int Macedonia_gje = 1698;
11343 enum int Macedonia_kje = 1708;
11344 enum int Mae_Koho = 65342;
11345 enum int Mail = 269025049;
11346 enum int MailForward = 269025168;
11347 enum int Market = 269025122;
11348 enum int Massyo = 65324;
11350 // #ClutterMedia is an opaque structure whose members cannot be directly
11351 // accessed
11352 struct Media /* Version 0.2 */ {
11354 // Retrieves the playback volume of @media.
11355 // RETURNS: The playback volume between 0.0 and 1.0
11356 double get_audio_volume() {
11357 return clutter_media_get_audio_volume(&this);
11360 // Retrieves the amount of the stream that is buffered.
11361 // RETURNS: the fill level, between 0.0 and 1.0
11362 double get_buffer_fill() {
11363 return clutter_media_get_buffer_fill(&this);
11366 // Retrieves whether @media is seekable or not.
11367 // RETURNS: %TRUE if @media can seek, %FALSE otherwise.
11368 int get_can_seek() {
11369 return clutter_media_get_can_seek(&this);
11372 // Retrieves the duration of the media stream that @media represents.
11373 // RETURNS: the duration of the media stream, in seconds
11374 double get_duration() {
11375 return clutter_media_get_duration(&this);
11378 // Retrieves the playing status of @media.
11379 // RETURNS: %TRUE if playing, %FALSE if stopped.
11380 int get_playing() {
11381 return clutter_media_get_playing(&this);
11384 // Retrieves the playback progress of @media.
11385 // RETURNS: the playback progress, between 0.0 and 1.0
11386 double get_progress() {
11387 return clutter_media_get_progress(&this);
11390 // Retrieves the font name currently used.
11392 // to free the returned string
11393 // RETURNS: a string containing the font name. Use g_free()
11394 char* /*new*/ get_subtitle_font_name() {
11395 return clutter_media_get_subtitle_font_name(&this);
11398 // Retrieves the URI of the subtitle file in use.
11400 // to free the returned string
11401 // RETURNS: the URI of the subtitle file. Use g_free()
11402 char* /*new*/ get_subtitle_uri() {
11403 return clutter_media_get_subtitle_uri(&this);
11406 // Retrieves the URI from @media.
11408 // to free the returned string
11409 // RETURNS: the URI of the media stream. Use g_free()
11410 char* /*new*/ get_uri() {
11411 return clutter_media_get_uri(&this);
11414 // Sets the playback volume of @media to @volume.
11415 // <volume>: the volume as a double between 0.0 and 1.0
11416 void set_audio_volume(double volume) {
11417 clutter_media_set_audio_volume(&this, volume);
11420 // Sets the source of @media using a file path.
11421 // <filename>: A filename
11422 void set_filename(char* filename) {
11423 clutter_media_set_filename(&this, filename);
11426 // Starts or stops playing of @media.
11427 // The implementation might be asynchronous, so the way to know whether
11428 // the actual playing state of the @media is to use the #GObject::notify
11429 // signal on the #ClutterMedia:playing property and then retrieve the
11430 // current state with clutter_media_get_playing(). ClutterGstVideoTexture
11431 // in clutter-gst is an example of such an asynchronous implementation.
11432 // <playing>: %TRUE to start playing
11433 void set_playing(int playing) {
11434 clutter_media_set_playing(&this, playing);
11437 // Sets the playback progress of @media. The @progress is
11438 // a normalized value between 0.0 (begin) and 1.0 (end).
11439 // <progress>: the progress of the playback, between 0.0 and 1.0
11440 void set_progress(double progress) {
11441 clutter_media_set_progress(&this, progress);
11444 // Sets the font used by the subtitle renderer. The @font_name string must be
11445 // either %NULL, which means that the default font name of the underlying
11446 // implementation will be used; or must follow the grammar recognized by
11447 // pango_font_description_from_string() like:
11449 // |[
11450 // clutter_media_set_subtitle_font_name (media, "Sans 24pt");
11451 // ]|
11452 // <font_name>: a font name, or %NULL to set the default font name
11453 void set_subtitle_font_name(char* font_name) {
11454 clutter_media_set_subtitle_font_name(&this, font_name);
11457 // Sets the location of a subtitle file to display while playing @media.
11458 // <uri>: the URI of a subtitle file
11459 void set_subtitle_uri(char* uri) {
11460 clutter_media_set_subtitle_uri(&this, uri);
11463 // Sets the URI of @media to @uri.
11464 // <uri>: the URI of the media stream
11465 void set_uri(char* uri) {
11466 clutter_media_set_uri(&this, uri);
11468 // The ::eos signal is emitted each time the media stream ends.
11469 extern (C) alias static void function (Media* this_, void* user_data=null) signal_eos;
11471 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
11472 return super_.signal_connect!name(cb, data, cf);
11475 ulong signal_connect(string name:"eos", CB:signal_eos)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
11476 return signal_connect_data(&this, cast(char*)"eos",
11477 cast(GObject2.Callback)cb, data, null, cf);
11480 // The ::error signal is emitted each time an error occurred.
11481 // <error>: the #GError
11482 extern (C) alias static void function (Media* this_, GLib2.Error* error, void* user_data=null) signal_error;
11483 ulong signal_connect(string name:"error", CB:signal_error)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
11484 return signal_connect_data(&this, cast(char*)"error",
11485 cast(GObject2.Callback)cb, data, null, cf);
11489 // Interface vtable for #ClutterMedia implementations
11490 struct MediaIface /* Version 0.2 */ {
11491 private GObject2.TypeInterface base_iface;
11492 extern (C) void function (Media* media) eos;
11493 extern (C) void function (Media* media, GLib2.Error* error) error;
11496 enum int Meeting = 269025123;
11497 enum int Memo = 269025054;
11498 enum int Menu = 65383;
11499 enum int MenuKB = 269025125;
11500 enum int MenuPB = 269025126;
11501 enum int Messenger = 269025166;
11502 enum int Meta_L = 65511;
11503 enum int Meta_R = 65512;
11504 enum int MillSign = 16785573;
11505 enum int ModeLock = 269025025;
11506 enum int Mode_switch = 65406;
11508 // Base class for list models. The #ClutterModel structure contains
11509 // only private data and should be manipulated using the provided
11510 // API.
11511 struct Model /* : GObject.Object */ /* Version 0.6 */ {
11512 alias parent_instance this;
11513 alias parent_instance super_;
11514 alias parent_instance object;
11515 GObject2.Object parent_instance;
11516 private ModelPrivate* priv;
11519 // Unintrospectable method: append() / clutter_model_append()
11520 // Creates and appends a new row to the #ClutterModel, setting the
11521 // row values upon creation. For example, to append a new row where
11522 // column 0 is type %G_TYPE_INT and column 1 is of type %G_TYPE_STRING:
11524 // <informalexample><programlisting>
11525 // ClutterModel *model;
11526 // model = clutter_model_default_new (2,
11527 // G_TYPE_INT, "Score",
11528 // G_TYPE_STRING, "Team");
11529 // clutter_model_append (model, 0, 42, 1, "Team #1", -1);
11530 // </programlisting></informalexample>
11531 /+ Not available -- variadic methods unsupported - use the C function directly.
11532 alias clutter_model_append append; // Variadic
11535 // Creates and appends a new row to the #ClutterModel, setting the row
11536 // values for the given @columns upon creation.
11537 // <n_columns>: the number of columns and values
11538 // <columns>: a vector with the columns to set
11539 // <values>: a vector with the values
11540 void appendv(uint n_columns, uint* columns, GObject2.Value* values) {
11541 clutter_model_appendv(&this, n_columns, columns, values);
11544 // Checks whether the row pointer by @iter should be filtered or not using
11545 // the filtering function set on @model.
11547 // This function should be used only by subclasses of #ClutterModel.
11549 // %FALSE otherwise
11550 // RETURNS: %TRUE if the row should be displayed,
11551 // <iter>: the row to filter
11552 int filter_iter(ModelIter* iter) {
11553 return clutter_model_filter_iter(&this, iter);
11556 // Checks whether @row should be filtered or not using the
11557 // filtering function set on @model.
11559 // This function should be used only by subclasses of #ClutterModel.
11561 // %FALSE otherwise
11562 // RETURNS: %TRUE if the row should be displayed,
11563 // <row>: the row to filter
11564 int filter_row(uint row) {
11565 return clutter_model_filter_row(&this, row);
11568 // Calls @func for each row in the model.
11569 // <func>: a #ClutterModelForeachFunc
11570 // <user_data>: user data to pass to @func
11571 void foreach_(ModelForeachFunc func, void* user_data) {
11572 clutter_model_foreach(&this, func, user_data);
11575 // Retrieves the name of the @column
11577 // string, and it should not be modified or freed
11578 // RETURNS: the name of the column. The model holds the returned
11579 // <column>: the column number
11580 char* get_column_name(uint column) {
11581 return clutter_model_get_column_name(&this, column);
11584 // Retrieves the type of the @column.
11585 // RETURNS: the type of the column.
11586 // <column>: the column number
11587 Type get_column_type(uint column) {
11588 return clutter_model_get_column_type(&this, column);
11591 // Returns whether the @model has a filter in place, set
11592 // using clutter_model_set_filter()
11593 // RETURNS: %TRUE if a filter is set
11594 int get_filter_set() {
11595 return clutter_model_get_filter_set(&this);
11598 // Retrieves a #ClutterModelIter representing the first non-filtered
11599 // row in @model.
11601 // Call g_object_unref() when done using it
11602 // RETURNS: A new #ClutterModelIter.
11603 ModelIter* /*new*/ get_first_iter() {
11604 return clutter_model_get_first_iter(&this);
11607 // Retrieves a #ClutterModelIter representing the row at the given index.
11609 // If a filter function has been set using clutter_model_set_filter()
11610 // then the @model implementation will return the first non filtered
11611 // row.
11613 // out of bounds. When done using the iterator object, call g_object_unref()
11614 // to deallocate its resources
11615 // RETURNS: A new #ClutterModelIter, or %NULL if @row was
11616 // <row>: position of the row to retrieve
11617 ModelIter* /*new*/ get_iter_at_row(uint row) {
11618 return clutter_model_get_iter_at_row(&this, row);
11621 // Retrieves a #ClutterModelIter representing the last non-filtered
11622 // row in @model.
11624 // Call g_object_unref() when done using it
11625 // RETURNS: A new #ClutterModelIter.
11626 ModelIter* /*new*/ get_last_iter() {
11627 return clutter_model_get_last_iter(&this);
11630 // Retrieves the number of columns inside @model.
11631 // RETURNS: the number of columns
11632 uint get_n_columns() {
11633 return clutter_model_get_n_columns(&this);
11636 // Retrieves the number of rows inside @model, eventually taking
11637 // into account any filtering function set using clutter_model_set_filter().
11639 // the length of the filtered @model is returned.
11640 // RETURNS: The length of the @model. If there is a filter set, then
11641 uint get_n_rows() {
11642 return clutter_model_get_n_rows(&this);
11645 // Retrieves the number of column used for sorting the @model.
11646 // RETURNS: a column number, or -1 if the model is not sorted
11647 int get_sorting_column() {
11648 return clutter_model_get_sorting_column(&this);
11651 // Unintrospectable method: insert() / clutter_model_insert()
11652 // Inserts a new row to the #ClutterModel at @row, setting the row
11653 // values upon creation. For example, to insert a new row at index 100,
11654 // where column 0 is type %G_TYPE_INT and column 1 is of type
11655 // %G_TYPE_STRING:
11657 // <informalexample><programlisting>
11658 // ClutterModel *model;
11659 // model = clutter_model_default_new (2,
11660 // G_TYPE_INT, "Score",
11661 // G_TYPE_STRING, "Team");
11662 // clutter_model_insert (model, 3, 0, 42, 1, "Team #1", -1);
11663 // </programlisting></informalexample>
11664 // <row>: the position to insert the new row
11665 /+ Not available -- variadic methods unsupported - use the C function directly.
11666 alias clutter_model_insert insert; // Variadic
11669 // Sets the data in the cell specified by @iter and @column. The type of
11670 // @value must be convertable to the type of the column. If the row does
11671 // not exist then it is created.
11672 // <row>: position of the row to modify
11673 // <column>: column to modify
11674 // <value>: new value for the cell
11675 void insert_value(uint row, uint column, GObject2.Value* value) {
11676 clutter_model_insert_value(&this, row, column, value);
11679 // Inserts data at @row into the #ClutterModel, setting the row
11680 // values for the given @columns upon creation.
11681 // <row>: row index
11682 // <n_columns>: the number of columns and values to set
11683 // <columns>: a vector containing the columns to set
11684 // <values>: a vector containing the values for the cells
11685 void insertv(uint row, uint n_columns, uint* columns, GObject2.Value* values) {
11686 clutter_model_insertv(&this, row, n_columns, columns, values);
11689 // Unintrospectable method: prepend() / clutter_model_prepend()
11690 // Creates and prepends a new row to the #ClutterModel, setting the row
11691 // values upon creation. For example, to prepend a new row where column 0
11692 // is type %G_TYPE_INT and column 1 is of type %G_TYPE_STRING:
11694 // <informalexample><programlisting>
11695 // ClutterModel *model;
11696 // model = clutter_model_default_new (2,
11697 // G_TYPE_INT, "Score",
11698 // G_TYPE_STRING, "Team");
11699 // clutter_model_prepend (model, 0, 42, 1, "Team #1", -1);
11700 // </programlisting></informalexample>
11701 /+ Not available -- variadic methods unsupported - use the C function directly.
11702 alias clutter_model_prepend prepend; // Variadic
11705 // Creates and prepends a new row to the #ClutterModel, setting the row
11706 // values for the given @columns upon creation.
11707 // <n_columns>: the number of columns and values to set
11708 // <columns>: a vector containing the columns to set
11709 // <values>: a vector containing the values for the cells
11710 void prependv(uint n_columns, uint* columns, GObject2.Value* values) {
11711 clutter_model_prependv(&this, n_columns, columns, values);
11714 // Removes the row at the given position from the model.
11715 // <row>: position of row to remove
11716 void remove(uint row) {
11717 clutter_model_remove(&this, row);
11720 // Force a resort on the @model. This function should only be
11721 // used by subclasses of #ClutterModel.
11722 void resort() {
11723 clutter_model_resort(&this);
11726 // Filters the @model using the given filtering function.
11727 // <func>: a #ClutterModelFilterFunc, or #NULL
11728 // <user_data>: user data to pass to @func, or #NULL
11729 // <notify>: destroy notifier of @user_data, or #NULL
11730 void set_filter(ModelFilterFunc func, void* user_data, GLib2.DestroyNotify notify) {
11731 clutter_model_set_filter(&this, func, user_data, notify);
11734 // Assigns a name to the columns of a #ClutterModel.
11736 // This function is meant primarily for #GObjects that inherit from
11737 // #ClutterModel, and should only be used when contructing a #ClutterModel.
11738 // It will not work after the initial creation of the #ClutterModel.
11739 // <n_columns>: the number of column names
11740 // <names>: an array of strings
11741 void set_names(uint n_columns, char* names) {
11742 clutter_model_set_names(&this, n_columns, names);
11745 // Sorts @model using the given sorting function.
11746 // <column>: the column to sort on
11747 // <func>: a #ClutterModelSortFunc, or #NULL
11748 // <user_data>: user data to pass to @func, or #NULL
11749 // <notify>: destroy notifier of @user_data, or #NULL
11750 void set_sort(int column, ModelSortFunc func, void* user_data, GLib2.DestroyNotify notify) {
11751 clutter_model_set_sort(&this, column, func, user_data, notify);
11754 // Sets the model to sort by @column. If @column is a negative value
11755 // the sorting column will be unset.
11756 // <column>: the column of the @model to sort, or -1
11757 void set_sorting_column(int column) {
11758 clutter_model_set_sorting_column(&this, column);
11761 // Sets the types of the columns inside a #ClutterModel.
11763 // This function is meant primarily for #GObjects that inherit from
11764 // #ClutterModel, and should only be used when contructing a #ClutterModel.
11765 // It will not work after the initial creation of the #ClutterModel.
11766 // <n_columns>: number of columns for the model
11767 // <types>: an array of #GType types
11768 void set_types(uint n_columns, Type* types) {
11769 clutter_model_set_types(&this, n_columns, types);
11771 // The ::filter-changed signal is emitted when a new filter has been applied
11772 extern (C) alias static void function (Model* this_, void* user_data=null) signal_filter_changed;
11774 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
11775 return super_.signal_connect!name(cb, data, cf);
11778 ulong signal_connect(string name:"filter-changed", CB:signal_filter_changed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
11779 return signal_connect_data(&this, cast(char*)"filter-changed",
11780 cast(GObject2.Callback)cb, data, null, cf);
11783 // The ::row-added signal is emitted when a new row has been added.
11784 // The data on the row has already been set when the ::row-added signal
11785 // has been emitted.
11786 // <iter>: a #ClutterModelIter pointing to the new row
11787 extern (C) alias static void function (Model* this_, ModelIter* iter, void* user_data=null) signal_row_added;
11788 ulong signal_connect(string name:"row-added", CB:signal_row_added)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
11789 return signal_connect_data(&this, cast(char*)"row-added",
11790 cast(GObject2.Callback)cb, data, null, cf);
11793 // The ::row-removed signal is emitted when a row has been changed.
11794 // The data on the row has already been updated when the ::row-changed
11795 // signal has been emitted.
11796 // <iter>: a #ClutterModelIter pointing to the changed row
11797 extern (C) alias static void function (Model* this_, ModelIter* iter, void* user_data=null) signal_row_changed;
11798 ulong signal_connect(string name:"row-changed", CB:signal_row_changed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
11799 return signal_connect_data(&this, cast(char*)"row-changed",
11800 cast(GObject2.Callback)cb, data, null, cf);
11803 // The ::row-removed signal is emitted when a row has been removed.
11804 // The data on the row pointed by the passed iterator is still valid
11805 // when the ::row-removed signal has been emitted.
11806 // <iter>: a #ClutterModelIter pointing to the removed row
11807 extern (C) alias static void function (Model* this_, ModelIter* iter, void* user_data=null) signal_row_removed;
11808 ulong signal_connect(string name:"row-removed", CB:signal_row_removed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
11809 return signal_connect_data(&this, cast(char*)"row-removed",
11810 cast(GObject2.Callback)cb, data, null, cf);
11812 // The ::sort-changed signal is emitted after the model has been sorted
11813 extern (C) alias static void function (Model* this_, void* user_data=null) signal_sort_changed;
11814 ulong signal_connect(string name:"sort-changed", CB:signal_sort_changed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
11815 return signal_connect_data(&this, cast(char*)"sort-changed",
11816 cast(GObject2.Callback)cb, data, null, cf);
11820 // Class for #ClutterModel instances.
11821 struct ModelClass /* Version 0.6 */ {
11822 private GObject2.ObjectClass parent_class;
11823 // RETURNS: The length of the @model. If there is a filter set, then
11824 extern (C) uint function (Model* model) get_n_rows;
11825 // RETURNS: the number of columns
11826 extern (C) uint function (Model* model) get_n_columns;
11828 // RETURNS: the name of the column. The model holds the returned
11829 // <column>: the column number
11830 extern (C) char* function (Model* model, uint column) get_column_name;
11832 // RETURNS: the type of the column.
11833 // <column>: the column number
11834 extern (C) Type function (Model* model, uint column) get_column_type;
11835 // Unintrospectable functionp: insert_row() / ()
11836 extern (C) ModelIter* function (Model* model, int index_) insert_row;
11837 extern (C) void function (Model* model, uint row) remove_row;
11839 // RETURNS: A new #ClutterModelIter, or %NULL if @row was
11840 // <row>: position of the row to retrieve
11841 extern (C) ModelIter* /*new*/ function (Model* model, uint row) get_iter_at_row;
11842 // Unintrospectable functionp: resort() / ()
11843 extern (C) void function (Model* model, ModelSortFunc func, void* data) resort;
11844 extern (C) void function (Model* model, ModelIter* iter) row_added;
11845 extern (C) void function (Model* model, ModelIter* iter) row_removed;
11846 extern (C) void function (Model* model, ModelIter* iter) row_changed;
11847 extern (C) void function (Model* model) sort_changed;
11848 extern (C) void function (Model* model) filter_changed;
11849 extern (C) void function () _clutter_model_1;
11850 extern (C) void function () _clutter_model_2;
11851 extern (C) void function () _clutter_model_3;
11852 extern (C) void function () _clutter_model_4;
11853 extern (C) void function () _clutter_model_5;
11854 extern (C) void function () _clutter_model_6;
11855 extern (C) void function () _clutter_model_7;
11856 extern (C) void function () _clutter_model_8;
11860 // Filters the content of a row in the model.
11861 // RETURNS: If the row should be displayed, return %TRUE
11862 // <model>: a #ClutterModel
11863 // <iter>: the iterator for the row
11864 // <user_data>: data passed to clutter_model_set_filter()
11865 extern (C) alias int function (Model* model, ModelIter* iter, void* user_data) ModelFilterFunc;
11868 // Iterates on the content of a row in the model
11869 // RETURNS: %TRUE if the iteration should continue, %FALSE otherwise
11870 // <model>: a #ClutterModel
11871 // <iter>: the iterator for the row
11872 // <user_data>: data passed to clutter_model_foreach()
11873 extern (C) alias int function (Model* model, ModelIter* iter, void* user_data) ModelForeachFunc;
11876 // Base class for list models iters. The #ClutterModelIter structure
11877 // contains only private data and should be manipulated using the
11878 // provided API.
11879 struct ModelIter /* : GObject.Object */ /* Version 0.6 */ {
11880 alias parent_instance this;
11881 alias parent_instance super_;
11882 alias parent_instance object;
11883 GObject2.Object parent_instance;
11884 private ModelIterPrivate* priv;
11887 // Copies the passed iterator.
11888 // RETURNS: a copy of the iterator, or %NULL
11889 ModelIter* /*new*/ copy() {
11890 return clutter_model_iter_copy(&this);
11893 // Unintrospectable method: get() / clutter_model_iter_get()
11894 // Gets the value of one or more cells in the row referenced by @iter. The
11895 // variable argument list should contain integer column numbers, each column
11896 // column number followed by a place to store the value being retrieved. The
11897 // list is terminated by a -1.
11899 // For example, to get a value from column 0 with type %G_TYPE_STRING use:
11900 // <informalexample><programlisting>
11901 // clutter_model_iter_get (iter, 0, &place_string_here, -1);
11902 // </programlisting></informalexample>
11904 // where place_string_here is a gchar* to be filled with the string. If
11905 // appropriate, the returned values have to be freed or unreferenced.
11906 /+ Not available -- variadic methods unsupported - use the C function directly.
11907 alias clutter_model_iter_get get; // Variadic
11910 // Retrieves a pointer to the #ClutterModel that this iter is part of.
11911 // RETURNS: a pointer to a #ClutterModel.
11912 Model* get_model() {
11913 return clutter_model_iter_get_model(&this);
11916 // Retrieves the position of the row that the @iter points to.
11917 // RETURNS: the position of the @iter in the model
11918 uint get_row() {
11919 return clutter_model_iter_get_row(&this);
11922 // Unintrospectable method: get_valist() / clutter_model_iter_get_valist()
11923 // See clutter_model_iter_get(). This version takes a va_list for language
11924 // bindings.
11925 // <args>: a list of column/return location pairs, terminated by -1
11926 void get_valist(va_list args) {
11927 clutter_model_iter_get_valist(&this, args);
11930 // Sets an initializes @value to that at @column. When done with @value,
11931 // g_value_unset() needs to be called to free any allocated memory.
11932 // <column>: column number to retrieve the value from
11933 // <value>: an empty #GValue to set
11934 void get_value(uint column, /*out*/ GObject2.Value* value) {
11935 clutter_model_iter_get_value(&this, column, value);
11938 // Gets whether the current iterator is at the beginning of the model
11939 // to which it belongs.
11940 // RETURNS: #TRUE if @iter is the first iter in the filtered model
11941 int is_first() {
11942 return clutter_model_iter_is_first(&this);
11945 // Gets whether the iterator is at the end of the model to which it
11946 // belongs.
11947 // RETURNS: #TRUE if @iter is the last iter in the filtered model.
11948 int is_last() {
11949 return clutter_model_iter_is_last(&this);
11952 // Updates the @iter to point at the next position in the model.
11953 // The model implementation should take into account the presence of
11954 // a filter function.
11956 // row in the model.
11957 // RETURNS: The passed iterator, updated to point at the next
11958 ModelIter* next() {
11959 return clutter_model_iter_next(&this);
11962 // Sets the @iter to point at the previous position in the model.
11963 // The model implementation should take into account the presence of
11964 // a filter function.
11966 // row in the model.
11967 // RETURNS: The passed iterator, updated to point at the previous
11968 ModelIter* prev() {
11969 return clutter_model_iter_prev(&this);
11972 // Unintrospectable method: set() / clutter_model_iter_set()
11973 // Sets the value of one or more cells in the row referenced by @iter. The
11974 // variable argument list should contain integer column numbers, each column
11975 // column number followed by the value to be set. The list is terminated by a
11976 // -1.
11978 // For example, to set column 0 with type %G_TYPE_STRING, use:
11979 // <informalexample><programlisting>
11980 // clutter_model_iter_set (iter, 0, "foo", -1);
11981 // </programlisting></informalexample>
11982 /+ Not available -- variadic methods unsupported - use the C function directly.
11983 alias clutter_model_iter_set set; // Variadic
11986 // Unintrospectable method: set_valist() / clutter_model_iter_set_valist()
11987 // See clutter_model_iter_set(); this version takes a va_list for language
11988 // bindings.
11989 // <args>: va_list of column/value pairs, terminiated by -1
11990 void set_valist(va_list args) {
11991 clutter_model_iter_set_valist(&this, args);
11994 // Sets the data in the cell specified by @iter and @column. The type of
11995 // @value must be convertable to the type of the column.
11996 // <column>: column number to retrieve the value from
11997 // <value>: new value for the cell
11998 void set_value(uint column, GObject2.Value* value) {
11999 clutter_model_iter_set_value(&this, column, value);
12003 // Class for #ClutterModelIter instances.
12004 struct ModelIterClass /* Version 0.6 */ {
12005 private GObject2.ObjectClass parent_class;
12007 // <column>: column number to retrieve the value from
12008 // <value>: an empty #GValue to set
12009 extern (C) void function (ModelIter* iter, uint column, /*out*/ GObject2.Value* value) get_value;
12011 // <column>: column number to retrieve the value from
12012 // <value>: new value for the cell
12013 extern (C) void function (ModelIter* iter, uint column, GObject2.Value* value) set_value;
12014 // RETURNS: #TRUE if @iter is the first iter in the filtered model
12015 extern (C) int function (ModelIter* iter) is_first;
12016 // RETURNS: #TRUE if @iter is the last iter in the filtered model.
12017 extern (C) int function (ModelIter* iter) is_last;
12018 // RETURNS: The passed iterator, updated to point at the next
12019 extern (C) ModelIter* function (ModelIter* iter) next;
12020 // RETURNS: The passed iterator, updated to point at the previous
12021 extern (C) ModelIter* function (ModelIter* iter) prev;
12022 // RETURNS: a pointer to a #ClutterModel.
12023 extern (C) Model* function (ModelIter* iter) get_model;
12024 // RETURNS: the position of the @iter in the model
12025 extern (C) uint function (ModelIter* iter) get_row;
12026 // RETURNS: a copy of the iterator, or %NULL
12027 extern (C) ModelIter* /*new*/ function (ModelIter* iter) copy;
12028 extern (C) void function () _clutter_model_iter_1;
12029 extern (C) void function () _clutter_model_iter_2;
12030 extern (C) void function () _clutter_model_iter_3;
12031 extern (C) void function () _clutter_model_iter_4;
12032 extern (C) void function () _clutter_model_iter_5;
12033 extern (C) void function () _clutter_model_iter_6;
12034 extern (C) void function () _clutter_model_iter_7;
12035 extern (C) void function () _clutter_model_iter_8;
12038 struct ModelIterPrivate {
12041 struct ModelPrivate {
12045 // Compares the content of two rows in the model.
12047 // @a is before @b, or 0 if the rows are the same
12048 // RETURNS: a positive integer if @a is after @b, a negative integer if
12049 // <model>: a #ClutterModel
12050 // <a>: a #GValue representing the contents of the row
12051 // <b>: a #GValue representing the contents of the second row
12052 // <user_data>: data passed to clutter_model_set_sort()
12053 extern (C) alias int function (Model* model, GObject2.Value* a, GObject2.Value* b, void* user_data) ModelSortFunc;
12056 // Masks applied to a #ClutterEvent by modifiers.
12058 // Note that Clutter may add internal values to events which include
12059 // reserved values such as %CLUTTER_MODIFIER_RESERVED_13_MASK. Your code
12060 // should preserve and ignore them. You can use %CLUTTER_MODIFIER_MASK to
12061 // remove all reserved values.
12062 enum ModifierType /* Version 0.4 */ {
12063 SHIFT_MASK = 1,
12064 LOCK_MASK = 2,
12065 CONTROL_MASK = 4,
12066 MOD1_MASK = 8,
12067 MOD2_MASK = 16,
12068 MOD3_MASK = 32,
12069 MOD4_MASK = 64,
12070 MOD5_MASK = 128,
12071 BUTTON1_MASK = 256,
12072 BUTTON2_MASK = 512,
12073 BUTTON3_MASK = 1024,
12074 BUTTON4_MASK = 2048,
12075 BUTTON5_MASK = 4096,
12076 MODIFIER_RESERVED_13_MASK = 8192,
12077 MODIFIER_RESERVED_14_MASK = 16384,
12078 MODIFIER_RESERVED_15_MASK = 32768,
12079 MODIFIER_RESERVED_16_MASK = 65536,
12080 MODIFIER_RESERVED_17_MASK = 131072,
12081 MODIFIER_RESERVED_18_MASK = 262144,
12082 MODIFIER_RESERVED_19_MASK = 524288,
12083 MODIFIER_RESERVED_20_MASK = 1048576,
12084 MODIFIER_RESERVED_21_MASK = 2097152,
12085 MODIFIER_RESERVED_22_MASK = 4194304,
12086 MODIFIER_RESERVED_23_MASK = 8388608,
12087 MODIFIER_RESERVED_24_MASK = 16777216,
12088 MODIFIER_RESERVED_25_MASK = 33554432,
12089 SUPER_MASK = 67108864,
12090 HYPER_MASK = 134217728,
12091 META_MASK = 268435456,
12092 MODIFIER_RESERVED_29_MASK = 536870912,
12093 RELEASE_MASK = 1073741824,
12094 MODIFIER_MASK = 1543512063
12096 enum int MonBrightnessDown = 269025027;
12097 enum int MonBrightnessUp = 269025026;
12098 // Event for the pointer motion
12099 struct MotionEvent /* Version 0.2 */ {
12100 EventType type;
12101 uint time;
12102 EventFlags flags;
12103 Stage* stage;
12104 Actor* source;
12105 float x, y;
12106 ModifierType modifier_state;
12107 double* axes;
12108 InputDevice* device;
12111 enum int MouseKeys_Accel_Enable = 65143;
12112 enum int MouseKeys_Enable = 65142;
12113 enum int Muhenkan = 65314;
12114 enum int Multi_key = 65312;
12115 enum int MultipleCandidate = 65341;
12116 enum int Music = 269025170;
12117 enum int MyComputer = 269025075;
12118 enum int MySites = 269025127;
12119 enum int N = 78;
12120 enum int Nacute = 465;
12121 enum int NairaSign = 16785574;
12122 enum int Ncaron = 466;
12123 enum int Ncedilla = 977;
12124 enum int New = 269025128;
12125 enum int NewSheqelSign = 16785578;
12126 enum int News = 269025129;
12127 enum int Next = 65366;
12128 enum int Next_VMode = 269024802;
12129 enum int Next_Virtual_Screen = 65234;
12130 enum int Ntilde = 209;
12131 enum int Num_Lock = 65407;
12132 enum int O = 79;
12133 enum int OE = 5052;
12134 enum int Oacute = 211;
12135 enum int Obarred = 16777631;
12136 enum int Obelowdot = 16785100;
12137 enum int Ocaron = 16777681;
12138 enum int Ocircumflex = 212;
12139 enum int Ocircumflexacute = 16785104;
12140 enum int Ocircumflexbelowdot = 16785112;
12141 enum int Ocircumflexgrave = 16785106;
12142 enum int Ocircumflexhook = 16785108;
12143 enum int Ocircumflextilde = 16785110;
12144 enum int Odiaeresis = 214;
12145 enum int Odoubleacute = 469;
12146 enum int OfficeHome = 269025130;
12148 // The #ClutterOffscreenEffect structure contains only private data
12149 // and should be accessed using the provided API
12150 struct OffscreenEffect /* : Effect */ /* Version 1.4 */ {
12151 alias parent_instance this;
12152 alias parent_instance super_;
12153 alias parent_instance effect;
12154 Effect parent_instance;
12155 private OffscreenEffectPrivate* priv;
12158 // Calls the create_texture() virtual function of the @effect
12160 // %COGL_INVALID_HANDLE. The returned handle has its reference
12161 // count increased.
12162 // RETURNS: a handle to a Cogl texture, or
12163 // <width>: the minimum width of the target texture
12164 // <height>: the minimum height of the target texture
12165 Cogl.Handle /*new*/ create_texture(float width, float height) {
12166 return clutter_offscreen_effect_create_texture(&this, width, height);
12169 // Retrieves the material used as a render target for the offscreen
12170 // buffer created by @effect
12172 // You should only use the returned #CoglMaterial when painting. The
12173 // returned material might change between different frames.
12175 // returned material is owned by Clutter and it should not be
12176 // modified or freed
12177 // RETURNS: a #CoglMaterial or %NULL. The
12178 Cogl.Material* get_target() {
12179 return clutter_offscreen_effect_get_target(&this);
12182 // Retrieves the size of the offscreen buffer used by @effect to
12183 // paint the actor to which it has been applied.
12185 // This function should only be called by #ClutterOffscreenEffect
12186 // implementations, from within the <function>paint_target()</function>
12187 // virtual function.
12189 // and %FALSE otherwise
12190 // RETURNS: %TRUE if the offscreen buffer has a valid size,
12191 // <width>: return location for the target width, or %NULL
12192 // <height>: return location for the target height, or %NULL
12193 int get_target_size(/*out*/ float* width, /*out*/ float* height) {
12194 return clutter_offscreen_effect_get_target_size(&this, width, height);
12196 // Calls the paint_target() virtual function of the @effect
12197 void paint_target() {
12198 clutter_offscreen_effect_paint_target(&this);
12202 // The #ClutterOffscreenEffectClass structure contains only private data
12203 struct OffscreenEffectClass /* Version 1.4 */ {
12204 private EffectClass parent_class;
12206 // RETURNS: a handle to a Cogl texture, or
12207 // <width>: the minimum width of the target texture
12208 // <height>: the minimum height of the target texture
12209 extern (C) Cogl.Handle /*new*/ function (OffscreenEffect* effect, float width, float height) create_texture;
12210 extern (C) void function (OffscreenEffect* effect) paint_target;
12211 extern (C) void function () _clutter_offscreen1;
12212 extern (C) void function () _clutter_offscreen2;
12213 extern (C) void function () _clutter_offscreen3;
12214 extern (C) void function () _clutter_offscreen4;
12215 extern (C) void function () _clutter_offscreen5;
12216 extern (C) void function () _clutter_offscreen6;
12217 extern (C) void function () _clutter_offscreen7;
12220 struct OffscreenEffectPrivate {
12223 // Possible flags to pass to clutter_actor_set_offscreen_redirect().
12224 enum OffscreenRedirect /* Version 1.8 */ {
12225 AUTOMATIC_FOR_OPACITY = 1,
12226 ALWAYS = 2
12228 enum int Ograve = 210;
12229 enum int Ohook = 16785102;
12230 enum int Ohorn = 16777632;
12231 enum int Ohornacute = 16785114;
12232 enum int Ohornbelowdot = 16785122;
12233 enum int Ohorngrave = 16785116;
12234 enum int Ohornhook = 16785118;
12235 enum int Ohorntilde = 16785120;
12236 enum int Omacron = 978;
12237 enum int Ooblique = 216;
12238 enum int Open = 269025131;
12239 enum int OpenURL = 269025080;
12240 enum int Option = 269025132;
12241 enum int Oslash = 216;
12242 enum int Otilde = 213;
12243 enum int Overlay1_Enable = 65144;
12244 enum int Overlay2_Enable = 65145;
12245 enum int P = 80;
12246 enum int PATH_RELATIVE = 32;
12247 enum int PRIORITY_REDRAW = 50;
12248 enum int Pabovedot = 16784982;
12250 // <structname>ClutterPageTurnEffect</structname> is an opaque structure
12251 // whose members can only be accessed using the provided API
12252 struct PageTurnEffect /* : DeformEffect */ /* Version 1.4 */ {
12253 alias method_parent this;
12254 alias method_parent super_;
12255 alias method_parent deformeffect;
12256 DeformEffect method_parent;
12259 // Creates a new #ClutterPageTurnEffect instance with the given parameters
12260 // RETURNS: the newly created #ClutterPageTurnEffect
12261 // <period>: the period of the page curl, between 0.0 and 1.0
12262 // <angle>: the angle of the page curl, between 0.0 and 360.0
12263 // <radius>: the radius of the page curl, in pixels
12264 static PageTurnEffect* new_(double period, double angle, float radius) {
12265 return clutter_page_turn_effect_new(period, angle, radius);
12268 // Retrieves the value set using clutter_page_turn_effect_get_angle()
12269 // RETURNS: the angle of the page curling
12270 double get_angle() {
12271 return clutter_page_turn_effect_get_angle(&this);
12274 // Retrieves the value set using clutter_page_turn_effect_get_period()
12275 // RETURNS: the period of the page curling
12276 double get_period() {
12277 return clutter_page_turn_effect_get_period(&this);
12280 // Retrieves the value set using clutter_page_turn_effect_set_radius()
12281 // RETURNS: the radius of the page curling
12282 float get_radius() {
12283 return clutter_page_turn_effect_get_radius(&this);
12286 // Sets the angle of the page curling, in degrees
12287 // <angle>: the angle of the page curl, in degrees
12288 void set_angle(double angle) {
12289 clutter_page_turn_effect_set_angle(&this, angle);
12292 // Sets the period of the page curling, between 0.0 (no curling)
12293 // and 1.0 (fully curled)
12294 // <period>: the period of the page curl, between 0.0 and 1.0
12295 void set_period(double period) {
12296 clutter_page_turn_effect_set_period(&this, period);
12299 // Sets the radius of the page curling
12300 // <radius>: the radius of the page curling, in pixels
12301 void set_radius(float radius) {
12302 clutter_page_turn_effect_set_radius(&this, radius);
12306 struct PageTurnEffectClass {
12309 enum int Page_Down = 65366;
12310 enum int Page_Up = 65365;
12312 // <structname>ClutterPaintVolume</structname> is an opaque structure
12313 // whose members cannot be directly accessed.
12315 // A <structname>ClutterPaintVolume</structname> represents an
12316 // a bounding volume whos internal representation isn't defined but
12317 // can be set and queried in terms of an axis aligned bounding box.
12319 // Other internal representation and methods for describing the
12320 // bounding volume may be added in the future.
12321 struct PaintVolume /* Version 1.4 */ {
12323 // Copies @pv into a new #ClutterPaintVolume
12324 // RETURNS: a newly allocated copy of a #ClutterPaintVolume
12325 PaintVolume* /*new*/ copy() {
12326 return clutter_paint_volume_copy(&this);
12328 // Frees the resources allocated by @pv
12329 void free() {
12330 clutter_paint_volume_free(&this);
12333 // Retrieves the depth of the volume's, axis aligned, bounding box.
12335 // In other words; this takes into account what actor's coordinate
12336 // space @pv belongs too and conceptually fits an axis aligned box
12337 // around the volume. It returns the size of that bounding box as
12338 // measured along the z-axis.
12340 // <note><para>If, for example, clutter_actor_get_transformed_paint_volume()
12341 // is used to transform a 2D child actor that is 100px wide, 100px
12342 // high and 0px deep into container coordinates then the depth might
12343 // not simply be 0px if the child actor has a 3D rotation applied to
12344 // it.</para>
12345 // <para>Remember; after clutter_actor_get_transformed_paint_volume() is
12346 // used then the transformed volume will be defined relative to the
12347 // container actor and in container coordinates a 2D child actor
12348 // can have a 3D bounding volume.</para></note>
12350 // <note>There are no accuracy guarantees for the reported depth,
12351 // except that it must always be >= to the true depth. This is
12352 // because actors may report simple, loose fitting paint-volumes
12353 // for efficiency.</note>
12354 // RETURNS: the depth, in units of @pv's local coordinate system.
12355 float get_depth() {
12356 return clutter_paint_volume_get_depth(&this);
12359 // Retrieves the height of the volume's, axis aligned, bounding box.
12361 // In other words; this takes into account what actor's coordinate
12362 // space @pv belongs too and conceptually fits an axis aligned box
12363 // around the volume. It returns the size of that bounding box as
12364 // measured along the y-axis.
12366 // <note><para>If, for example, clutter_actor_get_transformed_paint_volume()
12367 // is used to transform a 2D child actor that is 100px wide, 100px
12368 // high and 0px deep into container coordinates then the height might
12369 // not simply be 100px if the child actor has a 3D rotation applied to
12370 // it.</para>
12371 // <para>Remember; after clutter_actor_get_transformed_paint_volume() is
12372 // used then a transformed child volume will be defined relative to the
12373 // ancestor container actor and so a 2D child actor
12374 // can have a 3D bounding volume.</para></note>
12376 // <note>There are no accuracy guarantees for the reported height,
12377 // except that it must always be >= to the true height. This is
12378 // because actors may report simple, loose fitting paint-volumes
12379 // for efficiency</note>
12380 // RETURNS: the height, in units of @pv's local coordinate system.
12381 float get_height() {
12382 return clutter_paint_volume_get_height(&this);
12385 // Retrieves the origin of the #ClutterPaintVolume.
12386 // <vertex>: the return location for a #ClutterVertex
12387 void get_origin(/*out*/ Vertex* vertex) {
12388 clutter_paint_volume_get_origin(&this, vertex);
12391 // Retrieves the width of the volume's, axis aligned, bounding box.
12393 // In other words; this takes into account what actor's coordinate
12394 // space @pv belongs too and conceptually fits an axis aligned box
12395 // around the volume. It returns the size of that bounding box as
12396 // measured along the x-axis.
12398 // <note><para>If, for example, clutter_actor_get_transformed_paint_volume()
12399 // is used to transform a 2D child actor that is 100px wide, 100px
12400 // high and 0px deep into container coordinates then the width might
12401 // not simply be 100px if the child actor has a 3D rotation applied to
12402 // it.</para>
12403 // <para>Remember; after clutter_actor_get_transformed_paint_volume() is
12404 // used then a transformed child volume will be defined relative to the
12405 // ancestor container actor and so a 2D child actor
12406 // can have a 3D bounding volume.</para></note>
12408 // <note>There are no accuracy guarantees for the reported width,
12409 // except that it must always be >= to the true width. This is
12410 // because actors may report simple, loose fitting paint-volumes
12411 // for efficiency</note>
12412 // RETURNS: the width, in units of @pv's local coordinate system.
12413 float get_width() {
12414 return clutter_paint_volume_get_width(&this);
12417 // Sets the depth of the paint volume. The depth is measured along
12418 // the z axis in the actor coordinates that @pv is associated with.
12419 // <depth>: the depth of the paint volume, in pixels
12420 void set_depth(float depth) {
12421 clutter_paint_volume_set_depth(&this, depth);
12424 // Sets the #ClutterPaintVolume from the allocation of @actor.
12426 // This function should be used when overriding the
12427 // <function>get_paint_volume()</function> by #ClutterActor sub-classes that do
12428 // not paint outside their allocation.
12430 // A typical example is:
12432 // |[
12433 // static gboolean
12434 // my_actor_get_paint_volume (ClutterActor *self,
12435 // ClutterPaintVolume *volume)
12436 // {
12437 // return clutter_paint_volume_set_from_allocation (volume, self);
12438 // }
12439 // ]|
12441 // otherwise
12442 // RETURNS: %TRUE if the paint volume was successfully set, and %FALSE
12443 // <actor>: a #ClutterActor
12444 int set_from_allocation(Actor* actor) {
12445 return clutter_paint_volume_set_from_allocation(&this, actor);
12448 // Sets the height of the paint volume. The height is measured along
12449 // the y axis in the actor coordinates that @pv is associated with.
12450 // <height>: the height of the paint volume, in pixels
12451 void set_height(float height) {
12452 clutter_paint_volume_set_height(&this, height);
12455 // Sets the origin of the paint volume.
12457 // The origin is defined as the X, Y and Z coordinates of the top-left
12458 // corner of an actor's paint volume, in actor coordinates.
12460 // The default is origin is assumed at: (0, 0, 0)
12461 // <origin>: a #ClutterVertex
12462 void set_origin(Vertex* origin) {
12463 clutter_paint_volume_set_origin(&this, origin);
12466 // Sets the width of the paint volume. The width is measured along
12467 // the x axis in the actor coordinates that @pv is associated with.
12468 // <width>: the width of the paint volume, in pixels
12469 void set_width(float width) {
12470 clutter_paint_volume_set_width(&this, width);
12473 // Updates the geometry of @pv to encompass @pv and @another_pv.
12475 // <note>There are no guarantees about how precisely the two volumes
12476 // will be encompassed.</note>
12477 // <another_pv>: A second #ClutterPaintVolume to union with @pv
12478 void union_(PaintVolume* another_pv) {
12479 clutter_paint_volume_union(&this, another_pv);
12484 // A #GParamSpec subclass for defining properties holding
12485 // a #ClutterColor.
12486 struct ParamSpecColor /* : GObject.ParamSpec */ /* Version 1.0 */ {
12487 alias parent_instance this;
12488 alias parent_instance super_;
12489 alias parent_instance paramspec;
12490 GObject2.ParamSpec parent_instance;
12491 Color* default_value;
12494 // #GParamSpec subclass for fixed point based properties
12495 struct ParamSpecFixed /* : GObject.ParamSpec */ /* Version 0.8 */ {
12496 alias parent_instance this;
12497 alias parent_instance super_;
12498 alias parent_instance paramspec;
12499 GObject2.ParamSpec parent_instance;
12500 Cogl.Fixed minimum, maximum, default_value;
12503 struct ParamSpecUnit /* : GObject.ParamSpec */ {
12504 alias method_parent this;
12505 alias method_parent super_;
12506 alias method_parent paramspec;
12507 GObject2.ParamSpec method_parent;
12510 // #GParamSpec subclass for unit based properties.
12511 struct ParamSpecUnits /* Version 1.0 */ {
12512 private GObject2.ParamSpec parent_instance;
12513 UnitType default_type;
12514 float default_value, minimum, maximum;
12517 enum int Paste = 269025133;
12519 // The #ClutterPath struct contains only private data and should
12520 // be accessed with the functions below.
12521 struct Path /* : GObject.InitiallyUnowned */ /* Version 1.0 */ {
12522 alias parent this;
12523 alias parent super_;
12524 alias parent initiallyunowned;
12525 GObject2.InitiallyUnowned parent;
12526 private PathPrivate* priv;
12529 // Creates a new #ClutterPath instance with no nodes.
12531 // The object has a floating reference so if you add it to a
12532 // #ClutterBehaviourPath then you do not need to unref it.
12533 // RETURNS: the newly created #ClutterPath
12534 static Path* new_() {
12535 return clutter_path_new();
12538 // Creates a new #ClutterPath instance with the nodes described in
12539 // @desc. See clutter_path_add_string() for details of the format of
12540 // the string.
12542 // The object has a floating reference so if you add it to a
12543 // #ClutterBehaviourPath then you do not need to unref it.
12544 // RETURNS: the newly created #ClutterPath
12545 // <desc>: a string describing the path
12546 static Path* new_with_description(char* desc) {
12547 return clutter_path_new_with_description(desc);
12550 // Add the nodes of the Cairo path to the end of @path.
12551 // <cpath>: a Cairo path
12552 void add_cairo_path(cairo.Path* cpath) {
12553 clutter_path_add_cairo_path(&this, cpath);
12556 // Adds a %CLUTTER_PATH_CLOSE type node to the path. This creates a
12557 // straight line from the last node to the last %CLUTTER_PATH_MOVE_TO
12558 // type node.
12559 void add_close() {
12560 clutter_path_add_close(&this);
12563 // Adds a %CLUTTER_PATH_CURVE_TO type node to the path. This causes
12564 // the actor to follow a bezier from the last node to (@x_3, @y_3) using
12565 // (@x_1, @y_1) and (@x_2,@y_2) as control points.
12566 // <x_1>: the x coordinate of the first control point
12567 // <y_1>: the y coordinate of the first control point
12568 // <x_2>: the x coordinate of the second control point
12569 // <y_2>: the y coordinate of the second control point
12570 // <x_3>: the x coordinate of the third control point
12571 // <y_3>: the y coordinate of the third control point
12572 void add_curve_to(int x_1, int y_1, int x_2, int y_2, int x_3, int y_3) {
12573 clutter_path_add_curve_to(&this, x_1, y_1, x_2, y_2, x_3, y_3);
12576 // Adds a %CLUTTER_PATH_LINE_TO type node to the path. This causes the
12577 // actor to move to the new coordinates in a straight line.
12578 // <x>: the x coordinate
12579 // <y>: the y coordinate
12580 void add_line_to(int x, int y) {
12581 clutter_path_add_line_to(&this, x, y);
12584 // Adds a %CLUTTER_PATH_MOVE_TO type node to the path. This is usually
12585 // used as the first node in a path. It can also be used in the middle
12586 // of the path to cause the actor to jump to the new coordinate.
12587 // <x>: the x coordinate
12588 // <y>: the y coordinate
12589 void add_move_to(int x, int y) {
12590 clutter_path_add_move_to(&this, x, y);
12593 // Adds @node to the end of the path.
12594 // <node>: a #ClutterPathNode
12595 void add_node(PathNode* node) {
12596 clutter_path_add_node(&this, node);
12599 // Same as clutter_path_add_curve_to() except the coordinates are
12600 // relative to the previous node.
12601 // <x_1>: the x coordinate of the first control point
12602 // <y_1>: the y coordinate of the first control point
12603 // <x_2>: the x coordinate of the second control point
12604 // <y_2>: the y coordinate of the second control point
12605 // <x_3>: the x coordinate of the third control point
12606 // <y_3>: the y coordinate of the third control point
12607 void add_rel_curve_to(int x_1, int y_1, int x_2, int y_2, int x_3, int y_3) {
12608 clutter_path_add_rel_curve_to(&this, x_1, y_1, x_2, y_2, x_3, y_3);
12611 // Same as clutter_path_add_line_to() except the coordinates are
12612 // relative to the previous node.
12613 // <x>: the x coordinate
12614 // <y>: the y coordinate
12615 void add_rel_line_to(int x, int y) {
12616 clutter_path_add_rel_line_to(&this, x, y);
12619 // Same as clutter_path_add_move_to() except the coordinates are
12620 // relative to the previous node.
12621 // <x>: the x coordinate
12622 // <y>: the y coordinate
12623 void add_rel_move_to(int x, int y) {
12624 clutter_path_add_rel_move_to(&this, x, y);
12627 // Adds new nodes to the end of the path as described in @str. The
12628 // format is a subset of the SVG path format. Each node is represented
12629 // by a letter and is followed by zero, one or three pairs of
12630 // coordinates. The coordinates can be separated by spaces or a
12631 // comma. The types are:
12633 // <variablelist>
12634 // <varlistentry><term>M</term>
12635 // <listitem><para>
12636 // Adds a %CLUTTER_PATH_MOVE_TO node. Takes one pair of coordinates.
12637 // </para></listitem></varlistentry>
12638 // <varlistentry><term>L</term>
12639 // <listitem><para>
12640 // Adds a %CLUTTER_PATH_LINE_TO node. Takes one pair of coordinates.
12641 // </para></listitem></varlistentry>
12642 // <varlistentry><term>C</term>
12643 // <listitem><para>
12644 // Adds a %CLUTTER_PATH_CURVE_TO node. Takes three pairs of coordinates.
12645 // </para></listitem></varlistentry>
12646 // <varlistentry><term>z</term>
12647 // <listitem><para>
12648 // Adds a %CLUTTER_PATH_CLOSE node. No coordinates are needed.
12649 // </para></listitem></varlistentry>
12650 // </variablelist>
12652 // The M, L and C commands can also be specified in lower case which
12653 // means the coordinates are relative to the previous node.
12655 // For example, to move an actor in a 100 by 100 pixel square centered
12656 // on the point 300,300 you could use the following path:
12658 // <informalexample>
12659 // <programlisting>
12660 // M 250,350 l 0 -100 L 350,250 l 0 100 z
12661 // </programlisting>
12662 // </informalexample>
12664 // If the path description isn't valid %FALSE will be returned and no
12665 // nodes will be added.
12667 // otherwise.
12668 // RETURNS: %TRUE is the path description was valid or %FALSE
12669 // <str>: a string describing the new nodes
12670 int add_string(char* str) {
12671 return clutter_path_add_string(&this, str);
12673 // Removes all nodes from the path.
12674 void clear() {
12675 clutter_path_clear(&this);
12678 // Calls a function for each node of the path.
12679 // <callback>: the function to call with each node
12680 // <user_data>: user data to pass to the function
12681 void foreach_(PathCallback callback, void* user_data) {
12682 clutter_path_foreach(&this, callback, user_data);
12685 // Returns a newly allocated string describing the path in the same
12686 // format as used by clutter_path_add_string().
12687 // RETURNS: a string description of the path. Free with g_free().
12688 char* /*new*/ get_description() {
12689 return clutter_path_get_description(&this);
12692 // Retrieves an approximation of the total length of the path.
12693 // RETURNS: the length of the path.
12694 uint get_length() {
12695 return clutter_path_get_length(&this);
12698 // Retrieves the number of nodes in the path.
12699 // RETURNS: the number of nodes.
12700 uint get_n_nodes() {
12701 return clutter_path_get_n_nodes(&this);
12704 // Retrieves the node of the path indexed by @index.
12705 // <index_>: the node number to retrieve
12706 // <node>: a location to store a copy of the node
12707 void get_node(uint index_, /*out*/ PathNode* node) {
12708 clutter_path_get_node(&this, index_, node);
12711 // Returns a #GSList of #ClutterPathNode<!-- -->s. The list should be
12712 // freed with g_slist_free(). The nodes are owned by the path and
12713 // should not be freed. Altering the path may cause the nodes in the
12714 // list to become invalid so you should copy them if you want to keep
12715 // the list.
12717 // list of nodes in the path.
12718 // RETURNS: a
12719 GLib2.SList* /*new container*/ get_nodes() {
12720 return clutter_path_get_nodes(&this);
12723 // The value in @progress represents a position along the path where
12724 // 0.0 is the beginning and 1.0 is the end of the path. An
12725 // interpolated position is then stored in @position.
12726 // RETURNS: index of the node used to calculate the position.
12727 // <progress>: a position along the path as a fraction of its length
12728 // <position>: location to store the position
12729 uint get_position(double progress, /*out*/ Knot* position) {
12730 return clutter_path_get_position(&this, progress, position);
12733 // Inserts @node into the path before the node at the given offset. If
12734 // @index_ is negative it will append the node to the end of the path.
12735 // <index_>: offset of where to insert the node
12736 // <node>: the node to insert
12737 void insert_node(int index_, PathNode* node) {
12738 clutter_path_insert_node(&this, index_, node);
12741 // Removes the node at the given offset from the path.
12742 // <index_>: index of the node to remove
12743 void remove_node(uint index_) {
12744 clutter_path_remove_node(&this, index_);
12747 // Replaces the node at offset @index_ with @node.
12748 // <index_>: index to the existing node
12749 // <node>: the replacement node
12750 void replace_node(uint index_, PathNode* node) {
12751 clutter_path_replace_node(&this, index_, node);
12754 // Replaces all of the nodes in the path with nodes described by
12755 // @str. See clutter_path_add_string() for details of the format.
12757 // If the string is invalid then %FALSE is returned and the path is
12758 // unaltered.
12759 // RETURNS: %TRUE is the path was valid, %FALSE otherwise.
12760 // <str>: a string describing the path
12761 int set_description(char* str) {
12762 return clutter_path_set_description(&this, str);
12765 // Add the nodes of the ClutterPath to the path in the Cairo context.
12766 // <cr>: a Cairo context
12767 void to_cairo_path(cairo.Context* cr) {
12768 clutter_path_to_cairo_path(&this, cr);
12773 // This function is passed to clutter_path_foreach() and will be
12774 // called for each node contained in the path.
12775 // <node>: the node
12776 // <data>: optional data passed to the function
12777 extern (C) alias void function (PathNode* node, void* data) PathCallback;
12779 // The #ClutterPathClass struct contains only private data.
12780 struct PathClass /* Version 1.0 */ {
12781 private GObject2.InitiallyUnownedClass parent_class;
12785 // <structname>ClutterPathConstraint</structname> is an opaque structure
12786 // whose members cannot be directly accessed
12787 struct PathConstraint /* : Constraint */ /* Version 1.6 */ {
12788 alias method_parent this;
12789 alias method_parent super_;
12790 alias method_parent constraint;
12791 Constraint method_parent;
12794 // Creates a new #ClutterPathConstraint with the given @path and @offset
12795 // RETURNS: the newly created #ClutterPathConstraint
12796 // <path>: a #ClutterPath, or %NULL
12797 // <offset>: the offset along the #ClutterPath
12798 static PathConstraint* /*new*/ new_(Path* path, float offset) {
12799 return clutter_path_constraint_new(path, offset);
12802 // Retrieves the offset along the #ClutterPath used by @constraint.
12803 // RETURNS: the offset
12804 float get_offset() {
12805 return clutter_path_constraint_get_offset(&this);
12808 // Retrieves a pointer to the #ClutterPath used by @constraint.
12810 // #ClutterPathConstraint, or %NULL. The returned #ClutterPath is owned
12811 // by the constraint and it should not be unreferenced
12812 // RETURNS: the #ClutterPath used by the
12813 Path* get_path() {
12814 return clutter_path_constraint_get_path(&this);
12817 // Sets the offset along the #ClutterPath used by @constraint.
12818 // <offset>: the offset along the path
12819 void set_offset(float offset) {
12820 clutter_path_constraint_set_offset(&this, offset);
12823 // Sets the @path to be followed by the #ClutterPathConstraint.
12825 // The @constraint will take ownership of the #ClutterPath passed to this
12826 // function.
12827 // <path>: a #ClutterPath
12828 void set_path(Path* path=null) {
12829 clutter_path_constraint_set_path(&this, path);
12832 // The ::node-reached signal is emitted each time a
12833 // #ClutterPathConstraint:offset value results in the actor
12834 // passing a #ClutterPathNode
12835 // <actor>: the #ClutterActor using the @constraint
12836 // <index>: the index of the node that has been reached
12837 extern (C) alias static void function (PathConstraint* this_, Actor* actor, c_uint index, void* user_data=null) signal_node_reached;
12839 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
12840 return super_.signal_connect!name(cb, data, cf);
12843 ulong signal_connect(string name:"node-reached", CB:signal_node_reached)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
12844 return signal_connect_data(&this, cast(char*)"node-reached",
12845 cast(GObject2.Callback)cb, data, null, cf);
12849 struct PathConstraintClass {
12853 // Represents a single node of a #ClutterPath.
12855 // Some of the coordinates in @points may be unused for some node
12856 // types. %CLUTTER_PATH_MOVE_TO and %CLUTTER_PATH_LINE_TO use only one
12857 // pair of coordinates, %CLUTTER_PATH_CURVE_TO uses all three and
12858 // %CLUTTER_PATH_CLOSE uses none.
12859 struct PathNode /* Version 1.0 */ {
12860 PathNodeType type;
12861 Knot[3] points;
12864 // Makes an allocated copy of a node.
12865 // RETURNS: the copied node.
12866 PathNode* /*new*/ copy() {
12867 return clutter_path_node_copy(&this);
12870 // Compares two nodes and checks if they are the same type with the
12871 // same coordinates.
12872 // RETURNS: %TRUE if the nodes are the same.
12873 // <node_b>: Second node
12874 int equal(PathNode* node_b) {
12875 return clutter_path_node_equal(&this, node_b);
12877 // Frees the memory of an allocated node.
12878 void free() {
12879 clutter_path_node_free(&this);
12883 // Types of nodes in a #ClutterPath.
12884 enum PathNodeType /* Version 1.0 */ {
12885 MOVE_TO = 0,
12886 LINE_TO = 1,
12887 CURVE_TO = 2,
12888 CLOSE = 3,
12889 REL_MOVE_TO = 32,
12890 REL_LINE_TO = 33,
12891 REL_CURVE_TO = 34
12893 struct PathPrivate {
12896 enum int Pause = 65299;
12898 // Stage perspective definition. #ClutterPerspective is only used by
12899 // the fixed point version of clutter_stage_set_perspective().
12900 struct Perspective /* Version 0.4 */ {
12901 float fovy, aspect, z_near, z_far;
12904 enum int PesetaSign = 16785575;
12905 enum int Phone = 269025134;
12906 // Controls the paint cycle of the scene graph when in pick mode
12907 enum PickMode /* Version 1.0 */ {
12908 NONE = 0,
12909 REACTIVE = 1,
12910 ALL = 2
12912 enum int Pictures = 269025169;
12913 enum int Pointer_Accelerate = 65274;
12914 enum int Pointer_Button1 = 65257;
12915 enum int Pointer_Button2 = 65258;
12916 enum int Pointer_Button3 = 65259;
12917 enum int Pointer_Button4 = 65260;
12918 enum int Pointer_Button5 = 65261;
12919 enum int Pointer_Button_Dflt = 65256;
12920 enum int Pointer_DblClick1 = 65263;
12921 enum int Pointer_DblClick2 = 65264;
12922 enum int Pointer_DblClick3 = 65265;
12923 enum int Pointer_DblClick4 = 65266;
12924 enum int Pointer_DblClick5 = 65267;
12925 enum int Pointer_DblClick_Dflt = 65262;
12926 enum int Pointer_DfltBtnNext = 65275;
12927 enum int Pointer_DfltBtnPrev = 65276;
12928 enum int Pointer_Down = 65251;
12929 enum int Pointer_DownLeft = 65254;
12930 enum int Pointer_DownRight = 65255;
12931 enum int Pointer_Drag1 = 65269;
12932 enum int Pointer_Drag2 = 65270;
12933 enum int Pointer_Drag3 = 65271;
12934 enum int Pointer_Drag4 = 65272;
12935 enum int Pointer_Drag5 = 65277;
12936 enum int Pointer_Drag_Dflt = 65268;
12937 enum int Pointer_EnableKeys = 65273;
12938 enum int Pointer_Left = 65248;
12939 enum int Pointer_Right = 65249;
12940 enum int Pointer_Up = 65250;
12941 enum int Pointer_UpLeft = 65252;
12942 enum int Pointer_UpRight = 65253;
12943 enum int PowerDown = 269025057;
12944 enum int PowerOff = 269025066;
12945 enum int Prev_VMode = 269024803;
12946 enum int Prev_Virtual_Screen = 65233;
12947 enum int PreviousCandidate = 65342;
12948 enum int Print = 65377;
12949 enum int Prior = 65365;
12951 // Prototype of the progress function used to compute the value
12952 // between the two ends @a and @b of an interval depending on
12953 // the value of @progress.
12955 // The #GValue in @retval is already initialized with the same
12956 // type as @a and @b.
12958 // This function will be called by #ClutterInterval if the
12959 // type of the values of the interval was registered using
12960 // clutter_interval_register_progress_func().
12962 // the value and stored it inside @retval
12963 // RETURNS: %TRUE if the function successfully computed
12964 // <a>: the initial value of an interval
12965 // <b>: the final value of an interval
12966 // <progress>: the progress factor, between 0 and 1
12967 // <retval>: the value used to store the progress
12968 extern (C) alias int function (GObject2.Value* a, GObject2.Value* b, double progress, GObject2.Value* retval) ProgressFunc;
12970 enum int Q = 81;
12971 enum int R = 82;
12972 enum int R1 = 65490;
12973 enum int R10 = 65499;
12974 enum int R11 = 65500;
12975 enum int R12 = 65501;
12976 enum int R13 = 65502;
12977 enum int R14 = 65503;
12978 enum int R15 = 65504;
12979 enum int R2 = 65491;
12980 enum int R3 = 65492;
12981 enum int R4 = 65493;
12982 enum int R5 = 65494;
12983 enum int R6 = 65495;
12984 enum int R7 = 65496;
12985 enum int R8 = 65497;
12986 enum int R9 = 65498;
12987 enum int Racute = 448;
12988 enum int Rcaron = 472;
12989 enum int Rcedilla = 931;
12991 // The #ClutterRectangle structure contains only private data
12992 // and should be accessed using the provided API
12993 struct Rectangle /* : Actor */ /* Version 0.1 */ {
12994 alias parent this;
12995 alias parent super_;
12996 alias parent actor;
12997 Actor parent;
12998 private RectanglePrivate* priv;
13001 // Creates a new #ClutterActor with a rectangular shape.
13002 // RETURNS: a new #ClutterActor
13003 static Rectangle* new_() {
13004 return clutter_rectangle_new();
13007 // Creates a new #ClutterActor with a rectangular shape
13008 // and of the given @color.
13009 // RETURNS: a new #ClutterActor
13010 // <color>: a #ClutterColor
13011 static Rectangle* new_with_color(Color* color) {
13012 return clutter_rectangle_new_with_color(color);
13015 // Gets the color of the border used by @rectangle and places
13016 // it into @color.
13017 // <color>: return location for a #ClutterColor
13018 void get_border_color(/*out*/ Color* color) {
13019 clutter_rectangle_get_border_color(&this, color);
13022 // Gets the width (in pixels) of the border used by @rectangle
13023 // RETURNS: the border's width
13024 uint get_border_width() {
13025 return clutter_rectangle_get_border_width(&this);
13028 // Retrieves the color of @rectangle.
13029 // <color>: return location for a #ClutterColor
13030 void get_color(/*out*/ Color* color) {
13031 clutter_rectangle_get_color(&this, color);
13034 // Sets the color of the border used by @rectangle using @color
13035 // <color>: the color of the border
13036 void set_border_color(Color* color) {
13037 clutter_rectangle_set_border_color(&this, color);
13040 // Sets the width (in pixel) of the border used by @rectangle.
13041 // A @width of 0 will unset the border.
13042 // <width>: the width of the border
13043 void set_border_width(uint width) {
13044 clutter_rectangle_set_border_width(&this, width);
13047 // Sets the color of @rectangle.
13048 // <color>: a #ClutterColor
13049 void set_color(Color* color) {
13050 clutter_rectangle_set_color(&this, color);
13054 // The #ClutterRectangleClass structure contains only private data
13055 struct RectangleClass /* Version 0.1 */ {
13056 private ActorClass parent_class;
13057 extern (C) void function () _clutter_rectangle1;
13058 extern (C) void function () _clutter_rectangle2;
13059 extern (C) void function () _clutter_rectangle3;
13060 extern (C) void function () _clutter_rectangle4;
13063 struct RectanglePrivate {
13066 enum int Red = 269025187;
13067 enum int Redo = 65382;
13068 enum int Refresh = 269025065;
13069 enum int Reload = 269025139;
13070 enum int RepeatKeys_Enable = 65138;
13071 enum int Reply = 269025138;
13072 // Specifies the type of requests for a #ClutterActor.
13073 enum RequestMode /* Version 0.8 */ {
13074 HEIGHT_FOR_WIDTH = 0,
13075 WIDTH_FOR_HEIGHT = 1
13077 enum int Return = 65293;
13078 enum int Right = 65363;
13079 enum int RockerDown = 269025060;
13080 enum int RockerEnter = 269025061;
13081 enum int RockerUp = 269025059;
13082 enum int Romaji = 65316;
13083 // Axis of a rotation.
13084 enum RotateAxis /* Version 0.4 */ {
13085 X_AXIS = 0,
13086 Y_AXIS = 1,
13087 Z_AXIS = 2
13089 // Direction of a rotation.
13090 enum RotateDirection /* Version 0.4 */ {
13091 CW = 0,
13092 CCW = 1
13094 enum int RotateWindows = 269025140;
13095 enum int RotationKB = 269025142;
13096 enum int RotationPB = 269025141;
13097 enum int RupeeSign = 16785576;
13098 enum int S = 83;
13099 enum int SCHWA = 16777615;
13100 enum int Sabovedot = 16784992;
13101 enum int Sacute = 422;
13102 enum int Save = 269025143;
13103 enum int Scaron = 425;
13104 enum int Scedilla = 426;
13105 enum int Scircumflex = 734;
13107 // The #ClutterScore structure contains only private data
13108 // and should be accessed using the provided API
13109 struct Score /* : GObject.Object */ /* Version 0.6 */ {
13110 alias parent this;
13111 alias parent super_;
13112 alias parent object;
13113 GObject2.Object parent;
13114 private ScorePrivate* priv;
13117 // Creates a new #ClutterScore. A #ClutterScore is an object that can
13118 // hold multiple #ClutterTimeline<!-- -->s in a sequential order.
13120 // when done.
13121 // RETURNS: the newly created #ClutterScore. Use g_object_unref()
13122 static Score* /*new*/ new_() {
13123 return clutter_score_new();
13126 // Appends a timeline to another one existing in the score; the newly
13127 // appended timeline will be started when @parent is complete.
13129 // If @parent is %NULL, the new #ClutterTimeline will be started when
13130 // clutter_score_start() is called.
13132 // #ClutterScore will take a reference on @timeline.
13134 // 0 on failure. The returned id can be used with clutter_score_remove()
13135 // or clutter_score_get_timeline().
13136 // RETURNS: the id of the #ClutterTimeline inside the score, or
13137 // <parent>: a #ClutterTimeline in the score, or %NULL
13138 // <timeline>: a #ClutterTimeline
13139 c_ulong append(Timeline* parent, Timeline* timeline) {
13140 return clutter_score_append(&this, parent, timeline);
13143 // Appends @timeline at the given @marker_name on the @parent
13144 // #ClutterTimeline.
13146 // If you want to append @timeline at the end of @parent, use
13147 // clutter_score_append().
13149 // The #ClutterScore will take a reference on @timeline.
13151 // 0 on failure. The returned id can be used with clutter_score_remove()
13152 // or clutter_score_get_timeline().
13153 // RETURNS: the id of the #ClutterTimeline inside the score, or
13154 // <parent>: the parent #ClutterTimeline
13155 // <marker_name>: the name of the marker to use
13156 // <timeline>: the #ClutterTimeline to append
13157 c_ulong append_at_marker(Timeline* parent, char* marker_name, Timeline* timeline) {
13158 return clutter_score_append_at_marker(&this, parent, marker_name, timeline);
13161 // Gets whether @score is looping
13162 // RETURNS: %TRUE if the score is looping
13163 int get_loop() {
13164 return clutter_score_get_loop(&this);
13167 // Retrieves the #ClutterTimeline for @id_ inside @score.
13169 // function does not increase the reference count on the returned
13170 // #ClutterTimeline
13171 // RETURNS: the requested timeline, or %NULL. This
13172 // <id_>: the id of the timeline
13173 Timeline* get_timeline(c_ulong id_) {
13174 return clutter_score_get_timeline(&this, id_);
13177 // Query state of a #ClutterScore instance.
13178 // RETURNS: %TRUE if score is currently playing
13179 int is_playing() {
13180 return clutter_score_is_playing(&this);
13183 // Retrieves a list of all the #ClutterTimelines managed by @score.
13185 // #GSList containing all the timelines in the score. This function does
13186 // not increase the reference count of the returned timelines. Use
13187 // g_slist_free() on the returned list to deallocate its resources.
13188 // RETURNS: a
13189 GLib2.SList* /*new container*/ list_timelines() {
13190 return clutter_score_list_timelines(&this);
13192 // Pauses a playing score @score.
13193 void pause() {
13194 clutter_score_pause(&this);
13197 // Removes the #ClutterTimeline with the given id inside @score. If
13198 // the timeline has other timelines attached to it, those are removed
13199 // as well.
13200 // <id_>: the id of the timeline to remove
13201 void remove(c_ulong id_) {
13202 clutter_score_remove(&this, id_);
13204 // Removes all the timelines inside @score.
13205 void remove_all() {
13206 clutter_score_remove_all(&this);
13208 // Rewinds a #ClutterScore to its initial state.
13209 void rewind() {
13210 clutter_score_rewind(&this);
13213 // Sets whether @score should loop. A looping #ClutterScore will start
13214 // from its initial state after the ::complete signal has been fired.
13215 // <loop>: %TRUE for enable looping
13216 void set_loop(int loop) {
13217 clutter_score_set_loop(&this, loop);
13219 // Starts the score.
13220 void start() {
13221 clutter_score_start(&this);
13223 // Stops and rewinds a playing #ClutterScore instance.
13224 void stop() {
13225 clutter_score_stop(&this);
13227 // The ::completed signal is emitted each time a #ClutterScore terminates.
13228 extern (C) alias static void function (Score* this_, void* user_data=null) signal_completed;
13230 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
13231 return super_.signal_connect!name(cb, data, cf);
13234 ulong signal_connect(string name:"completed", CB:signal_completed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
13235 return signal_connect_data(&this, cast(char*)"completed",
13236 cast(GObject2.Callback)cb, data, null, cf);
13239 // The ::paused signal is emitted each time a #ClutterScore
13240 // is paused.
13241 extern (C) alias static void function (Score* this_, void* user_data=null) signal_paused;
13242 ulong signal_connect(string name:"paused", CB:signal_paused)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
13243 return signal_connect_data(&this, cast(char*)"paused",
13244 cast(GObject2.Callback)cb, data, null, cf);
13246 // The ::started signal is emitted each time a #ClutterScore starts playing.
13247 extern (C) alias static void function (Score* this_, void* user_data=null) signal_started;
13248 ulong signal_connect(string name:"started", CB:signal_started)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
13249 return signal_connect_data(&this, cast(char*)"started",
13250 cast(GObject2.Callback)cb, data, null, cf);
13253 // The ::timeline-completed signal is emitted each time a timeline
13254 // inside a #ClutterScore terminates.
13255 // <timeline>: the completed timeline
13256 extern (C) alias static void function (Score* this_, Timeline* timeline, void* user_data=null) signal_timeline_completed;
13257 ulong signal_connect(string name:"timeline-completed", CB:signal_timeline_completed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
13258 return signal_connect_data(&this, cast(char*)"timeline-completed",
13259 cast(GObject2.Callback)cb, data, null, cf);
13262 // The ::timeline-started signal is emitted each time a new timeline
13263 // inside a #ClutterScore starts playing.
13264 // <timeline>: the current timeline
13265 extern (C) alias static void function (Score* this_, Timeline* timeline, void* user_data=null) signal_timeline_started;
13266 ulong signal_connect(string name:"timeline-started", CB:signal_timeline_started)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
13267 return signal_connect_data(&this, cast(char*)"timeline-started",
13268 cast(GObject2.Callback)cb, data, null, cf);
13272 // The #ClutterScoreClass structure contains only private data
13273 struct ScoreClass /* Version 0.6 */ {
13274 private GObject2.ObjectClass parent_class;
13275 extern (C) void function (Score* score, Timeline* timeline) timeline_started;
13276 extern (C) void function (Score* score, Timeline* timeline) timeline_completed;
13277 extern (C) void function (Score* score) started;
13278 extern (C) void function (Score* score) completed;
13279 extern (C) void function (Score* score) paused;
13280 extern (C) void function () _clutter_score_1;
13281 extern (C) void function () _clutter_score_2;
13282 extern (C) void function () _clutter_score_3;
13283 extern (C) void function () _clutter_score_4;
13284 extern (C) void function () _clutter_score_5;
13287 struct ScorePrivate {
13290 enum int ScreenSaver = 269025069;
13292 // The #ClutterScript structure contains only private data
13293 // and should be accessed using the provided API
13294 struct Script /* : GObject.Object */ /* Version 0.6 */ {
13295 alias parent_instance this;
13296 alias parent_instance super_;
13297 alias parent_instance object;
13298 GObject2.Object parent_instance;
13299 private ScriptPrivate* priv;
13302 // Creates a new #ClutterScript instance. #ClutterScript can be used
13303 // to load objects definitions for scenegraph elements, like actors,
13304 // or behavioural elements, like behaviours and timelines. The
13305 // definitions must be encoded using the JavaScript Object Notation (JSON)
13306 // language.
13308 // g_object_unref() when done.
13309 // RETURNS: the newly created #ClutterScript instance. Use
13310 static Script* /*new*/ new_() {
13311 return clutter_script_new();
13314 // Adds @paths to the list of search paths held by @script.
13316 // The search paths are used by clutter_script_lookup_filename(), which
13317 // can be used to define search paths for the textures source file name
13318 // or other custom, file-based properties.
13319 // <paths>: an array of strings containing different search paths
13320 // <n_paths>: the length of the passed array
13321 void add_search_paths(char* paths, size_t n_paths) {
13322 clutter_script_add_search_paths(&this, paths, n_paths);
13325 // Associates a #ClutterState to the #ClutterScript instance using the given
13326 // name.
13328 // The #ClutterScript instance will use @state to resolve target states when
13329 // connecting signal handlers.
13331 // The #ClutterScript instance will take a reference on the #ClutterState
13332 // passed to this function.
13333 // <name>: a name for the @state, or %NULL to set the default #ClutterState
13334 // <state>: a #ClutterState
13335 void add_states(char* name, State* state) {
13336 clutter_script_add_states(&this, name, state);
13339 // Connects all the signals defined into a UI definition file to their
13340 // handlers.
13342 // This method invokes clutter_script_connect_signals_full() internally
13343 // and uses #GModule's introspective features (by opening the current
13344 // module's scope) to look at the application's symbol table.
13346 // Note that this function will not work if #GModule is not supported by
13347 // the platform Clutter is running on.
13348 // <user_data>: data to be passed to the signal handlers, or %NULL
13349 void connect_signals(void* user_data) {
13350 clutter_script_connect_signals(&this, user_data);
13353 // Unintrospectable method: connect_signals_full() / clutter_script_connect_signals_full()
13354 // Connects all the signals defined into a UI definition file to their
13355 // handlers.
13357 // This function allows to control how the signal handlers are
13358 // going to be connected to their respective signals. It is meant
13359 // primarily for language bindings to allow resolving the function
13360 // names using the native API, but it can also be used on platforms
13361 // that do not support GModule.
13363 // Applications should use clutter_script_connect_signals().
13364 // <func>: signal connection function
13365 // <user_data>: data to be passed to the signal handlers, or %NULL
13366 void connect_signals_full(ScriptConnectFunc func, void* user_data) {
13367 clutter_script_connect_signals_full(&this, func, user_data);
13370 // Ensure that every object defined inside @script is correctly
13371 // constructed. You should rarely need to use this function.
13372 void ensure_objects() {
13373 clutter_script_ensure_objects(&this);
13376 // Retrieves the object bound to @name. This function does not increment
13377 // the reference count of the returned object.
13379 // with the given name was available
13380 // RETURNS: the named object, or %NULL if no object
13381 // <name>: the name of the object to retrieve
13382 GObject2.Object* get_object(char* name) {
13383 return clutter_script_get_object(&this, name);
13386 // Unintrospectable method: get_objects() / clutter_script_get_objects()
13387 // Retrieves a list of objects for the given names. After @script, object
13388 // names/return location pairs should be listed, with a %NULL pointer
13389 // ending the list, like:
13391 // <informalexample><programlisting>
13392 // GObject *my_label, *a_button, *main_timeline;
13394 // clutter_script_get_objects (script,
13395 // "my-label", &amp;my_label,
13396 // "a-button", &amp;a_button,
13397 // "main-timeline", &amp;main_timeline,
13398 // NULL);
13399 // </programlisting></informalexample>
13401 // Note: This function does not increment the reference count of the
13402 // returned objects.
13403 // RETURNS: the number of objects returned.
13404 // <first_name>: the name of the first object to retrieve
13405 /+ Not available -- variadic methods unsupported - use the C function directly.
13406 alias clutter_script_get_objects get_objects; // Variadic
13409 // Retrieves the #ClutterState for the given @state_name.
13411 // If @name is %NULL, this function will return the default
13412 // #ClutterState instance.
13414 // given name. The #ClutterState is owned by the #ClutterScript instance
13415 // and it should not be unreferenced
13416 // RETURNS: a pointer to the #ClutterState for the
13417 // <name>: the name of the #ClutterState, or %NULL
13418 State* get_states(char* name=null) {
13419 return clutter_script_get_states(&this, name);
13422 // Looks up a type by name, using the virtual function that
13423 // #ClutterScript has for that purpose. This function should
13424 // rarely be used.
13426 // %G_TYPE_INVALID if not corresponding type was found.
13427 // RETURNS: the type for the requested type name, or
13428 // <type_name>: name of the type to look up
13429 Type get_type_from_name(char* type_name) {
13430 return clutter_script_get_type_from_name(&this, type_name);
13433 // Retrieves all the objects created by @script.
13435 // Note: this function does not increment the reference count of the
13436 // objects it returns.
13438 // of #GObject<!-- -->s, or %NULL. The objects are owned by the
13439 // #ClutterScript instance. Use g_list_free() on the returned list when
13440 // done.
13441 // RETURNS: a list
13442 GLib2.List* /*new container*/ list_objects() {
13443 return clutter_script_list_objects(&this);
13446 // Loads the definitions from @data into @script and merges with
13447 // the currently loaded ones, if any.
13449 // accordingly. On success, the merge id for the UI definitions is
13450 // returned. You can use the merge id with clutter_script_unmerge_objects().
13451 // RETURNS: on error, zero is returned and @error is set
13452 // <data>: a buffer containing the definitions
13453 // <length>: the length of the buffer, or -1 if @data is a NUL-terminated buffer
13454 uint load_from_data(char* data, ssize_t length, GLib2.Error** error=null) {
13455 return clutter_script_load_from_data(&this, data, length, error);
13458 // Loads the definitions from @filename into @script and merges with
13459 // the currently loaded ones, if any.
13461 // accordingly. On success, the merge id for the UI definitions is
13462 // returned. You can use the merge id with clutter_script_unmerge_objects().
13463 // RETURNS: on error, zero is returned and @error is set
13464 // <filename>: the full path to the definition file
13465 uint load_from_file(char* filename, GLib2.Error** error=null) {
13466 return clutter_script_load_from_file(&this, filename, error);
13469 // Looks up @filename inside the search paths of @script. If @filename
13470 // is found, its full path will be returned .
13472 // found.
13473 // RETURNS: the full path of @filename or %NULL if no path was
13474 // <filename>: the name of the file to lookup
13475 char* /*new*/ lookup_filename(char* filename) {
13476 return clutter_script_lookup_filename(&this, filename);
13479 // Unmerges the objects identified by @merge_id.
13480 // <merge_id>: merge id returned when loading a UI definition
13481 void unmerge_objects(uint merge_id) {
13482 clutter_script_unmerge_objects(&this, merge_id);
13486 // The #ClutterScriptClass structure contains only private data
13487 struct ScriptClass /* Version 0.6 */ {
13488 private GObject2.ObjectClass parent_class;
13490 // RETURNS: the type for the requested type name, or
13491 // <type_name>: name of the type to look up
13492 extern (C) Type function (Script* script, char* type_name) get_type_from_name;
13493 extern (C) void function () _clutter_reserved1;
13494 extern (C) void function () _clutter_reserved2;
13495 extern (C) void function () _clutter_reserved3;
13496 extern (C) void function () _clutter_reserved4;
13497 extern (C) void function () _clutter_reserved5;
13498 extern (C) void function () _clutter_reserved6;
13499 extern (C) void function () _clutter_reserved7;
13500 extern (C) void function () _clutter_reserved8;
13504 // This is the signature of a function used to connect signals. It is used
13505 // by the clutter_script_connect_signals_full() function. It is mainly
13506 // intended for interpreted language bindings, but could be useful where the
13507 // programmer wants more control over the signal connection process.
13508 // <script>: a #ClutterScript
13509 // <object>: the object to connect
13510 // <signal_name>: the name of the signal
13511 // <handler_name>: the name of the signal handler
13512 // <connect_object>: the object to connect the signal to, or %NULL
13513 // <flags>: signal connection flags
13514 // <user_data>: user data to pass to the signal handler
13515 extern (C) alias void function (Script* script, GObject2.Object* object, char* signal_name, char* handler_name, GObject2.Object* connect_object, GObject2.ConnectFlags flags, void* user_data) ScriptConnectFunc;
13517 // #ClutterScript error enumeration.
13518 enum ScriptError /* Version 0.6 */ {
13519 TYPE_FUNCTION = 0,
13520 PROPERTY = 1,
13521 VALUE = 2
13523 struct ScriptPrivate {
13527 // #ClutterScriptable is an opaque structure whose members cannot be directly
13528 // accessed
13529 struct Scriptable /* Version 0.6 */ {
13531 // Retrieves the id of @scriptable set using clutter_scriptable_set_id().
13533 // the scriptable object and should never be modified of freed
13534 // RETURNS: the id of the object. The returned string is owned by
13535 char* get_id() {
13536 return clutter_scriptable_get_id(&this);
13539 // Parses the passed JSON node. The implementation must set the type
13540 // of the passed #GValue pointer using g_value_init().
13541 // RETURNS: %TRUE if the node was successfully parsed, %FALSE otherwise.
13542 // <script>: the #ClutterScript creating the scriptable instance
13543 // <value>: the generic value to be set
13544 // <name>: the name of the node
13545 // <node>: the JSON node to be parsed
13546 int parse_custom_node(Script* script, GObject2.Value* value, char* name, Json.Node* node) {
13547 return clutter_scriptable_parse_custom_node(&this, script, value, name, node);
13550 // Overrides the common properties setting. The underlying virtual
13551 // function should be used when implementing custom properties.
13552 // <script>: the #ClutterScript creating the scriptable instance
13553 // <name>: the name of the property
13554 // <value>: the value of the property
13555 void set_custom_property(Script* script, char* name, GObject2.Value* value) {
13556 clutter_scriptable_set_custom_property(&this, script, name, value);
13559 // Sets @id_ as the unique Clutter script it for this instance of
13560 // #ClutterScriptableIface.
13562 // This name can be used by user interface designer applications to
13563 // define a unique name for an object constructable using the UI
13564 // definition language parsed by #ClutterScript.
13565 // <id_>: the #ClutterScript id of the object
13566 void set_id(char* id_) {
13567 clutter_scriptable_set_id(&this, id_);
13572 // Interface for implementing "scriptable" objects. An object implementing
13573 // this interface can override the parsing and properties setting sequence
13574 // when loading a UI definition data with #ClutterScript
13575 struct ScriptableIface /* Version 0.6 */ {
13576 private GObject2.TypeInterface g_iface;
13577 // <id_>: the #ClutterScript id of the object
13578 extern (C) void function (Scriptable* scriptable, char* id_) set_id;
13579 // RETURNS: the id of the object. The returned string is owned by
13580 extern (C) char* function (Scriptable* scriptable) get_id;
13582 // RETURNS: %TRUE if the node was successfully parsed, %FALSE otherwise.
13583 // <script>: the #ClutterScript creating the scriptable instance
13584 // <value>: the generic value to be set
13585 // <name>: the name of the node
13586 // <node>: the JSON node to be parsed
13587 extern (C) int function (Scriptable* scriptable, Script* script, GObject2.Value* value, char* name, Json.Node* node) parse_custom_node;
13589 // <script>: the #ClutterScript creating the scriptable instance
13590 // <name>: the name of the property
13591 // <value>: the value of the property
13592 extern (C) void function (Scriptable* scriptable, Script* script, char* name, GObject2.Value* value) set_custom_property;
13595 enum int ScrollClick = 269025146;
13596 // Direction of a pointer scroll event.
13597 enum ScrollDirection /* Version 0.4 */ {
13598 UP = 0,
13599 DOWN = 1,
13600 LEFT = 2,
13601 RIGHT = 3
13603 enum int ScrollDown = 269025145;
13604 // Scroll wheel (or similar device) event
13605 struct ScrollEvent /* Version 0.2 */ {
13606 EventType type;
13607 uint time;
13608 EventFlags flags;
13609 Stage* stage;
13610 Actor* source;
13611 float x, y;
13612 ScrollDirection direction;
13613 ModifierType modifier_state;
13614 double* axes;
13615 InputDevice* device;
13618 enum int ScrollUp = 269025144;
13619 enum int Scroll_Lock = 65300;
13620 enum int Search = 269025051;
13621 enum int Select = 65376;
13622 enum int SelectButton = 269025184;
13623 enum int Send = 269025147;
13624 enum int Serbian_DJE = 1713;
13625 enum int Serbian_DZE = 1727;
13626 enum int Serbian_JE = 1720;
13627 enum int Serbian_LJE = 1721;
13628 enum int Serbian_NJE = 1722;
13629 enum int Serbian_TSHE = 1723;
13630 enum int Serbian_dje = 1697;
13631 enum int Serbian_dze = 1711;
13632 enum int Serbian_je = 1704;
13633 enum int Serbian_lje = 1705;
13634 enum int Serbian_nje = 1706;
13635 enum int Serbian_tshe = 1707;
13637 // <structname>ClutterSettings</structname> is an opaque structure whose
13638 // members cannot be directly accessed.
13639 struct Settings /* : GObject.Object */ /* Version 1.4 */ {
13640 alias method_parent this;
13641 alias method_parent super_;
13642 alias method_parent object;
13643 GObject2.Object method_parent;
13646 // Retrieves the singleton instance of #ClutterSettings
13648 // returned object is owned by Clutter and it should not be unreferenced
13649 // directly
13650 // RETURNS: the instance of #ClutterSettings. The
13651 static Settings* get_default() {
13652 return clutter_settings_get_default();
13656 struct SettingsClass {
13660 // The #ClutterShader structure contains only private data
13661 // and should be accessed using the provided API
13662 struct Shader /* : GObject.Object */ /* Version 0.6 */ {
13663 alias parent this;
13664 alias parent super_;
13665 alias parent object;
13666 GObject2.Object parent;
13667 private ShaderPrivate* priv;
13670 // Create a new #ClutterShader instance.
13671 // RETURNS: a new #ClutterShader.
13672 static Shader* /*new*/ new_() {
13673 return clutter_shader_new();
13676 // Compiles and links GLSL sources set for vertex and fragment shaders for
13677 // a #ClutterShader. If the compilation fails and a #GError return location is
13678 // provided the error will contain the errors from the compiler, if any.
13679 // RETURNS: returns TRUE if the shader was succesfully compiled.
13680 int compile(GLib2.Error** error=null) {
13681 return clutter_shader_compile(&this, error);
13684 // Retrieves the underlying #CoglHandle for the fragment shader.
13686 // shader, or %NULL. The handle is owned by the #ClutterShader
13687 // and it should not be unreferenced
13688 // RETURNS: A #CoglHandle for the fragment
13689 Cogl.Handle get_cogl_fragment_shader() {
13690 return clutter_shader_get_cogl_fragment_shader(&this);
13693 // Retrieves the underlying #CoglHandle for the shader program.
13695 // or %NULL. The handle is owned by the #ClutterShader and it should
13696 // not be unreferenced
13697 // RETURNS: A #CoglHandle for the shader program,
13698 Cogl.Handle get_cogl_program() {
13699 return clutter_shader_get_cogl_program(&this);
13702 // Retrieves the underlying #CoglHandle for the vertex shader.
13704 // shader, or %NULL. The handle is owned by the #ClutterShader
13705 // and it should not be unreferenced
13706 // RETURNS: A #CoglHandle for the vertex
13707 Cogl.Handle get_cogl_vertex_shader() {
13708 return clutter_shader_get_cogl_vertex_shader(&this);
13711 // Query the current GLSL fragment source set on @shader.
13713 // ClutterShader object or %NULL. The returned string is owned by the
13714 // shader object and should never be modified or freed
13715 // RETURNS: the source of the fragment shader for this
13716 char* get_fragment_source() {
13717 return clutter_shader_get_fragment_source(&this);
13720 // Checks whether @shader is enabled.
13721 // RETURNS: %TRUE if the shader is enabled.
13722 int get_is_enabled() {
13723 return clutter_shader_get_is_enabled(&this);
13726 // Query the current GLSL vertex source set on @shader.
13728 // ClutterShader object or %NULL. The returned string is owned by the
13729 // shader object and should never be modified or freed
13730 // RETURNS: the source of the vertex shader for this
13731 char* get_vertex_source() {
13732 return clutter_shader_get_vertex_source(&this);
13735 // Checks whether @shader is is currently compiled, linked and bound
13736 // to the GL context.
13737 // RETURNS: %TRUE if the shader is compiled, linked and ready for use.
13738 int is_compiled() {
13739 return clutter_shader_is_compiled(&this);
13741 // Frees up any GL context resources held by the shader.
13742 void release() {
13743 clutter_shader_release(&this);
13746 // Sets the GLSL source code to be used by a #ClutterShader for the fragment
13747 // program.
13748 // <data>: GLSL source code.
13749 // <length>: length of source buffer (currently ignored)
13750 void set_fragment_source(char* data, ssize_t length) {
13751 clutter_shader_set_fragment_source(&this, data, length);
13754 // Enables a shader. This function will attempt to compile and link
13755 // the shader, if it isn't already.
13757 // When @enabled is %FALSE the default state of the GL pipeline will be
13758 // used instead.
13759 // <enabled>: The new state of the shader.
13760 void set_is_enabled(int enabled) {
13761 clutter_shader_set_is_enabled(&this, enabled);
13764 // Sets a user configurable variable in the GLSL shader programs attached to
13765 // a #ClutterShader.
13766 // <name>: name of uniform in GLSL shader program to set.
13767 // <value>: a #ClutterShaderFloat, #ClutterShaderInt or #ClutterShaderMatrix #GValue.
13768 void set_uniform(char* name, GObject2.Value* value) {
13769 clutter_shader_set_uniform(&this, name, value);
13772 // Sets the GLSL source code to be used by a #ClutterShader for the vertex
13773 // program.
13774 // <data>: GLSL source code.
13775 // <length>: length of source buffer (currently ignored)
13776 void set_vertex_source(char* data, ssize_t length) {
13777 clutter_shader_set_vertex_source(&this, data, length);
13781 // The #ClutterShaderClass structure contains only private data
13782 struct ShaderClass /* Version 0.6 */ {
13783 private GObject2.ObjectClass parent_class;
13787 // The <structname>ClutterShaderEffect</structname> structure contains
13788 // only private data and should be accessed using the provided API
13789 struct ShaderEffect /* : OffscreenEffect */ /* Version 1.4 */ {
13790 alias parent_instance this;
13791 alias parent_instance super_;
13792 alias parent_instance offscreeneffect;
13793 OffscreenEffect parent_instance;
13794 private ShaderEffectPrivate* priv;
13797 // Creates a new #ClutterShaderEffect, to be applied to an actor using
13798 // clutter_actor_add_effect().
13800 // The effect will be empty until clutter_shader_effect_set_shader_source()
13801 // is called.
13803 // Use g_object_unref() when done.
13804 // RETURNS: the newly created #ClutterShaderEffect.
13805 // <shader_type>: the type of the shader, either %CLUTTER_FRAGMENT_SHADER, or %CLUTTER_VERTEX_SHADER
13806 static ShaderEffect* /*new*/ new_(ShaderType shader_type) {
13807 return clutter_shader_effect_new(shader_type);
13810 // Retrieves a pointer to the program's handle
13812 // or %COGL_INVALID_HANDLE
13813 // RETURNS: a pointer to the program's handle,
13814 Cogl.Handle get_program() {
13815 return clutter_shader_effect_get_program(&this);
13818 // Retrieves a pointer to the shader's handle
13820 // or %COGL_INVALID_HANDLE
13821 // RETURNS: a pointer to the shader's handle,
13822 Cogl.Handle get_shader() {
13823 return clutter_shader_effect_get_shader(&this);
13826 // Sets the source of the GLSL shader used by @effect
13828 // This function should only be called by implementations of
13829 // the #ClutterShaderEffect class, and not by application code.
13831 // This function can only be called once; subsequent calls will
13832 // yield no result.
13833 // RETURNS: %TRUE if the source was set
13834 // <source>: the source of a GLSL shader
13835 int set_shader_source(char* source) {
13836 return clutter_shader_effect_set_shader_source(&this, source);
13839 // Unintrospectable method: set_uniform() / clutter_shader_effect_set_uniform()
13840 // Sets a list of values as the payload for the uniform @name inside
13841 // the shader effect
13843 // The @gtype must be one of: %G_TYPE_INT, for 1 or more integer values;
13844 // %G_TYPE_FLOAT, for 1 or more floating point values;
13845 // %CLUTTER_TYPE_SHADER_INT, for a pointer to an array of integer values;
13846 // %CLUTTER_TYPE_SHADER_FLOAT, for a pointer to an array of floating point
13847 // values; and %CLUTTER_TYPE_SHADER_MATRIX, for a pointer to an array of
13848 // floating point values mapping a matrix
13850 // The number of values interepreted is defined by the @n_value
13851 // argument, and by the @gtype argument. For instance, a uniform named
13852 // "sampler0" and containing a single integer value is set using:
13854 // |[
13855 // clutter_shader_effect_set_uniform (effect, "sampler0",
13856 // G_TYPE_INT, 1,
13857 // 0);
13858 // ]|
13860 // While a uniform named "components" and containing a 3-elements vector
13861 // of floating point values (a "vec3") can be set using:
13863 // |[
13864 // gfloat component_r, component_g, component_b;
13866 // clutter_shader_effect_set_uniform (effect, "components",
13867 // G_TYPE_FLOAT, 3,
13868 // component_r,
13869 // component_g,
13870 // component_b);
13871 // ]|
13873 // or can be set using:
13875 // |[
13876 // gfloat component_vec[3];
13878 // clutter_shader_effect_set_uniform (effect, "components",
13879 // CLUTTER_TYPE_SHADER_FLOAT, 3,
13880 // component_vec);
13881 // ]|
13883 // Finally, a uniform named "map" and containing a matrix can be set using:
13885 // |[
13886 // clutter_shader_effect_set_uniform (effect, "map",
13887 // CLUTTER_TYPE_SHADER_MATRIX, 1,
13888 // cogl_matrix_get_array (&matrix));
13889 // ]|
13890 // <name>: the name of the uniform to set
13891 // <gtype>: the type of the uniform to set
13892 // <n_values>: the number of values
13893 /+ Not available -- variadic methods unsupported - use the C function directly.
13894 alias clutter_shader_effect_set_uniform set_uniform; // Variadic
13897 // Sets @value as the payload for the uniform @name inside the shader
13898 // effect
13900 // The #GType of the @value must be one of: %G_TYPE_INT, for a single
13901 // integer value; %G_TYPE_FLOAT, for a single floating point value;
13902 // %CLUTTER_TYPE_SHADER_INT, for an array of integer values;
13903 // %CLUTTER_TYPE_SHADER_FLOAT, for an array of floating point values;
13904 // and %CLUTTER_TYPE_SHADER_MATRIX, for a matrix of floating point
13905 // values. It also accepts %G_TYPE_DOUBLE for compatibility with other
13906 // languages than C.
13907 // <name>: the name of the uniform to set
13908 // <value>: a #GValue with the value of the uniform to set
13909 void set_uniform_value(char* name, GObject2.Value* value) {
13910 clutter_shader_effect_set_uniform_value(&this, name, value);
13915 // The <structname>ClutterShaderEffectClass</structname> structure contains
13916 // only private data
13917 struct ShaderEffectClass /* Version 1.4 */ {
13918 private OffscreenEffectClass parent_class;
13919 extern (C) void function () _clutter_shader1;
13920 extern (C) void function () _clutter_shader2;
13921 extern (C) void function () _clutter_shader3;
13922 extern (C) void function () _clutter_shader4;
13923 extern (C) void function () _clutter_shader5;
13924 extern (C) void function () _clutter_shader6;
13927 struct ShaderEffectPrivate {
13930 // #ClutterShader error enumeration
13931 enum ShaderError /* Version 0.6 */ {
13932 NO_ASM = 0,
13933 NO_GLSL = 1,
13934 COMPILE = 2
13936 struct ShaderFloat {
13939 struct ShaderInt {
13942 struct ShaderMatrix {
13945 struct ShaderPrivate {
13948 // The type of GLSL shader program
13949 enum ShaderType /* Version 1.4 */ {
13950 VERTEX_SHADER = 0,
13951 FRAGMENT_SHADER = 1
13953 enum int Shift_L = 65505;
13954 enum int Shift_Lock = 65510;
13955 enum int Shift_R = 65506;
13956 enum int Shop = 269025078;
13957 enum int SingleCandidate = 65340;
13958 enum int Sinh_a = 16780677;
13959 enum int Sinh_aa = 16780678;
13960 enum int Sinh_aa2 = 16780751;
13961 enum int Sinh_ae = 16780679;
13962 enum int Sinh_ae2 = 16780752;
13963 enum int Sinh_aee = 16780680;
13964 enum int Sinh_aee2 = 16780753;
13965 enum int Sinh_ai = 16780691;
13966 enum int Sinh_ai2 = 16780763;
13967 enum int Sinh_al = 16780746;
13968 enum int Sinh_au = 16780694;
13969 enum int Sinh_au2 = 16780766;
13970 enum int Sinh_ba = 16780726;
13971 enum int Sinh_bha = 16780727;
13972 enum int Sinh_ca = 16780704;
13973 enum int Sinh_cha = 16780705;
13974 enum int Sinh_dda = 16780713;
13975 enum int Sinh_ddha = 16780714;
13976 enum int Sinh_dha = 16780719;
13977 enum int Sinh_dhha = 16780720;
13978 enum int Sinh_e = 16780689;
13979 enum int Sinh_e2 = 16780761;
13980 enum int Sinh_ee = 16780690;
13981 enum int Sinh_ee2 = 16780762;
13982 enum int Sinh_fa = 16780742;
13983 enum int Sinh_ga = 16780700;
13984 enum int Sinh_gha = 16780701;
13985 enum int Sinh_h2 = 16780675;
13986 enum int Sinh_ha = 16780740;
13987 enum int Sinh_i = 16780681;
13988 enum int Sinh_i2 = 16780754;
13989 enum int Sinh_ii = 16780682;
13990 enum int Sinh_ii2 = 16780755;
13991 enum int Sinh_ja = 16780706;
13992 enum int Sinh_jha = 16780707;
13993 enum int Sinh_jnya = 16780709;
13994 enum int Sinh_ka = 16780698;
13995 enum int Sinh_kha = 16780699;
13996 enum int Sinh_kunddaliya = 16780788;
13997 enum int Sinh_la = 16780733;
13998 enum int Sinh_lla = 16780741;
13999 enum int Sinh_lu = 16780687;
14000 enum int Sinh_lu2 = 16780767;
14001 enum int Sinh_luu = 16780688;
14002 enum int Sinh_luu2 = 16780787;
14003 enum int Sinh_ma = 16780728;
14004 enum int Sinh_mba = 16780729;
14005 enum int Sinh_na = 16780721;
14006 enum int Sinh_ndda = 16780716;
14007 enum int Sinh_ndha = 16780723;
14008 enum int Sinh_ng = 16780674;
14009 enum int Sinh_ng2 = 16780702;
14010 enum int Sinh_nga = 16780703;
14011 enum int Sinh_nja = 16780710;
14012 enum int Sinh_nna = 16780715;
14013 enum int Sinh_nya = 16780708;
14014 enum int Sinh_o = 16780692;
14015 enum int Sinh_o2 = 16780764;
14016 enum int Sinh_oo = 16780693;
14017 enum int Sinh_oo2 = 16780765;
14018 enum int Sinh_pa = 16780724;
14019 enum int Sinh_pha = 16780725;
14020 enum int Sinh_ra = 16780731;
14021 enum int Sinh_ri = 16780685;
14022 enum int Sinh_rii = 16780686;
14023 enum int Sinh_ru2 = 16780760;
14024 enum int Sinh_ruu2 = 16780786;
14025 enum int Sinh_sa = 16780739;
14026 enum int Sinh_sha = 16780737;
14027 enum int Sinh_ssha = 16780738;
14028 enum int Sinh_tha = 16780717;
14029 enum int Sinh_thha = 16780718;
14030 enum int Sinh_tta = 16780711;
14031 enum int Sinh_ttha = 16780712;
14032 enum int Sinh_u = 16780683;
14033 enum int Sinh_u2 = 16780756;
14034 enum int Sinh_uu = 16780684;
14035 enum int Sinh_uu2 = 16780758;
14036 enum int Sinh_va = 16780736;
14037 enum int Sinh_ya = 16780730;
14038 enum int Sleep = 269025071;
14039 enum int SlowKeys_Enable = 65139;
14041 // <structname>ClutterSnapConstraint</structname> is an opaque structure
14042 // whose members cannot be directly accesses
14043 struct SnapConstraint /* : Constraint */ /* Version 1.6 */ {
14044 alias method_parent this;
14045 alias method_parent super_;
14046 alias method_parent constraint;
14047 Constraint method_parent;
14050 // Creates a new #ClutterSnapConstraint that will snap a #ClutterActor
14051 // to the @edge of @source, with the given @offset.
14052 // RETURNS: the newly created #ClutterSnapConstraint
14053 // <source>: the #ClutterActor to use as the source of the constraint, or %NULL
14054 // <from_edge>: the edge of the actor to use in the constraint
14055 // <to_edge>: the edge of @source to use in the constraint
14056 // <offset>: the offset to apply to the constraint, in pixels
14057 static SnapConstraint* new_(Actor* source, SnapEdge from_edge, SnapEdge to_edge, float offset) {
14058 return clutter_snap_constraint_new(source, from_edge, to_edge, offset);
14061 // Retrieves the edges used by the @constraint
14062 // <from_edge>: return location for the actor's edge, or %NULL
14063 // <to_edge>: return location for the source's edge, or %NULL
14064 void get_edges(/*out*/ SnapEdge* from_edge, /*out*/ SnapEdge* to_edge) {
14065 clutter_snap_constraint_get_edges(&this, from_edge, to_edge);
14068 // Retrieves the offset set using clutter_snap_constraint_set_offset()
14069 // RETURNS: the offset, in pixels
14070 float get_offset() {
14071 return clutter_snap_constraint_get_offset(&this);
14074 // Retrieves the #ClutterActor set using clutter_snap_constraint_set_source()
14075 // RETURNS: a pointer to the source actor
14076 Actor* get_source() {
14077 return clutter_snap_constraint_get_source(&this);
14080 // Sets the edges to be used by the @constraint
14082 // The @from_edge is the edge on the #ClutterActor to which @constraint
14083 // has been added. The @to_edge is the edge of the #ClutterActor inside
14084 // the #ClutterSnapConstraint:source property.
14085 // <from_edge>: the edge on the actor
14086 // <to_edge>: the edge on the source
14087 void set_edges(SnapEdge from_edge, SnapEdge to_edge) {
14088 clutter_snap_constraint_set_edges(&this, from_edge, to_edge);
14091 // Sets the offset to be applied to the constraint
14092 // <offset>: the offset to apply, in pixels
14093 void set_offset(float offset) {
14094 clutter_snap_constraint_set_offset(&this, offset);
14097 // Sets the source #ClutterActor for the constraint
14098 // <source>: a #ClutterActor, or %NULL to unset the source
14099 void set_source(Actor* source=null) {
14100 clutter_snap_constraint_set_source(&this, source);
14104 struct SnapConstraintClass {
14107 // The edge to snap
14108 enum SnapEdge /* Version 1.6 */ {
14109 TOP = 0,
14110 RIGHT = 1,
14111 BOTTOM = 2,
14112 LEFT = 3
14114 enum int Spell = 269025148;
14115 enum int SplitScreen = 269025149;
14117 // The #ClutterStage structure contains only private data
14118 // and should be accessed using the provided API
14119 struct Stage /* : Group */ /* Version 0.1 */ {
14120 alias parent_instance this;
14121 alias parent_instance super_;
14122 alias parent_instance group;
14123 Group parent_instance;
14124 private StagePrivate* priv;
14127 // Creates a new, non-default stage. A non-default stage is a new
14128 // top-level actor which can be used as another container. It works
14129 // exactly like the default stage, but while clutter_stage_get_default()
14130 // will always return the same instance, you will have to keep a pointer
14131 // to any #ClutterStage returned by clutter_stage_new().
14133 // The ability to support multiple stages depends on the current
14134 // backend. Use clutter_feature_available() and
14135 // %CLUTTER_FEATURE_STAGE_MULTIPLE to check at runtime whether a
14136 // backend supports multiple stages.
14138 // not support multiple stages. Use clutter_actor_destroy() to
14139 // programmatically close the returned stage.
14140 // RETURNS: a new stage, or %NULL if the default backend does
14141 static Stage* new_() {
14142 return clutter_stage_new();
14145 // Returns the main stage. The default #ClutterStage is a singleton,
14146 // so the stage will be created the first time this function is
14147 // called (typically, inside clutter_init()); all the subsequent
14148 // calls to clutter_stage_get_default() will return the same instance.
14150 // Clutter guarantess the existence of the default stage.
14152 // #ClutterStage. You should never destroy or unref the returned
14153 // actor.
14154 // RETURNS: the main
14155 static ClutterActor* get_default() {
14156 return clutter_stage_get_default();
14159 // This function essentially makes sure the right GL context is
14160 // current for the passed stage. It is not intended to
14161 // be used by applications.
14162 void ensure_current() {
14163 clutter_stage_ensure_current(&this);
14166 // Ensures that @stage is redrawn
14168 // This function should not be called by applications: it is
14169 // used when embedding a #ClutterStage into a toolkit with
14170 // another windowing system, like GTK+.
14171 void ensure_redraw() {
14172 clutter_stage_ensure_redraw(&this);
14175 // Ensures that the GL viewport is updated with the current
14176 // stage window size.
14178 // This function will queue a redraw of @stage.
14180 // This function should not be called by applications; it is used
14181 // when embedding a #ClutterStage into a toolkit with another
14182 // windowing system, like GTK+.
14183 void ensure_viewport() {
14184 clutter_stage_ensure_viewport(&this);
14187 // This function is used to emit an event on the main stage.
14189 // You should rarely need to use this function, except for
14190 // synthetised events.
14191 // RETURNS: the return value from the signal emission
14192 // <event>: a #ClutterEvent
14193 int event(Event* event) {
14194 return clutter_stage_event(&this, event);
14197 // Retrieves the value set with clutter_stage_set_accept_focus().
14199 // otherwise
14200 // RETURNS: %TRUE if the #ClutterStage should accept focus, and %FALSE
14201 int get_accept_focus() {
14202 return clutter_stage_get_accept_focus(&this);
14205 // Checks the scene at the coordinates @x and @y and returns a pointer
14206 // to the #ClutterActor at those coordinates.
14208 // By using @pick_mode it is possible to control which actors will be
14209 // painted and thus available.
14211 // if any
14212 // RETURNS: the actor at the specified coordinates,
14213 // <pick_mode>: how the scene graph should be painted
14214 // <x>: X coordinate to check
14215 // <y>: Y coordinate to check
14216 Actor* get_actor_at_pos(PickMode pick_mode, int x, int y) {
14217 return clutter_stage_get_actor_at_pos(&this, pick_mode, x, y);
14220 // Retrieves the stage color.
14221 // <color>: return location for a #ClutterColor
14222 void get_color(/*out*/ Color* color) {
14223 clutter_stage_get_color(&this, color);
14226 // Retrieves the current depth cueing settings from the stage.
14227 // <fog>: return location for a #ClutterFog structure
14228 void get_fog(/*out*/ Fog* fog) {
14229 clutter_stage_get_fog(&this, fog);
14232 // Retrieves whether the stage is full screen or not
14233 // RETURNS: %TRUE if the stage is full screen
14234 int get_fullscreen() {
14235 return clutter_stage_get_fullscreen(&this);
14238 // Retrieves the actor that is currently under key focus.
14239 // RETURNS: the actor with key focus, or the stage
14240 Actor* get_key_focus() {
14241 return clutter_stage_get_key_focus(&this);
14244 // Retrieves the minimum size for a stage window as set using
14245 // clutter_stage_set_minimum_size().
14247 // The returned size may not correspond to the actual minimum size and
14248 // it is specific to the #ClutterStage implementation inside the
14249 // Clutter backend
14250 // <width>: return location for the minimum width, in pixels, or %NULL
14251 // <height>: return location for the minimum height, in pixels, or %NULL
14252 void get_minimum_size(/*out*/ uint* width, /*out*/ uint* height) {
14253 clutter_stage_get_minimum_size(&this, width, height);
14256 // Retrieves the value set using clutter_stage_set_motion_events_enabled().
14258 // and %FALSE otherwise
14259 // RETURNS: %TRUE if the per-actor motion event delivery is enabled
14260 int get_motion_events_enabled() {
14261 return clutter_stage_get_motion_events_enabled(&this);
14264 // Retrieves the hint set with clutter_stage_set_no_clear_hint()
14266 // cycle, and %FALSE otherwise
14267 // RETURNS: %TRUE if the stage should not clear itself on every paint
14268 int get_no_clear_hint() {
14269 return clutter_stage_get_no_clear_hint(&this);
14272 // Retrieves the stage perspective.
14273 // <perspective>: return location for a #ClutterPerspective
14274 void get_perspective(/*out*/ Perspective* perspective=null) {
14275 clutter_stage_get_perspective(&this, perspective);
14278 // Gets the bounds of the current redraw for @stage in stage pixel
14279 // coordinates. E.g., if only a single actor has queued a redraw then
14280 // Clutter may redraw the stage with a clip so that it doesn't have to
14281 // paint every pixel in the stage. This function would then return the
14282 // bounds of that clip. An application can use this information to
14283 // avoid some extra work if it knows that some regions of the stage
14284 // aren't going to be painted. This should only be called while the
14285 // stage is being painted. If there is no current redraw clip then
14286 // this function will set @clip to the full extents of the stage.
14287 // <clip>: Return location for the clip bounds
14288 void get_redraw_clip_bounds(/*out*/ cairo.RectangleInt* clip) {
14289 clutter_stage_get_redraw_clip_bounds(&this, clip);
14292 // Retrieves the value set with clutter_stage_set_throttle_motion_events()
14294 // and %FALSE otherwise
14295 // RETURNS: %TRUE if the motion events are being throttled,
14296 int get_throttle_motion_events() {
14297 return clutter_stage_get_throttle_motion_events(&this);
14300 // Gets the stage title.
14302 // returned string is owned by the actor and should not
14303 // be modified or freed.
14304 // RETURNS: pointer to the title string for the stage. The
14305 char* get_title() {
14306 return clutter_stage_get_title(&this);
14309 // Retrieves the value set using clutter_stage_set_use_alpha()
14311 // alpha channel of the stage color
14312 // RETURNS: %TRUE if the stage should honour the opacity and the
14313 int get_use_alpha() {
14314 return clutter_stage_get_use_alpha(&this);
14317 // Gets whether the depth cueing effect is enabled on @stage.
14318 // RETURNS: %TRUE if the depth cueing effect is enabled
14319 int get_use_fog() {
14320 return clutter_stage_get_use_fog(&this);
14323 // Retrieves the value set with clutter_stage_set_user_resizable().
14324 // RETURNS: %TRUE if the stage is resizable by the user.
14325 int get_user_resizable() {
14326 return clutter_stage_get_user_resizable(&this);
14328 // Makes the cursor invisible on the stage window
14329 void hide_cursor() {
14330 clutter_stage_hide_cursor(&this);
14333 // Checks if @stage is the default stage, or an instance created using
14334 // clutter_stage_new() but internally using the same implementation.
14335 // RETURNS: %TRUE if the passed stage is the default one
14336 int is_default() {
14337 return clutter_stage_is_default(&this);
14340 // Queues a redraw for the passed stage.
14342 // <note>Applications should call clutter_actor_queue_redraw() and not
14343 // this function.</note>
14345 // <note>This function is just a wrapper for clutter_actor_queue_redraw()
14346 // and should probably go away.</note>
14347 void queue_redraw() {
14348 clutter_stage_queue_redraw(&this);
14351 // Makes a screenshot of the stage in RGBA 8bit data, returns a
14352 // linear buffer with @width * 4 as rowstride.
14354 // The alpha data contained in the returned buffer is driver-dependent,
14355 // and not guaranteed to hold any sensible value.
14357 // or %NULL if the read failed. Use g_free() on the returned data
14358 // to release the resources it has allocated.
14359 // RETURNS: a pointer to newly allocated memory with the buffer
14360 // <x>: x coordinate of the first pixel that is read from stage
14361 // <y>: y coordinate of the first pixel that is read from stage
14362 // <width>: Width dimention of pixels to be read, or -1 for the entire stage width
14363 // <height>: Height dimention of pixels to be read, or -1 for the entire stage height
14364 ubyte* read_pixels(int x, int y, int width, int height) {
14365 return clutter_stage_read_pixels(&this, x, y, width, height);
14368 // Sets whether the @stage should accept the key focus when shown.
14370 // This function should be called before showing @stage using
14371 // clutter_actor_show().
14372 // <accept_focus>: %TRUE to accept focus on show
14373 void set_accept_focus(int accept_focus) {
14374 clutter_stage_set_accept_focus(&this, accept_focus);
14377 // Sets the stage color.
14378 // <color>: A #ClutterColor
14379 void set_color(Color* color) {
14380 clutter_stage_set_color(&this, color);
14383 // Sets the fog (also known as "depth cueing") settings for the @stage.
14385 // A #ClutterStage will only use a linear fog progression, which
14386 // depends solely on the distance from the viewer. The cogl_set_fog()
14387 // function in COGL exposes more of the underlying implementation,
14388 // and allows changing the for progression function. It can be directly
14389 // used by disabling the #ClutterStage:use-fog property and connecting
14390 // a signal handler to the #ClutterActor::paint signal on the @stage,
14391 // like:
14393 // |[
14394 // clutter_stage_set_use_fog (stage, FALSE);
14395 // g_signal_connect (stage, "paint", G_CALLBACK (on_stage_paint), NULL);
14396 // ]|
14398 // The paint signal handler will call cogl_set_fog() with the
14399 // desired settings:
14401 // |[
14402 // static void
14403 // on_stage_paint (ClutterActor *actor)
14404 // {
14405 // ClutterColor stage_color = { 0, };
14406 // CoglColor fog_color = { 0, };
14408 // /&ast; set the fog color to the stage background color &ast;/
14409 // clutter_stage_get_color (CLUTTER_STAGE (actor), &amp;stage_color);
14410 // cogl_color_init_from_4ub (&amp;fog_color,
14411 // stage_color.red,
14412 // stage_color.green,
14413 // stage_color.blue,
14414 // stage_color.alpha);
14416 // /&ast; enable fog &ast;/
14417 // cogl_set_fog (&amp;fog_color,
14418 // COGL_FOG_MODE_EXPONENTIAL, /&ast; mode &ast;/
14419 // 0.5, /&ast; density &ast;/
14420 // 5.0, 30.0); /&ast; z_near and z_far &ast;/
14421 // }
14422 // ]|
14424 // <note>The fogging functions only work correctly when the visible actors use
14425 // unmultiplied alpha colors. By default Cogl will premultiply textures and
14426 // cogl_set_source_color() will premultiply colors, so unless you explicitly
14427 // load your textures requesting an unmultiplied internal format and use
14428 // cogl_material_set_color() you can only use fogging with fully opaque actors.
14429 // Support for premultiplied colors will improve in the future when we can
14430 // depend on fragment shaders.</note>
14431 // <fog>: a #ClutterFog structure
14432 void set_fog(Fog* fog) {
14433 clutter_stage_set_fog(&this, fog);
14436 // Asks to place the stage window in the fullscreen or unfullscreen
14437 // states.
14439 // afterward, because other entities (e.g. the user or window manager)
14440 // could unfullscreen it again, and not all window managers honor
14441 // requests to fullscreen windows.
14443 // If you want to receive notification of the fullscreen state you
14444 // should either use the #ClutterStage::fullscreen and
14445 // #ClutterStage::unfullscreen signals, or use the notify signal
14446 // for the #ClutterStage:fullscreen-set property
14447 // <fullscreen>: %TRUE to to set the stage fullscreen
14448 void set_fullscreen(int fullscreen) {
14449 clutter_stage_set_fullscreen(&this, fullscreen);
14452 // Sets the key focus on @actor. An actor with key focus will receive
14453 // all the key events. If @actor is %NULL, the stage will receive
14454 // focus.
14455 // <actor>: the actor to set key focus to, or %NULL
14456 void set_key_focus(Actor* actor=null) {
14457 clutter_stage_set_key_focus(&this, actor);
14460 // Sets the minimum size for a stage window, if the default backend
14461 // uses #ClutterStage inside a window
14463 // This is a convenience function, and it is equivalent to setting the
14464 // #ClutterActor:min-width and #ClutterActor:min-height on @stage
14466 // If the current size of @stage is smaller than the minimum size, the
14467 // @stage will be resized to the new @width and @height
14469 // This function has no effect if @stage is fullscreen
14470 // <width>: width, in pixels
14471 // <height>: height, in pixels
14472 void set_minimum_size(uint width, uint height) {
14473 clutter_stage_set_minimum_size(&this, width, height);
14476 // Sets whether per-actor motion events (and relative crossing
14477 // events) should be disabled or not.
14479 // The default is %TRUE.
14481 // If @enable is %FALSE the following events will not be delivered
14482 // to the actors children of @stage.
14484 // <itemizedlist>
14485 // <listitem><para>#ClutterActor::motion-event</para></listitem>
14486 // <listitem><para>#ClutterActor::enter-event</para></listitem>
14487 // <listitem><para>#ClutterActor::leave-event</para></listitem>
14488 // </itemizedlist>
14490 // The events will still be delivered to the #ClutterStage.
14492 // The main side effect of this function is that disabling the motion
14493 // events will disable picking to detect the #ClutterActor underneath
14494 // the pointer for each motion event. This is useful, for instance,
14495 // when dragging a #ClutterActor across the @stage: the actor underneath
14496 // the pointer is not going to change, so it's meaningless to perform
14497 // a pick.
14498 // <enabled>: %TRUE to enable the motion events delivery, and %FALSE otherwise
14499 void set_motion_events_enabled(int enabled) {
14500 clutter_stage_set_motion_events_enabled(&this, enabled);
14503 // Sets whether the @stage should clear itself at the beginning
14504 // of each paint cycle or not.
14506 // Clearing the #ClutterStage can be a costly operation, especially
14507 // if the stage is always covered - for instance, in a full-screen
14508 // video player or in a game with a background texture.
14510 // <note><para>This setting is a hint; Clutter might discard this
14511 // hint depending on its internal state.</para></note>
14513 // <warning><para>If parts of the stage are visible and you disable
14514 // clearing you might end up with visual artifacts while painting the
14515 // contents of the stage.</para></warning>
14516 // <no_clear>: %TRUE if the @stage should not clear itself on every repaint cycle
14517 void set_no_clear_hint(int no_clear) {
14518 clutter_stage_set_no_clear_hint(&this, no_clear);
14521 // Sets the stage perspective. Using this function is not recommended
14522 // because it will disable Clutter's attempts to generate an
14523 // appropriate perspective based on the size of the stage.
14524 // <perspective>: A #ClutterPerspective
14525 void set_perspective(Perspective* perspective) {
14526 clutter_stage_set_perspective(&this, perspective);
14529 // Sets whether motion events received between redraws should
14530 // be throttled or not. If motion events are throttled, those
14531 // events received by the windowing system between redraws will
14532 // be compressed so that only the last event will be propagated
14533 // to the @stage and its actors.
14535 // This function should only be used if you want to have all
14536 // the motion events delivered to your application code.
14537 // <throttle>: %TRUE to throttle motion events
14538 void set_throttle_motion_events(int throttle) {
14539 clutter_stage_set_throttle_motion_events(&this, throttle);
14542 // Sets the stage title.
14543 // <title>: A utf8 string for the stage windows title.
14544 void set_title(char* title) {
14545 clutter_stage_set_title(&this, title);
14548 // Sets whether the @stage should honour the #ClutterActor:opacity and
14549 // the alpha channel of the #ClutterStage:color
14550 // <use_alpha>: whether the stage should honour the opacity or the alpha channel of the stage color
14551 void set_use_alpha(int use_alpha) {
14552 clutter_stage_set_use_alpha(&this, use_alpha);
14555 // Sets whether the depth cueing effect on the stage should be enabled
14556 // or not.
14558 // Depth cueing is a 3D effect that makes actors farther away from the
14559 // viewing point less opaque, by fading them with the stage color.
14560 // The parameters of the GL fog used can be changed using the
14561 // clutter_stage_set_fog() function.
14562 // <fog>: %TRUE for enabling the depth cueing effect
14563 void set_use_fog(int fog) {
14564 clutter_stage_set_use_fog(&this, fog);
14567 // Sets if the stage is resizable by user interaction (e.g. via
14568 // window manager controls)
14569 // <resizable>: whether the stage should be user resizable.
14570 void set_user_resizable(int resizable) {
14571 clutter_stage_set_user_resizable(&this, resizable);
14573 // Shows the cursor on the stage window
14574 void show_cursor() {
14575 clutter_stage_show_cursor(&this);
14578 // The ::activate signal is emitted when the stage receives key focus
14579 // from the underlying window system.
14580 extern (C) alias static void function (Stage* this_, void* user_data=null) signal_activate;
14582 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
14583 return super_.signal_connect!name(cb, data, cf);
14586 ulong signal_connect(string name:"activate", CB:signal_activate)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
14587 return signal_connect_data(&this, cast(char*)"activate",
14588 cast(GObject2.Callback)cb, data, null, cf);
14591 // The ::activate signal is emitted when the stage loses key focus
14592 // from the underlying window system.
14593 extern (C) alias static void function (Stage* this_, void* user_data=null) signal_deactivate;
14594 ulong signal_connect(string name:"deactivate", CB:signal_deactivate)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
14595 return signal_connect_data(&this, cast(char*)"deactivate",
14596 cast(GObject2.Callback)cb, data, null, cf);
14599 // The ::delete-event signal is emitted when the user closes a
14600 // #ClutterStage window using the window controls.
14602 // Clutter by default will call clutter_main_quit() if @stage is
14603 // the default stage, and clutter_actor_destroy() for any other
14604 // stage.
14606 // It is possible to override the default behaviour by connecting
14607 // a new handler and returning %TRUE there.
14609 // <note>This signal is emitted only on Clutter backends that
14610 // embed #ClutterStage in native windows. It is not emitted for
14611 // backends that use a static frame buffer.</note>
14612 // <event>: a #ClutterEvent of type %CLUTTER_DELETE
14613 extern (C) alias static c_int function (Stage* this_, Event* event, void* user_data=null) signal_delete_event;
14614 ulong signal_connect(string name:"delete-event", CB:signal_delete_event)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
14615 return signal_connect_data(&this, cast(char*)"delete-event",
14616 cast(GObject2.Callback)cb, data, null, cf);
14618 // The ::fullscreen signal is emitted when the stage is made fullscreen.
14619 extern (C) alias static void function (Stage* this_, void* user_data=null) signal_fullscreen;
14620 ulong signal_connect(string name:"fullscreen", CB:signal_fullscreen)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
14621 return signal_connect_data(&this, cast(char*)"fullscreen",
14622 cast(GObject2.Callback)cb, data, null, cf);
14625 // The ::unfullscreen signal is emitted when the stage leaves a fullscreen
14626 // state.
14627 extern (C) alias static void function (Stage* this_, void* user_data=null) signal_unfullscreen;
14628 ulong signal_connect(string name:"unfullscreen", CB:signal_unfullscreen)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
14629 return signal_connect_data(&this, cast(char*)"unfullscreen",
14630 cast(GObject2.Callback)cb, data, null, cf);
14634 // The #ClutterStageClass structure contains only private data
14635 struct StageClass /* Version 0.1 */ {
14636 private GroupClass parent_class;
14637 extern (C) void function (Stage* stage) fullscreen;
14638 extern (C) void function (Stage* stage) unfullscreen;
14639 extern (C) void function (Stage* stage) activate;
14640 extern (C) void function (Stage* stage) deactivate;
14641 extern (C) int function (Stage* stage, Event* event) delete_event;
14642 private void*[31] _padding_dummy;
14645 // The #ClutterStageManager structure is private.
14646 struct StageManager /* : GObject.Object */ /* Version 1.0 */ {
14647 alias method_parent this;
14648 alias method_parent super_;
14649 alias method_parent object;
14650 GObject2.Object method_parent;
14653 // Returns the default #ClutterStageManager.
14655 // object is owned by Clutter and you should not reference or unreference it.
14656 // RETURNS: the default stage manager instance. The returned
14657 static StageManager* get_default() {
14658 return clutter_stage_manager_get_default();
14661 // Returns the default #ClutterStage.
14663 // is owned by Clutter and you should never reference or unreference it
14664 // RETURNS: the default stage. The returned object
14665 Stage* get_default_stage() {
14666 return clutter_stage_manager_get_default_stage(&this);
14669 // Lists all currently used stages.
14671 // allocated list of #ClutterStage objects. Use g_slist_free() to
14672 // deallocate it when done.
14673 // RETURNS: a newly
14674 GLib2.SList* /*new container*/ list_stages() {
14675 return clutter_stage_manager_list_stages(&this);
14678 // Lists all currently used stages.
14680 // to the internal list of #ClutterStage objects. The returned list
14681 // is owned by the #ClutterStageManager and should never be modified
14682 // or freed
14683 // RETURNS: a pointer
14684 GLib2.SList* peek_stages() {
14685 return clutter_stage_manager_peek_stages(&this);
14688 // Sets @stage as the default stage.
14689 // <stage>: a #ClutterStage
14690 void set_default_stage(Stage* stage) {
14691 clutter_stage_manager_set_default_stage(&this, stage);
14694 // The ::stage-added signal is emitted each time a new #ClutterStage
14695 // has been added to the stage manager.
14696 // <stage>: the added stage
14697 extern (C) alias static void function (StageManager* this_, Stage* stage, void* user_data=null) signal_stage_added;
14699 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
14700 return super_.signal_connect!name(cb, data, cf);
14703 ulong signal_connect(string name:"stage-added", CB:signal_stage_added)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
14704 return signal_connect_data(&this, cast(char*)"stage-added",
14705 cast(GObject2.Callback)cb, data, null, cf);
14708 // The ::stage-removed signal is emitted each time a #ClutterStage
14709 // has been removed from the stage manager.
14710 // <stage>: the removed stage
14711 extern (C) alias static void function (StageManager* this_, Stage* stage, void* user_data=null) signal_stage_removed;
14712 ulong signal_connect(string name:"stage-removed", CB:signal_stage_removed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
14713 return signal_connect_data(&this, cast(char*)"stage-removed",
14714 cast(GObject2.Callback)cb, data, null, cf);
14719 // The #ClutterStageManagerClass structure contains only private data
14720 // and should be accessed using the provided API
14721 struct StageManagerClass /* Version 1.0 */ {
14722 private GObject2.ObjectClass parent_class;
14723 extern (C) void function (StageManager* stage_manager, Stage* stage) stage_added;
14724 extern (C) void function (StageManager* stage_manager, Stage* stage) stage_removed;
14727 struct StagePrivate {
14730 // Stage state masks
14731 enum StageState /* Version 0.4 */ {
14732 FULLSCREEN = 2,
14733 OFFSCREEN = 4,
14734 ACTIVATED = 8
14736 // Event signalling a change in the #ClutterStage state.
14737 struct StageStateEvent /* Version 0.2 */ {
14738 EventType type;
14739 uint time;
14740 EventFlags flags;
14741 Stage* stage;
14742 Actor* source;
14743 StageState changed_mask, new_state;
14747 // <structname>ClutterStageWindow</structname> is an opaque structure
14748 // whose members should not be accessed directly
14749 struct StageWindow /* Version 0.8 */ {
14752 // The interface implemented by backends for stage windows
14753 struct StageWindowIface /* Version 0.8 */ {
14754 private GObject2.TypeInterface parent_iface;
14755 // Unintrospectable functionp: get_wrapper() / ()
14756 extern (C) Actor* function (StageWindow* stage_window) get_wrapper;
14757 // Unintrospectable functionp: set_title() / ()
14758 extern (C) void function (StageWindow* stage_window, char* title) set_title;
14759 // Unintrospectable functionp: set_fullscreen() / ()
14760 extern (C) void function (StageWindow* stage_window, int is_fullscreen) set_fullscreen;
14761 // Unintrospectable functionp: set_cursor_visible() / ()
14762 extern (C) void function (StageWindow* stage_window, int cursor_visible) set_cursor_visible;
14763 // Unintrospectable functionp: set_user_resizable() / ()
14764 extern (C) void function (StageWindow* stage_window, int is_resizable) set_user_resizable;
14765 // Unintrospectable functionp: realize() / ()
14766 extern (C) int function (StageWindow* stage_window) realize;
14767 // Unintrospectable functionp: unrealize() / ()
14768 extern (C) void function (StageWindow* stage_window) unrealize;
14769 // Unintrospectable functionp: show() / ()
14770 extern (C) void function (StageWindow* stage_window, int do_raise) show;
14771 // Unintrospectable functionp: hide() / ()
14772 extern (C) void function (StageWindow* stage_window) hide;
14773 // Unintrospectable functionp: resize() / ()
14774 extern (C) void function (StageWindow* stage_window, int width, int height) resize;
14775 // Unintrospectable functionp: get_geometry() / ()
14776 extern (C) void function (StageWindow* stage_window, Geometry* geometry) get_geometry;
14777 // Unintrospectable functionp: get_pending_swaps() / ()
14778 extern (C) int function (StageWindow* stage_window) get_pending_swaps;
14779 // Unintrospectable functionp: add_redraw_clip() / ()
14780 extern (C) void function (StageWindow* stage_window, Geometry* stage_rectangle) add_redraw_clip;
14781 // Unintrospectable functionp: has_redraw_clips() / ()
14782 extern (C) int function (StageWindow* stage_window) has_redraw_clips;
14783 // Unintrospectable functionp: ignoring_redraw_clips() / ()
14784 extern (C) int function (StageWindow* stage_window) ignoring_redraw_clips;
14785 // Unintrospectable functionp: get_redraw_clip_bounds() / ()
14786 extern (C) int function (StageWindow* stage_window, cairo.RectangleInt* clip) get_redraw_clip_bounds;
14787 // Unintrospectable functionp: set_accept_focus() / ()
14788 extern (C) void function (StageWindow* stage_window, int accept_focus) set_accept_focus;
14789 // Unintrospectable functionp: redraw() / ()
14790 extern (C) void function (StageWindow* stage_window) redraw;
14791 // Unintrospectable functionp: get_active_framebuffer() / ()
14792 extern (C) Cogl.Framebuffer* function (StageWindow* stage_window) get_active_framebuffer;
14795 enum int Standby = 269025040;
14796 enum int Start = 269025050;
14798 // The <structname>ClutterState</structname> structure contains only
14799 // private data and should be accessed using the provided API
14800 struct State /* : GObject.Object */ /* Version 1.4 */ {
14801 alias parent this;
14802 alias parent super_;
14803 alias parent object;
14804 GObject2.Object parent;
14805 private StatePrivate* priv;
14808 // Creates a new #ClutterState
14809 // RETURNS: the newly create #ClutterState instance
14810 static State* /*new*/ new_() {
14811 return clutter_state_new();
14814 // Retrieves the #ClutterAnimator that is being used for transitioning
14815 // between the two states, if any has been set
14816 // RETURNS: a #ClutterAnimator instance, or %NULL
14817 // <source_state_name>: the name of a source state
14818 // <target_state_name>: the name of a target state
14819 Animator* get_animator(char* source_state_name, char* target_state_name) {
14820 return clutter_state_get_animator(&this, source_state_name, target_state_name);
14823 // Queries the duration used for transitions between a source and
14824 // target state pair
14826 // The semantics for the query are the same as the semantics used for
14827 // setting the duration with clutter_state_set_duration()
14828 // RETURNS: the duration, in milliseconds
14829 // <source_state_name>: the name of the source state to get the duration of, or %NULL
14830 // <target_state_name>: the name of the source state to get the duration of, or %NULL
14831 uint get_duration(char* source_state_name=null, char* target_state_name=null) {
14832 return clutter_state_get_duration(&this, source_state_name, target_state_name);
14835 // Returns a list of pointers to opaque structures with accessor functions
14836 // that describe the keys added to an animator.
14838 // newly allocated #GList of #ClutterStateKey<!-- -->s. The contents of
14839 // the returned list are owned by the #ClutterState and should not be
14840 // modified or freed. Use g_list_free() to free the resources allocated
14841 // by the returned list when done using it
14842 // RETURNS: a
14843 // <source_state_name>: the source transition name to query, or %NULL for all source states
14844 // <target_state_name>: the target transition name to query, or %NULL for all target states
14845 // <object>: the specific object instance to list keys for, or %NULL for all managed objects
14846 // <property_name>: the property name to search for, or %NULL for all properties.
14847 GLib2.List* /*new container*/ get_keys(char* source_state_name=null, char* target_state_name=null, GObject2.Object* object=null, char* property_name=null) {
14848 return clutter_state_get_keys(&this, source_state_name, target_state_name, object, property_name);
14851 // Queries the currently set target state.
14853 // During a transition this function will return the target of the transition.
14855 // This function is useful when called from handlers of the
14856 // #ClutterState::completed signal.
14858 // is owned by the #ClutterState and should not be modified or freed
14859 // RETURNS: a string containing the target state. The returned string
14860 char* get_state() {
14861 return clutter_state_get_state(&this);
14864 // Gets a list of all the state names managed by this #ClutterState.
14866 // #GList of state names. The contents of the returned #GList are owned
14867 // by the #ClutterState and should not be modified or freed. Use
14868 // g_list_free() to free the resources allocated by the returned list when
14869 // done using it
14870 // RETURNS: a newly allocated
14871 GLib2.List* /*new container*/ get_states() {
14872 return clutter_state_get_states(&this);
14875 // Gets the timeline driving the #ClutterState
14877 // the state change animations. The returned timeline is owned
14878 // by the #ClutterState and it should not be unreferenced directly
14879 // RETURNS: the #ClutterTimeline that drives
14880 Timeline* get_timeline() {
14881 return clutter_state_get_timeline(&this);
14884 // Removes all keys matching the search criteria passed in arguments.
14885 // <source_state_name>: the source state name to query, or %NULL for all source states
14886 // <target_state_name>: the target state name to query, or %NULL for all target states
14887 // <object>: the specific object instance to list keys for, or %NULL for all managed objects
14888 // <property_name>: the property name to search for, or %NULL for all properties.
14889 void remove_key(char* source_state_name=null, char* target_state_name=null, GObject2.Object* object=null, char* property_name=null) {
14890 clutter_state_remove_key(&this, source_state_name, target_state_name, object, property_name);
14893 // Unintrospectable method: set() / clutter_state_set()
14894 // Adds multiple keys to a named state of a #ClutterState instance, specifying
14895 // the easing mode and value a given property of an object should have at a
14896 // given progress of the animation.
14898 // The mode specified is the easing mode used when going to from the previous
14899 // key to the specified key.
14901 // For instance, the code below:
14903 // |[
14904 // clutter_state_set (state, NULL, "hover",
14905 // button, "opacity", CLUTTER_LINEAR, 255,
14906 // button, "scale-x", CLUTTER_EASE_OUT_CUBIC, 1.2,
14907 // button, "scale-y", CLUTTER_EASE_OUT_CUBIC, 1.2,
14908 // NULL);
14909 // ]|
14911 // will create a transition from any state (a @source_state_name or NULL is
14912 // treated as a wildcard) and a state named "hover"; the
14913 // <emphasis>button</emphasis> object will have the #ClutterActor:opacity
14914 // property animated to a value of 255 using %CLUTTER_LINEAR as the animation
14915 // mode, and the #ClutterActor:scale-x and #ClutterActor:scale-y properties
14916 // animated to a value of 1.2 using %CLUTTER_EASE_OUT_CUBIC as the animation
14917 // mode. To change the state (and start the transition) you can use the
14918 // clutter_state_set_state() function:
14920 // |[
14921 // clutter_state_set_state (state, "hover");
14922 // ]|
14924 // If a given object, state_name, property tuple already exist in the
14925 // #ClutterState instance, then the mode and value will be replaced with
14926 // the new specified values.
14928 // If a property name is prefixed with "delayed::" two additional
14929 // arguments per key are expected: a value relative to the full state time
14930 // to pause before transitioning and a similar value to pause after
14931 // transitioning, e.g.:
14933 // |[
14934 // clutter_state_set (state, "hover", "toggled",
14935 // button, "delayed::scale-x", CLUTTER_LINEAR, 1.0, 0.2, 0.2,
14936 // button, "delayed::scale-y", CLUTTER_LINEAR, 1.0, 0.2, 0.2,
14937 // NULL);
14938 // ]|
14940 // will pause for 20% of the duration of the transition before animating,
14941 // and 20% of the duration after animating.
14942 // <source_state_name>: the name of the source state keys are being added for
14943 // <target_state_name>: the name of the target state keys are being added for
14944 // <first_object>: a #GObject
14945 // <first_property_name>: a property of @first_object to specify a key for
14946 // <first_mode>: the id of the alpha function to use
14947 /+ Not available -- variadic methods unsupported - use the C function directly.
14948 alias clutter_state_set set; // Variadic
14951 // Specifies a #ClutterAnimator to be used when transitioning between
14952 // the two named states.
14954 // The @animator allows specifying a transition between the state that is
14955 // more elaborate than the basic transitions allowed by the tweening of
14956 // properties defined in the #ClutterState keys.
14958 // If @animator is %NULL it will unset an existing animator.
14960 // #ClutterState will take a reference on the passed @animator, if any
14961 // <source_state_name>: the name of a source state
14962 // <target_state_name>: the name of a target state
14963 // <animator>: a #ClutterAnimator instance, or %NULL to unset an existing #ClutterAnimator
14964 void set_animator(char* source_state_name, char* target_state_name, Animator* animator=null) {
14965 clutter_state_set_animator(&this, source_state_name, target_state_name, animator);
14968 // Sets the duration of a transition.
14970 // If both state names are %NULL the default duration for @state is set.
14972 // If only @target_state_name is specified, the passed @duration becomes
14973 // the default duration for transitions to the target state.
14975 // If both states names are specified, the passed @duration only applies
14976 // to the specified transition.
14977 // <source_state_name>: the name of the source state, or %NULL
14978 // <target_state_name>: the name of the target state, or %NULL
14979 // <duration>: the duration of the transition, in milliseconds
14980 void set_duration(char* source_state_name, char* target_state_name, uint duration) {
14981 clutter_state_set_duration(&this, source_state_name, target_state_name, duration);
14984 // Sets one specific end key for a state name, @object, @property_name
14985 // combination.
14987 // chaining of multiple calls
14988 // RETURNS: the #ClutterState instance, allowing
14989 // <source_state_name>: the source transition to specify transition for, or %NULL to specify the default fallback when a more specific source state doesn't exist.
14990 // <target_state_name>: the name of the transition to set a key value for.
14991 // <object>: the #GObject to set a key for
14992 // <property_name>: the property to set a key for
14993 // <mode>: the id of the alpha function to use
14994 // <value>: the value for property_name of object in state_name
14995 // <pre_delay>: relative time of the transition to be idle in the beginning of the transition
14996 // <post_delay>: relative time of the transition to be idle in the end of the transition
14997 State* set_key(char* source_state_name, char* target_state_name, GObject2.Object* object, char* property_name, uint mode, GObject2.Value* value, double pre_delay, double post_delay) {
14998 return clutter_state_set_key(&this, source_state_name, target_state_name, object, property_name, mode, value, pre_delay, post_delay);
15001 // Change the current state of #ClutterState to @target_state_name.
15003 // The state will animate during its transition, see
15004 // #clutter_state_warp_to_state for animation-free state switching.
15006 // Setting a %NULL state will stop the current animation and unset
15007 // the current state, but keys will be left intact.
15009 // state transition. The returned timeline is owned by the #ClutterState
15010 // and it should not be unreferenced
15011 // RETURNS: the #ClutterTimeline that drives the
15012 // <target_state_name>: the state to transition to
15013 Timeline* set_state(char* target_state_name) {
15014 return clutter_state_set_state(&this, target_state_name);
15017 // Change to the specified target state immediately with no animation.
15019 // See clutter_state_set_state().
15021 // state transition. The returned timeline is owned by the #ClutterState
15022 // and it should not be unreferenced
15023 // RETURNS: the #ClutterTimeline that drives the
15024 // <target_state_name>: the state to transition to
15025 Timeline* warp_to_state(char* target_state_name) {
15026 return clutter_state_warp_to_state(&this, target_state_name);
15029 // The ::completed signal is emitted when a #ClutterState reaches
15030 // the target state specified by clutter_state_set_state() or
15031 // clutter_state_warp_to_state().
15032 extern (C) alias static void function (State* this_, void* user_data=null) signal_completed;
15034 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
15035 return super_.signal_connect!name(cb, data, cf);
15038 ulong signal_connect(string name:"completed", CB:signal_completed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
15039 return signal_connect_data(&this, cast(char*)"completed",
15040 cast(GObject2.Callback)cb, data, null, cf);
15045 // The <structname>ClutterStateClass</structname> structure contains
15046 // only private data
15047 struct StateClass /* Version 1.4 */ {
15048 private GObject2.ObjectClass parent_class;
15049 extern (C) void function (State* state) completed;
15050 private void*[8] _padding_dummy;
15054 // <structname>ClutterStateKey</structname> is an opaque structure whose
15055 // members cannot be accessed directly
15056 struct StateKey /* Version 1.4 */ {
15058 // Retrieves the easing mode used for @state_key.
15059 // RETURNS: the mode of a #ClutterStateKey
15060 c_ulong get_mode() {
15061 return clutter_state_key_get_mode(&this);
15064 // Retrieves the object instance this #ClutterStateKey applies to.
15065 // RETURNS: the object this state key applies to.
15066 GObject2.Object* get_object() {
15067 return clutter_state_key_get_object(&this);
15070 // Retrieves the duration of the pause after transitioning is complete
15071 // as a fraction of the total transition time.
15072 // RETURNS: the post delay, used after doing the transition.
15073 double get_post_delay() {
15074 return clutter_state_key_get_post_delay(&this);
15077 // Retrieves the pause before transitioning starts as a fraction of
15078 // the total transition time.
15079 // RETURNS: the pre delay used before starting the transition.
15080 double get_pre_delay() {
15081 return clutter_state_key_get_pre_delay(&this);
15084 // Retrieves the name of the property this #ClutterStateKey applies to
15086 // by the #ClutterStateKey and should never be modified or freed
15087 // RETURNS: the name of the property. The returned string is owned
15088 char* get_property_name() {
15089 return clutter_state_key_get_property_name(&this);
15092 // Retrieves the #GType of the property a key applies to
15094 // You can use this type to initialize the #GValue to pass to
15095 // clutter_state_key_get_value()
15096 // RETURNS: the #GType of the property
15097 Type get_property_type() {
15098 return clutter_state_key_get_property_type(&this);
15101 // Retrieves the name of the source state of the @state_key
15103 // if this is the generic state key for the given property when
15104 // transitioning to the target state. The returned string is owned
15105 // by the #ClutterStateKey and should never be modified or freed
15106 // RETURNS: the name of the source state for this key, or %NULL
15107 char* get_source_state_name() {
15108 return clutter_state_key_get_source_state_name(&this);
15111 // Get the name of the source state this #ClutterStateKey contains,
15112 // or NULL if this is the generic state key for the given property
15113 // when transitioning to the target state.
15115 // the key is generic
15116 // RETURNS: the name of the source state for this key, or NULL if
15117 char* get_target_state_name() {
15118 return clutter_state_key_get_target_state_name(&this);
15121 // Retrieves a copy of the value for a #ClutterStateKey.
15123 // The #GValue needs to be already initialized for the value type
15124 // of the property or to a type that allow transformation from the value
15125 // type of the key.
15127 // Use g_value_unset() when done.
15129 // and %FALSE otherwise
15130 // RETURNS: %TRUE if the value was successfully retrieved,
15131 // <value>: a #GValue initialized with the correct type for the @state_key
15132 int get_value(GObject2.Value* value) {
15133 return clutter_state_key_get_value(&this, value);
15137 struct StatePrivate {
15140 // Named colors, for accessing global colors defined by Clutter
15141 enum StaticColor /* Version 1.6 */ {
15142 WHITE = 0,
15143 BLACK = 1,
15144 RED = 2,
15145 DARK_RED = 3,
15146 GREEN = 4,
15147 DARK_GREEN = 5,
15148 BLUE = 6,
15149 DARK_BLUE = 7,
15150 CYAN = 8,
15151 DARK_CYAN = 9,
15152 MAGENTA = 10,
15153 DARK_MAGENTA = 11,
15154 YELLOW = 12,
15155 DARK_YELLOW = 13,
15156 GRAY = 14,
15157 DARK_GRAY = 15,
15158 LIGHT_GRAY = 16,
15159 BUTTER = 17,
15160 BUTTER_LIGHT = 18,
15161 BUTTER_DARK = 19,
15162 ORANGE = 20,
15163 ORANGE_LIGHT = 21,
15164 ORANGE_DARK = 22,
15165 CHOCOLATE = 23,
15166 CHOCOLATE_LIGHT = 24,
15167 CHOCOLATE_DARK = 25,
15168 CHAMELEON = 26,
15169 CHAMELEON_LIGHT = 27,
15170 CHAMELEON_DARK = 28,
15171 SKY_BLUE = 29,
15172 SKY_BLUE_LIGHT = 30,
15173 SKY_BLUE_DARK = 31,
15174 PLUM = 32,
15175 PLUM_LIGHT = 33,
15176 PLUM_DARK = 34,
15177 SCARLET_RED = 35,
15178 SCARLET_RED_LIGHT = 36,
15179 SCARLET_RED_DARK = 37,
15180 ALUMINIUM_1 = 38,
15181 ALUMINIUM_2 = 39,
15182 ALUMINIUM_3 = 40,
15183 ALUMINIUM_4 = 41,
15184 ALUMINIUM_5 = 42,
15185 ALUMINIUM_6 = 43,
15186 TRANSPARENT = 44
15188 enum int StickyKeys_Enable = 65141;
15189 enum int Stop = 269025064;
15190 enum int Subtitle = 269025178;
15191 enum int Super_L = 65515;
15192 enum int Super_R = 65516;
15193 enum int Support = 269025150;
15194 enum int Suspend = 269025191;
15196 // The <structname>ClutterSwipeAction</structname> structure contains
15197 // only private data and should be accessed using the provided API
15198 struct SwipeAction /* : GestureAction */ /* Version 1.8 */ {
15199 alias parent_instance this;
15200 alias parent_instance super_;
15201 alias parent_instance gestureaction;
15202 GestureAction parent_instance;
15203 private SwipeActionPrivate* priv;
15206 // Creates a new #ClutterSwipeAction instance
15207 // RETURNS: the newly created #ClutterSwipeAction
15208 static SwipeAction* new_() {
15209 return clutter_swipe_action_new();
15212 // The ::swept signal is emitted when a swipe gesture is recognized on the
15213 // attached actor.
15214 // <actor>: the #ClutterActor attached to the @action
15215 // <direction>: the main direction of the swipe gesture
15216 extern (C) alias static void function (SwipeAction* this_, Actor* actor, SwipeDirection* direction, void* user_data=null) signal_swept;
15218 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
15219 return super_.signal_connect!name(cb, data, cf);
15222 ulong signal_connect(string name:"swept", CB:signal_swept)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
15223 return signal_connect_data(&this, cast(char*)"swept",
15224 cast(GObject2.Callback)cb, data, null, cf);
15229 // The <structname>ClutterSwipeActionClass</structname> structure contains
15230 // only private data.
15231 struct SwipeActionClass /* Version 1.8 */ {
15232 private GestureActionClass parent_class;
15233 extern (C) void function (SwipeAction* action, Actor* actor, SwipeDirection direction) swept;
15234 extern (C) void function () _clutter_swipe_action1;
15235 extern (C) void function () _clutter_swipe_action2;
15236 extern (C) void function () _clutter_swipe_action3;
15237 extern (C) void function () _clutter_swipe_action4;
15238 extern (C) void function () _clutter_swipe_action5;
15239 extern (C) void function () _clutter_swipe_action6;
15240 extern (C) void function () _clutter_swipe_action7;
15243 struct SwipeActionPrivate {
15246 // The main direction of the swipe gesture
15247 enum SwipeDirection /* Version 1.8 */ {
15248 UP = 1,
15249 DOWN = 2,
15250 LEFT = 4,
15251 RIGHT = 8
15253 enum int Switch_VT_1 = 269024769;
15254 enum int Switch_VT_10 = 269024778;
15255 enum int Switch_VT_11 = 269024779;
15256 enum int Switch_VT_12 = 269024780;
15257 enum int Switch_VT_2 = 269024770;
15258 enum int Switch_VT_3 = 269024771;
15259 enum int Switch_VT_4 = 269024772;
15260 enum int Switch_VT_5 = 269024773;
15261 enum int Switch_VT_6 = 269024774;
15262 enum int Switch_VT_7 = 269024775;
15263 enum int Switch_VT_8 = 269024776;
15264 enum int Switch_VT_9 = 269024777;
15265 enum int Sys_Req = 65301;
15266 enum int T = 84;
15267 enum int THORN = 222;
15268 enum int Tab = 65289;
15269 // The alignment policies available on each axis of the #ClutterTableLayout
15270 enum TableAlignment /* Version 1.4 */ {
15271 START = 0,
15272 CENTER = 1,
15273 END = 2
15276 // The #ClutterTableLayout structure contains only private data
15277 // and should be accessed using the provided API
15278 struct TableLayout /* : LayoutManager */ /* Version 1.4 */ {
15279 alias parent_instance this;
15280 alias parent_instance super_;
15281 alias parent_instance layoutmanager;
15282 LayoutManager parent_instance;
15283 private TableLayoutPrivate* priv;
15286 // Creates a new #ClutterTableLayout layout manager
15287 // RETURNS: the newly created #ClutterTableLayout
15288 static TableLayout* new_() {
15289 return clutter_table_layout_new();
15292 // Retrieves the horizontal and vertical alignment policies for @actor
15293 // as set using clutter_table_layout_pack() or
15294 // clutter_table_layout_set_alignment().
15295 // <actor>: a #ClutterActor child of @layout
15296 // <x_align>: return location for the horizontal alignment policy
15297 // <y_align>: return location for the vertical alignment policy
15298 void get_alignment(Actor* actor, /*out*/ TableAlignment* x_align, /*out*/ TableAlignment* y_align) {
15299 clutter_table_layout_get_alignment(&this, actor, x_align, y_align);
15302 // Retrieve the current number of columns in @layout
15303 // RETURNS: the number of columns
15304 int get_column_count() {
15305 return clutter_table_layout_get_column_count(&this);
15308 // Retrieves the spacing set using clutter_table_layout_set_column_spacing()
15309 // RETURNS: the spacing between columns of the #ClutterTableLayout
15310 uint get_column_spacing() {
15311 return clutter_table_layout_get_column_spacing(&this);
15314 // Retrieves the duration set using clutter_table_layout_set_easing_duration()
15315 // RETURNS: the duration of the animations, in milliseconds
15316 uint get_easing_duration() {
15317 return clutter_table_layout_get_easing_duration(&this);
15320 // Retrieves the easing mode set using clutter_table_layout_set_easing_mode()
15321 // RETURNS: an easing mode
15322 c_ulong get_easing_mode() {
15323 return clutter_table_layout_get_easing_mode(&this);
15326 // Retrieves the horizontal and vertical expand policies for @actor
15327 // as set using clutter_table_layout_pack() or clutter_table_layout_set_expand()
15328 // <actor>: a #ClutterActor child of @layout
15329 // <x_expand>: return location for the horizontal expand policy
15330 // <y_expand>: return location for the vertical expand policy
15331 void get_expand(Actor* actor, /*out*/ int* x_expand, /*out*/ int* y_expand) {
15332 clutter_table_layout_get_expand(&this, actor, x_expand, y_expand);
15335 // Retrieves the horizontal and vertical fill policies for @actor
15336 // as set using clutter_table_layout_pack() or clutter_table_layout_set_fill()
15337 // <actor>: a #ClutterActor child of @layout
15338 // <x_fill>: return location for the horizontal fill policy
15339 // <y_fill>: return location for the vertical fill policy
15340 void get_fill(Actor* actor, /*out*/ int* x_fill, /*out*/ int* y_fill) {
15341 clutter_table_layout_get_fill(&this, actor, x_fill, y_fill);
15344 // Retrieve the current number rows in the @layout
15345 // RETURNS: the number of rows
15346 int get_row_count() {
15347 return clutter_table_layout_get_row_count(&this);
15350 // Retrieves the spacing set using clutter_table_layout_set_row_spacing()
15351 // RETURNS: the spacing between rows of the #ClutterTableLayout
15352 uint get_row_spacing() {
15353 return clutter_table_layout_get_row_spacing(&this);
15356 // Retrieves the row and column span for @actor as set using
15357 // clutter_table_layout_pack() or clutter_table_layout_set_span()
15358 // <actor>: a #ClutterActor child of @layout
15359 // <column_span>: return location for the col span
15360 // <row_span>: return location for the row span
15361 void get_span(Actor* actor, /*out*/ int* column_span, /*out*/ int* row_span) {
15362 clutter_table_layout_get_span(&this, actor, column_span, row_span);
15365 // Retrieves whether @layout should animate changes in the layout properties
15367 // Since clutter_table_layout_set_use_animations()
15368 // RETURNS: %TRUE if the animations should be used, %FALSE otherwise
15369 int get_use_animations() {
15370 return clutter_table_layout_get_use_animations(&this);
15373 // Packs @actor inside the #ClutterContainer associated to @layout
15374 // at the given row and column.
15375 // <actor>: a #ClutterActor
15376 // <column>: the column the @actor should be put, or -1 to append
15377 // <row>: the row the @actor should be put, or -1 to append
15378 void pack(Actor* actor, int column, int row) {
15379 clutter_table_layout_pack(&this, actor, column, row);
15382 // Sets the horizontal and vertical alignment policies for @actor
15383 // inside @layout
15384 // <actor>: a #ClutterActor child of @layout
15385 // <x_align>: Horizontal alignment policy for @actor
15386 // <y_align>: Vertical alignment policy for @actor
15387 void set_alignment(Actor* actor, TableAlignment x_align, TableAlignment y_align) {
15388 clutter_table_layout_set_alignment(&this, actor, x_align, y_align);
15391 // Sets the spacing between columns of @layout
15392 // <spacing>: the spacing between columns of the layout, in pixels
15393 void set_column_spacing(uint spacing) {
15394 clutter_table_layout_set_column_spacing(&this, spacing);
15397 // Sets the duration of the animations used by @layout when animating changes
15398 // in the layout properties
15400 // Use clutter_table_layout_set_use_animations() to enable and disable the
15401 // animations
15402 // <msecs>: the duration of the animations, in milliseconds
15403 void set_easing_duration(uint msecs) {
15404 clutter_table_layout_set_easing_duration(&this, msecs);
15407 // Sets the easing mode to be used by @layout when animating changes in layout
15408 // properties
15410 // Use clutter_table_layout_set_use_animations() to enable and disable the
15411 // animations
15412 // <mode>: an easing mode, either from #ClutterAnimationMode or a logical id from clutter_alpha_register_func()
15413 void set_easing_mode(c_ulong mode) {
15414 clutter_table_layout_set_easing_mode(&this, mode);
15417 // Sets the horizontal and vertical expand policies for @actor
15418 // inside @layout
15419 // <actor>: a #ClutterActor child of @layout
15420 // <x_expand>: whether @actor should allocate extra space horizontally
15421 // <y_expand>: whether @actor should allocate extra space vertically
15422 void set_expand(Actor* actor, int x_expand, int y_expand) {
15423 clutter_table_layout_set_expand(&this, actor, x_expand, y_expand);
15426 // Sets the horizontal and vertical fill policies for @actor
15427 // inside @layout
15428 // <actor>: a #ClutterActor child of @layout
15429 // <x_fill>: whether @actor should fill horizontally the allocated space
15430 // <y_fill>: whether @actor should fill vertically the allocated space
15431 void set_fill(Actor* actor, int x_fill, int y_fill) {
15432 clutter_table_layout_set_fill(&this, actor, x_fill, y_fill);
15435 // Sets the spacing between rows of @layout
15436 // <spacing>: the spacing between rows of the layout, in pixels
15437 void set_row_spacing(uint spacing) {
15438 clutter_table_layout_set_row_spacing(&this, spacing);
15441 // Sets the row and column span for @actor
15442 // inside @layout
15443 // <actor>: a #ClutterActor child of @layout
15444 // <column_span>: Column span for @actor
15445 // <row_span>: Row span for @actor
15446 void set_span(Actor* actor, int column_span, int row_span) {
15447 clutter_table_layout_set_span(&this, actor, column_span, row_span);
15450 // Sets whether @layout should animate changes in the layout properties
15452 // The duration of the animations is controlled by
15453 // clutter_table_layout_set_easing_duration(); the easing mode to be used
15454 // by the animations is controlled by clutter_table_layout_set_easing_mode()
15455 // <animate>: %TRUE if the @layout should use animations
15456 void set_use_animations(int animate) {
15457 clutter_table_layout_set_use_animations(&this, animate);
15462 // The #ClutterTableLayoutClass structure contains only private
15463 // data and should be accessed using the provided API
15464 struct TableLayoutClass /* Version 1.4 */ {
15465 private LayoutManagerClass parent_class;
15468 struct TableLayoutPrivate {
15471 enum int Tabovedot = 16785002;
15472 enum int TaskPane = 269025151;
15473 enum int Tcaron = 427;
15474 enum int Tcedilla = 478;
15475 enum int Terminal = 269025152;
15476 enum int Terminate_Server = 65237;
15477 // The #ClutterText struct contains only private data.
15478 struct Text /* : Actor */ /* Version 1.0 */ {
15479 alias parent_instance this;
15480 alias parent_instance super_;
15481 alias parent_instance actor;
15482 Actor parent_instance;
15483 private TextPrivate* priv;
15486 // Creates a new #ClutterText actor. This actor can be used to
15487 // display and edit text.
15488 // RETURNS: the newly created #ClutterText actor
15489 static Text* new_() {
15490 return clutter_text_new();
15493 // Creates a new #ClutterText actor, using @font_name as the font
15494 // description; @text will be used to set the contents of the actor;
15495 // and @color will be used as the color to render @text.
15497 // This function is equivalent to calling clutter_text_new(),
15498 // clutter_text_set_font_name(), clutter_text_set_text() and
15499 // clutter_text_set_color().
15500 // RETURNS: the newly created #ClutterText actor
15501 // <font_name>: a string with a font description
15502 // <text>: the contents of the actor
15503 // <color>: the color to be used to render @text
15504 static Text* new_full(char* font_name, char* text, Color* color) {
15505 return clutter_text_new_full(font_name, text, color);
15508 // Creates a new #ClutterText actor, using @font_name as the font
15509 // description; @text will be used to set the contents of the actor.
15511 // This function is equivalent to calling clutter_text_new(),
15512 // clutter_text_set_font_name(), and clutter_text_set_text().
15513 // RETURNS: the newly created #ClutterText actor
15514 // <font_name>: a string with a font description
15515 // <text>: the contents of the actor
15516 static Text* new_with_text(char* font_name, char* text) {
15517 return clutter_text_new_with_text(font_name, text);
15520 // Emits the #ClutterText::activate signal, if @self has been set
15521 // as activatable using clutter_text_set_activatable().
15523 // This function can be used to emit the ::activate signal inside
15524 // a #ClutterActor::captured-event or #ClutterActor::key-press-event
15525 // signal handlers before the default signal handler for the
15526 // #ClutterText is invoked.
15528 // and %FALSE otherwise
15529 // RETURNS: %TRUE if the ::activate signal has been emitted,
15530 int activate() {
15531 return clutter_text_activate(&this);
15534 // Deletes @n_chars inside a #ClutterText actor, starting from the
15535 // current cursor position.
15536 // <n_chars>: the number of characters to delete
15537 void delete_chars(uint n_chars) {
15538 clutter_text_delete_chars(&this, n_chars);
15541 // Deletes the currently selected text
15543 // This function is only useful in subclasses of #ClutterText
15545 // is empty, and %FALSE otherwise
15546 // RETURNS: %TRUE if text was deleted or if the text actor
15547 int delete_selection() {
15548 return clutter_text_delete_selection(&this);
15551 // Deletes the text inside a #ClutterText actor between @start_pos
15552 // and @end_pos.
15554 // The starting and ending positions are expressed in characters,
15555 // not in bytes.
15556 // <start_pos>: starting position
15557 // <end_pos>: ending position
15558 void delete_text(ssize_t start_pos, ssize_t end_pos) {
15559 clutter_text_delete_text(&this, start_pos, end_pos);
15562 // Retrieves whether a #ClutterText is activatable or not.
15563 // RETURNS: %TRUE if the actor is activatable
15564 int get_activatable() {
15565 return clutter_text_get_activatable(&this);
15568 // Gets the attribute list that was set on the #ClutterText actor
15569 // clutter_text_set_attributes(), if any.
15571 // returned value is owned by the #ClutterText and should not be unreferenced.
15572 // RETURNS: the attribute list, or %NULL if none was set. The
15573 Pango.AttrList* get_attributes() {
15574 return clutter_text_get_attributes(&this);
15577 // Retrieves the contents of the #ClutterText actor between
15578 // @start_pos and @end_pos, but not including @end_pos.
15580 // The positions are specified in characters, not in bytes.
15582 // the text actor between the specified positions. Use g_free()
15583 // to free the resources when done
15584 // RETURNS: a newly allocated string with the contents of
15585 // <start_pos>: start of text, in characters
15586 // <end_pos>: end of text, in characters
15587 char* /*new*/ get_chars(ssize_t start_pos, ssize_t end_pos) {
15588 return clutter_text_get_chars(&this, start_pos, end_pos);
15591 // Retrieves the text color as set by clutter_text_set_color().
15592 // <color>: return location for a #ClutterColor
15593 void get_color(/*out*/ Color* color) {
15594 clutter_text_get_color(&this, color);
15597 // Retrieves the color of the cursor of a #ClutterText actor.
15598 // <color>: return location for a #ClutterColor
15599 void get_cursor_color(/*out*/ Color* color) {
15600 clutter_text_get_cursor_color(&this, color);
15603 // Retrieves the cursor position.
15604 // RETURNS: the cursor position, in characters
15605 int get_cursor_position() {
15606 return clutter_text_get_cursor_position(&this);
15609 // Retrieves the size of the cursor of a #ClutterText actor.
15610 // RETURNS: the size of the cursor, in pixels
15611 uint get_cursor_size() {
15612 return clutter_text_get_cursor_size(&this);
15615 // Retrieves whether the cursor of a #ClutterText actor is visible.
15616 // RETURNS: %TRUE if the cursor is visible
15617 int get_cursor_visible() {
15618 return clutter_text_get_cursor_visible(&this);
15621 // Retrieves whether a #ClutterText is editable or not.
15622 // RETURNS: %TRUE if the actor is editable
15623 int get_editable() {
15624 return clutter_text_get_editable(&this);
15627 // Returns the ellipsizing position of a #ClutterText actor, as
15628 // set by clutter_text_set_ellipsize().
15629 // RETURNS: #PangoEllipsizeMode
15630 Pango.EllipsizeMode get_ellipsize() {
15631 return clutter_text_get_ellipsize(&this);
15634 // Retrieves the #PangoFontDescription used by @self
15636 // by the #ClutterText actor and it should not be modified or freed
15637 // RETURNS: a #PangoFontDescription. The returned value is owned
15638 Pango.FontDescription* /*new*/ get_font_description() {
15639 return clutter_text_get_font_description(&this);
15642 // Retrieves the font name as set by clutter_text_set_font_name().
15644 // string is owned by the #ClutterText actor and should not be
15645 // modified or freed
15646 // RETURNS: a string containing the font name. The returned
15647 char* get_font_name() {
15648 return clutter_text_get_font_name(&this);
15651 // Retrieves whether the #ClutterText actor should justify its contents
15652 // on both margins.
15653 // RETURNS: %TRUE if the text should be justified
15654 int get_justify() {
15655 return clutter_text_get_justify(&this);
15658 // Retrieves the current #PangoLayout used by a #ClutterText actor.
15660 // the #ClutterText actor and should not be modified or freed
15661 // RETURNS: a #PangoLayout. The returned object is owned by
15662 Pango.Layout* get_layout() {
15663 return clutter_text_get_layout(&this);
15666 // Obtains the coordinates where the #ClutterText will draw the #PangoLayout
15667 // representing the text.
15668 // <x>: location to store X offset of layout, or %NULL
15669 // <y>: location to store Y offset of layout, or %NULL
15670 void get_layout_offsets(/*out*/ int* x, /*out*/ int* y) {
15671 clutter_text_get_layout_offsets(&this, x, y);
15674 // Retrieves the alignment of a #ClutterText, as set by
15675 // clutter_text_set_line_alignment().
15676 // RETURNS: a #PangoAlignment
15677 Pango.Alignment get_line_alignment() {
15678 return clutter_text_get_line_alignment(&this);
15681 // Retrieves the value set using clutter_text_set_line_wrap().
15683 // its contents
15684 // RETURNS: %TRUE if the #ClutterText actor should wrap
15685 int get_line_wrap() {
15686 return clutter_text_get_line_wrap(&this);
15689 // Retrieves the line wrap mode used by the #ClutterText actor.
15691 // See clutter_text_set_line_wrap_mode ().
15692 // RETURNS: the wrap mode used by the #ClutterText
15693 Pango.WrapMode get_line_wrap_mode() {
15694 return clutter_text_get_line_wrap_mode(&this);
15697 // Gets the maximum length of text that can be set into a text actor.
15699 // See clutter_text_set_max_length().
15700 // RETURNS: the maximum number of characters.
15701 int get_max_length() {
15702 return clutter_text_get_max_length(&this);
15705 // Retrieves the character to use in place of the actual text
15706 // as set by clutter_text_set_password_char().
15708 // character is not set
15709 // RETURNS: a Unicode character or 0 if the password
15710 dchar get_password_char() {
15711 return clutter_text_get_password_char(&this);
15714 // Retrieves whether a #ClutterText is selectable or not.
15715 // RETURNS: %TRUE if the actor is selectable
15716 int get_selectable() {
15717 return clutter_text_get_selectable(&this);
15720 // Retrieves the color of selected text of a #ClutterText actor.
15721 // <color>: return location for a #ClutterColor
15722 void get_selected_text_color(/*out*/ Color* color) {
15723 clutter_text_get_selected_text_color(&this, color);
15726 // Retrieves the currently selected text.
15728 // selected text, or %NULL. Use g_free() to free the returned
15729 // string.
15730 // RETURNS: a newly allocated string containing the currently
15731 char* /*new*/ get_selection() {
15732 return clutter_text_get_selection(&this);
15735 // Retrieves the other end of the selection of a #ClutterText actor,
15736 // in characters from the current cursor position.
15737 // RETURNS: the position of the other end of the selection
15738 int get_selection_bound() {
15739 return clutter_text_get_selection_bound(&this);
15742 // Retrieves the color of the selection of a #ClutterText actor.
15743 // <color>: return location for a #ClutterColor
15744 void get_selection_color(/*out*/ Color* color) {
15745 clutter_text_get_selection_color(&this, color);
15748 // Retrieves whether the #ClutterText actor is in single line mode.
15749 // RETURNS: %TRUE if the #ClutterText actor is in single line mode
15750 int get_single_line_mode() {
15751 return clutter_text_get_single_line_mode(&this);
15754 // Retrieves a pointer to the current contents of a #ClutterText
15755 // actor.
15757 // If you need a copy of the contents for manipulating, either
15758 // use g_strdup() on the returned string, or use:
15760 // |[
15761 // copy = clutter_text_get_chars (text, 0, -1);
15762 // ]|
15764 // Which will return a newly allocated string.
15766 // If the #ClutterText actor is empty, this function will return
15767 // an empty string, and not %NULL.
15769 // string is owned by the #ClutterText actor and should never be modified
15770 // or freed
15771 // RETURNS: the contents of the actor. The returned
15772 char* get_text() {
15773 return clutter_text_get_text(&this);
15776 // Retrieves whether the contents of the #ClutterText actor should be
15777 // parsed for the Pango text markup.
15778 // RETURNS: %TRUE if the contents will be parsed for markup
15779 int get_use_markup() {
15780 return clutter_text_get_use_markup(&this);
15783 // Inserts @text into a #ClutterActor at the given position.
15785 // If @position is a negative number, the text will be appended
15786 // at the end of the current contents of the #ClutterText.
15788 // The position is expressed in characters, not in bytes.
15789 // <text>: the text to be inserted
15790 // <position>: the position of the insertion, or -1
15791 void insert_text(char* text, ssize_t position) {
15792 clutter_text_insert_text(&this, text, position);
15795 // Inserts @wc at the current cursor position of a
15796 // #ClutterText actor.
15797 // <wc>: a Unicode character
15798 void insert_unichar(dchar wc) {
15799 clutter_text_insert_unichar(&this, wc);
15802 // Retrieves the coordinates of the given @position.
15803 // RETURNS: %TRUE if the conversion was successful
15804 // <position>: position in characters
15805 // <x>: return location for the X coordinate, or %NULL
15806 // <y>: return location for the Y coordinate, or %NULL
15807 // <line_height>: return location for the line height, or %NULL
15808 int position_to_coords(int position, /*out*/ float* x, /*out*/ float* y, /*out*/ float* line_height) {
15809 return clutter_text_position_to_coords(&this, position, x, y, line_height);
15812 // Sets whether a #ClutterText actor should be activatable.
15814 // An activatable #ClutterText actor will emit the #ClutterText::activate
15815 // signal whenever the 'Enter' (or 'Return') key is pressed; if it is not
15816 // activatable, a new line will be appended to the current content.
15818 // An activatable #ClutterText must also be set as editable using
15819 // clutter_text_set_editable().
15820 // <activatable>: whether the #ClutterText actor should be activatable
15821 void set_activatable(int activatable) {
15822 clutter_text_set_activatable(&this, activatable);
15825 // Sets the attributes list that are going to be applied to the
15826 // #ClutterText contents.
15828 // The #ClutterText actor will take a reference on the #PangoAttrList
15829 // passed to this function.
15830 // <attrs>: a #PangoAttrList or %NULL to unset the attributes
15831 void set_attributes(Pango.AttrList* attrs) {
15832 clutter_text_set_attributes(&this, attrs);
15835 // Sets the color of the contents of a #ClutterText actor.
15837 // The overall opacity of the #ClutterText actor will be the
15838 // result of the alpha value of @color and the composited
15839 // opacity of the actor itself on the scenegraph, as returned
15840 // by clutter_actor_get_paint_opacity().
15841 // <color>: a #ClutterColor
15842 void set_color(Color* color) {
15843 clutter_text_set_color(&this, color);
15846 // Sets the color of the cursor of a #ClutterText actor.
15848 // If @color is %NULL, the cursor color will be the same as the
15849 // text color.
15850 // <color>: the color of the cursor, or %NULL to unset it
15851 void set_cursor_color(Color* color) {
15852 clutter_text_set_cursor_color(&this, color);
15855 // Sets the cursor of a #ClutterText actor at @position.
15857 // The position is expressed in characters, not in bytes.
15858 // <position>: the new cursor position, in characters
15859 void set_cursor_position(int position) {
15860 clutter_text_set_cursor_position(&this, position);
15863 // Sets the size of the cursor of a #ClutterText. The cursor
15864 // will only be visible if the #ClutterText:cursor-visible property
15865 // is set to %TRUE.
15866 // <size>: the size of the cursor, in pixels, or -1 to use the default value
15867 void set_cursor_size(int size) {
15868 clutter_text_set_cursor_size(&this, size);
15871 // Sets whether the cursor of a #ClutterText actor should be
15872 // visible or not.
15874 // The color of the cursor will be the same as the text color
15875 // unless clutter_text_set_cursor_color() has been called.
15877 // The size of the cursor can be set using clutter_text_set_cursor_size().
15879 // The position of the cursor can be changed programmatically using
15880 // clutter_text_set_cursor_position().
15881 // <cursor_visible>: whether the cursor should be visible
15882 void set_cursor_visible(int cursor_visible) {
15883 clutter_text_set_cursor_visible(&this, cursor_visible);
15886 // Sets whether the #ClutterText actor should be editable.
15888 // An editable #ClutterText with key focus set using
15889 // clutter_actor_grab_key_focus() or clutter_stage_set_key_focus()
15890 // will receive key events and will update its contents accordingly.
15891 // <editable>: whether the #ClutterText should be editable
15892 void set_editable(int editable) {
15893 clutter_text_set_editable(&this, editable);
15896 // Sets the mode used to ellipsize (add an ellipsis: "...") to the
15897 // text if there is not enough space to render the entire contents
15898 // of a #ClutterText actor
15899 // <mode>: a #PangoEllipsizeMode
15900 void set_ellipsize(Pango.EllipsizeMode mode) {
15901 clutter_text_set_ellipsize(&this, mode);
15904 // Sets @font_desc as the font description for a #ClutterText
15906 // The #PangoFontDescription is copied by the #ClutterText actor
15907 // so you can safely call pango_font_description_free() on it after
15908 // calling this function.
15909 // <font_desc>: a #PangoFontDescription
15910 void set_font_description(Pango.FontDescription* font_desc) {
15911 clutter_text_set_font_description(&this, font_desc);
15914 // Sets the font used by a #ClutterText. The @font_name string
15915 // must either be %NULL, which means that the font name from the
15916 // default #ClutterBackend will be used; or be something that can
15917 // be parsed by the pango_font_description_from_string() function,
15918 // like:
15920 // |[
15921 // clutter_text_set_font_name (text, "Sans 10pt");
15922 // clutter_text_set_font_name (text, "Serif 16px");
15923 // clutter_text_set_font_name (text, "Helvetica 10");
15924 // ]|
15925 // <font_name>: a font name, or %NULL to set the default font name
15926 void set_font_name(char* font_name=null) {
15927 clutter_text_set_font_name(&this, font_name);
15930 // Sets whether the text of the #ClutterText actor should be justified
15931 // on both margins. This setting is ignored if Clutter is compiled
15932 // against Pango &lt; 1.18.
15933 // <justify>: whether the text should be justified
15934 void set_justify(int justify) {
15935 clutter_text_set_justify(&this, justify);
15938 // Sets the way that the lines of a wrapped label are aligned with
15939 // respect to each other. This does not affect the overall alignment
15940 // of the label within its allocated or specified width.
15942 // To align a #ClutterText actor you should add it to a container
15943 // that supports alignment, or use the anchor point.
15944 // <alignment>: A #PangoAlignment
15945 void set_line_alignment(Pango.Alignment alignment) {
15946 clutter_text_set_line_alignment(&this, alignment);
15949 // Sets whether the contents of a #ClutterText actor should wrap,
15950 // if they don't fit the size assigned to the actor.
15951 // <line_wrap>: whether the contents should wrap
15952 void set_line_wrap(int line_wrap) {
15953 clutter_text_set_line_wrap(&this, line_wrap);
15956 // If line wrapping is enabled (see clutter_text_set_line_wrap()) this
15957 // function controls how the line wrapping is performed. The default is
15958 // %PANGO_WRAP_WORD which means wrap on word boundaries.
15959 // <wrap_mode>: the line wrapping mode
15960 void set_line_wrap_mode(Pango.WrapMode wrap_mode) {
15961 clutter_text_set_line_wrap_mode(&this, wrap_mode);
15964 // Sets @markup as the contents of a #ClutterText.
15966 // This is a convenience function for setting a string containing
15967 // Pango markup, and it is logically equivalent to:
15969 // |[
15970 // /&ast; the order is important &ast;/
15971 // clutter_text_set_text (CLUTTER_TEXT (actor), markup);
15972 // clutter_text_set_use_markup (CLUTTER_TEXT (actor), TRUE);
15973 // ]|
15974 // <markup>: a string containing Pango markup. Passing %NULL is the same as passing "" (the empty string)
15975 void set_markup(char* markup) {
15976 clutter_text_set_markup(&this, markup);
15979 // Sets the maximum allowed length of the contents of the actor. If the
15980 // current contents are longer than the given length, then they will be
15981 // truncated to fit.
15982 // <max>: the maximum number of characters allowed in the text actor; 0 to disable or -1 to set the length of the current string
15983 void set_max_length(int max) {
15984 clutter_text_set_max_length(&this, max);
15987 // Sets the character to use in place of the actual text in a
15988 // password text actor.
15990 // If @wc is 0 the text will be displayed as it is entered in the
15991 // #ClutterText actor.
15992 // <wc>: a Unicode character, or 0 to unset the password character
15993 void set_password_char(dchar wc) {
15994 clutter_text_set_password_char(&this, wc);
15997 // Sets, or unsets, the pre-edit string. This function is useful
15998 // for input methods to display a string (with eventual specific
15999 // Pango attributes) before it is entered inside the #ClutterText
16000 // buffer.
16002 // The preedit string and attributes are ignored if the #ClutterText
16003 // actor is not editable.
16005 // This function should not be used by applications
16006 // <preedit_str>: the pre-edit string, or %NULL to unset it
16007 // <preedit_attrs>: the pre-edit string attributes
16008 // <cursor_pos>: the cursor position for the pre-edit string
16009 void set_preedit_string(char* preedit_str, Pango.AttrList* preedit_attrs, uint cursor_pos) {
16010 clutter_text_set_preedit_string(&this, preedit_str, preedit_attrs, cursor_pos);
16013 // Sets whether a #ClutterText actor should be selectable.
16015 // A selectable #ClutterText will allow selecting its contents using
16016 // the pointer or the keyboard.
16017 // <selectable>: whether the #ClutterText actor should be selectable
16018 void set_selectable(int selectable) {
16019 clutter_text_set_selectable(&this, selectable);
16022 // Sets the selected text color of a #ClutterText actor.
16024 // If @color is %NULL, the selected text color will be the same as the
16025 // selection color, which then falls back to cursor, and then text color.
16026 // <color>: the selected text color, or %NULL to unset it
16027 void set_selected_text_color(Color* color) {
16028 clutter_text_set_selected_text_color(&this, color);
16031 // Selects the region of text between @start_pos and @end_pos.
16033 // This function changes the position of the cursor to match
16034 // @start_pos and the selection bound to match @end_pos.
16035 // <start_pos>: start of the selection, in characters
16036 // <end_pos>: end of the selection, in characters
16037 void set_selection(ssize_t start_pos, ssize_t end_pos) {
16038 clutter_text_set_selection(&this, start_pos, end_pos);
16041 // Sets the other end of the selection, starting from the current
16042 // cursor position.
16044 // If @selection_bound is -1, the selection unset.
16045 // <selection_bound>: the position of the end of the selection, in characters
16046 void set_selection_bound(int selection_bound) {
16047 clutter_text_set_selection_bound(&this, selection_bound);
16050 // Sets the color of the selection of a #ClutterText actor.
16052 // If @color is %NULL, the selection color will be the same as the
16053 // cursor color, or if no cursor color is set either then it will be
16054 // the same as the text color.
16055 // <color>: the color of the selection, or %NULL to unset it
16056 void set_selection_color(Color* color) {
16057 clutter_text_set_selection_color(&this, color);
16060 // Sets whether a #ClutterText actor should be in single line mode
16061 // or not. Only editable #ClutterText<!-- -->s can be in single line
16062 // mode.
16064 // A text actor in single line mode will not wrap text and will clip
16065 // the visible area to the predefined size. The contents of the
16066 // text actor will scroll to display the end of the text if its length
16067 // is bigger than the allocated width.
16069 // When setting the single line mode the #ClutterText:activatable
16070 // property is also set as a side effect. Instead of entering a new
16071 // line character, the text actor will emit the #ClutterText::activate
16072 // signal.
16073 // <single_line>: whether to enable single line mode
16074 void set_single_line_mode(int single_line) {
16075 clutter_text_set_single_line_mode(&this, single_line);
16078 // Sets the contents of a #ClutterText actor.
16080 // If the #ClutterText:use-markup property was set to %TRUE it
16081 // will be reset to %FALSE as a side effect. If you want to
16082 // maintain the #ClutterText:use-markup you should use the
16083 // clutter_text_set_markup() function instead
16084 // <text>: the text to set. Passing %NULL is the same as passing "" (the empty string)
16085 void set_text(char* text) {
16086 clutter_text_set_text(&this, text);
16089 // Sets whether the contents of the #ClutterText actor contains markup
16090 // in <link linkend="PangoMarkupFormat">Pango's text markup language</link>.
16092 // Setting #ClutterText:use-markup on an editable #ClutterText will
16093 // not have any effect except hiding the markup.
16095 // See also #ClutterText:use-markup.
16096 // <setting>: %TRUE if the text should be parsed for markup.
16097 void set_use_markup(int setting) {
16098 clutter_text_set_use_markup(&this, setting);
16101 // The ::activate signal is emitted each time the actor is 'activated'
16102 // by the user, normally by pressing the 'Enter' key. The signal is
16103 // emitted only if #ClutterText:activatable is set to %TRUE.
16104 extern (C) alias static void function (Text* this_, void* user_data=null) signal_activate;
16106 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
16107 return super_.signal_connect!name(cb, data, cf);
16110 ulong signal_connect(string name:"activate", CB:signal_activate)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
16111 return signal_connect_data(&this, cast(char*)"activate",
16112 cast(GObject2.Callback)cb, data, null, cf);
16115 // The ::cursor-event signal is emitted whenever the cursor position
16116 // changes inside a #ClutterText actor. Inside @geometry it is stored
16117 // the current position and size of the cursor, relative to the actor
16118 // itself.
16119 // <geometry>: the coordinates of the cursor
16120 extern (C) alias static void function (Text* this_, Geometry* geometry, void* user_data=null) signal_cursor_event;
16121 ulong signal_connect(string name:"cursor-event", CB:signal_cursor_event)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
16122 return signal_connect_data(&this, cast(char*)"cursor-event",
16123 cast(GObject2.Callback)cb, data, null, cf);
16126 // This signal is emitted when text is deleted from the actor by
16127 // the user. It is emitted before @self text changes.
16128 // <start_pos>: the starting position
16129 // <end_pos>: the end position
16130 extern (C) alias static void function (Text* this_, int start_pos, int end_pos, void* user_data=null) signal_delete_text;
16131 ulong signal_connect(string name:"delete-text", CB:signal_delete_text)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
16132 return signal_connect_data(&this, cast(char*)"delete-text",
16133 cast(GObject2.Callback)cb, data, null, cf);
16136 // This signal is emitted when text is inserted into the actor by
16137 // the user. It is emitted before @self text changes.
16138 // <new_text>: the new text to insert
16139 // <new_text_length>: the length of the new text, in bytes, or -1 if new_text is nul-terminated
16140 // <position>: the position, in characters, at which to insert the new text. this is an in-out parameter. After the signal emission is finished, it should point after the newly inserted text.
16141 extern (C) alias static void function (Text* this_, char* new_text, int new_text_length, void* position, void* user_data=null) signal_insert_text;
16142 ulong signal_connect(string name:"insert-text", CB:signal_insert_text)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
16143 return signal_connect_data(&this, cast(char*)"insert-text",
16144 cast(GObject2.Callback)cb, data, null, cf);
16146 // The ::text-changed signal is emitted after @actor's text changes
16147 extern (C) alias static void function (Text* this_, void* user_data=null) signal_text_changed;
16148 ulong signal_connect(string name:"text-changed", CB:signal_text_changed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
16149 return signal_connect_data(&this, cast(char*)"text-changed",
16150 cast(GObject2.Callback)cb, data, null, cf);
16154 // The #ClutterTextClass struct contains only private data.
16155 struct TextClass /* Version 1.0 */ {
16156 private ActorClass parent_class;
16157 extern (C) void function (Text* self) text_changed;
16158 extern (C) void function (Text* self) activate;
16159 extern (C) void function (Text* self, Geometry* geometry) cursor_event;
16160 extern (C) void function () _clutter_reserved1;
16161 extern (C) void function () _clutter_reserved2;
16162 extern (C) void function () _clutter_reserved3;
16163 extern (C) void function () _clutter_reserved4;
16164 extern (C) void function () _clutter_reserved5;
16165 extern (C) void function () _clutter_reserved6;
16166 extern (C) void function () _clutter_reserved7;
16167 extern (C) void function () _clutter_reserved8;
16170 // The text direction to be used by #ClutterActor<!-- -->s
16171 enum TextDirection /* Version 1.2 */ {
16172 DEFAULT = 0,
16173 LTR = 1,
16174 RTL = 2
16176 struct TextPrivate {
16180 // The #ClutterTexture structure contains only private data
16181 // and should be accessed using the provided API
16182 struct Texture /* : Actor */ /* Version 0.1 */ {
16183 alias parent this;
16184 alias parent super_;
16185 alias parent actor;
16186 Actor parent;
16187 private TexturePrivate* priv;
16190 // Creates a new empty #ClutterTexture object.
16191 // RETURNS: A newly created #ClutterTexture object.
16192 static Texture* new_() {
16193 return clutter_texture_new();
16196 // Creates a new #ClutterTexture object with its source a prexisting
16197 // actor (and associated children). The textures content will contain
16198 // 'live' redirected output of the actors scene.
16200 // Note this function is intented as a utility call for uniformly applying
16201 // shaders to groups and other potential visual effects. It requires that
16202 // the %CLUTTER_FEATURE_OFFSCREEN feature is supported by the current backend
16203 // and the target system.
16205 // Some tips on usage:
16207 // <itemizedlist>
16208 // <listitem>
16209 // <para>The source actor must be made visible (i.e by calling
16210 // #clutter_actor_show).</para>
16211 // </listitem>
16212 // <listitem>
16213 // <para>The source actor must have a parent in order for it to be
16214 // allocated a size from the layouting mechanism. If the source
16215 // actor does not have a parent when this function is called then
16216 // the ClutterTexture will adopt it and allocate it at its
16217 // preferred size. Using this you can clone an actor that is
16218 // otherwise not displayed. Because of this feature if you do
16219 // intend to display the source actor then you must make sure that
16220 // the actor is parented before calling
16221 // clutter_texture_new_from_actor() or that you unparent it before
16222 // adding it to a container.</para>
16223 // </listitem>
16224 // <listitem>
16225 // <para>When getting the image for the clone texture, Clutter
16226 // will attempt to render the source actor exactly as it would
16227 // appear if it was rendered on screen. The source actor's parent
16228 // transformations are taken into account. Therefore if your
16229 // source actor is rotated along the X or Y axes so that it has
16230 // some depth, the texture will appear differently depending on
16231 // the on-screen location of the source actor. While painting the
16232 // source actor, Clutter will set up a temporary asymmetric
16233 // perspective matrix as the projection matrix so that the source
16234 // actor will be projected as if a small section of the screen was
16235 // being viewed. Before version 0.8.2, an orthogonal identity
16236 // projection was used which meant that the source actor would be
16237 // clipped if any part of it was not on the zero Z-plane.</para>
16238 // </listitem>
16239 // <listitem>
16240 // <para>Avoid reparenting the source with the created texture.</para>
16241 // </listitem>
16242 // <listitem>
16243 // <para>A group can be padded with a transparent rectangle as to
16244 // provide a border to contents for shader output (blurring text
16245 // for example).</para>
16246 // </listitem>
16247 // <listitem>
16248 // <para>The texture will automatically resize to contain a further
16249 // transformed source. However, this involves overhead and can be
16250 // avoided by placing the source actor in a bounding group
16251 // sized large enough to contain any child tranformations.</para>
16252 // </listitem>
16253 // <listitem>
16254 // <para>Uploading pixel data to the texture (e.g by using
16255 // clutter_texture_set_from_file()) will destroy the offscreen texture
16256 // data and end redirection.</para>
16257 // </listitem>
16258 // <listitem>
16259 // <para>cogl_texture_get_data() with the handle returned by
16260 // clutter_texture_get_cogl_texture() can be used to read the
16261 // offscreen texture pixels into a pixbuf.</para>
16262 // </listitem>
16263 // </itemizedlist>
16266 // directly on the intended #ClutterActor to replace the functionality of
16267 // this function.
16268 // RETURNS: A newly created #ClutterTexture object, or %NULL on failure.
16269 // <actor>: A source #ClutterActor
16270 static Texture* new_from_actor(Actor* actor) {
16271 return clutter_texture_new_from_actor(actor);
16274 // Creates a new ClutterTexture actor to display the image contained a
16275 // file. If the image failed to load then NULL is returned and @error
16276 // is set.
16278 // error.
16279 // RETURNS: A newly created #ClutterTexture object or NULL on
16280 // <filename>: The name of an image file to load.
16281 static Texture* new_from_file(char* filename, GLib2.Error** error=null) {
16282 return clutter_texture_new_from_file(filename, error);
16285 // Gets the size in pixels of the untransformed underlying image
16286 // <width>: return location for the width, or %NULL
16287 // <height>: return location for the height, or %NULL
16288 void get_base_size(/*out*/ int* width, /*out*/ int* height) {
16289 clutter_texture_get_base_size(&this, width, height);
16292 // Returns a handle to the underlying COGL material used for drawing
16293 // the actor.
16295 // material is owned by the #ClutterTexture and it should not be
16296 // unreferenced
16297 // RETURNS: a handle for a #CoglMaterial. The
16298 Cogl.Handle get_cogl_material() {
16299 return clutter_texture_get_cogl_material(&this);
16302 // Retrieves the handle to the underlying COGL texture used for drawing
16303 // the actor. No extra reference is taken so if you need to keep the
16304 // handle then you should call cogl_handle_ref() on it.
16306 // The texture handle returned is the first layer of the material
16307 // handle used by the #ClutterTexture. If you need to access the other
16308 // layers you should use clutter_texture_get_cogl_material() instead
16309 // and use the #CoglMaterial API.
16311 // handle is owned by the #ClutterTexture and it should not be unreferenced
16312 // RETURNS: a #CoglHandle for the texture. The returned
16313 Cogl.Handle get_cogl_texture() {
16314 return clutter_texture_get_cogl_texture(&this);
16317 // Gets the filter quality used when scaling a texture.
16318 // RETURNS: The filter quality value.
16319 TextureQuality get_filter_quality() {
16320 return clutter_texture_get_filter_quality(&this);
16323 // Retrieves the value set using clutter_texture_set_keep_aspect_ratio()
16325 // aspect ratio of the underlying image
16326 // RETURNS: %TRUE if the #ClutterTexture should maintain the
16327 int get_keep_aspect_ratio() {
16328 return clutter_texture_get_keep_aspect_ratio(&this);
16331 // Retrieves the value set using clutter_texture_set_load_async()
16333 // disk asynchronously
16334 // RETURNS: %TRUE if the #ClutterTexture should load the data from
16335 int get_load_async() {
16336 return clutter_texture_get_load_async(&this);
16339 // Retrieves the value set by clutter_texture_set_load_data_async()
16341 // data from a file asynchronously
16342 // RETURNS: %TRUE if the #ClutterTexture should load the image
16343 int get_load_data_async() {
16344 return clutter_texture_get_load_data_async(&this);
16347 // Gets the maximum waste that will be used when creating a texture or
16348 // -1 if slicing is disabled.
16350 // unlimited.
16351 // RETURNS: The maximum waste or -1 if the texture waste is
16352 int get_max_tile_waste() {
16353 return clutter_texture_get_max_tile_waste(&this);
16356 // Retrieves the value set by clutter_texture_set_load_data_async()
16358 // using the alpha channel when picking.
16359 // RETURNS: %TRUE if the #ClutterTexture should define its shape
16360 int get_pick_with_alpha() {
16361 return clutter_texture_get_pick_with_alpha(&this);
16364 // Retrieves the pixel format used by @texture. This is
16365 // equivalent to:
16367 // |[
16368 // handle = clutter_texture_get_pixel_format (texture);
16370 // if (handle != COGL_INVALID_HANDLE)
16371 // format = cogl_texture_get_format (handle);
16372 // ]|
16373 // RETURNS: a #CoglPixelFormat value
16374 Cogl.PixelFormat get_pixel_format() {
16375 return clutter_texture_get_pixel_format(&this);
16378 // Retrieves the horizontal and vertical repeat values set
16379 // using clutter_texture_set_repeat()
16380 // <repeat_x>: return location for the horizontal repeat
16381 // <repeat_y>: return location for the vertical repeat
16382 void get_repeat(/*out*/ int* repeat_x, /*out*/ int* repeat_y) {
16383 clutter_texture_get_repeat(&this, repeat_x, repeat_y);
16386 // Retrieves the value set with clutter_texture_set_sync_size()
16388 // preferred size of the underlying image data
16389 // RETURNS: %TRUE if the #ClutterTexture should have the same
16390 int get_sync_size() {
16391 return clutter_texture_get_sync_size(&this);
16394 // Updates a sub-region of the pixel data in a #ClutterTexture.
16395 // RETURNS: %TRUE on success, %FALSE on failure.
16396 // <data>: Image data in RGB type colorspace.
16397 // <has_alpha>: Set to TRUE if image data has an alpha channel.
16398 // <x>: X coordinate of upper left corner of region to update.
16399 // <y>: Y coordinate of upper left corner of region to update.
16400 // <width>: Width in pixels of region to update.
16401 // <height>: Height in pixels of region to update.
16402 // <rowstride>: Distance in bytes between row starts on source buffer.
16403 // <bpp>: bytes per pixel (Currently only 3 and 4 supported, depending on @has_alpha)
16404 // <flags>: #ClutterTextureFlags
16405 int set_area_from_rgb_data(ubyte* data, int has_alpha, int x, int y, int width, int height, int rowstride, int bpp, TextureFlags flags, GLib2.Error** error=null) {
16406 return clutter_texture_set_area_from_rgb_data(&this, data, has_alpha, x, y, width, height, rowstride, bpp, flags, error);
16409 // Replaces the underlying Cogl material drawn by this actor with
16410 // @cogl_material. A reference to the material is taken so if the
16411 // handle is no longer needed it should be deref'd with
16412 // cogl_handle_unref. Texture data is attached to the material so
16413 // calling this function also replaces the Cogl
16414 // texture. #ClutterTexture requires that the material have a texture
16415 // layer so you should set one on the material before calling this
16416 // function.
16417 // <cogl_material>: A CoglHandle for a material
16418 void set_cogl_material(Cogl.Handle cogl_material) {
16419 clutter_texture_set_cogl_material(&this, cogl_material);
16422 // Replaces the underlying COGL texture drawn by this actor with
16423 // @cogl_tex. A reference to the texture is taken so if the handle is
16424 // no longer needed it should be deref'd with cogl_handle_unref.
16425 // <cogl_tex>: A CoglHandle for a texture
16426 void set_cogl_texture(Cogl.Handle cogl_tex) {
16427 clutter_texture_set_cogl_texture(&this, cogl_tex);
16430 // Sets the filter quality when scaling a texture. The quality is an
16431 // enumeration currently the following values are supported:
16432 // %CLUTTER_TEXTURE_QUALITY_LOW which is fast but only uses nearest neighbour
16433 // interpolation. %CLUTTER_TEXTURE_QUALITY_MEDIUM which is computationally a
16434 // bit more expensive (bilinear interpolation), and
16435 // %CLUTTER_TEXTURE_QUALITY_HIGH which uses extra texture memory resources to
16436 // improve scaled down rendering as well (by using mipmaps). The default value
16437 // is %CLUTTER_TEXTURE_QUALITY_MEDIUM.
16438 // <filter_quality>: new filter quality value
16439 void set_filter_quality(TextureQuality filter_quality) {
16440 clutter_texture_set_filter_quality(&this, filter_quality);
16443 // Sets the #ClutterTexture image data from an image file. In case of
16444 // failure, %FALSE is returned and @error is set.
16446 // If #ClutterTexture:load-async is set to %TRUE, this function
16447 // will return as soon as possible, and the actual image loading
16448 // from disk will be performed asynchronously. #ClutterTexture::size-change
16449 // will be emitten when the size of the texture is available and
16450 // #ClutterTexture::load-finished will be emitted when the image has been
16451 // loaded or if an error occurred.
16452 // RETURNS: %TRUE if the image was successfully loaded and set
16453 // <filename>: The filename of the image in GLib file name encoding
16454 int set_from_file(char* filename, GLib2.Error** error=null) {
16455 return clutter_texture_set_from_file(&this, filename, error);
16458 // Sets #ClutterTexture image data.
16459 // RETURNS: %TRUE on success, %FALSE on failure.
16460 // <data>: Image data in RGBA type colorspace.
16461 // <has_alpha>: Set to TRUE if image data has an alpha channel.
16462 // <width>: Width in pixels of image data.
16463 // <height>: Height in pixels of image data
16464 // <rowstride>: Distance in bytes between row starts.
16465 // <bpp>: bytes per pixel (Currently only 3 and 4 supported, depending on @has_alpha)
16466 // <flags>: #ClutterTextureFlags
16467 int set_from_rgb_data(ubyte* data, int has_alpha, int width, int height, int rowstride, int bpp, TextureFlags flags, GLib2.Error** error=null) {
16468 return clutter_texture_set_from_rgb_data(&this, data, has_alpha, width, height, rowstride, bpp, flags, error);
16471 // Sets a #ClutterTexture from YUV image data. If an error occurred,
16472 // %FALSE is returned and @error is set.
16473 // RETURNS: %TRUE if the texture was successfully updated
16474 // <data>: Image data in YUV type colorspace.
16475 // <width>: Width in pixels of image data.
16476 // <height>: Height in pixels of image data
16477 // <flags>: #ClutterTextureFlags
16478 int set_from_yuv_data(ubyte* data, int width, int height, TextureFlags flags, GLib2.Error** error=null) {
16479 return clutter_texture_set_from_yuv_data(&this, data, width, height, flags, error);
16482 // Sets whether @texture should have a preferred size maintaining
16483 // the aspect ratio of the underlying image
16484 // <keep_aspect>: %TRUE to maintain aspect ratio
16485 void set_keep_aspect_ratio(int keep_aspect) {
16486 clutter_texture_set_keep_aspect_ratio(&this, keep_aspect);
16489 // Sets whether @texture should use a worker thread to load the data
16490 // from disk asynchronously. Setting @load_async to %TRUE will make
16491 // clutter_texture_set_from_file() return immediately.
16493 // See the #ClutterTexture:load-async property documentation, and
16494 // clutter_texture_set_load_data_async().
16495 // <load_async>: %TRUE if the texture should asynchronously load data from a filename
16496 void set_load_async(int load_async) {
16497 clutter_texture_set_load_async(&this, load_async);
16500 // Sets whether @texture should use a worker thread to load the data
16501 // from disk asynchronously. Setting @load_async to %TRUE will make
16502 // clutter_texture_set_from_file() block until the #ClutterTexture has
16503 // determined the width and height of the image data.
16505 // See the #ClutterTexture:load-async property documentation, and
16506 // clutter_texture_set_load_async().
16507 // <load_async>: %TRUE if the texture should asynchronously load data from a filename
16508 void set_load_data_async(int load_async) {
16509 clutter_texture_set_load_data_async(&this, load_async);
16512 // Sets whether @texture should have it's shape defined by the alpha
16513 // channel when picking.
16515 // Be aware that this is a bit more costly than the default picking
16516 // due to the texture lookup, extra test against the alpha value and
16517 // the fact that it will also interrupt the batching of geometry done
16518 // internally.
16520 // Also there is currently no control over the threshold used to
16521 // determine what value of alpha is considered pickable, and so only
16522 // fully opaque parts of the texture will react to picking.
16523 // <pick_with_alpha>: %TRUE if the alpha channel should affect the picking shape
16524 void set_pick_with_alpha(int pick_with_alpha) {
16525 clutter_texture_set_pick_with_alpha(&this, pick_with_alpha);
16528 // Sets whether the @texture should repeat horizontally or
16529 // vertically when the actor size is bigger than the image size
16530 // <repeat_x>: %TRUE if the texture should repeat horizontally
16531 // <repeat_y>: %TRUE if the texture should repeat vertically
16532 void set_repeat(int repeat_x, int repeat_y) {
16533 clutter_texture_set_repeat(&this, repeat_x, repeat_y);
16536 // Sets whether @texture should have the same preferred size as the
16537 // underlying image data.
16538 // <sync_size>: %TRUE if the texture should have the same size of the underlying image data
16539 void set_sync_size(int sync_size) {
16540 clutter_texture_set_sync_size(&this, sync_size);
16543 // The ::load-finished signal is emitted when a texture load has
16544 // completed. If there was an error during loading, @error will
16545 // be set, otherwise it will be %NULL
16546 // <error>: A set error, or %NULL
16547 extern (C) alias static void function (Texture* this_, GLib2.Error* error, void* user_data=null) signal_load_finished;
16549 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
16550 return super_.signal_connect!name(cb, data, cf);
16553 ulong signal_connect(string name:"load-finished", CB:signal_load_finished)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
16554 return signal_connect_data(&this, cast(char*)"load-finished",
16555 cast(GObject2.Callback)cb, data, null, cf);
16558 // The ::pixbuf-change signal is emitted each time the pixbuf
16559 // used by @texture changes.
16560 extern (C) alias static void function (Texture* this_, void* user_data=null) signal_pixbuf_change;
16561 ulong signal_connect(string name:"pixbuf-change", CB:signal_pixbuf_change)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
16562 return signal_connect_data(&this, cast(char*)"pixbuf-change",
16563 cast(GObject2.Callback)cb, data, null, cf);
16566 // The ::size-change signal is emitted each time the size of the
16567 // pixbuf used by @texture changes. The new size is given as
16568 // argument to the callback.
16569 // <width>: the width of the new texture
16570 // <height>: the height of the new texture
16571 extern (C) alias static void function (Texture* this_, int width, int height, void* user_data=null) signal_size_change;
16572 ulong signal_connect(string name:"size-change", CB:signal_size_change)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
16573 return signal_connect_data(&this, cast(char*)"size-change",
16574 cast(GObject2.Callback)cb, data, null, cf);
16578 // The #ClutterTextureClass structure contains only private data
16579 struct TextureClass /* Version 0.1 */ {
16580 private ActorClass parent_class;
16581 extern (C) void function (Texture* texture, int width, int height) size_change;
16582 extern (C) void function (Texture* texture) pixbuf_change;
16583 extern (C) void function (Texture* texture, GLib2.Error* error) load_finished;
16584 extern (C) void function () _clutter_texture1;
16585 extern (C) void function () _clutter_texture2;
16586 extern (C) void function () _clutter_texture3;
16587 extern (C) void function () _clutter_texture4;
16588 extern (C) void function () _clutter_texture5;
16591 // Error enumeration for #ClutterTexture
16592 enum TextureError /* Version 0.4 */ {
16593 OUT_OF_MEMORY = 0,
16594 NO_YUV = 1,
16595 BAD_FORMAT = 2
16598 // Flags for clutter_texture_set_from_rgb_data() and
16599 // clutter_texture_set_from_yuv_data().
16600 enum TextureFlags /* Version 0.4 */ {
16601 NONE = 0,
16602 RGB_FLAG_BGR = 2,
16603 RGB_FLAG_PREMULT = 4,
16604 YUV_FLAG_YUV2 = 8
16606 struct TexturePrivate {
16609 // Enumaration controlling the texture quality.
16610 enum TextureQuality /* Version 0.8 */ {
16611 LOW = 0,
16612 MEDIUM = 1,
16613 HIGH = 2
16615 enum int Thai_baht = 3551;
16616 enum int Thai_bobaimai = 3514;
16617 enum int Thai_chochan = 3496;
16618 enum int Thai_chochang = 3498;
16619 enum int Thai_choching = 3497;
16620 enum int Thai_chochoe = 3500;
16621 enum int Thai_dochada = 3502;
16622 enum int Thai_dodek = 3508;
16623 enum int Thai_fofa = 3517;
16624 enum int Thai_fofan = 3519;
16625 enum int Thai_hohip = 3531;
16626 enum int Thai_honokhuk = 3534;
16627 enum int Thai_khokhai = 3490;
16628 enum int Thai_khokhon = 3493;
16629 enum int Thai_khokhuat = 3491;
16630 enum int Thai_khokhwai = 3492;
16631 enum int Thai_khorakhang = 3494;
16632 enum int Thai_kokai = 3489;
16633 enum int Thai_lakkhangyao = 3557;
16634 enum int Thai_lekchet = 3575;
16635 enum int Thai_lekha = 3573;
16636 enum int Thai_lekhok = 3574;
16637 enum int Thai_lekkao = 3577;
16638 enum int Thai_leknung = 3569;
16639 enum int Thai_lekpaet = 3576;
16640 enum int Thai_leksam = 3571;
16641 enum int Thai_leksi = 3572;
16642 enum int Thai_leksong = 3570;
16643 enum int Thai_leksun = 3568;
16644 enum int Thai_lochula = 3532;
16645 enum int Thai_loling = 3525;
16646 enum int Thai_lu = 3526;
16647 enum int Thai_maichattawa = 3563;
16648 enum int Thai_maiek = 3560;
16649 enum int Thai_maihanakat = 3537;
16650 enum int Thai_maihanakat_maitho = 3550;
16651 enum int Thai_maitaikhu = 3559;
16652 enum int Thai_maitho = 3561;
16653 enum int Thai_maitri = 3562;
16654 enum int Thai_maiyamok = 3558;
16655 enum int Thai_moma = 3521;
16656 enum int Thai_ngongu = 3495;
16657 enum int Thai_nikhahit = 3565;
16658 enum int Thai_nonen = 3507;
16659 enum int Thai_nonu = 3513;
16660 enum int Thai_oang = 3533;
16661 enum int Thai_paiyannoi = 3535;
16662 enum int Thai_phinthu = 3546;
16663 enum int Thai_phophan = 3518;
16664 enum int Thai_phophung = 3516;
16665 enum int Thai_phosamphao = 3520;
16666 enum int Thai_popla = 3515;
16667 enum int Thai_rorua = 3523;
16668 enum int Thai_ru = 3524;
16669 enum int Thai_saraa = 3536;
16670 enum int Thai_saraaa = 3538;
16671 enum int Thai_saraae = 3553;
16672 enum int Thai_saraaimaimalai = 3556;
16673 enum int Thai_saraaimaimuan = 3555;
16674 enum int Thai_saraam = 3539;
16675 enum int Thai_sarae = 3552;
16676 enum int Thai_sarai = 3540;
16677 enum int Thai_saraii = 3541;
16678 enum int Thai_sarao = 3554;
16679 enum int Thai_sarau = 3544;
16680 enum int Thai_saraue = 3542;
16681 enum int Thai_sarauee = 3543;
16682 enum int Thai_sarauu = 3545;
16683 enum int Thai_sorusi = 3529;
16684 enum int Thai_sosala = 3528;
16685 enum int Thai_soso = 3499;
16686 enum int Thai_sosua = 3530;
16687 enum int Thai_thanthakhat = 3564;
16688 enum int Thai_thonangmontho = 3505;
16689 enum int Thai_thophuthao = 3506;
16690 enum int Thai_thothahan = 3511;
16691 enum int Thai_thothan = 3504;
16692 enum int Thai_thothong = 3512;
16693 enum int Thai_thothung = 3510;
16694 enum int Thai_topatak = 3503;
16695 enum int Thai_totao = 3509;
16696 enum int Thai_wowaen = 3527;
16697 enum int Thai_yoyak = 3522;
16698 enum int Thai_yoying = 3501;
16699 enum int Thorn = 222;
16700 enum int Time = 269025183;
16702 // The #ClutterTimeline structure contains only private data
16703 // and should be accessed using the provided API
16704 struct Timeline /* : GObject.Object */ /* Version 0.2 */ {
16705 alias parent this;
16706 alias parent super_;
16707 alias parent object;
16708 GObject2.Object parent;
16709 private TimelinePrivate* priv;
16712 // Creates a new #ClutterTimeline with a duration of @msecs.
16714 // g_object_unref() when done using it
16715 // RETURNS: the newly created #ClutterTimeline instance. Use
16716 // <msecs>: Duration of the timeline in milliseconds
16717 static Timeline* /*new*/ new_(uint msecs) {
16718 return clutter_timeline_new(msecs);
16721 // Adds a named marker that will be hit when the timeline has been
16722 // running for @msecs milliseconds. Markers are unique string
16723 // identifiers for a given time. Once @timeline reaches
16724 // @msecs, it will emit a ::marker-reached signal for each marker
16725 // attached to that time.
16727 // A marker can be removed with clutter_timeline_remove_marker(). The
16728 // timeline can be advanced to a marker using
16729 // clutter_timeline_advance_to_marker().
16730 // <marker_name>: the unique name for this marker
16731 // <msecs>: position of the marker in milliseconds
16732 void add_marker_at_time(char* marker_name, uint msecs) {
16733 clutter_timeline_add_marker_at_time(&this, marker_name, msecs);
16736 // Advance timeline to the requested point. The point is given as a
16737 // time in milliseconds since the timeline started.
16739 // <note><para>The @timeline will not emit the #ClutterTimeline::new-frame
16740 // signal for the given time. The first ::new-frame signal after the call to
16741 // clutter_timeline_advance() will be emit the skipped markers.
16742 // </para></note>
16743 // <msecs>: Time to advance to
16744 void advance(uint msecs) {
16745 clutter_timeline_advance(&this, msecs);
16748 // Advances @timeline to the time of the given @marker_name.
16750 // <note><para>Like clutter_timeline_advance(), this function will not
16751 // emit the #ClutterTimeline::new-frame for the time where @marker_name
16752 // is set, nor it will emit #ClutterTimeline::marker-reached for
16753 // @marker_name.</para></note>
16754 // <marker_name>: the name of the marker
16755 void advance_to_marker(char* marker_name) {
16756 clutter_timeline_advance_to_marker(&this, marker_name);
16759 // Create a new #ClutterTimeline instance which has property values
16760 // matching that of supplied timeline. The cloned timeline will not
16761 // be started and will not be positioned to the current position of
16763 // from @timeline
16764 // RETURNS: a new #ClutterTimeline, cloned
16765 Timeline* /*new*/ clone() {
16766 return clutter_timeline_clone(&this);
16769 // Retrieves the value set by clutter_timeline_set_auto_reverse().
16771 // %FALSE otherwise
16772 // RETURNS: %TRUE if the timeline should automatically reverse, and
16773 int get_auto_reverse() {
16774 return clutter_timeline_get_auto_reverse(&this);
16777 // Retrieves the delay set using clutter_timeline_set_delay().
16778 // RETURNS: the delay in milliseconds.
16779 uint get_delay() {
16780 return clutter_timeline_get_delay(&this);
16783 // Retrieves the amount of time elapsed since the last
16784 // ClutterTimeline::new-frame signal.
16786 // This function is only useful inside handlers for the ::new-frame
16787 // signal, and its behaviour is undefined if the timeline is not
16788 // playing.
16790 // last frame
16791 // RETURNS: the amount of time in milliseconds elapsed since the
16792 uint get_delta() {
16793 return clutter_timeline_get_delta(&this);
16796 // Retrieves the direction of the timeline set with
16797 // clutter_timeline_set_direction().
16798 // RETURNS: the direction of the timeline
16799 TimelineDirection get_direction() {
16800 return clutter_timeline_get_direction(&this);
16803 // Retrieves the duration of a #ClutterTimeline in milliseconds.
16804 // See clutter_timeline_set_duration().
16805 // RETURNS: the duration of the timeline, in milliseconds.
16806 uint get_duration() {
16807 return clutter_timeline_get_duration(&this);
16810 // Request the current time position of the timeline.
16811 // RETURNS: current elapsed time in milliseconds.
16812 uint get_elapsed_time() {
16813 return clutter_timeline_get_elapsed_time(&this);
16816 // Gets whether @timeline is looping
16817 // RETURNS: %TRUE if the timeline is looping
16818 int get_loop() {
16819 return clutter_timeline_get_loop(&this);
16822 // The position of the timeline in a [0, 1] interval.
16823 // RETURNS: the position of the timeline.
16824 double get_progress() {
16825 return clutter_timeline_get_progress(&this);
16828 // Checks whether @timeline has a marker set with the given name.
16829 // RETURNS: %TRUE if the marker was found
16830 // <marker_name>: the name of the marker
16831 int has_marker(char* marker_name) {
16832 return clutter_timeline_has_marker(&this, marker_name);
16835 // Queries state of a #ClutterTimeline.
16836 // RETURNS: %TRUE if timeline is currently playing
16837 int is_playing() {
16838 return clutter_timeline_is_playing(&this);
16841 // Retrieves the list of markers at time @msecs. If @msecs is a
16842 // negative integer, all the markers attached to @timeline will be
16843 // returned.
16845 // a newly allocated, %NULL terminated string array containing the names
16846 // of the markers. Use g_strfreev() when done.
16847 // <msecs>: the time to check, or -1
16848 // <n_markers>: the number of markers returned
16849 char** /*new*/ list_markers(int msecs, /*out*/ size_t* n_markers) {
16850 return clutter_timeline_list_markers(&this, msecs, n_markers);
16852 // Pauses the #ClutterTimeline on current frame
16853 void pause() {
16854 clutter_timeline_pause(&this);
16857 // Removes @marker_name, if found, from @timeline.
16858 // <marker_name>: the name of the marker to remove
16859 void remove_marker(char* marker_name) {
16860 clutter_timeline_remove_marker(&this, marker_name);
16863 // Rewinds #ClutterTimeline to the first frame if its direction is
16864 // %CLUTTER_TIMELINE_FORWARD and the last frame if it is
16865 // %CLUTTER_TIMELINE_BACKWARD.
16866 void rewind() {
16867 clutter_timeline_rewind(&this);
16870 // Sets whether @timeline should reverse the direction after the
16871 // emission of the #ClutterTimeline::completed signal.
16873 // Setting the #ClutterTimeline:auto-reverse property to %TRUE is the
16874 // equivalent of connecting a callback to the #ClutterTimeline::completed
16875 // signal and changing the direction of the timeline from that callback;
16876 // for instance, this code:
16878 // |[
16879 // static void
16880 // reverse_timeline (ClutterTimeline *timeline)
16881 // {
16882 // ClutterTimelineDirection dir = clutter_timeline_get_direction (timeline);
16884 // if (dir == CLUTTER_TIMELINE_FORWARD)
16885 // dir = CLUTTER_TIMELINE_BACKWARD;
16886 // else
16887 // dir = CLUTTER_TIMELINE_FORWARD;
16889 // clutter_timeline_set_direction (timeline, dir);
16890 // }
16891 // ...
16892 // timeline = clutter_timeline_new (1000);
16893 // clutter_timeline_set_loop (timeline);
16894 // g_signal_connect (timeline, "completed",
16895 // G_CALLBACK (reverse_timeline),
16896 // NULL);
16897 // ]|
16899 // can be effectively replaced by:
16901 // |[
16902 // timeline = clutter_timeline_new (1000);
16903 // clutter_timeline_set_loop (timeline);
16904 // clutter_timeline_set_auto_reverse (timeline);
16905 // ]|
16906 // <reverse>: %TRUE if the @timeline should reverse the direction
16907 void set_auto_reverse(int reverse) {
16908 clutter_timeline_set_auto_reverse(&this, reverse);
16911 // Sets the delay, in milliseconds, before @timeline should start.
16912 // <msecs>: delay in milliseconds
16913 void set_delay(uint msecs) {
16914 clutter_timeline_set_delay(&this, msecs);
16917 // Sets the direction of @timeline, either %CLUTTER_TIMELINE_FORWARD or
16918 // %CLUTTER_TIMELINE_BACKWARD.
16919 // <direction>: the direction of the timeline
16920 void set_direction(TimelineDirection direction) {
16921 clutter_timeline_set_direction(&this, direction);
16924 // Sets the duration of the timeline, in milliseconds. The speed
16925 // of the timeline depends on the ClutterTimeline:fps setting.
16926 // <msecs>: duration of the timeline in milliseconds
16927 void set_duration(uint msecs) {
16928 clutter_timeline_set_duration(&this, msecs);
16931 // Sets whether @timeline should loop.
16932 // <loop>: %TRUE for enable looping
16933 void set_loop(int loop) {
16934 clutter_timeline_set_loop(&this, loop);
16937 // Advance timeline by the requested time in milliseconds
16938 // <msecs>: Amount of time to skip
16939 void skip(uint msecs) {
16940 clutter_timeline_skip(&this, msecs);
16942 // Starts the #ClutterTimeline playing.
16943 void start() {
16944 clutter_timeline_start(&this);
16946 // Stops the #ClutterTimeline and moves to frame 0
16947 void stop() {
16948 clutter_timeline_stop(&this);
16951 // The ::completed signal is emitted when the timeline reaches the
16952 // number of frames specified by the ClutterTimeline:num-frames property.
16953 extern (C) alias static void function (Timeline* this_, void* user_data=null) signal_completed;
16955 ulong signal_connect(string name, CB)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
16956 return super_.signal_connect!name(cb, data, cf);
16959 ulong signal_connect(string name:"completed", CB:signal_completed)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
16960 return signal_connect_data(&this, cast(char*)"completed",
16961 cast(GObject2.Callback)cb, data, null, cf);
16964 // The ::marker-reached signal is emitted each time a timeline
16965 // reaches a marker set with
16966 // clutter_timeline_add_marker_at_time(). This signal is detailed
16967 // with the name of the marker as well, so it is possible to connect
16968 // a callback to the ::marker-reached signal for a specific marker
16969 // with:
16971 // <informalexample><programlisting>
16972 // clutter_timeline_add_marker_at_time (timeline, "foo", 500);
16973 // clutter_timeline_add_marker_at_time (timeline, "bar", 750);
16975 // g_signal_connect (timeline, "marker-reached",
16976 // G_CALLBACK (each_marker_reached), NULL);
16977 // g_signal_connect (timeline, "marker-reached::foo",
16978 // G_CALLBACK (foo_marker_reached), NULL);
16979 // g_signal_connect (timeline, "marker-reached::bar",
16980 // G_CALLBACK (bar_marker_reached), NULL);
16981 // </programlisting></informalexample>
16983 // In the example, the first callback will be invoked for both
16984 // the "foo" and "bar" marker, while the second and third callbacks
16985 // will be invoked for the "foo" or "bar" markers, respectively.
16986 // <marker_name>: the name of the marker reached
16987 // <msecs>: the elapsed time
16988 extern (C) alias static void function (Timeline* this_, char* marker_name, int msecs, void* user_data=null) signal_marker_reached;
16989 ulong signal_connect(string name:"marker-reached", CB:signal_marker_reached)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
16990 return signal_connect_data(&this, cast(char*)"marker-reached",
16991 cast(GObject2.Callback)cb, data, null, cf);
16994 // The ::new-frame signal is emitted for each timeline running
16995 // timeline before a new frame is drawn to give animations a chance
16996 // to update the scene.
16997 // <msecs>: the elapsed time between 0 and duration
16998 extern (C) alias static void function (Timeline* this_, int msecs, void* user_data=null) signal_new_frame;
16999 ulong signal_connect(string name:"new-frame", CB:signal_new_frame)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
17000 return signal_connect_data(&this, cast(char*)"new-frame",
17001 cast(GObject2.Callback)cb, data, null, cf);
17003 // The ::paused signal is emitted when clutter_timeline_pause() is invoked.
17004 extern (C) alias static void function (Timeline* this_, void* user_data=null) signal_paused;
17005 ulong signal_connect(string name:"paused", CB:signal_paused)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
17006 return signal_connect_data(&this, cast(char*)"paused",
17007 cast(GObject2.Callback)cb, data, null, cf);
17010 // The ::started signal is emitted when the timeline starts its run.
17011 // This might be as soon as clutter_timeline_start() is invoked or
17012 // after the delay set in the ClutterTimeline:delay property has
17013 // expired.
17014 extern (C) alias static void function (Timeline* this_, void* user_data=null) signal_started;
17015 ulong signal_connect(string name:"started", CB:signal_started)(CB cb, void* data=null, ConnectFlags cf=cast(ConnectFlags)0) {
17016 return signal_connect_data(&this, cast(char*)"started",
17017 cast(GObject2.Callback)cb, data, null, cf);
17021 // The #ClutterTimelineClass structure contains only private data
17022 struct TimelineClass /* Version 0.2 */ {
17023 private GObject2.ObjectClass parent_class;
17024 extern (C) void function (Timeline* timeline) started;
17025 extern (C) void function (Timeline* timeline) completed;
17026 extern (C) void function (Timeline* timeline) paused;
17027 extern (C) void function (Timeline* timeline, int msecs) new_frame;
17028 extern (C) void function (Timeline* timeline, char* marker_name, int msecs) marker_reached;
17029 extern (C) void function () _clutter_timeline_1;
17030 extern (C) void function () _clutter_timeline_2;
17031 extern (C) void function () _clutter_timeline_3;
17032 extern (C) void function () _clutter_timeline_4;
17033 extern (C) void function () _clutter_timeline_5;
17036 // The direction of a #ClutterTimeline
17037 enum TimelineDirection /* Version 0.6 */ {
17038 FORWARD = 0,
17039 BACKWARD = 1
17041 struct TimelinePrivate {
17045 // <structname>ClutterTimeoutPool</structname> is an opaque structure
17046 // whose members cannot be directly accessed.
17047 struct TimeoutPool /* Version 0.6 */ {
17049 // Sets a function to be called at regular intervals, and puts it inside
17050 // the @pool. The function is repeatedly called until it returns %FALSE,
17051 // at which point the timeout is automatically destroyed and the function
17052 // won't be called again. If @notify is not %NULL, the @notify function
17053 // will be called. The first call to @func will be at the end of @interval.
17055 // Since Clutter 0.8 this will try to compensate for delays. For
17056 // example, if @func takes half the interval time to execute then the
17057 // function will be called again half the interval time after it
17058 // finished. Before version 0.8 it would not fire until a full
17059 // interval after the function completes so the delay between calls
17060 // would be @interval * 1.5. This function does not however try to
17061 // invoke the function multiple times to catch up missing frames if
17062 // @func takes more than @interval ms to execute.
17064 // Use clutter_timeout_pool_remove() to stop the timeout.
17065 // RETURNS: the ID (greater than 0) of the timeout inside the pool.
17066 // <fps>: the time between calls to the function, in frames per second
17067 // <func>: function to call
17068 // <data>: data to pass to the function, or %NULL
17069 // <notify>: function to call when the timeout is removed, or %NULL
17070 uint add(uint fps, GLib2.SourceFunc func, void* data, GLib2.DestroyNotify notify) {
17071 return clutter_timeout_pool_add(&this, fps, func, data, notify);
17074 // Removes a timeout function with @id_ from the timeout pool. The id
17075 // is the same returned when adding a function to the timeout pool with
17076 // clutter_timeout_pool_add().
17077 // <id_>: the id of the timeout to remove
17078 void remove(uint id_) {
17079 clutter_timeout_pool_remove(&this, id_);
17082 // Unintrospectable function: new() / clutter_timeout_pool_new()
17083 // Creates a new timeout pool source. A timeout pool should be used when
17084 // multiple timeout functions, running at the same priority, are needed and
17085 // the g_timeout_add() API might lead to starvation of the time slice of
17086 // the main loop. A timeout pool allocates a single time slice of the main
17087 // loop and runs every timeout function inside it. The timeout pool is
17088 // always sorted, so that the extraction of the next timeout function is
17089 // a constant time operation.
17091 // is owned by the GLib default context and will be automatically
17092 // destroyed when the context is destroyed. It is possible to force
17093 // the destruction of the timeout pool using g_source_destroy()
17094 // RETURNS: the newly created #ClutterTimeoutPool. The created pool
17095 // <priority>: the priority of the timeout pool. Typically this will be #G_PRIORITY_DEFAULT
17096 static TimeoutPool* new_(int priority) {
17097 return clutter_timeout_pool_new(priority);
17101 enum int ToDoList = 269025055;
17102 enum int Tools = 269025153;
17103 enum int TopMenu = 269025186;
17104 enum int TouchpadOff = 269025201;
17105 enum int TouchpadOn = 269025200;
17106 enum int TouchpadToggle = 269025193;
17107 enum int Touroku = 65323;
17108 enum int Travel = 269025154;
17109 enum int Tslash = 940;
17110 enum int U = 85;
17111 enum int UWB = 269025174;
17112 enum int Uacute = 218;
17113 enum int Ubelowdot = 16785124;
17114 enum int Ubreve = 733;
17115 enum int Ucircumflex = 219;
17116 enum int Udiaeresis = 220;
17117 enum int Udoubleacute = 475;
17118 enum int Ugrave = 217;
17119 enum int Uhook = 16785126;
17120 enum int Uhorn = 16777647;
17121 enum int Uhornacute = 16785128;
17122 enum int Uhornbelowdot = 16785136;
17123 enum int Uhorngrave = 16785130;
17124 enum int Uhornhook = 16785132;
17125 enum int Uhorntilde = 16785134;
17126 enum int Ukrainian_GHE_WITH_UPTURN = 1725;
17127 enum int Ukrainian_I = 1718;
17128 enum int Ukrainian_IE = 1716;
17129 enum int Ukrainian_YI = 1719;
17130 enum int Ukrainian_ghe_with_upturn = 1709;
17131 enum int Ukrainian_i = 1702;
17132 enum int Ukrainian_ie = 1700;
17133 enum int Ukrainian_yi = 1703;
17134 enum int Ukranian_I = 1718;
17135 enum int Ukranian_JE = 1716;
17136 enum int Ukranian_YI = 1719;
17137 enum int Ukranian_i = 1702;
17138 enum int Ukranian_je = 1700;
17139 enum int Ukranian_yi = 1703;
17140 enum int Umacron = 990;
17141 enum int Undo = 65381;
17142 enum int Ungrab = 269024800;
17144 // The type of unit in which a value is expressed
17146 // This enumeration might be expanded at later date
17147 enum UnitType /* Version 1.0 */ {
17148 PIXEL = 0,
17149 EM = 1,
17150 MM = 2,
17151 POINT = 3,
17152 CM = 4
17155 // An opaque structure, to be used to store sizing and positioning
17156 // values along with their unit.
17157 struct Units /* Version 1.0 */ {
17158 private UnitType unit_type;
17159 private float value, pixels;
17160 private uint pixels_set;
17161 private int serial, __padding_1;
17162 private long __padding_2;
17165 // Copies @units
17167 // #ClutterUnits structure. Use clutter_units_free() to free
17168 // the allocated resources
17169 // RETURNS: the newly created copy of a
17170 Units* /*new*/ copy() {
17171 return clutter_units_copy(&this);
17174 // Frees the resources allocated by @units
17176 // You should only call this function on a #ClutterUnits
17177 // created using clutter_units_copy()
17178 void free() {
17179 clutter_units_free(&this);
17182 // Stores a value in centimeters inside @units
17183 // <cm>: centimeters
17184 void from_cm(float cm) {
17185 clutter_units_from_cm(&this, cm);
17188 // Stores a value in em inside @units, using the default font
17189 // name as returned by clutter_backend_get_font_name()
17190 // <em>: em
17191 void from_em(float em) {
17192 clutter_units_from_em(&this, em);
17195 // Stores a value in em inside @units using @font_name
17196 // <font_name>: the font name and size
17197 // <em>: em
17198 void from_em_for_font(char* font_name, float em) {
17199 clutter_units_from_em_for_font(&this, font_name, em);
17202 // Stores a value in millimiters inside @units
17203 // <mm>: millimeters
17204 void from_mm(float mm) {
17205 clutter_units_from_mm(&this, mm);
17208 // Stores a value in pixels inside @units
17209 // <px>: pixels
17210 void from_pixels(int px) {
17211 clutter_units_from_pixels(&this, px);
17214 // Stores a value in typographic points inside @units
17215 // <pt>: typographic points
17216 void from_pt(float pt) {
17217 clutter_units_from_pt(&this, pt);
17220 // Parses a value and updates @units with it
17222 // A #ClutterUnits expressed in string should match:
17224 // |[
17225 // units: wsp* unit-value wsp* unit-name? wsp*
17226 // unit-value: number
17227 // unit-name: 'px' | 'pt' | 'mm' | 'em' | 'cm'
17228 // number: digit+
17229 // | digit* sep digit+
17230 // sep: '.' | ','
17231 // digit: '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
17232 // wsp: (#0x20 | #0x9 | #0xA | #0xB | #0xC | #0xD)+
17233 // ]|
17235 // For instance, these are valid strings:
17237 // |[
17238 // 10 px
17239 // 5.1 em
17240 // 24 pt
17241 // 12.6 mm
17242 // .3 cm
17243 // ]|
17245 // While these are not:
17247 // |[
17248 // 42 cats
17249 // omg!1!ponies
17250 // ]|
17252 // <note><para>If no unit is specified, pixels are assumed.</para></note>
17254 // and %FALSE otherwise
17255 // RETURNS: %TRUE if the string was successfully parsed,
17256 // <str>: the string to convert
17257 int from_string(char* str) {
17258 return clutter_units_from_string(&this, str);
17261 // Retrieves the unit type of the value stored inside @units
17262 // RETURNS: a unit type
17263 UnitType get_unit_type() {
17264 return clutter_units_get_unit_type(&this);
17267 // Retrieves the value stored inside @units
17268 // RETURNS: the value stored inside a #ClutterUnits
17269 float get_unit_value() {
17270 return clutter_units_get_unit_value(&this);
17273 // Converts a value in #ClutterUnits to pixels
17274 // RETURNS: the value in pixels
17275 float to_pixels() {
17276 return clutter_units_to_pixels(&this);
17279 // Converts @units into a string
17281 // See clutter_units_from_string() for the units syntax and for
17282 // examples of output
17284 // <note>Fractional values are truncated to the second decimal
17285 // position for em, mm and cm, and to the first decimal position for
17286 // typographic points. Pixels are integers.</note>
17288 // #ClutterUnits value. Use g_free() to free the string
17289 // RETURNS: a newly allocated string containing the encoded
17290 char* /*new*/ to_string() {
17291 return clutter_units_to_string(&this);
17295 enum int Uogonek = 985;
17296 enum int Up = 65362;
17297 enum int Uring = 473;
17298 enum int User1KB = 269025157;
17299 enum int User2KB = 269025158;
17300 enum int UserPB = 269025156;
17301 enum int Utilde = 989;
17302 enum int V = 86;
17303 enum double VERSION = 1.800000;
17304 enum int VERSION_HEX = 0;
17305 enum VERSION_S = "1.8.3";
17306 enum int VendorHome = 269025076;
17307 // Vertex of an actor in 3D space, expressed in pixels
17308 struct Vertex /* Version 0.4 */ {
17309 float x, y, z;
17312 // Creates a new #ClutterVertex for the point in 3D space
17313 // identified by the 3 coordinates @x, @y, @z
17315 // clutter_vertex_free() to free the resources
17316 // RETURNS: the newly allocate #ClutterVertex. Use
17317 // <x>: X coordinate
17318 // <y>: Y coordinate
17319 // <z>: Z coordinate
17320 static Vertex* /*new*/ new_(float x, float y, float z) {
17321 return clutter_vertex_new(x, y, z);
17324 // Copies @vertex
17326 // clutter_vertex_free() to free the allocated resources
17327 // RETURNS: a newly allocated copy of #ClutterVertex. Use
17328 Vertex* /*new*/ copy() {
17329 return clutter_vertex_copy(&this);
17332 // Compares @vertex_a and @vertex_b for equality
17333 // RETURNS: %TRUE if the passed #ClutterVertex are equal
17334 // <vertex_b>: a #ClutterVertex
17335 int equal(Vertex* vertex_b) {
17336 return clutter_vertex_equal(&this, vertex_b);
17338 // Frees a #ClutterVertex allocated using clutter_vertex_copy()
17339 void free() {
17340 clutter_vertex_free(&this);
17344 enum int Video = 269025159;
17345 enum int View = 269025185;
17346 enum int VoidSymbol = 16777215;
17347 enum int W = 87;
17348 enum int WINDOWING_GLX = 1;
17349 enum int WINDOWING_X11 = 1;
17350 enum int WLAN = 269025173;
17351 enum int WWW = 269025070;
17352 enum int Wacute = 16785026;
17353 enum int WakeUp = 269025067;
17354 enum int Wcircumflex = 16777588;
17355 enum int Wdiaeresis = 16785028;
17356 enum int WebCam = 269025167;
17357 enum int Wgrave = 16785024;
17358 enum int WheelButton = 269025160;
17359 enum int WindowClear = 269025109;
17360 enum int WonSign = 16785577;
17361 enum int Word = 269025161;
17362 enum int X = 88;
17363 enum X11FilterReturn {
17364 CONTINUE = 0,
17365 TRANSLATE = 1,
17366 REMOVE = 2
17368 enum X11XInputEventTypes {
17369 KEY_PRESS_EVENT = 0,
17370 KEY_RELEASE_EVENT = 1,
17371 BUTTON_PRESS_EVENT = 2,
17372 BUTTON_RELEASE_EVENT = 3,
17373 MOTION_NOTIFY_EVENT = 4,
17374 LAST_EVENT = 5
17376 enum int Xabovedot = 16785034;
17377 enum int Xfer = 269025162;
17378 enum int Y = 89;
17379 enum int Yacute = 221;
17380 enum int Ybelowdot = 16785140;
17381 enum int Ycircumflex = 16777590;
17382 enum int Ydiaeresis = 5054;
17383 enum int Yellow = 269025189;
17384 enum int Ygrave = 16785138;
17385 enum int Yhook = 16785142;
17386 enum int Ytilde = 16785144;
17387 enum int Z = 90;
17388 enum int Zabovedot = 431;
17389 enum int Zacute = 428;
17390 enum int Zcaron = 430;
17391 enum int Zen_Koho = 65341;
17392 enum int Zenkaku = 65320;
17393 enum int Zenkaku_Hankaku = 65322;
17394 enum int ZoomIn = 269025163;
17395 enum int ZoomOut = 269025164;
17396 enum int Zstroke = 16777653;
17397 enum int a = 97;
17398 enum int aacute = 225;
17399 enum int abelowdot = 16785057;
17400 enum int abovedot = 511;
17401 enum int abreve = 483;
17402 enum int abreveacute = 16785071;
17403 enum int abrevebelowdot = 16785079;
17404 enum int abrevegrave = 16785073;
17405 enum int abrevehook = 16785075;
17406 enum int abrevetilde = 16785077;
17407 enum int acircumflex = 226;
17408 enum int acircumflexacute = 16785061;
17409 enum int acircumflexbelowdot = 16785069;
17410 enum int acircumflexgrave = 16785063;
17411 enum int acircumflexhook = 16785065;
17412 enum int acircumflextilde = 16785067;
17413 enum int acute = 180;
17414 enum int adiaeresis = 228;
17415 enum int ae = 230;
17416 enum int agrave = 224;
17417 enum int ahook = 16785059;
17418 enum int amacron = 992;
17419 enum int ampersand = 38;
17420 enum int aogonek = 433;
17421 enum int apostrophe = 39;
17422 enum int approxeq = 16785992;
17423 enum int approximate = 2248;
17424 enum int aring = 229;
17425 enum int asciicircum = 94;
17426 enum int asciitilde = 126;
17427 enum int asterisk = 42;
17428 enum int at = 64;
17429 enum int atilde = 227;
17430 enum int b = 98;
17431 enum int babovedot = 16784899;
17432 enum int backslash = 92;
17433 enum int ballotcross = 2804;
17434 enum int bar = 124;
17435 static void base_init() {
17436 clutter_base_init();
17439 enum int because = 16785973;
17440 enum int blank = 2527;
17441 enum int botintegral = 2213;
17442 enum int botleftparens = 2220;
17443 enum int botleftsqbracket = 2216;
17444 enum int botleftsummation = 2226;
17445 enum int botrightparens = 2222;
17446 enum int botrightsqbracket = 2218;
17447 enum int botrightsummation = 2230;
17448 enum int bott = 2550;
17449 enum int botvertsummationconnector = 2228;
17450 enum int braceleft = 123;
17451 enum int braceright = 125;
17452 enum int bracketleft = 91;
17453 enum int bracketright = 93;
17454 enum int braille_blank = 16787456;
17455 enum int braille_dot_1 = 65521;
17456 enum int braille_dot_10 = 65530;
17457 enum int braille_dot_2 = 65522;
17458 enum int braille_dot_3 = 65523;
17459 enum int braille_dot_4 = 65524;
17460 enum int braille_dot_5 = 65525;
17461 enum int braille_dot_6 = 65526;
17462 enum int braille_dot_7 = 65527;
17463 enum int braille_dot_8 = 65528;
17464 enum int braille_dot_9 = 65529;
17465 enum int braille_dots_1 = 16787457;
17466 enum int braille_dots_12 = 16787459;
17467 enum int braille_dots_123 = 16787463;
17468 enum int braille_dots_1234 = 16787471;
17469 enum int braille_dots_12345 = 16787487;
17470 enum int braille_dots_123456 = 16787519;
17471 enum int braille_dots_1234567 = 16787583;
17472 enum int braille_dots_12345678 = 16787711;
17473 enum int braille_dots_1234568 = 16787647;
17474 enum int braille_dots_123457 = 16787551;
17475 enum int braille_dots_1234578 = 16787679;
17476 enum int braille_dots_123458 = 16787615;
17477 enum int braille_dots_12346 = 16787503;
17478 enum int braille_dots_123467 = 16787567;
17479 enum int braille_dots_1234678 = 16787695;
17480 enum int braille_dots_123468 = 16787631;
17481 enum int braille_dots_12347 = 16787535;
17482 enum int braille_dots_123478 = 16787663;
17483 enum int braille_dots_12348 = 16787599;
17484 enum int braille_dots_1235 = 16787479;
17485 enum int braille_dots_12356 = 16787511;
17486 enum int braille_dots_123567 = 16787575;
17487 enum int braille_dots_1235678 = 16787703;
17488 enum int braille_dots_123568 = 16787639;
17489 enum int braille_dots_12357 = 16787543;
17490 enum int braille_dots_123578 = 16787671;
17491 enum int braille_dots_12358 = 16787607;
17492 enum int braille_dots_1236 = 16787495;
17493 enum int braille_dots_12367 = 16787559;
17494 enum int braille_dots_123678 = 16787687;
17495 enum int braille_dots_12368 = 16787623;
17496 enum int braille_dots_1237 = 16787527;
17497 enum int braille_dots_12378 = 16787655;
17498 enum int braille_dots_1238 = 16787591;
17499 enum int braille_dots_124 = 16787467;
17500 enum int braille_dots_1245 = 16787483;
17501 enum int braille_dots_12456 = 16787515;
17502 enum int braille_dots_124567 = 16787579;
17503 enum int braille_dots_1245678 = 16787707;
17504 enum int braille_dots_124568 = 16787643;
17505 enum int braille_dots_12457 = 16787547;
17506 enum int braille_dots_124578 = 16787675;
17507 enum int braille_dots_12458 = 16787611;
17508 enum int braille_dots_1246 = 16787499;
17509 enum int braille_dots_12467 = 16787563;
17510 enum int braille_dots_124678 = 16787691;
17511 enum int braille_dots_12468 = 16787627;
17512 enum int braille_dots_1247 = 16787531;
17513 enum int braille_dots_12478 = 16787659;
17514 enum int braille_dots_1248 = 16787595;
17515 enum int braille_dots_125 = 16787475;
17516 enum int braille_dots_1256 = 16787507;
17517 enum int braille_dots_12567 = 16787571;
17518 enum int braille_dots_125678 = 16787699;
17519 enum int braille_dots_12568 = 16787635;
17520 enum int braille_dots_1257 = 16787539;
17521 enum int braille_dots_12578 = 16787667;
17522 enum int braille_dots_1258 = 16787603;
17523 enum int braille_dots_126 = 16787491;
17524 enum int braille_dots_1267 = 16787555;
17525 enum int braille_dots_12678 = 16787683;
17526 enum int braille_dots_1268 = 16787619;
17527 enum int braille_dots_127 = 16787523;
17528 enum int braille_dots_1278 = 16787651;
17529 enum int braille_dots_128 = 16787587;
17530 enum int braille_dots_13 = 16787461;
17531 enum int braille_dots_134 = 16787469;
17532 enum int braille_dots_1345 = 16787485;
17533 enum int braille_dots_13456 = 16787517;
17534 enum int braille_dots_134567 = 16787581;
17535 enum int braille_dots_1345678 = 16787709;
17536 enum int braille_dots_134568 = 16787645;
17537 enum int braille_dots_13457 = 16787549;
17538 enum int braille_dots_134578 = 16787677;
17539 enum int braille_dots_13458 = 16787613;
17540 enum int braille_dots_1346 = 16787501;
17541 enum int braille_dots_13467 = 16787565;
17542 enum int braille_dots_134678 = 16787693;
17543 enum int braille_dots_13468 = 16787629;
17544 enum int braille_dots_1347 = 16787533;
17545 enum int braille_dots_13478 = 16787661;
17546 enum int braille_dots_1348 = 16787597;
17547 enum int braille_dots_135 = 16787477;
17548 enum int braille_dots_1356 = 16787509;
17549 enum int braille_dots_13567 = 16787573;
17550 enum int braille_dots_135678 = 16787701;
17551 enum int braille_dots_13568 = 16787637;
17552 enum int braille_dots_1357 = 16787541;
17553 enum int braille_dots_13578 = 16787669;
17554 enum int braille_dots_1358 = 16787605;
17555 enum int braille_dots_136 = 16787493;
17556 enum int braille_dots_1367 = 16787557;
17557 enum int braille_dots_13678 = 16787685;
17558 enum int braille_dots_1368 = 16787621;
17559 enum int braille_dots_137 = 16787525;
17560 enum int braille_dots_1378 = 16787653;
17561 enum int braille_dots_138 = 16787589;
17562 enum int braille_dots_14 = 16787465;
17563 enum int braille_dots_145 = 16787481;
17564 enum int braille_dots_1456 = 16787513;
17565 enum int braille_dots_14567 = 16787577;
17566 enum int braille_dots_145678 = 16787705;
17567 enum int braille_dots_14568 = 16787641;
17568 enum int braille_dots_1457 = 16787545;
17569 enum int braille_dots_14578 = 16787673;
17570 enum int braille_dots_1458 = 16787609;
17571 enum int braille_dots_146 = 16787497;
17572 enum int braille_dots_1467 = 16787561;
17573 enum int braille_dots_14678 = 16787689;
17574 enum int braille_dots_1468 = 16787625;
17575 enum int braille_dots_147 = 16787529;
17576 enum int braille_dots_1478 = 16787657;
17577 enum int braille_dots_148 = 16787593;
17578 enum int braille_dots_15 = 16787473;
17579 enum int braille_dots_156 = 16787505;
17580 enum int braille_dots_1567 = 16787569;
17581 enum int braille_dots_15678 = 16787697;
17582 enum int braille_dots_1568 = 16787633;
17583 enum int braille_dots_157 = 16787537;
17584 enum int braille_dots_1578 = 16787665;
17585 enum int braille_dots_158 = 16787601;
17586 enum int braille_dots_16 = 16787489;
17587 enum int braille_dots_167 = 16787553;
17588 enum int braille_dots_1678 = 16787681;
17589 enum int braille_dots_168 = 16787617;
17590 enum int braille_dots_17 = 16787521;
17591 enum int braille_dots_178 = 16787649;
17592 enum int braille_dots_18 = 16787585;
17593 enum int braille_dots_2 = 16787458;
17594 enum int braille_dots_23 = 16787462;
17595 enum int braille_dots_234 = 16787470;
17596 enum int braille_dots_2345 = 16787486;
17597 enum int braille_dots_23456 = 16787518;
17598 enum int braille_dots_234567 = 16787582;
17599 enum int braille_dots_2345678 = 16787710;
17600 enum int braille_dots_234568 = 16787646;
17601 enum int braille_dots_23457 = 16787550;
17602 enum int braille_dots_234578 = 16787678;
17603 enum int braille_dots_23458 = 16787614;
17604 enum int braille_dots_2346 = 16787502;
17605 enum int braille_dots_23467 = 16787566;
17606 enum int braille_dots_234678 = 16787694;
17607 enum int braille_dots_23468 = 16787630;
17608 enum int braille_dots_2347 = 16787534;
17609 enum int braille_dots_23478 = 16787662;
17610 enum int braille_dots_2348 = 16787598;
17611 enum int braille_dots_235 = 16787478;
17612 enum int braille_dots_2356 = 16787510;
17613 enum int braille_dots_23567 = 16787574;
17614 enum int braille_dots_235678 = 16787702;
17615 enum int braille_dots_23568 = 16787638;
17616 enum int braille_dots_2357 = 16787542;
17617 enum int braille_dots_23578 = 16787670;
17618 enum int braille_dots_2358 = 16787606;
17619 enum int braille_dots_236 = 16787494;
17620 enum int braille_dots_2367 = 16787558;
17621 enum int braille_dots_23678 = 16787686;
17622 enum int braille_dots_2368 = 16787622;
17623 enum int braille_dots_237 = 16787526;
17624 enum int braille_dots_2378 = 16787654;
17625 enum int braille_dots_238 = 16787590;
17626 enum int braille_dots_24 = 16787466;
17627 enum int braille_dots_245 = 16787482;
17628 enum int braille_dots_2456 = 16787514;
17629 enum int braille_dots_24567 = 16787578;
17630 enum int braille_dots_245678 = 16787706;
17631 enum int braille_dots_24568 = 16787642;
17632 enum int braille_dots_2457 = 16787546;
17633 enum int braille_dots_24578 = 16787674;
17634 enum int braille_dots_2458 = 16787610;
17635 enum int braille_dots_246 = 16787498;
17636 enum int braille_dots_2467 = 16787562;
17637 enum int braille_dots_24678 = 16787690;
17638 enum int braille_dots_2468 = 16787626;
17639 enum int braille_dots_247 = 16787530;
17640 enum int braille_dots_2478 = 16787658;
17641 enum int braille_dots_248 = 16787594;
17642 enum int braille_dots_25 = 16787474;
17643 enum int braille_dots_256 = 16787506;
17644 enum int braille_dots_2567 = 16787570;
17645 enum int braille_dots_25678 = 16787698;
17646 enum int braille_dots_2568 = 16787634;
17647 enum int braille_dots_257 = 16787538;
17648 enum int braille_dots_2578 = 16787666;
17649 enum int braille_dots_258 = 16787602;
17650 enum int braille_dots_26 = 16787490;
17651 enum int braille_dots_267 = 16787554;
17652 enum int braille_dots_2678 = 16787682;
17653 enum int braille_dots_268 = 16787618;
17654 enum int braille_dots_27 = 16787522;
17655 enum int braille_dots_278 = 16787650;
17656 enum int braille_dots_28 = 16787586;
17657 enum int braille_dots_3 = 16787460;
17658 enum int braille_dots_34 = 16787468;
17659 enum int braille_dots_345 = 16787484;
17660 enum int braille_dots_3456 = 16787516;
17661 enum int braille_dots_34567 = 16787580;
17662 enum int braille_dots_345678 = 16787708;
17663 enum int braille_dots_34568 = 16787644;
17664 enum int braille_dots_3457 = 16787548;
17665 enum int braille_dots_34578 = 16787676;
17666 enum int braille_dots_3458 = 16787612;
17667 enum int braille_dots_346 = 16787500;
17668 enum int braille_dots_3467 = 16787564;
17669 enum int braille_dots_34678 = 16787692;
17670 enum int braille_dots_3468 = 16787628;
17671 enum int braille_dots_347 = 16787532;
17672 enum int braille_dots_3478 = 16787660;
17673 enum int braille_dots_348 = 16787596;
17674 enum int braille_dots_35 = 16787476;
17675 enum int braille_dots_356 = 16787508;
17676 enum int braille_dots_3567 = 16787572;
17677 enum int braille_dots_35678 = 16787700;
17678 enum int braille_dots_3568 = 16787636;
17679 enum int braille_dots_357 = 16787540;
17680 enum int braille_dots_3578 = 16787668;
17681 enum int braille_dots_358 = 16787604;
17682 enum int braille_dots_36 = 16787492;
17683 enum int braille_dots_367 = 16787556;
17684 enum int braille_dots_3678 = 16787684;
17685 enum int braille_dots_368 = 16787620;
17686 enum int braille_dots_37 = 16787524;
17687 enum int braille_dots_378 = 16787652;
17688 enum int braille_dots_38 = 16787588;
17689 enum int braille_dots_4 = 16787464;
17690 enum int braille_dots_45 = 16787480;
17691 enum int braille_dots_456 = 16787512;
17692 enum int braille_dots_4567 = 16787576;
17693 enum int braille_dots_45678 = 16787704;
17694 enum int braille_dots_4568 = 16787640;
17695 enum int braille_dots_457 = 16787544;
17696 enum int braille_dots_4578 = 16787672;
17697 enum int braille_dots_458 = 16787608;
17698 enum int braille_dots_46 = 16787496;
17699 enum int braille_dots_467 = 16787560;
17700 enum int braille_dots_4678 = 16787688;
17701 enum int braille_dots_468 = 16787624;
17702 enum int braille_dots_47 = 16787528;
17703 enum int braille_dots_478 = 16787656;
17704 enum int braille_dots_48 = 16787592;
17705 enum int braille_dots_5 = 16787472;
17706 enum int braille_dots_56 = 16787504;
17707 enum int braille_dots_567 = 16787568;
17708 enum int braille_dots_5678 = 16787696;
17709 enum int braille_dots_568 = 16787632;
17710 enum int braille_dots_57 = 16787536;
17711 enum int braille_dots_578 = 16787664;
17712 enum int braille_dots_58 = 16787600;
17713 enum int braille_dots_6 = 16787488;
17714 enum int braille_dots_67 = 16787552;
17715 enum int braille_dots_678 = 16787680;
17716 enum int braille_dots_68 = 16787616;
17717 enum int braille_dots_7 = 16787520;
17718 enum int braille_dots_78 = 16787648;
17719 enum int braille_dots_8 = 16787584;
17720 enum int breve = 418;
17721 enum int brokenbar = 166;
17722 enum int c = 99;
17723 enum int cabovedot = 741;
17724 enum int cacute = 486;
17726 // Utility function for setting the source color of @cr using
17727 // a #ClutterColor. This function is the equivalent of:
17729 // |[
17730 // cairo_set_source_rgba (cr,
17731 // color->red / 255.0,
17732 // color->green / 255.0,
17733 // color->blue / 255.0,
17734 // color->alpha / 255.0);
17735 // ]|
17736 // <cr>: a Cairo context
17737 // <color>: a #ClutterColor
17738 static void cairo_set_source_color(cairo.Context* cr, Color* color) {
17739 clutter_cairo_set_source_color(cr, color);
17742 enum int careof = 2744;
17743 enum int caret = 2812;
17744 enum int caron = 439;
17745 enum int ccaron = 488;
17746 enum int ccedilla = 231;
17747 enum int ccircumflex = 742;
17748 enum int cedilla = 184;
17749 enum int cent = 162;
17751 // Run-time version check, to check the version the Clutter library
17752 // that an application is currently linked against
17754 // This is the run-time equivalent of the compile-time %CLUTTER_CHECK_VERSION
17755 // pre-processor macro
17757 // greater than (@major, @minor, @micro), and %FALSE otherwise
17758 // RETURNS: %TRUE if the version of the Clutter library is
17759 // <major>: major version, like 1 in 1.2.3
17760 // <minor>: minor version, like 2 in 1.2.3
17761 // <micro>: micro version, like 3 in 1.2.3
17762 static int check_version(uint major, uint minor, uint micro) {
17763 return clutter_check_version(major, minor, micro);
17766 enum int checkerboard = 2529;
17767 enum int checkmark = 2803;
17768 enum int circle = 3023;
17770 // Clears the internal cache of glyphs used by the Pango
17771 // renderer. This will free up some memory and GL texture
17772 // resources. The cache will be automatically refilled as more text is
17773 // drawn.
17774 static void clear_glyph_cache() {
17775 clutter_clear_glyph_cache();
17778 enum int club = 2796;
17779 enum int colon = 58;
17781 // Compares two #ClutterColor<!-- -->s and checks if they are the same.
17783 // This function can be passed to g_hash_table_new() as the @key_equal_func
17784 // parameter, when using #ClutterColor<!-- -->s as keys in a #GHashTable.
17785 // RETURNS: %TRUE if the two colors are the same.
17786 // <v1>: a #ClutterColor
17787 // <v2>: a #ClutterColor
17788 static int color_equal(const(void)* v1, const(void)* v2) {
17789 return clutter_color_equal(v1, v2);
17793 // Retrieves a static color for the given @color name
17795 // Static colors are created by Clutter and are guaranteed to always be
17796 // available and valid
17798 // is owned by Clutter and it should never be modified or freed
17799 // RETURNS: a pointer to a static color; the returned pointer
17800 // <color>: the named global color
17801 static Color* color_get_static(StaticColor color) {
17802 return clutter_color_get_static(color);
17806 // Converts a #ClutterColor to a hash value.
17808 // This function can be passed to g_hash_table_new() as the @hash_func
17809 // parameter, when using #ClutterColor<!-- -->s as keys in a #GHashTable.
17810 // RETURNS: a hash value corresponding to the color
17811 // <v>: a #ClutterColor
17812 static uint color_hash(const(void)* v) {
17813 return clutter_color_hash(v);
17816 enum int comma = 44;
17818 // Looks up the #GParamSpec for a child property of @klass.
17820 // if no such property exist.
17821 // RETURNS: The #GParamSpec for the property or %NULL
17822 // <klass>: a #GObjectClass implementing the #ClutterContainer interface.
17823 // <property_name>: a property name.
17824 static GObject2.ParamSpec* container_class_find_child_property(GObject2.ObjectClass* klass, char* property_name) {
17825 return clutter_container_class_find_child_property(klass, property_name);
17829 // Returns an array of #GParamSpec for all child properties.
17831 // of #GParamSpec<!-- -->s which should be freed after use.
17832 // RETURNS: an array
17833 // <klass>: a #GObjectClass implementing the #ClutterContainer interface.
17834 // <n_properties>: return location for length of returned array.
17835 static GObject2.ParamSpec** /*new*/ container_class_list_child_properties(GObject2.ObjectClass* klass, /*out*/ uint* n_properties) {
17836 return clutter_container_class_list_child_properties(klass, n_properties);
17839 enum int containsas = 16785931;
17840 enum int copyright = 169;
17841 enum int cr = 2532;
17842 enum int crossinglines = 2542;
17843 enum int cuberoot = 16785947;
17844 enum int currency = 164;
17845 enum int cursor = 2815;
17846 enum int d = 100;
17847 enum int dabovedot = 16784907;
17848 enum int dagger = 2801;
17849 enum int dcaron = 495;
17850 enum int dead_A = 65153;
17851 enum int dead_E = 65155;
17852 enum int dead_I = 65157;
17853 enum int dead_O = 65159;
17854 enum int dead_U = 65161;
17855 enum int dead_a = 65152;
17856 enum int dead_abovecomma = 65124;
17857 enum int dead_abovedot = 65110;
17858 enum int dead_abovereversedcomma = 65125;
17859 enum int dead_abovering = 65112;
17860 enum int dead_acute = 65105;
17861 enum int dead_belowbreve = 65131;
17862 enum int dead_belowcircumflex = 65129;
17863 enum int dead_belowcomma = 65134;
17864 enum int dead_belowdiaeresis = 65132;
17865 enum int dead_belowdot = 65120;
17866 enum int dead_belowmacron = 65128;
17867 enum int dead_belowring = 65127;
17868 enum int dead_belowtilde = 65130;
17869 enum int dead_breve = 65109;
17870 enum int dead_capital_schwa = 65163;
17871 enum int dead_caron = 65114;
17872 enum int dead_cedilla = 65115;
17873 enum int dead_circumflex = 65106;
17874 enum int dead_currency = 65135;
17875 enum int dead_dasia = 65125;
17876 enum int dead_diaeresis = 65111;
17877 enum int dead_doubleacute = 65113;
17878 enum int dead_doublegrave = 65126;
17879 enum int dead_e = 65154;
17880 enum int dead_grave = 65104;
17881 enum int dead_hook = 65121;
17882 enum int dead_horn = 65122;
17883 enum int dead_i = 65156;
17884 enum int dead_invertedbreve = 65133;
17885 enum int dead_iota = 65117;
17886 enum int dead_macron = 65108;
17887 enum int dead_o = 65158;
17888 enum int dead_ogonek = 65116;
17889 enum int dead_perispomeni = 65107;
17890 enum int dead_psili = 65124;
17891 enum int dead_semivoiced_sound = 65119;
17892 enum int dead_small_schwa = 65162;
17893 enum int dead_stroke = 65123;
17894 enum int dead_tilde = 65107;
17895 enum int dead_u = 65160;
17896 enum int dead_voiced_sound = 65118;
17897 enum int decimalpoint = 2749;
17898 enum int degree = 176;
17899 enum int diaeresis = 168;
17900 enum int diamond = 2797;
17901 enum int digitspace = 2725;
17902 enum int dintegral = 16785964;
17903 enum int division = 247;
17905 // Processes an event.
17907 // The @event must be a valid #ClutterEvent and have a #ClutterStage
17908 // associated to it.
17910 // This function is only useful when embedding Clutter inside another
17911 // toolkit, and it should never be called by applications.
17912 // <event>: a #ClutterEvent.
17913 static void do_event(Event* event) {
17914 clutter_do_event(event);
17917 enum int dollar = 36;
17918 enum int doubbaselinedot = 2735;
17919 enum int doubleacute = 445;
17920 enum int doubledagger = 2802;
17921 enum int doublelowquotemark = 2814;
17922 enum int downarrow = 2302;
17923 enum int downcaret = 2984;
17924 enum int downshoe = 3030;
17925 enum int downstile = 3012;
17926 enum int downtack = 3010;
17927 enum int dstroke = 496;
17928 enum int e = 101;
17929 enum int eabovedot = 1004;
17930 enum int eacute = 233;
17931 enum int ebelowdot = 16785081;
17932 enum int ecaron = 492;
17933 enum int ecircumflex = 234;
17934 enum int ecircumflexacute = 16785087;
17935 enum int ecircumflexbelowdot = 16785095;
17936 enum int ecircumflexgrave = 16785089;
17937 enum int ecircumflexhook = 16785091;
17938 enum int ecircumflextilde = 16785093;
17939 enum int ediaeresis = 235;
17940 enum int egrave = 232;
17941 enum int ehook = 16785083;
17942 enum int eightsubscript = 16785544;
17943 enum int eightsuperior = 16785528;
17944 enum int elementof = 16785928;
17945 enum int ellipsis = 2734;
17946 enum int em3space = 2723;
17947 enum int em4space = 2724;
17948 enum int emacron = 954;
17949 enum int emdash = 2729;
17950 enum int emfilledcircle = 2782;
17951 enum int emfilledrect = 2783;
17952 enum int emopencircle = 2766;
17953 enum int emopenrectangle = 2767;
17954 enum int emptyset = 16785925;
17955 enum int emspace = 2721;
17956 enum int endash = 2730;
17957 enum int enfilledcircbullet = 2790;
17958 enum int enfilledsqbullet = 2791;
17959 enum int eng = 959;
17960 enum int enopencircbullet = 2784;
17961 enum int enopensquarebullet = 2785;
17962 enum int enspace = 2722;
17963 enum int eogonek = 490;
17964 enum int equal = 61;
17965 enum int eth = 240;
17966 enum int etilde = 16785085;
17968 // Pops an event off the event queue. Applications should not need to call
17969 // this.
17970 // RETURNS: A #ClutterEvent or NULL if queue empty
17971 static Event* /*new*/ event_get() {
17972 return clutter_event_get();
17976 // Returns a pointer to the first event from the event queue but
17977 // does not remove it.
17978 // RETURNS: A #ClutterEvent or NULL if queue empty.
17979 static Event* event_peek() {
17980 return clutter_event_peek();
17984 // Checks if events are pending in the event queue.
17985 // RETURNS: TRUE if there are pending events, FALSE otherwise.
17986 static int events_pending() {
17987 return clutter_events_pending();
17990 enum int exclam = 33;
17991 enum int exclamdown = 161;
17992 enum int f = 102;
17993 enum int fabovedot = 16784927;
17995 // Checks whether @feature is available. @feature can be a logical
17996 // OR of #ClutterFeatureFlags.
17997 // RETURNS: %TRUE if a feature is available
17998 // <feature>: a #ClutterFeatureFlags
17999 static int feature_available(FeatureFlags feature) {
18000 return clutter_feature_available(feature);
18004 // Returns all the supported features.
18005 // RETURNS: a logical OR of all the supported features.
18006 static FeatureFlags feature_get_all() {
18007 return clutter_feature_get_all();
18010 enum int femalesymbol = 2808;
18011 enum int ff = 2531;
18012 enum int figdash = 2747;
18013 enum int filledlefttribullet = 2780;
18014 enum int filledrectbullet = 2779;
18015 enum int filledrighttribullet = 2781;
18016 enum int filledtribulletdown = 2793;
18017 enum int filledtribulletup = 2792;
18018 enum int fiveeighths = 2757;
18019 enum int fivesixths = 2743;
18020 enum int fivesubscript = 16785541;
18021 enum int fivesuperior = 16785525;
18022 enum int fourfifths = 2741;
18023 enum int foursubscript = 16785540;
18024 enum int foursuperior = 16785524;
18025 enum int fourthroot = 16785948;
18027 // Unintrospectable function: frame_source_add() / clutter_frame_source_add()
18028 // Simple wrapper around clutter_frame_source_add_full().
18029 // RETURNS: the ID (greater than 0) of the event source.
18030 // <fps>: the number of times per second to call the function
18031 // <func>: function to call
18032 // <data>: data to pass to the function
18033 static uint frame_source_add(uint fps, GLib2.SourceFunc func, void* data) {
18034 return clutter_frame_source_add(fps, func, data);
18038 // Sets a function to be called at regular intervals with the given
18039 // priority. The function is called repeatedly until it returns
18040 // %FALSE, at which point the timeout is automatically destroyed and
18041 // the function will not be called again. The @notify function is
18042 // called when the timeout is destroyed. The first call to the
18043 // function will be at the end of the first @interval.
18045 // This function is similar to g_timeout_add_full() except that it
18046 // will try to compensate for delays. For example, if @func takes half
18047 // the interval time to execute then the function will be called again
18048 // half the interval time after it finished. In contrast
18049 // g_timeout_add_full() would not fire until a full interval after the
18050 // function completes so the delay between calls would be 1.0 / @fps *
18051 // 1.5. This function does not however try to invoke the function
18052 // multiple times to catch up missing frames if @func takes more than
18053 // @interval ms to execute.
18054 // RETURNS: the ID (greater than 0) of the event source.
18055 // <priority>: the priority of the frame source. Typically this will be in the range between %G_PRIORITY_DEFAULT and %G_PRIORITY_HIGH.
18056 // <fps>: the number of times per second to call the function
18057 // <func>: function to call
18058 // <data>: data to pass to the function
18059 // <notify>: function to call when the timeout source is removed
18060 static uint frame_source_add_full(int priority, uint fps, GLib2.SourceFunc func, void* data, GLib2.DestroyNotify notify) {
18061 return clutter_frame_source_add_full(priority, fps, func, data, notify);
18064 enum int function = 2294;
18065 enum int g = 103;
18066 enum int gabovedot = 757;
18067 enum int gbreve = 699;
18068 enum int gcaron = 16777703;
18069 enum int gcedilla = 955;
18070 enum int gcircumflex = 760;
18072 // Returns whether Clutter has accessibility support enabled. As
18073 // least, a value of TRUE means that there are a proper AtkUtil
18074 // implementation available
18075 // RETURNS: %TRUE if Clutter has accessibility support enabled
18076 static int get_accessibility_enabled() {
18077 return clutter_get_accessibility_enabled();
18081 // Retrieves the #ClutterActor with @id_.
18083 // The returned actor does not have its reference count increased.
18084 // RETURNS: the actor with the passed id or %NULL.
18085 // <id_>: a #ClutterActor unique id.
18086 static Actor* get_actor_by_gid(uint id_) {
18087 return clutter_get_actor_by_gid(id_);
18091 // If an event is currently being processed, return that event.
18092 // This function is intended to be used to access event state
18093 // that might not be exposed by higher-level widgets. For
18094 // example, to get the key modifier state from a Button 'clicked'
18095 // event.
18096 // RETURNS: The current ClutterEvent, or %NULL if none
18097 static Event* get_current_event() {
18098 return clutter_get_current_event();
18102 // Retrieves the timestamp of the last event, if there is an
18103 // event or if the event has a timestamp.
18104 // RETURNS: the event timestamp, or %CLUTTER_CURRENT_TIME
18105 static uint get_current_event_time() {
18106 return clutter_get_current_event_time();
18110 // Check if clutter has debugging turned on.
18111 // RETURNS: TRUE if debugging is turned on, FALSE otherwise.
18112 static int get_debug_enabled() {
18113 return clutter_get_debug_enabled();
18117 // Retrieves the default #ClutterBackend used by Clutter. The
18118 // #ClutterBackend holds backend-specific configuration options.
18120 // not ref or unref the returned object. Applications should rarely
18121 // need to use this.
18122 // RETURNS: the default backend. You should
18123 static Backend* get_default_backend() {
18124 return clutter_get_default_backend();
18128 // Retrieves the default frame rate. See clutter_set_default_frame_rate().
18129 // RETURNS: the default frame rate
18130 static uint get_default_frame_rate() {
18131 return clutter_get_default_frame_rate();
18135 // Retrieves the default direction for the text. The text direction is
18136 // determined by the locale and/or by the <varname>CLUTTER_TEXT_DIRECTION</varname>
18137 // environment variable.
18139 // The default text direction can be overridden on a per-actor basis by using
18140 // clutter_actor_set_text_direction().
18141 // RETURNS: the default text direction
18142 static TextDirection get_default_text_direction() {
18143 return clutter_get_default_text_direction();
18147 // Gets the current font flags for rendering text. See
18148 // clutter_set_font_flags().
18149 // RETURNS: The font flags
18150 static FontFlags get_font_flags() {
18151 return clutter_get_font_flags();
18155 // Retrieves the #PangoFontMap instance used by Clutter.
18156 // You can use the global font map object with the COGL
18157 // Pango API.
18159 // value is owned by Clutter and it should never be unreferenced.
18160 // RETURNS: the #PangoFontMap instance. The returned
18161 static Pango.FontMap* get_font_map() {
18162 return clutter_get_font_map();
18166 // Retrieves the #ClutterInputDevice from its @id_. This is a convenience
18167 // wrapper for clutter_device_manager_get_device() and it is functionally
18168 // equivalent to:
18170 // |[
18171 // ClutterDeviceManager *manager;
18172 // ClutterInputDevice *device;
18174 // manager = clutter_device_manager_get_default ();
18175 // device = clutter_device_manager_get_device (manager, id);
18176 // ]|
18177 // RETURNS: a #ClutterInputDevice, or %NULL
18178 // <id_>: the unique id for a device
18179 static InputDevice* get_input_device_for_id(int id_) {
18180 return clutter_get_input_device_for_id(id_);
18184 // Queries the current keyboard grab of clutter.
18185 // RETURNS: the actor currently holding the keyboard grab, or NULL if there is no grab.
18186 static Actor* get_keyboard_grab() {
18187 return clutter_get_keyboard_grab();
18191 // Gets whether the per-actor motion events are enabled.
18192 // RETURNS: %TRUE if the motion events are enabled
18193 static int get_motion_events_enabled() {
18194 return clutter_get_motion_events_enabled();
18198 // Unintrospectable function: get_option_group() / clutter_get_option_group()
18199 // Returns a #GOptionGroup for the command line arguments recognized
18200 // by Clutter. You should add this group to your #GOptionContext with
18201 // g_option_context_add_group(), if you are using g_option_context_parse()
18202 // to parse your commandline arguments.
18204 // Calling g_option_context_parse() with Clutter's #GOptionGroup will result
18205 // in Clutter's initialization. That is, the following code:
18207 // |[
18208 // g_option_context_set_main_group (context, clutter_get_option_group ());
18209 // res = g_option_context_parse (context, &amp;argc, &amp;argc, NULL);
18210 // ]|
18212 // is functionally equivalent to:
18214 // |[
18215 // clutter_init (&amp;argc, &amp;argv);
18216 // ]|
18218 // After g_option_context_parse() on a #GOptionContext containing the
18219 // Clutter #GOptionGroup has returned %TRUE, Clutter is guaranteed to be
18220 // initialized.
18222 // recognized by Clutter
18223 // RETURNS: a #GOptionGroup for the commandline arguments
18224 static GLib2.OptionGroup* /*new*/ get_option_group() {
18225 return clutter_get_option_group();
18229 // Unintrospectable function: get_option_group_without_init() / clutter_get_option_group_without_init()
18230 // Returns a #GOptionGroup for the command line arguments recognized
18231 // by Clutter. You should add this group to your #GOptionContext with
18232 // g_option_context_add_group(), if you are using g_option_context_parse()
18233 // to parse your commandline arguments.
18235 // Unlike clutter_get_option_group(), calling g_option_context_parse() with
18236 // the #GOptionGroup returned by this function requires a subsequent explicit
18237 // call to clutter_init(); use this function when needing to set foreign
18238 // display connection with clutter_x11_set_display(), or with
18239 // <function>gtk_clutter_init()</function>.
18241 // recognized by Clutter
18242 // RETURNS: a #GOptionGroup for the commandline arguments
18243 static GLib2.OptionGroup* /*new*/ get_option_group_without_init() {
18244 return clutter_get_option_group_without_init();
18248 // Queries the current pointer grab of clutter.
18249 // RETURNS: the actor currently holding the pointer grab, or NULL if there is no grab.
18250 static Actor* get_pointer_grab() {
18251 return clutter_get_pointer_grab();
18255 // Retrieves the Clutter script id, if any.
18257 // a UI definition file. The returned string is owned by the object and
18258 // should never be modified or freed.
18259 // RETURNS: the script id, or %NULL if @object was not defined inside
18260 // <gobject>: a #GObject
18261 static char* get_script_id(GObject2.Object* gobject) {
18262 return clutter_get_script_id(gobject);
18266 // Returns whether Clutter should print out the frames per second on the
18267 // console. You can enable this setting either using the
18268 // <literal>CLUTTER_SHOW_FPS</literal> environment variable or passing
18269 // the <literal>--clutter-show-fps</literal> command line argument. *
18270 // RETURNS: %TRUE if Clutter should show the FPS.
18271 static int get_show_fps() {
18272 return clutter_get_show_fps();
18276 // Returns the approximate number of microseconds passed since clutter was
18277 // intialised.
18278 // RETURNS: Number of microseconds since clutter_init() was called.
18279 static c_ulong get_timestamp() {
18280 return clutter_get_timestamp();
18284 // Grabs keyboard events, after the grab is done keyboard
18285 // events (#ClutterActor::key-press-event and #ClutterActor::key-release-event)
18286 // are delivered to this actor directly. The source set in the event will be
18287 // the actor that would have received the event if the keyboard grab was not
18288 // in effect.
18290 // Like pointer grabs, keyboard grabs should only be used as a last
18291 // resource.
18293 // See also clutter_stage_set_key_focus() and clutter_actor_grab_key_focus()
18294 // to perform a "soft" key grab and assign key focus to a specific actor.
18295 // <actor>: a #ClutterActor
18296 static void grab_keyboard(Actor* actor) {
18297 clutter_grab_keyboard(actor);
18301 // Grabs pointer events, after the grab is done all pointer related events
18302 // (press, motion, release, enter, leave and scroll) are delivered to this
18303 // actor directly without passing through both capture and bubble phases of
18304 // the event delivery chain. The source set in the event will be the actor
18305 // that would have received the event if the pointer grab was not in effect.
18307 // <note><para>Grabs completely override the entire event delivery chain
18308 // done by Clutter. Pointer grabs should only be used as a last resource;
18309 // using the #ClutterActor::captured-event signal should always be the
18310 // preferred way to intercept event delivery to reactive actors.</para></note>
18312 // If you wish to grab all the pointer events for a specific input device,
18313 // you should use clutter_grab_pointer_for_device().
18314 // <actor>: a #ClutterActor
18315 static void grab_pointer(Actor* actor) {
18316 clutter_grab_pointer(actor);
18320 // Grabs all the pointer events coming from the device @id for @actor.
18322 // If @id is -1 then this function is equivalent to clutter_grab_pointer().
18323 // <actor>: a #ClutterActor
18324 // <id_>: a device id, or -1
18325 static void grab_pointer_for_device(Actor* actor, int id_) {
18326 clutter_grab_pointer_for_device(actor, id_);
18329 enum int grave = 96;
18330 enum int greater = 62;
18331 enum int greaterthanequal = 2238;
18332 enum int guillemotleft = 171;
18333 enum int guillemotright = 187;
18334 enum int h = 104;
18335 enum int hairspace = 2728;
18336 enum int hcircumflex = 694;
18337 enum int heart = 2798;
18338 enum int hebrew_aleph = 3296;
18339 enum int hebrew_ayin = 3314;
18340 enum int hebrew_bet = 3297;
18341 enum int hebrew_beth = 3297;
18342 enum int hebrew_chet = 3303;
18343 enum int hebrew_dalet = 3299;
18344 enum int hebrew_daleth = 3299;
18345 enum int hebrew_doublelowline = 3295;
18346 enum int hebrew_finalkaph = 3306;
18347 enum int hebrew_finalmem = 3309;
18348 enum int hebrew_finalnun = 3311;
18349 enum int hebrew_finalpe = 3315;
18350 enum int hebrew_finalzade = 3317;
18351 enum int hebrew_finalzadi = 3317;
18352 enum int hebrew_gimel = 3298;
18353 enum int hebrew_gimmel = 3298;
18354 enum int hebrew_he = 3300;
18355 enum int hebrew_het = 3303;
18356 enum int hebrew_kaph = 3307;
18357 enum int hebrew_kuf = 3319;
18358 enum int hebrew_lamed = 3308;
18359 enum int hebrew_mem = 3310;
18360 enum int hebrew_nun = 3312;
18361 enum int hebrew_pe = 3316;
18362 enum int hebrew_qoph = 3319;
18363 enum int hebrew_resh = 3320;
18364 enum int hebrew_samech = 3313;
18365 enum int hebrew_samekh = 3313;
18366 enum int hebrew_shin = 3321;
18367 enum int hebrew_taf = 3322;
18368 enum int hebrew_taw = 3322;
18369 enum int hebrew_tet = 3304;
18370 enum int hebrew_teth = 3304;
18371 enum int hebrew_waw = 3301;
18372 enum int hebrew_yod = 3305;
18373 enum int hebrew_zade = 3318;
18374 enum int hebrew_zadi = 3318;
18375 enum int hebrew_zain = 3302;
18376 enum int hebrew_zayin = 3302;
18377 enum int hexagram = 2778;
18378 enum int horizconnector = 2211;
18379 enum int horizlinescan1 = 2543;
18380 enum int horizlinescan3 = 2544;
18381 enum int horizlinescan5 = 2545;
18382 enum int horizlinescan7 = 2546;
18383 enum int horizlinescan9 = 2547;
18384 enum int hstroke = 689;
18385 enum int ht = 2530;
18386 enum int hyphen = 173;
18387 enum int i = 105;
18388 enum int iTouch = 269025120;
18389 enum int iacute = 237;
18390 enum int ibelowdot = 16785099;
18391 enum int ibreve = 16777517;
18392 enum int icircumflex = 238;
18393 enum int identical = 2255;
18394 enum int idiaeresis = 239;
18395 enum int idotless = 697;
18396 enum int ifonlyif = 2253;
18397 enum int igrave = 236;
18398 enum int ihook = 16785097;
18399 enum int imacron = 1007;
18400 enum int implies = 2254;
18401 enum int includedin = 2266;
18402 enum int includes = 2267;
18403 enum int infinity = 2242;
18405 // Initialises everything needed to operate with Clutter and parses some
18406 // standard command line options; @argc and @argv are adjusted accordingly
18407 // so your own code will never see those standard arguments.
18409 // It is safe to call this function multiple times.
18411 // <note>This function will not abort in case of errors during
18412 // initialization; clutter_init() will print out the error message on
18413 // stderr, and will return an error code. It is up to the application
18414 // code to handle this case. If you need to display the error message
18415 // yourself, you can use clutter_init_with_args(), which takes a #GError
18416 // pointer.</note>
18417 // RETURNS: a #ClutterInitError value
18418 // <argc>: The number of arguments in @argv
18419 // <argv>: A pointer to an array of arguments.
18420 static InitError init(/*inout*/ int* argc, /*inout*/ char*** argv=null) {
18421 return clutter_init(argc, argv);
18424 static GLib2.Quark init_error_quark() {
18425 return clutter_init_error_quark();
18429 // This function does the same work as clutter_init(). Additionally,
18430 // it allows you to add your own command line options, and it
18431 // automatically generates nicely formatted <option>--help</option>
18432 // output. Note that your program will be terminated after writing
18433 // out the help output. Also note that, in case of error, the
18434 // error message will be placed inside @error instead of being
18435 // printed on the display.
18437 // initialised, or other values or #ClutterInitError in case of
18438 // error.
18439 // RETURNS: %CLUTTER_INIT_SUCCESS if Clutter has been successfully
18440 // <argc>: a pointer to the number of command line arguments
18441 // <argv>: a pointer to the array of command line arguments
18442 // <parameter_string>: a string which is displayed in the first line of <option>--help</option> output, after <literal><replaceable>programname</replaceable> [OPTION...]</literal>
18443 // <entries>: a %NULL terminated array of #GOptionEntry<!-- -->s describing the options of your program
18444 // <translation_domain>: a translation domain to use for translating the <option>--help</option> output for the options in @entries with gettext(), or %NULL
18445 static InitError init_with_args(/*inout*/ int* argc, /*inout*/ char*** argv, char* parameter_string, GLib2.OptionEntry* entries, char* translation_domain, GLib2.Error** error=null) {
18446 return clutter_init_with_args(argc, argv, parameter_string, entries, translation_domain, error);
18449 enum int integral = 2239;
18450 enum int intersection = 2268;
18451 enum int iogonek = 999;
18452 enum int itilde = 949;
18453 enum int j = 106;
18454 enum int jcircumflex = 700;
18455 enum int jot = 3018;
18456 enum int k = 107;
18457 enum int kana_A = 1201;
18458 enum int kana_CHI = 1217;
18459 enum int kana_E = 1204;
18460 enum int kana_FU = 1228;
18461 enum int kana_HA = 1226;
18462 enum int kana_HE = 1229;
18463 enum int kana_HI = 1227;
18464 enum int kana_HO = 1230;
18465 enum int kana_HU = 1228;
18466 enum int kana_I = 1202;
18467 enum int kana_KA = 1206;
18468 enum int kana_KE = 1209;
18469 enum int kana_KI = 1207;
18470 enum int kana_KO = 1210;
18471 enum int kana_KU = 1208;
18472 enum int kana_MA = 1231;
18473 enum int kana_ME = 1234;
18474 enum int kana_MI = 1232;
18475 enum int kana_MO = 1235;
18476 enum int kana_MU = 1233;
18477 enum int kana_N = 1245;
18478 enum int kana_NA = 1221;
18479 enum int kana_NE = 1224;
18480 enum int kana_NI = 1222;
18481 enum int kana_NO = 1225;
18482 enum int kana_NU = 1223;
18483 enum int kana_O = 1205;
18484 enum int kana_RA = 1239;
18485 enum int kana_RE = 1242;
18486 enum int kana_RI = 1240;
18487 enum int kana_RO = 1243;
18488 enum int kana_RU = 1241;
18489 enum int kana_SA = 1211;
18490 enum int kana_SE = 1214;
18491 enum int kana_SHI = 1212;
18492 enum int kana_SO = 1215;
18493 enum int kana_SU = 1213;
18494 enum int kana_TA = 1216;
18495 enum int kana_TE = 1219;
18496 enum int kana_TI = 1217;
18497 enum int kana_TO = 1220;
18498 enum int kana_TSU = 1218;
18499 enum int kana_TU = 1218;
18500 enum int kana_U = 1203;
18501 enum int kana_WA = 1244;
18502 enum int kana_WO = 1190;
18503 enum int kana_YA = 1236;
18504 enum int kana_YO = 1238;
18505 enum int kana_YU = 1237;
18506 enum int kana_a = 1191;
18507 enum int kana_closingbracket = 1187;
18508 enum int kana_comma = 1188;
18509 enum int kana_conjunctive = 1189;
18510 enum int kana_e = 1194;
18511 enum int kana_fullstop = 1185;
18512 enum int kana_i = 1192;
18513 enum int kana_middledot = 1189;
18514 enum int kana_o = 1195;
18515 enum int kana_openingbracket = 1186;
18516 enum int kana_switch = 65406;
18517 enum int kana_tsu = 1199;
18518 enum int kana_tu = 1199;
18519 enum int kana_u = 1193;
18520 enum int kana_ya = 1196;
18521 enum int kana_yo = 1198;
18522 enum int kana_yu = 1197;
18523 enum int kappa = 930;
18524 enum int kcedilla = 1011;
18526 // Converts @keyval from a Clutter key symbol to the corresponding
18527 // ISO10646 (Unicode) character.
18529 // character.
18530 // RETURNS: a Unicode character, or 0 if there is no corresponding
18531 // <keyval>: a key symbol
18532 static uint keysym_to_unicode(uint keyval) {
18533 return clutter_keysym_to_unicode(keyval);
18536 enum int kra = 930;
18537 enum int l = 108;
18538 enum int lacute = 485;
18539 enum int latincross = 2777;
18540 enum int lbelowdot = 16784951;
18541 enum int lcaron = 437;
18542 enum int lcedilla = 950;
18543 enum int leftanglebracket = 2748;
18544 enum int leftarrow = 2299;
18545 enum int leftcaret = 2979;
18546 enum int leftdoublequotemark = 2770;
18547 enum int leftmiddlecurlybrace = 2223;
18548 enum int leftopentriangle = 2764;
18549 enum int leftpointer = 2794;
18550 enum int leftradical = 2209;
18551 enum int leftshoe = 3034;
18552 enum int leftsinglequotemark = 2768;
18553 enum int leftt = 2548;
18554 enum int lefttack = 3036;
18555 enum int less = 60;
18556 enum int lessthanequal = 2236;
18557 enum int lf = 2533;
18558 enum int logicaland = 2270;
18559 enum int logicalor = 2271;
18560 enum int lowleftcorner = 2541;
18561 enum int lowrightcorner = 2538;
18562 enum int lstroke = 435;
18563 enum int m = 109;
18564 enum int mabovedot = 16784961;
18565 enum int macron = 175;
18566 // Starts the Clutter mainloop.
18567 static void main_() {
18568 clutter_main();
18572 // Retrieves the depth of the Clutter mainloop.
18573 // RETURNS: The level of the mainloop.
18574 static int main_level() {
18575 return clutter_main_level();
18578 // Terminates the Clutter mainloop.
18579 static void main_quit() {
18580 clutter_main_quit();
18583 enum int malesymbol = 2807;
18584 enum int maltesecross = 2800;
18585 enum int marker = 2751;
18586 enum int masculine = 186;
18587 enum int minus = 45;
18588 enum int minutes = 2774;
18589 enum int mu = 181;
18590 enum int multiply = 215;
18591 enum int musicalflat = 2806;
18592 enum int musicalsharp = 2805;
18593 enum int n = 110;
18594 enum int nabla = 2245;
18595 enum int nacute = 497;
18596 enum int ncaron = 498;
18597 enum int ncedilla = 1009;
18598 enum int ninesubscript = 16785545;
18599 enum int ninesuperior = 16785529;
18600 enum int nl = 2536;
18601 enum int nobreakspace = 160;
18602 enum int notapproxeq = 16785991;
18603 enum int notelementof = 16785929;
18604 enum int notequal = 2237;
18605 enum int notidentical = 16786018;
18606 enum int notsign = 172;
18607 enum int ntilde = 241;
18608 enum int numbersign = 35;
18609 enum int numerosign = 1712;
18610 enum int o = 111;
18611 enum int oacute = 243;
18612 enum int obarred = 16777845;
18613 enum int obelowdot = 16785101;
18614 enum int ocaron = 16777682;
18615 enum int ocircumflex = 244;
18616 enum int ocircumflexacute = 16785105;
18617 enum int ocircumflexbelowdot = 16785113;
18618 enum int ocircumflexgrave = 16785107;
18619 enum int ocircumflexhook = 16785109;
18620 enum int ocircumflextilde = 16785111;
18621 enum int odiaeresis = 246;
18622 enum int odoubleacute = 501;
18623 enum int oe = 5053;
18624 enum int ogonek = 434;
18625 enum int ograve = 242;
18626 enum int ohook = 16785103;
18627 enum int ohorn = 16777633;
18628 enum int ohornacute = 16785115;
18629 enum int ohornbelowdot = 16785123;
18630 enum int ohorngrave = 16785117;
18631 enum int ohornhook = 16785119;
18632 enum int ohorntilde = 16785121;
18633 enum int omacron = 1010;
18634 enum int oneeighth = 2755;
18635 enum int onefifth = 2738;
18636 enum int onehalf = 189;
18637 enum int onequarter = 188;
18638 enum int onesixth = 2742;
18639 enum int onesubscript = 16785537;
18640 enum int onesuperior = 185;
18641 enum int onethird = 2736;
18642 enum int ooblique = 248;
18643 enum int openrectbullet = 2786;
18644 enum int openstar = 2789;
18645 enum int opentribulletdown = 2788;
18646 enum int opentribulletup = 2787;
18647 enum int ordfeminine = 170;
18648 enum int oslash = 248;
18649 enum int otilde = 245;
18650 enum int overbar = 3008;
18651 enum int overline = 1150;
18652 enum int p = 112;
18653 enum int pabovedot = 16784983;
18654 enum int paragraph = 182;
18656 // Unintrospectable function: param_spec_color() / clutter_param_spec_color()
18657 // Creates a #GParamSpec for properties using #ClutterColor.
18658 // RETURNS: the newly created #GParamSpec
18659 // <name>: name of the property
18660 // <nick>: short name
18661 // <blurb>: description (can be translatable)
18662 // <default_value>: default value
18663 // <flags>: flags for the param spec
18664 static GObject2.ParamSpec* param_spec_color(char* name, char* nick, char* blurb, Color* default_value, GObject2.ParamFlags flags) {
18665 return clutter_param_spec_color(name, nick, blurb, default_value, flags);
18669 // Unintrospectable function: param_spec_fixed() / clutter_param_spec_fixed()
18670 // Creates a #GParamSpec for properties using #CoglFixed values
18671 // RETURNS: the newly created #GParamSpec
18672 // <name>: name of the property
18673 // <nick>: short name
18674 // <blurb>: description (can be translatable)
18675 // <minimum>: lower boundary
18676 // <maximum>: higher boundary
18677 // <default_value>: default value
18678 // <flags>: flags for the param spec
18679 static GObject2.ParamSpec* param_spec_fixed(char* name, char* nick, char* blurb, Cogl.Fixed minimum, Cogl.Fixed maximum, Cogl.Fixed default_value, GObject2.ParamFlags flags) {
18680 return clutter_param_spec_fixed(name, nick, blurb, minimum, maximum, default_value, flags);
18684 // Unintrospectable function: param_spec_units() / clutter_param_spec_units()
18685 // Creates a #GParamSpec for properties using #ClutterUnits.
18686 // RETURNS: the newly created #GParamSpec
18687 // <name>: name of the property
18688 // <nick>: short name
18689 // <blurb>: description (can be translatable)
18690 // <default_type>: the default type for the #ClutterUnits
18691 // <minimum>: lower boundary
18692 // <maximum>: higher boundary
18693 // <default_value>: default value
18694 // <flags>: flags for the param spec
18695 static GObject2.ParamSpec* param_spec_units(char* name, char* nick, char* blurb, UnitType default_type, float minimum, float maximum, float default_value, GObject2.ParamFlags flags) {
18696 return clutter_param_spec_units(name, nick, blurb, default_type, minimum, maximum, default_value, flags);
18699 enum int parenleft = 40;
18700 enum int parenright = 41;
18701 enum int partdifferential = 16785922;
18702 enum int partialderivative = 2287;
18703 enum int percent = 37;
18704 enum int period = 46;
18705 enum int periodcentered = 183;
18706 enum int phonographcopyright = 2811;
18707 enum int plus = 43;
18708 enum int plusminus = 177;
18709 enum int prescription = 2772;
18710 enum int prolongedsound = 1200;
18711 enum int punctspace = 2726;
18712 enum int q = 113;
18713 enum int quad = 3020;
18714 enum int question = 63;
18715 enum int questiondown = 191;
18716 enum int quotedbl = 34;
18717 enum int quoteleft = 96;
18718 enum int quoteright = 39;
18719 enum int r = 114;
18720 enum int racute = 480;
18721 enum int radical = 2262;
18722 enum int rcaron = 504;
18723 enum int rcedilla = 947;
18725 // Forces a redraw of the entire stage. Applications should never use this
18726 // function, but queue a redraw using clutter_actor_queue_redraw().
18728 // This function should only be used by libraries integrating Clutter from
18729 // within another toolkit.
18730 static void redraw(Stage* stage) {
18731 clutter_redraw(stage);
18734 enum int registered = 174;
18735 enum int rightanglebracket = 2750;
18736 enum int rightarrow = 2301;
18737 enum int rightcaret = 2982;
18738 enum int rightdoublequotemark = 2771;
18739 enum int rightmiddlecurlybrace = 2224;
18740 enum int rightmiddlesummation = 2231;
18741 enum int rightopentriangle = 2765;
18742 enum int rightpointer = 2795;
18743 enum int rightshoe = 3032;
18744 enum int rightsinglequotemark = 2769;
18745 enum int rightt = 2549;
18746 enum int righttack = 3068;
18747 enum int s = 115;
18748 enum int sabovedot = 16784993;
18749 enum int sacute = 438;
18750 enum int scaron = 441;
18751 enum int scedilla = 442;
18752 enum int schwa = 16777817;
18753 enum int scircumflex = 766;
18754 static GLib2.Quark script_error_quark() {
18755 return clutter_script_error_quark();
18758 enum int script_switch = 65406;
18759 enum int seconds = 2775;
18760 enum int section = 167;
18761 enum int semicolon = 59;
18762 enum int semivoicedsound = 1247;
18764 // Sets the default frame rate. This frame rate will be used to limit
18765 // the number of frames drawn if Clutter is not able to synchronize
18766 // with the vertical refresh rate of the display. When synchronization
18767 // is possible, this value is ignored.
18768 // <frames_per_sec>: the new default frame rate
18769 static void set_default_frame_rate(uint frames_per_sec) {
18770 clutter_set_default_frame_rate(frames_per_sec);
18774 // Sets the font quality options for subsequent text rendering
18775 // operations.
18777 // Using mipmapped textures will improve the quality for scaled down
18778 // text but will use more texture memory.
18780 // Enabling hinting improves text quality for static text but may
18781 // introduce some artifacts if the text is animated.
18782 // <flags>: The new flags
18783 static void set_font_flags(FontFlags flags) {
18784 clutter_set_font_flags(flags);
18788 // Sets whether per-actor motion events should be enabled or not on
18789 // all #ClutterStage<!-- -->s managed by Clutter.
18791 // If @enable is %FALSE the following events will not work:
18792 // <itemizedlist>
18793 // <listitem><para>ClutterActor::motion-event, unless on the
18794 // #ClutterStage</para></listitem>
18795 // <listitem><para>ClutterActor::enter-event</para></listitem>
18796 // <listitem><para>ClutterActor::leave-event</para></listitem>
18797 // </itemizedlist>
18798 // <enable>: %TRUE to enable per-actor motion events
18799 static void set_motion_events_enabled(int enable) {
18800 clutter_set_motion_events_enabled(enable);
18803 enum int seveneighths = 2758;
18804 enum int sevensubscript = 16785543;
18805 enum int sevensuperior = 16785527;
18806 static GLib2.Quark shader_error_quark() {
18807 return clutter_shader_error_quark();
18810 enum int signaturemark = 2762;
18811 enum int signifblank = 2732;
18812 enum int similarequal = 2249;
18813 enum int singlelowquotemark = 2813;
18814 enum int sixsubscript = 16785542;
18815 enum int sixsuperior = 16785526;
18816 enum int slash = 47;
18817 enum int soliddiamond = 2528;
18818 enum int space = 32;
18819 enum int squareroot = 16785946;
18820 enum int ssharp = 223;
18821 enum int sterling = 163;
18822 enum int stricteq = 16786019;
18823 enum int t = 116;
18824 enum int tabovedot = 16785003;
18825 enum int tcaron = 443;
18826 enum int tcedilla = 510;
18827 enum int telephone = 2809;
18828 enum int telephonerecorder = 2810;
18829 static GLib2.Quark texture_error_quark() {
18830 return clutter_texture_error_quark();
18833 enum int therefore = 2240;
18834 enum int thinspace = 2727;
18835 enum int thorn = 254;
18837 // Unintrospectable function: threads_add_frame_source() / clutter_threads_add_frame_source()
18838 // Simple wrapper around clutter_threads_add_frame_source_full().
18839 // RETURNS: the ID (greater than 0) of the event source.
18840 // <fps>: the number of times per second to call the function
18841 // <func>: function to call
18842 // <data>: data to pass to the function
18843 static uint threads_add_frame_source(uint fps, GLib2.SourceFunc func, void* data) {
18844 return clutter_threads_add_frame_source(fps, func, data);
18848 // Sets a function to be called at regular intervals holding the Clutter
18849 // threads lock, with the given priority. The function is called repeatedly
18850 // until it returns %FALSE, at which point the timeout is automatically
18851 // removed and the function will not be called again. The @notify function
18852 // is called when the timeout is removed.
18854 // This function is similar to clutter_threads_add_timeout_full()
18855 // except that it will try to compensate for delays. For example, if
18856 // @func takes half the interval time to execute then the function
18857 // will be called again half the interval time after it finished. In
18858 // contrast clutter_threads_add_timeout_full() would not fire until a
18859 // full interval after the function completes so the delay between
18860 // calls would be @interval * 1.5. This function does not however try
18861 // to invoke the function multiple times to catch up missing frames if
18862 // @func takes more than @interval ms to execute.
18864 // See also clutter_threads_add_idle_full().
18865 // RETURNS: the ID (greater than 0) of the event source.
18866 // <priority>: the priority of the frame source. Typically this will be in the range between %G_PRIORITY_DEFAULT and %G_PRIORITY_HIGH.
18867 // <fps>: the number of times per second to call the function
18868 // <func>: function to call
18869 // <data>: data to pass to the function
18870 // <notify>: function to call when the timeout source is removed
18871 static uint threads_add_frame_source_full(int priority, uint fps, GLib2.SourceFunc func, void* data, GLib2.DestroyNotify notify) {
18872 return clutter_threads_add_frame_source_full(priority, fps, func, data, notify);
18876 // Unintrospectable function: threads_add_idle() / clutter_threads_add_idle()
18877 // Simple wrapper around clutter_threads_add_idle_full() using the
18878 // default priority.
18879 // RETURNS: the ID (greater than 0) of the event source.
18880 // <func>: function to call
18881 // <data>: data to pass to the function
18882 static uint threads_add_idle(GLib2.SourceFunc func, void* data) {
18883 return clutter_threads_add_idle(func, data);
18887 // Adds a function to be called whenever there are no higher priority
18888 // events pending. If the function returns %FALSE it is automatically
18889 // removed from the list of event sources and will not be called again.
18891 // This function can be considered a thread-safe variant of g_idle_add_full():
18892 // it will call @function while holding the Clutter lock. It is logically
18893 // equivalent to the following implementation:
18895 // |[
18896 // static gboolean
18897 // idle_safe_callback (gpointer data)
18898 // {
18899 // SafeClosure *closure = data;
18900 // gboolean res = FALSE;
18902 // /&ast; mark the critical section &ast;/
18904 // clutter_threads_enter();
18906 // /&ast; the callback does not need to acquire the Clutter
18907 // &ast; lock itself, as it is held by the this proxy handler
18908 // &ast;/
18909 // res = closure->callback (closure->data);
18911 // clutter_threads_leave();
18913 // return res;
18914 // }
18915 // static gulong
18916 // add_safe_idle (GSourceFunc callback,
18917 // gpointer data)
18918 // {
18919 // SafeClosure *closure = g_new0 (SafeClosure, 1);
18921 // closure-&gt;callback = callback;
18922 // closure-&gt;data = data;
18924 // return g_add_idle_full (G_PRIORITY_DEFAULT_IDLE,
18925 // idle_safe_callback,
18926 // closure,
18927 // g_free)
18928 // }
18929 // ]|
18931 // This function should be used by threaded applications to make sure
18932 // that @func is emitted under the Clutter threads lock and invoked
18933 // from the same thread that started the Clutter main loop. For instance,
18934 // it can be used to update the UI using the results from a worker
18935 // thread:
18937 // |[
18938 // static gboolean
18939 // update_ui (gpointer data)
18940 // {
18941 // SomeClosure *closure = data;
18943 // /&ast; it is safe to call Clutter API from this function because
18944 // &ast; it is invoked from the same thread that started the main
18945 // &ast; loop and under the Clutter thread lock
18946 // &ast;/
18947 // clutter_label_set_text (CLUTTER_LABEL (closure-&gt;label),
18948 // closure-&gt;text);
18950 // g_object_unref (closure-&gt;label);
18951 // g_free (closure);
18953 // return FALSE;
18954 // }
18956 // /&ast; within another thread &ast;/
18957 // closure = g_new0 (SomeClosure, 1);
18958 // /&ast; always take a reference on GObject instances &ast;/
18959 // closure-&gt;label = g_object_ref (my_application-&gt;label);
18960 // closure-&gt;text = g_strdup (processed_text_to_update_the_label);
18962 // clutter_threads_add_idle_full (G_PRIORITY_HIGH_IDLE,
18963 // update_ui,
18964 // closure,
18965 // NULL);
18966 // ]|
18967 // RETURNS: the ID (greater than 0) of the event source.
18968 // <priority>: the priority of the timeout source. Typically this will be in the range between #G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE
18969 // <func>: function to call
18970 // <data>: data to pass to the function
18971 // <notify>: functio to call when the idle source is removed
18972 static uint threads_add_idle_full(int priority, GLib2.SourceFunc func, void* data, GLib2.DestroyNotify notify) {
18973 return clutter_threads_add_idle_full(priority, func, data, notify);
18977 // Adds a function to be called whenever Clutter is repainting a Stage.
18978 // If the function returns %FALSE it is automatically removed from the
18979 // list of repaint functions and will not be called again.
18981 // This function is guaranteed to be called from within the same thread
18982 // that called clutter_main(), and while the Clutter lock is being held.
18984 // A repaint function is useful to ensure that an update of the scenegraph
18985 // is performed before the scenegraph is repainted; for instance, uploading
18986 // a frame from a video into a #ClutterTexture.
18988 // When the repaint function is removed (either because it returned %FALSE
18989 // or because clutter_threads_remove_repaint_func() has been called) the
18990 // @notify function will be called, if any is set.
18992 // can use the returned integer to remove the repaint function by
18993 // calling clutter_threads_remove_repaint_func().
18994 // RETURNS: the ID (greater than 0) of the repaint function. You
18995 // <func>: the function to be called within the paint cycle
18996 // <data>: data to be passed to the function, or %NULL
18997 // <notify>: function to be called when removing the repaint function, or %NULL
18998 static uint threads_add_repaint_func(GLib2.SourceFunc func, void* data, GLib2.DestroyNotify notify) {
18999 return clutter_threads_add_repaint_func(func, data, notify);
19003 // Unintrospectable function: threads_add_timeout() / clutter_threads_add_timeout()
19004 // Simple wrapper around clutter_threads_add_timeout_full().
19005 // RETURNS: the ID (greater than 0) of the event source.
19006 // <interval>: the time between calls to the function, in milliseconds
19007 // <func>: function to call
19008 // <data>: data to pass to the function
19009 static uint threads_add_timeout(uint interval, GLib2.SourceFunc func, void* data) {
19010 return clutter_threads_add_timeout(interval, func, data);
19014 // Sets a function to be called at regular intervals holding the Clutter
19015 // threads lock, with the given priority. The function is called repeatedly
19016 // until it returns %FALSE, at which point the timeout is automatically
19017 // removed and the function will not be called again. The @notify function
19018 // is called when the timeout is removed.
19020 // The first call to the function will be at the end of the first @interval.
19022 // It is important to note that, due to how the Clutter main loop is
19023 // implemented, the timing will not be accurate and it will not try to
19024 // "keep up" with the interval. A more reliable source is available
19025 // using clutter_threads_add_frame_source_full(), which is also internally
19026 // used by #ClutterTimeline.
19028 // See also clutter_threads_add_idle_full().
19029 // RETURNS: the ID (greater than 0) of the event source.
19030 // <priority>: the priority of the timeout source. Typically this will be in the range between #G_PRIORITY_DEFAULT and #G_PRIORITY_HIGH.
19031 // <interval>: the time between calls to the function, in milliseconds
19032 // <func>: function to call
19033 // <data>: data to pass to the function
19034 // <notify>: function to call when the timeout source is removed
19035 static uint threads_add_timeout_full(int priority, uint interval, GLib2.SourceFunc func, void* data, GLib2.DestroyNotify notify) {
19036 return clutter_threads_add_timeout_full(priority, interval, func, data, notify);
19039 // Locks the Clutter thread lock.
19040 static void threads_enter() {
19041 clutter_threads_enter();
19045 // Initialises the Clutter threading mechanism, so that Clutter API can be
19046 // called by multiple threads, using clutter_threads_enter() and
19047 // clutter_threads_leave() to mark the critical sections.
19049 // You must call g_thread_init() before this function.
19051 // This function must be called before clutter_init().
19053 // It is safe to call this function multiple times.
19054 static void threads_init() {
19055 clutter_threads_init();
19058 // Unlocks the Clutter thread lock.
19059 static void threads_leave() {
19060 clutter_threads_leave();
19064 // Removes the repaint function with @handle_id as its id
19065 // <handle_id>: an unsigned integer greater than zero
19066 static void threads_remove_repaint_func(uint handle_id) {
19067 clutter_threads_remove_repaint_func(handle_id);
19071 // Unintrospectable function: threads_set_lock_functions() / clutter_threads_set_lock_functions()
19072 // Allows the application to replace the standard method that
19073 // Clutter uses to protect its data structures. Normally, Clutter
19074 // creates a single #GMutex that is locked by clutter_threads_enter(),
19075 // and released by clutter_threads_leave(); using this function an
19076 // application provides, instead, a function @enter_fn that is
19077 // called by clutter_threads_enter() and a function @leave_fn that is
19078 // called by clutter_threads_leave().
19080 // The functions must provide at least same locking functionality
19081 // as the default implementation, but can also do extra application
19082 // specific processing.
19084 // As an example, consider an application that has its own recursive
19085 // lock that when held, holds the Clutter lock as well. When Clutter
19086 // unlocks the Clutter lock when entering a recursive main loop, the
19087 // application must temporarily release its lock as well.
19089 // Most threaded Clutter apps won't need to use this method.
19091 // This method must be called before clutter_threads_init(), and cannot
19092 // be called multiple times.
19093 // <enter_fn>: function called when aquiring the Clutter main lock
19094 // <leave_fn>: function called when releasing the Clutter main lock
19095 static void threads_set_lock_functions(GObject2.Callback enter_fn, GObject2.Callback leave_fn) {
19096 clutter_threads_set_lock_functions(enter_fn, leave_fn);
19099 enum int threeeighths = 2756;
19100 enum int threefifths = 2740;
19101 enum int threequarters = 190;
19102 enum int threesubscript = 16785539;
19103 enum int threesuperior = 179;
19105 // Unintrospectable function: timeout_pool_new() / clutter_timeout_pool_new()
19106 // Creates a new timeout pool source. A timeout pool should be used when
19107 // multiple timeout functions, running at the same priority, are needed and
19108 // the g_timeout_add() API might lead to starvation of the time slice of
19109 // the main loop. A timeout pool allocates a single time slice of the main
19110 // loop and runs every timeout function inside it. The timeout pool is
19111 // always sorted, so that the extraction of the next timeout function is
19112 // a constant time operation.
19114 // is owned by the GLib default context and will be automatically
19115 // destroyed when the context is destroyed. It is possible to force
19116 // the destruction of the timeout pool using g_source_destroy()
19117 // RETURNS: the newly created #ClutterTimeoutPool. The created pool
19118 // <priority>: the priority of the timeout pool. Typically this will be #G_PRIORITY_DEFAULT
19119 static TimeoutPool* timeout_pool_new(int priority) {
19120 return clutter_timeout_pool_new(priority);
19123 enum int tintegral = 16785965;
19124 enum int topintegral = 2212;
19125 enum int topleftparens = 2219;
19126 enum int topleftradical = 2210;
19127 enum int topleftsqbracket = 2215;
19128 enum int topleftsummation = 2225;
19129 enum int toprightparens = 2221;
19130 enum int toprightsqbracket = 2217;
19131 enum int toprightsummation = 2229;
19132 enum int topt = 2551;
19133 enum int topvertsummationconnector = 2227;
19134 enum int trademark = 2761;
19135 enum int trademarkincircle = 2763;
19136 enum int tslash = 956;
19137 enum int twofifths = 2739;
19138 enum int twosubscript = 16785538;
19139 enum int twosuperior = 178;
19140 enum int twothirds = 2737;
19141 enum int u = 117;
19142 enum int uacute = 250;
19143 enum int ubelowdot = 16785125;
19144 enum int ubreve = 765;
19145 enum int ucircumflex = 251;
19146 enum int udiaeresis = 252;
19147 enum int udoubleacute = 507;
19148 enum int ugrave = 249;
19149 enum int uhook = 16785127;
19150 enum int uhorn = 16777648;
19151 enum int uhornacute = 16785129;
19152 enum int uhornbelowdot = 16785137;
19153 enum int uhorngrave = 16785131;
19154 enum int uhornhook = 16785133;
19155 enum int uhorntilde = 16785135;
19156 enum int umacron = 1022;
19157 enum int underbar = 3014;
19158 enum int underscore = 95;
19159 // Removes an existing grab of the keyboard.
19160 static void ungrab_keyboard() {
19161 clutter_ungrab_keyboard();
19164 // Removes an existing grab of the pointer.
19165 static void ungrab_pointer() {
19166 clutter_ungrab_pointer();
19170 // Removes an existing grab of the pointer events for device @id_.
19171 // <id_>: a device id
19172 static void ungrab_pointer_for_device(int id_) {
19173 clutter_ungrab_pointer_for_device(id_);
19176 enum int union = 2269;
19177 enum int uogonek = 1017;
19178 enum int uparrow = 2300;
19179 enum int upcaret = 2985;
19180 enum int upleftcorner = 2540;
19181 enum int uprightcorner = 2539;
19182 enum int upshoe = 3011;
19183 enum int upstile = 3027;
19184 enum int uptack = 3022;
19185 enum int uring = 505;
19187 // Calculates the nearest power of two, greater than or equal to @a.
19188 // RETURNS: The nearest power of two, greater or equal to @a.
19189 // <a>: Value to get the next power
19190 static int util_next_p2(int a) {
19191 return clutter_util_next_p2(a);
19194 enum int utilde = 1021;
19195 enum int v = 118;
19197 // Gets the #ClutterColor contained in @value.
19198 // RETURNS: the color inside the passed #GValue
19199 // <value>: a #GValue initialized to #CLUTTER_TYPE_COLOR
19200 static Color* value_get_color(GObject2.Value* value) {
19201 return clutter_value_get_color(value);
19205 // Unintrospectable function: value_get_fixed() / clutter_value_get_fixed()
19206 // Gets the fixed point value stored inside @value.
19207 // RETURNS: the value inside the passed #GValue
19208 // <value>: a #GValue initialized to %COGL_TYPE_FIXED
19209 static Cogl.Fixed value_get_fixed(GObject2.Value* value) {
19210 return clutter_value_get_fixed(value);
19214 // Retrieves the list of floating point values stored inside
19215 // the passed #GValue. @value must have been initialized with
19216 // %CLUTTER_TYPE_SHADER_FLOAT.
19218 // The returned value is owned by the #GValue and should never
19219 // be modified or freed.
19220 // RETURNS: the pointer to a list of floating point values.
19221 // <value>: a #GValue
19222 // <length>: return location for the number of returned floating point values, or %NULL
19223 static float* value_get_shader_float(GObject2.Value* value, size_t* length) {
19224 return clutter_value_get_shader_float(value, length);
19228 // Retrieves the list of integer values stored inside the passed
19229 // #GValue. @value must have been initialized with
19230 // %CLUTTER_TYPE_SHADER_INT.
19232 // The returned value is owned by the #GValue and should never
19233 // be modified or freed.
19234 // RETURNS: the pointer to a list of integer values.
19235 // <value>: a #GValue
19236 // <length>: return location for the number of returned integer values, or %NULL
19237 static int* value_get_shader_int(GObject2.Value* value, size_t* length) {
19238 return clutter_value_get_shader_int(value, length);
19242 // Retrieves a matrix of floating point values stored inside
19243 // the passed #GValue. @value must have been initialized with
19244 // %CLUTTER_TYPE_SHADER_MATRIX.
19246 // of floating point values. The returned value is owned by the #GValue and
19247 // should never be modified or freed.
19248 // RETURNS: the pointer to a matrix
19249 // <value>: a #GValue
19250 // <length>: return location for the number of returned floating point values, or %NULL
19251 static float* value_get_shader_matrix(GObject2.Value* value, /*out*/ size_t* length) {
19252 return clutter_value_get_shader_matrix(value, length);
19256 // Gets the #ClutterUnits contained in @value.
19257 // RETURNS: the units inside the passed #GValue
19258 // <value>: a #GValue initialized to %CLUTTER_TYPE_UNITS
19259 static Units* value_get_units(GObject2.Value* value) {
19260 return clutter_value_get_units(value);
19264 // Sets @value to @color.
19265 // <value>: a #GValue initialized to #CLUTTER_TYPE_COLOR
19266 // <color>: the color to set
19267 static void value_set_color(GObject2.Value* value, Color* color) {
19268 clutter_value_set_color(value, color);
19272 // Unintrospectable function: value_set_fixed() / clutter_value_set_fixed()
19273 // Sets @value to @fixed_.
19274 // <value>: a #GValue initialized to %COGL_TYPE_FIXED
19275 // <fixed_>: the fixed point value to set
19276 static void value_set_fixed(GObject2.Value* value, Cogl.Fixed fixed_) {
19277 clutter_value_set_fixed(value, fixed_);
19281 // Sets @floats as the contents of @value. The passed #GValue
19282 // must have been initialized using %CLUTTER_TYPE_SHADER_FLOAT.
19283 // <value>: a #GValue
19284 // <size>: number of floating point values in @floats
19285 // <floats>: an array of floating point values
19286 static void value_set_shader_float(GObject2.Value* value, int size, float* floats) {
19287 clutter_value_set_shader_float(value, size, floats);
19291 // Sets @ints as the contents of @value. The passed #GValue
19292 // must have been initialized using %CLUTTER_TYPE_SHADER_INT.
19293 // <value>: a #GValue
19294 // <size>: number of integer values in @ints
19295 // <ints>: an array of integer values
19296 static void value_set_shader_int(GObject2.Value* value, int size, int* ints) {
19297 clutter_value_set_shader_int(value, size, ints);
19301 // Sets @matrix as the contents of @value. The passed #GValue
19302 // must have been initialized using %CLUTTER_TYPE_SHADER_MATRIX.
19303 // <value>: a #GValue
19304 // <size>: number of floating point values in @floats
19305 // <matrix>: a matrix of floating point values
19306 static void value_set_shader_matrix(GObject2.Value* value, int size, float* matrix) {
19307 clutter_value_set_shader_matrix(value, size, matrix);
19311 // Sets @value to @units
19312 // <value>: a #GValue initialized to %CLUTTER_TYPE_UNITS
19313 // <units>: the units to set
19314 static void value_set_units(GObject2.Value* value, Units* units) {
19315 clutter_value_set_units(value, units);
19318 enum int variation = 2241;
19319 enum int vertbar = 2552;
19320 enum int vertconnector = 2214;
19321 enum int voicedsound = 1246;
19322 enum int vt = 2537;
19323 enum int w = 119;
19324 enum int wacute = 16785027;
19325 enum int wcircumflex = 16777589;
19326 enum int wdiaeresis = 16785029;
19327 enum int wgrave = 16785025;
19328 enum int x = 120;
19329 enum int xabovedot = 16785035;
19330 enum int y = 121;
19331 enum int yacute = 253;
19332 enum int ybelowdot = 16785141;
19333 enum int ycircumflex = 16777591;
19334 enum int ydiaeresis = 255;
19335 enum int yen = 165;
19336 enum int ygrave = 16785139;
19337 enum int yhook = 16785143;
19338 enum int ytilde = 16785145;
19339 enum int z = 122;
19340 enum int zabovedot = 447;
19341 enum int zacute = 444;
19342 enum int zcaron = 446;
19343 enum int zerosubscript = 16785536;
19344 enum int zerosuperior = 16785520;
19345 enum int zstroke = 16777654;
19347 // C prototypes:
19349 extern (C) {
19350 void clutter_actor_add_action(Actor* this_, Action* action);
19351 void clutter_actor_add_action_with_name(Actor* this_, char* name, Action* action);
19352 void clutter_actor_add_constraint(Actor* this_, Constraint* constraint);
19353 void clutter_actor_add_constraint_with_name(Actor* this_, char* name, Constraint* constraint);
19354 void clutter_actor_add_effect(Actor* this_, Effect* effect);
19355 void clutter_actor_add_effect_with_name(Actor* this_, char* name, Effect* effect);
19356 void clutter_actor_allocate(Actor* this_, ActorBox* box, AllocationFlags flags);
19357 void clutter_actor_allocate_align_fill(Actor* this_, ActorBox* box, double x_align, double y_align, int x_fill, int y_fill, AllocationFlags flags);
19358 void clutter_actor_allocate_available_size(Actor* this_, float x, float y, float available_width, float available_height, AllocationFlags flags);
19359 void clutter_actor_allocate_preferred_size(Actor* this_, AllocationFlags flags);
19360 Animation* clutter_actor_animate(Actor* this_, c_ulong mode, uint duration, char* first_property_name, ...);
19361 Animation* clutter_actor_animate_with_alpha(Actor* this_, Alpha* alpha, char* first_property_name, ...);
19362 Animation* clutter_actor_animate_with_alphav(Actor* this_, Alpha* alpha, int n_properties, char* properties, GObject2.Value* values);
19363 Animation* clutter_actor_animate_with_timeline(Actor* this_, c_ulong mode, Timeline* timeline, char* first_property_name, ...);
19364 Animation* clutter_actor_animate_with_timelinev(Actor* this_, c_ulong mode, Timeline* timeline, int n_properties, char* properties, GObject2.Value* values);
19365 Animation* clutter_actor_animatev(Actor* this_, c_ulong mode, uint duration, int n_properties, char* properties, GObject2.Value* values);
19366 void clutter_actor_apply_relative_transform_to_point(Actor* this_, Actor* ancestor, Vertex* point, /*out*/ Vertex* vertex);
19367 void clutter_actor_apply_transform_to_point(Actor* this_, Vertex* point, /*out*/ Vertex* vertex);
19368 void clutter_actor_clear_actions(Actor* this_);
19369 void clutter_actor_clear_constraints(Actor* this_);
19370 void clutter_actor_clear_effects(Actor* this_);
19371 int clutter_actor_contains(Actor* this_, Actor* descendant);
19372 void clutter_actor_continue_paint(Actor* this_);
19373 Pango.Context* /*new*/ clutter_actor_create_pango_context(Actor* this_);
19374 Pango.Layout* /*new*/ clutter_actor_create_pango_layout(Actor* this_, char* text);
19375 void clutter_actor_destroy(Actor* this_);
19376 void clutter_actor_detach_animation(Actor* this_);
19377 int clutter_actor_event(Actor* this_, Event* event, int capture);
19378 void clutter_actor_get_abs_allocation_vertices(Actor* this_, /*out*/ Vertex verts);
19379 Atk.Object* clutter_actor_get_accessible(Actor* this_);
19380 Action* clutter_actor_get_action(Actor* this_, char* name);
19381 GLib2.List* /*new container*/ clutter_actor_get_actions(Actor* this_);
19382 void clutter_actor_get_allocation_box(Actor* this_, /*out*/ ActorBox* box);
19383 void clutter_actor_get_allocation_geometry(Actor* this_, /*out*/ Geometry* geom);
19384 void clutter_actor_get_allocation_vertices(Actor* this_, Actor* ancestor, /*out*/ Vertex verts);
19385 void clutter_actor_get_anchor_point(Actor* this_, /*out*/ float* anchor_x, /*out*/ float* anchor_y);
19386 Gravity clutter_actor_get_anchor_point_gravity(Actor* this_);
19387 Animation* clutter_actor_get_animation(Actor* this_);
19388 void clutter_actor_get_clip(Actor* this_, /*out*/ float* xoff=null, /*out*/ float* yoff=null, /*out*/ float* width=null, /*out*/ float* height=null);
19389 int clutter_actor_get_clip_to_allocation(Actor* this_);
19390 Constraint* clutter_actor_get_constraint(Actor* this_, char* name);
19391 GLib2.List* /*new container*/ clutter_actor_get_constraints(Actor* this_);
19392 float clutter_actor_get_depth(Actor* this_);
19393 Effect* clutter_actor_get_effect(Actor* this_, char* name);
19394 GLib2.List* /*new container*/ clutter_actor_get_effects(Actor* this_);
19395 int clutter_actor_get_fixed_position_set(Actor* this_);
19396 ActorFlags clutter_actor_get_flags(Actor* this_);
19397 void clutter_actor_get_geometry(Actor* this_, /*out*/ Geometry* geometry);
19398 uint clutter_actor_get_gid(Actor* this_);
19399 float clutter_actor_get_height(Actor* this_);
19400 char* clutter_actor_get_name(Actor* this_);
19401 OffscreenRedirect clutter_actor_get_offscreen_redirect(Actor* this_);
19402 ubyte clutter_actor_get_opacity(Actor* this_);
19403 int clutter_actor_get_paint_box(Actor* this_, /*out*/ ActorBox* box);
19404 ubyte clutter_actor_get_paint_opacity(Actor* this_);
19405 int clutter_actor_get_paint_visibility(Actor* this_);
19406 PaintVolume* clutter_actor_get_paint_volume(Actor* this_);
19407 Pango.Context* clutter_actor_get_pango_context(Actor* this_);
19408 Actor* clutter_actor_get_parent(Actor* this_);
19409 void clutter_actor_get_position(Actor* this_, /*out*/ float* x=null, /*out*/ float* y=null);
19410 void clutter_actor_get_preferred_height(Actor* this_, float for_width, /*out*/ float* min_height_p=null, /*out*/ float* natural_height_p=null);
19411 void clutter_actor_get_preferred_size(Actor* this_, /*out*/ float* min_width_p=null, /*out*/ float* min_height_p=null, /*out*/ float* natural_width_p=null, /*out*/ float* natural_height_p=null);
19412 void clutter_actor_get_preferred_width(Actor* this_, float for_height, /*out*/ float* min_width_p=null, /*out*/ float* natural_width_p=null);
19413 int clutter_actor_get_reactive(Actor* this_);
19414 RequestMode clutter_actor_get_request_mode(Actor* this_);
19415 double clutter_actor_get_rotation(Actor* this_, RotateAxis axis, /*out*/ float* x, /*out*/ float* y, /*out*/ float* z);
19416 void clutter_actor_get_scale(Actor* this_, /*out*/ double* scale_x=null, /*out*/ double* scale_y=null);
19417 void clutter_actor_get_scale_center(Actor* this_, /*out*/ float* center_x=null, /*out*/ float* center_y=null);
19418 Gravity clutter_actor_get_scale_gravity(Actor* this_);
19419 Shader* clutter_actor_get_shader(Actor* this_);
19420 void clutter_actor_get_size(Actor* this_, /*out*/ float* width=null, /*out*/ float* height=null);
19421 Actor* clutter_actor_get_stage(Actor* this_);
19422 TextDirection clutter_actor_get_text_direction(Actor* this_);
19423 void clutter_actor_get_transformation_matrix(Actor* this_, /*out*/ Cogl.Matrix* matrix);
19424 PaintVolume* clutter_actor_get_transformed_paint_volume(Actor* this_, Actor* relative_to_ancestor);
19425 void clutter_actor_get_transformed_position(Actor* this_, /*out*/ float* x=null, /*out*/ float* y=null);
19426 void clutter_actor_get_transformed_size(Actor* this_, /*out*/ float* width=null, /*out*/ float* height=null);
19427 float clutter_actor_get_width(Actor* this_);
19428 float clutter_actor_get_x(Actor* this_);
19429 float clutter_actor_get_y(Actor* this_);
19430 Gravity clutter_actor_get_z_rotation_gravity(Actor* this_);
19431 void clutter_actor_grab_key_focus(Actor* this_);
19432 int clutter_actor_has_allocation(Actor* this_);
19433 int clutter_actor_has_clip(Actor* this_);
19434 int clutter_actor_has_key_focus(Actor* this_);
19435 int clutter_actor_has_overlaps(Actor* this_);
19436 int clutter_actor_has_pointer(Actor* this_);
19437 void clutter_actor_hide(Actor* this_);
19438 void clutter_actor_hide_all(Actor* this_);
19439 int clutter_actor_is_in_clone_paint(Actor* this_);
19440 int clutter_actor_is_rotated(Actor* this_);
19441 int clutter_actor_is_scaled(Actor* this_);
19442 void clutter_actor_lower(Actor* this_, Actor* above=null);
19443 void clutter_actor_lower_bottom(Actor* this_);
19444 void clutter_actor_map(Actor* this_);
19445 void clutter_actor_move_anchor_point(Actor* this_, float anchor_x, float anchor_y);
19446 void clutter_actor_move_anchor_point_from_gravity(Actor* this_, Gravity gravity);
19447 void clutter_actor_move_by(Actor* this_, float dx, float dy);
19448 void clutter_actor_paint(Actor* this_);
19449 void clutter_actor_pop_internal(Actor* this_);
19450 void clutter_actor_push_internal(Actor* this_);
19451 void clutter_actor_queue_redraw(Actor* this_);
19452 void clutter_actor_queue_relayout(Actor* this_);
19453 void clutter_actor_raise(Actor* this_, Actor* below=null);
19454 void clutter_actor_raise_top(Actor* this_);
19455 void clutter_actor_realize(Actor* this_);
19456 void clutter_actor_remove_action(Actor* this_, Action* action);
19457 void clutter_actor_remove_action_by_name(Actor* this_, char* name);
19458 void clutter_actor_remove_clip(Actor* this_);
19459 void clutter_actor_remove_constraint(Actor* this_, Constraint* constraint);
19460 void clutter_actor_remove_constraint_by_name(Actor* this_, char* name);
19461 void clutter_actor_remove_effect(Actor* this_, Effect* effect);
19462 void clutter_actor_remove_effect_by_name(Actor* this_, char* name);
19463 void clutter_actor_reparent(Actor* this_, Actor* new_parent);
19464 void clutter_actor_set_anchor_point(Actor* this_, float anchor_x, float anchor_y);
19465 void clutter_actor_set_anchor_point_from_gravity(Actor* this_, Gravity gravity);
19466 void clutter_actor_set_clip(Actor* this_, float xoff, float yoff, float width, float height);
19467 void clutter_actor_set_clip_to_allocation(Actor* this_, int clip_set);
19468 void clutter_actor_set_depth(Actor* this_, float depth);
19469 void clutter_actor_set_fixed_position_set(Actor* this_, int is_set);
19470 void clutter_actor_set_flags(Actor* this_, ActorFlags flags);
19471 void clutter_actor_set_geometry(Actor* this_, Geometry* geometry);
19472 void clutter_actor_set_height(Actor* this_, float height);
19473 void clutter_actor_set_name(Actor* this_, char* name);
19474 void clutter_actor_set_offscreen_redirect(Actor* this_, OffscreenRedirect redirect);
19475 void clutter_actor_set_opacity(Actor* this_, ubyte opacity);
19476 void clutter_actor_set_parent(Actor* this_, Actor* parent);
19477 void clutter_actor_set_position(Actor* this_, float x, float y);
19478 void clutter_actor_set_reactive(Actor* this_, int reactive);
19479 void clutter_actor_set_request_mode(Actor* this_, RequestMode mode);
19480 void clutter_actor_set_rotation(Actor* this_, RotateAxis axis, double angle, float x, float y, float z);
19481 void clutter_actor_set_scale(Actor* this_, double scale_x, double scale_y);
19482 void clutter_actor_set_scale_full(Actor* this_, double scale_x, double scale_y, float center_x, float center_y);
19483 void clutter_actor_set_scale_with_gravity(Actor* this_, double scale_x, double scale_y, Gravity gravity);
19484 int clutter_actor_set_shader(Actor* this_, Shader* shader=null);
19485 void clutter_actor_set_shader_param(Actor* this_, char* param, GObject2.Value* value);
19486 void clutter_actor_set_shader_param_float(Actor* this_, char* param, float value);
19487 void clutter_actor_set_shader_param_int(Actor* this_, char* param, int value);
19488 void clutter_actor_set_size(Actor* this_, float width, float height);
19489 void clutter_actor_set_text_direction(Actor* this_, TextDirection text_dir);
19490 void clutter_actor_set_width(Actor* this_, float width);
19491 void clutter_actor_set_x(Actor* this_, float x);
19492 void clutter_actor_set_y(Actor* this_, float y);
19493 void clutter_actor_set_z_rotation_from_gravity(Actor* this_, double angle, Gravity gravity);
19494 int clutter_actor_should_pick_paint(Actor* this_);
19495 void clutter_actor_show(Actor* this_);
19496 void clutter_actor_show_all(Actor* this_);
19497 int clutter_actor_transform_stage_point(Actor* this_, float x, float y, /*out*/ float* x_out, /*out*/ float* y_out);
19498 void clutter_actor_unmap(Actor* this_);
19499 void clutter_actor_unparent(Actor* this_);
19500 void clutter_actor_unrealize(Actor* this_);
19501 void clutter_actor_unset_flags(Actor* this_, ActorFlags flags);
19502 ActorBox* /*new*/ clutter_actor_box_new(float x_1, float y_1, float x_2, float y_2);
19503 void clutter_actor_box_clamp_to_pixel(ActorBox* this_);
19504 int clutter_actor_box_contains(ActorBox* this_, float x, float y);
19505 ActorBox* /*new*/ clutter_actor_box_copy(ActorBox* this_);
19506 int clutter_actor_box_equal(ActorBox* this_, ActorBox* box_b);
19507 void clutter_actor_box_free(ActorBox* this_);
19508 void clutter_actor_box_from_vertices(ActorBox* this_, Vertex verts);
19509 float clutter_actor_box_get_area(ActorBox* this_);
19510 float clutter_actor_box_get_height(ActorBox* this_);
19511 void clutter_actor_box_get_origin(ActorBox* this_, /*out*/ float* x=null, /*out*/ float* y=null);
19512 void clutter_actor_box_get_size(ActorBox* this_, /*out*/ float* width=null, /*out*/ float* height=null);
19513 float clutter_actor_box_get_width(ActorBox* this_);
19514 float clutter_actor_box_get_x(ActorBox* this_);
19515 float clutter_actor_box_get_y(ActorBox* this_);
19516 void clutter_actor_box_interpolate(ActorBox* this_, ActorBox* final, double progress, /*out*/ ActorBox* result);
19517 void clutter_actor_box_set_origin(ActorBox* this_, float x, float y);
19518 void clutter_actor_box_set_size(ActorBox* this_, float width, float height);
19519 void clutter_actor_box_union(ActorBox* this_, ActorBox* b, /*out*/ ActorBox* result);
19520 Actor* clutter_actor_meta_get_actor(ActorMeta* this_);
19521 int clutter_actor_meta_get_enabled(ActorMeta* this_);
19522 char* clutter_actor_meta_get_name(ActorMeta* this_);
19523 void clutter_actor_meta_set_enabled(ActorMeta* this_, int is_enabled);
19524 void clutter_actor_meta_set_name(ActorMeta* this_, char* name);
19525 AlignConstraint* clutter_align_constraint_new(Actor* source, AlignAxis axis, float factor);
19526 AlignAxis clutter_align_constraint_get_align_axis(AlignConstraint* this_);
19527 float clutter_align_constraint_get_factor(AlignConstraint* this_);
19528 Actor* clutter_align_constraint_get_source(AlignConstraint* this_);
19529 void clutter_align_constraint_set_align_axis(AlignConstraint* this_, AlignAxis axis);
19530 void clutter_align_constraint_set_factor(AlignConstraint* this_, float factor);
19531 void clutter_align_constraint_set_source(AlignConstraint* this_, Actor* source=null);
19532 Alpha* clutter_alpha_new();
19533 Alpha* clutter_alpha_new_full(Timeline* timeline, c_ulong mode);
19534 Alpha* clutter_alpha_new_with_func(Timeline* timeline, AlphaFunc func, void* data, GLib2.DestroyNotify destroy);
19535 c_ulong clutter_alpha_register_closure(GObject2.Closure* closure);
19536 c_ulong clutter_alpha_register_func(AlphaFunc func, void* data);
19537 double clutter_alpha_get_alpha(Alpha* this_);
19538 c_ulong clutter_alpha_get_mode(Alpha* this_);
19539 Timeline* clutter_alpha_get_timeline(Alpha* this_);
19540 void clutter_alpha_set_closure(Alpha* this_, GObject2.Closure* closure);
19541 void clutter_alpha_set_func(Alpha* this_, AlphaFunc func, void* data, GLib2.DestroyNotify destroy);
19542 void clutter_alpha_set_mode(Alpha* this_, c_ulong mode);
19543 void clutter_alpha_set_timeline(Alpha* this_, Timeline* timeline);
19544 int clutter_animatable_animate_property(Animatable* this_, Animation* animation, char* property_name, GObject2.Value* initial_value, GObject2.Value* final_value, double progress, GObject2.Value* value);
19545 GObject2.ParamSpec* clutter_animatable_find_property(Animatable* this_, char* property_name);
19546 void clutter_animatable_get_initial_state(Animatable* this_, char* property_name, GObject2.Value* value);
19547 int clutter_animatable_interpolate_value(Animatable* this_, char* property_name, Interval* interval, double progress, /*out*/ GObject2.Value* value);
19548 void clutter_animatable_set_final_state(Animatable* this_, char* property_name, GObject2.Value* value);
19549 Animation* /*new*/ clutter_animation_new();
19550 Animation* clutter_animation_bind(Animation* this_, char* property_name, GObject2.Value* final);
19551 Animation* clutter_animation_bind_interval(Animation* this_, char* property_name, Interval* interval);
19552 void clutter_animation_completed(Animation* this_);
19553 Alpha* clutter_animation_get_alpha(Animation* this_);
19554 uint clutter_animation_get_duration(Animation* this_);
19555 Interval* clutter_animation_get_interval(Animation* this_, char* property_name);
19556 int clutter_animation_get_loop(Animation* this_);
19557 c_ulong clutter_animation_get_mode(Animation* this_);
19558 GObject2.Object* clutter_animation_get_object(Animation* this_);
19559 Timeline* clutter_animation_get_timeline(Animation* this_);
19560 int clutter_animation_has_property(Animation* this_, char* property_name);
19561 void clutter_animation_set_alpha(Animation* this_, Alpha* alpha);
19562 void clutter_animation_set_duration(Animation* this_, uint msecs);
19563 void clutter_animation_set_loop(Animation* this_, int loop);
19564 void clutter_animation_set_mode(Animation* this_, c_ulong mode);
19565 void clutter_animation_set_object(Animation* this_, GObject2.Object* object);
19566 void clutter_animation_set_timeline(Animation* this_, Timeline* timeline);
19567 void clutter_animation_unbind_property(Animation* this_, char* property_name);
19568 Animation* clutter_animation_update(Animation* this_, char* property_name, GObject2.Value* final);
19569 void clutter_animation_update_interval(Animation* this_, char* property_name, Interval* interval);
19570 Animator* /*new*/ clutter_animator_new();
19571 int clutter_animator_compute_value(Animator* this_, GObject2.Object* object, char* property_name, double progress, GObject2.Value* value);
19572 uint clutter_animator_get_duration(Animator* this_);
19573 GLib2.List* /*new container*/ clutter_animator_get_keys(Animator* this_, GObject2.Object* object, char* property_name, double progress);
19574 Timeline* clutter_animator_get_timeline(Animator* this_);
19575 int clutter_animator_property_get_ease_in(Animator* this_, GObject2.Object* object, char* property_name);
19576 Interpolation clutter_animator_property_get_interpolation(Animator* this_, GObject2.Object* object, char* property_name);
19577 void clutter_animator_property_set_ease_in(Animator* this_, GObject2.Object* object, char* property_name, int ease_in);
19578 void clutter_animator_property_set_interpolation(Animator* this_, GObject2.Object* object, char* property_name, Interpolation interpolation);
19579 void clutter_animator_remove_key(Animator* this_, GObject2.Object* object, char* property_name, double progress);
19580 void clutter_animator_set(Animator* this_, void* first_object, char* first_property_name, uint first_mode, double first_progress, ...);
19581 void clutter_animator_set_duration(Animator* this_, uint duration);
19582 Animator* clutter_animator_set_key(Animator* this_, GObject2.Object* object, char* property_name, uint mode, double progress, GObject2.Value* value);
19583 void clutter_animator_set_timeline(Animator* this_, Timeline* timeline);
19584 Timeline* clutter_animator_start(Animator* this_);
19585 c_ulong clutter_animator_key_get_mode(AnimatorKey* this_);
19586 GObject2.Object* clutter_animator_key_get_object(AnimatorKey* this_);
19587 double clutter_animator_key_get_progress(AnimatorKey* this_);
19588 char* clutter_animator_key_get_property_name(AnimatorKey* this_);
19589 Type clutter_animator_key_get_property_type(AnimatorKey* this_);
19590 int clutter_animator_key_get_value(AnimatorKey* this_, GObject2.Value* value);
19591 uint clutter_backend_get_double_click_distance(Backend* this_);
19592 uint clutter_backend_get_double_click_time(Backend* this_);
19593 char* clutter_backend_get_font_name(Backend* this_);
19594 cairo.FontOptions* clutter_backend_get_font_options(Backend* this_);
19595 double clutter_backend_get_resolution(Backend* this_);
19596 void clutter_backend_set_double_click_distance(Backend* this_, uint distance);
19597 void clutter_backend_set_double_click_time(Backend* this_, uint msec);
19598 void clutter_backend_set_font_name(Backend* this_, char* font_name);
19599 void clutter_backend_set_font_options(Backend* this_, cairo.FontOptions* options);
19600 void clutter_backend_set_resolution(Backend* this_, double dpi);
19601 void clutter_behaviour_actors_foreach(Behaviour* this_, BehaviourForeachFunc func, void* data);
19602 void clutter_behaviour_apply(Behaviour* this_, Actor* actor);
19603 GLib2.SList* /*new container*/ clutter_behaviour_get_actors(Behaviour* this_);
19604 Alpha* clutter_behaviour_get_alpha(Behaviour* this_);
19605 int clutter_behaviour_get_n_actors(Behaviour* this_);
19606 Actor* clutter_behaviour_get_nth_actor(Behaviour* this_, int index_);
19607 int clutter_behaviour_is_applied(Behaviour* this_, Actor* actor);
19608 void clutter_behaviour_remove(Behaviour* this_, Actor* actor);
19609 void clutter_behaviour_remove_all(Behaviour* this_);
19610 void clutter_behaviour_set_alpha(Behaviour* this_, Alpha* alpha);
19611 BehaviourDepth* /*new*/ clutter_behaviour_depth_new(Alpha* alpha, int depth_start, int depth_end);
19612 void clutter_behaviour_depth_get_bounds(BehaviourDepth* this_, /*out*/ int* depth_start, /*out*/ int* depth_end);
19613 void clutter_behaviour_depth_set_bounds(BehaviourDepth* this_, int depth_start, int depth_end);
19614 BehaviourEllipse* /*new*/ clutter_behaviour_ellipse_new(Alpha* alpha, int x, int y, int width, int height, RotateDirection direction, double start, double end);
19615 double clutter_behaviour_ellipse_get_angle_end(BehaviourEllipse* this_);
19616 double clutter_behaviour_ellipse_get_angle_start(BehaviourEllipse* this_);
19617 double clutter_behaviour_ellipse_get_angle_tilt(BehaviourEllipse* this_, RotateAxis axis);
19618 void clutter_behaviour_ellipse_get_center(BehaviourEllipse* this_, /*out*/ int* x, /*out*/ int* y);
19619 RotateDirection clutter_behaviour_ellipse_get_direction(BehaviourEllipse* this_);
19620 int clutter_behaviour_ellipse_get_height(BehaviourEllipse* this_);
19621 void clutter_behaviour_ellipse_get_tilt(BehaviourEllipse* this_, /*out*/ double* angle_tilt_x, /*out*/ double* angle_tilt_y, /*out*/ double* angle_tilt_z);
19622 int clutter_behaviour_ellipse_get_width(BehaviourEllipse* this_);
19623 void clutter_behaviour_ellipse_set_angle_end(BehaviourEllipse* this_, double angle_end);
19624 void clutter_behaviour_ellipse_set_angle_start(BehaviourEllipse* this_, double angle_start);
19625 void clutter_behaviour_ellipse_set_angle_tilt(BehaviourEllipse* this_, RotateAxis axis, double angle_tilt);
19626 void clutter_behaviour_ellipse_set_center(BehaviourEllipse* this_, int x, int y);
19627 void clutter_behaviour_ellipse_set_direction(BehaviourEllipse* this_, RotateDirection direction);
19628 void clutter_behaviour_ellipse_set_height(BehaviourEllipse* this_, int height);
19629 void clutter_behaviour_ellipse_set_tilt(BehaviourEllipse* this_, double angle_tilt_x, double angle_tilt_y, double angle_tilt_z);
19630 void clutter_behaviour_ellipse_set_width(BehaviourEllipse* this_, int width);
19631 BehaviourOpacity* /*new*/ clutter_behaviour_opacity_new(Alpha* alpha, ubyte opacity_start, ubyte opacity_end);
19632 void clutter_behaviour_opacity_get_bounds(BehaviourOpacity* this_, /*out*/ ubyte* opacity_start, /*out*/ ubyte* opacity_end);
19633 void clutter_behaviour_opacity_set_bounds(BehaviourOpacity* this_, ubyte opacity_start, ubyte opacity_end);
19634 BehaviourPath* /*new*/ clutter_behaviour_path_new(Alpha* alpha, Path* path);
19635 BehaviourPath* /*new*/ clutter_behaviour_path_new_with_description(Alpha* alpha, char* desc);
19636 BehaviourPath* /*new*/ clutter_behaviour_path_new_with_knots(Alpha* alpha, Knot* knots, uint n_knots);
19637 Path* clutter_behaviour_path_get_path(BehaviourPath* this_);
19638 void clutter_behaviour_path_set_path(BehaviourPath* this_, Path* path);
19639 BehaviourRotate* /*new*/ clutter_behaviour_rotate_new(Alpha* alpha, RotateAxis axis, RotateDirection direction, double angle_start, double angle_end);
19640 RotateAxis clutter_behaviour_rotate_get_axis(BehaviourRotate* this_);
19641 void clutter_behaviour_rotate_get_bounds(BehaviourRotate* this_, /*out*/ double* angle_start, /*out*/ double* angle_end);
19642 void clutter_behaviour_rotate_get_center(BehaviourRotate* this_, /*out*/ int* x, /*out*/ int* y, /*out*/ int* z);
19643 RotateDirection clutter_behaviour_rotate_get_direction(BehaviourRotate* this_);
19644 void clutter_behaviour_rotate_set_axis(BehaviourRotate* this_, RotateAxis axis);
19645 void clutter_behaviour_rotate_set_bounds(BehaviourRotate* this_, double angle_start, double angle_end);
19646 void clutter_behaviour_rotate_set_center(BehaviourRotate* this_, int x, int y, int z);
19647 void clutter_behaviour_rotate_set_direction(BehaviourRotate* this_, RotateDirection direction);
19648 BehaviourScale* /*new*/ clutter_behaviour_scale_new(Alpha* alpha, double x_scale_start, double y_scale_start, double x_scale_end, double y_scale_end);
19649 void clutter_behaviour_scale_get_bounds(BehaviourScale* this_, /*out*/ double* x_scale_start, /*out*/ double* y_scale_start, /*out*/ double* x_scale_end, /*out*/ double* y_scale_end);
19650 void clutter_behaviour_scale_set_bounds(BehaviourScale* this_, double x_scale_start, double y_scale_start, double x_scale_end, double y_scale_end);
19651 BinLayout* clutter_bin_layout_new(BinAlignment x_align, BinAlignment y_align);
19652 void clutter_bin_layout_add(BinLayout* this_, Actor* child, BinAlignment x_align, BinAlignment y_align);
19653 void clutter_bin_layout_get_alignment(BinLayout* this_, Actor* child=null, /*out*/ BinAlignment* x_align=null, /*out*/ BinAlignment* y_align=null);
19654 void clutter_bin_layout_set_alignment(BinLayout* this_, Actor* child, BinAlignment x_align, BinAlignment y_align);
19655 BindConstraint* clutter_bind_constraint_new(Actor* source, BindCoordinate coordinate, float offset);
19656 BindCoordinate clutter_bind_constraint_get_coordinate(BindConstraint* this_);
19657 float clutter_bind_constraint_get_offset(BindConstraint* this_);
19658 Actor* clutter_bind_constraint_get_source(BindConstraint* this_);
19659 void clutter_bind_constraint_set_coordinate(BindConstraint* this_, BindCoordinate coordinate);
19660 void clutter_bind_constraint_set_offset(BindConstraint* this_, float offset);
19661 void clutter_bind_constraint_set_source(BindConstraint* this_, Actor* source=null);
19662 BindingPool* /*new*/ clutter_binding_pool_new(char* name);
19663 BindingPool* clutter_binding_pool_find(char* name);
19664 BindingPool* clutter_binding_pool_get_for_class(void* klass);
19665 int clutter_binding_pool_activate(BindingPool* this_, uint key_val, ModifierType modifiers, GObject2.Object* gobject);
19666 void clutter_binding_pool_block_action(BindingPool* this_, char* action_name);
19667 char* clutter_binding_pool_find_action(BindingPool* this_, uint key_val, ModifierType modifiers);
19668 void clutter_binding_pool_install_action(BindingPool* this_, char* action_name, uint key_val, ModifierType modifiers, GObject2.Callback callback, void* data, GLib2.DestroyNotify notify);
19669 void clutter_binding_pool_install_closure(BindingPool* this_, char* action_name, uint key_val, ModifierType modifiers, GObject2.Closure* closure);
19670 void clutter_binding_pool_override_action(BindingPool* this_, uint key_val, ModifierType modifiers, GObject2.Callback callback, void* data, GLib2.DestroyNotify notify);
19671 void clutter_binding_pool_override_closure(BindingPool* this_, uint key_val, ModifierType modifiers, GObject2.Closure* closure);
19672 void clutter_binding_pool_remove_action(BindingPool* this_, uint key_val, ModifierType modifiers);
19673 void clutter_binding_pool_unblock_action(BindingPool* this_, char* action_name);
19674 BlurEffect* clutter_blur_effect_new();
19675 Box* clutter_box_new(LayoutManager* manager);
19676 void clutter_box_get_color(Box* this_, /*out*/ Color* color);
19677 LayoutManager* clutter_box_get_layout_manager(Box* this_);
19678 void clutter_box_pack(Box* this_, Actor* actor, char* first_property, ...);
19679 void clutter_box_pack_after(Box* this_, Actor* actor, Actor* sibling, char* first_property, ...);
19680 void clutter_box_pack_at(Box* this_, Actor* actor, int position, char* first_property, ...);
19681 void clutter_box_pack_before(Box* this_, Actor* actor, Actor* sibling, char* first_property, ...);
19682 void clutter_box_packv(Box* this_, Actor* actor, uint n_properties, char* properties, GObject2.Value* values);
19683 void clutter_box_set_color(Box* this_, Color* color=null);
19684 void clutter_box_set_layout_manager(Box* this_, LayoutManager* manager);
19685 BoxLayout* clutter_box_layout_new();
19686 void clutter_box_layout_get_alignment(BoxLayout* this_, Actor* actor, /*out*/ BoxAlignment* x_align, /*out*/ BoxAlignment* y_align);
19687 uint clutter_box_layout_get_easing_duration(BoxLayout* this_);
19688 c_ulong clutter_box_layout_get_easing_mode(BoxLayout* this_);
19689 int clutter_box_layout_get_expand(BoxLayout* this_, Actor* actor);
19690 void clutter_box_layout_get_fill(BoxLayout* this_, Actor* actor, /*out*/ int* x_fill, /*out*/ int* y_fill);
19691 int clutter_box_layout_get_homogeneous(BoxLayout* this_);
19692 int clutter_box_layout_get_pack_start(BoxLayout* this_);
19693 uint clutter_box_layout_get_spacing(BoxLayout* this_);
19694 int clutter_box_layout_get_use_animations(BoxLayout* this_);
19695 int clutter_box_layout_get_vertical(BoxLayout* this_);
19696 void clutter_box_layout_pack(BoxLayout* this_, Actor* actor, int expand, int x_fill, int y_fill, BoxAlignment x_align, BoxAlignment y_align);
19697 void clutter_box_layout_set_alignment(BoxLayout* this_, Actor* actor, BoxAlignment x_align, BoxAlignment y_align);
19698 void clutter_box_layout_set_easing_duration(BoxLayout* this_, uint msecs);
19699 void clutter_box_layout_set_easing_mode(BoxLayout* this_, c_ulong mode);
19700 void clutter_box_layout_set_expand(BoxLayout* this_, Actor* actor, int expand);
19701 void clutter_box_layout_set_fill(BoxLayout* this_, Actor* actor, int x_fill, int y_fill);
19702 void clutter_box_layout_set_homogeneous(BoxLayout* this_, int homogeneous);
19703 void clutter_box_layout_set_pack_start(BoxLayout* this_, int pack_start);
19704 void clutter_box_layout_set_spacing(BoxLayout* this_, uint spacing);
19705 void clutter_box_layout_set_use_animations(BoxLayout* this_, int animate);
19706 void clutter_box_layout_set_vertical(BoxLayout* this_, int vertical);
19707 CairoTexture* clutter_cairo_texture_new(uint width, uint height);
19708 void clutter_cairo_texture_clear(CairoTexture* this_);
19709 cairo.Context* /*new*/ clutter_cairo_texture_create(CairoTexture* this_);
19710 cairo.Context* /*new*/ clutter_cairo_texture_create_region(CairoTexture* this_, int x_offset, int y_offset, int width, int height);
19711 int clutter_cairo_texture_get_auto_resize(CairoTexture* this_);
19712 void clutter_cairo_texture_get_surface_size(CairoTexture* this_, /*out*/ uint* width, /*out*/ uint* height);
19713 void clutter_cairo_texture_invalidate(CairoTexture* this_);
19714 void clutter_cairo_texture_invalidate_rectangle(CairoTexture* this_, cairo.RectangleInt* rect=null);
19715 void clutter_cairo_texture_set_auto_resize(CairoTexture* this_, int value);
19716 void clutter_cairo_texture_set_surface_size(CairoTexture* this_, uint width, uint height);
19717 Actor* clutter_child_meta_get_actor(ChildMeta* this_);
19718 Container* clutter_child_meta_get_container(ChildMeta* this_);
19719 ClickAction* clutter_click_action_new();
19720 uint clutter_click_action_get_button(ClickAction* this_);
19721 void clutter_click_action_get_coords(ClickAction* this_, /*out*/ float* press_x, /*out*/ float* press_y);
19722 ModifierType clutter_click_action_get_state(ClickAction* this_);
19723 void clutter_click_action_release(ClickAction* this_);
19724 Clone* clutter_clone_new(Actor* source);
19725 Actor* clutter_clone_get_source(Clone* this_);
19726 void clutter_clone_set_source(Clone* this_, Actor* source);
19727 Color* /*new*/ clutter_color_new(ubyte red, ubyte green, ubyte blue, ubyte alpha);
19728 void clutter_color_add(Color* this_, Color* b, /*out*/ Color* result);
19729 Color* /*new*/ clutter_color_copy(Color* this_);
19730 void clutter_color_darken(Color* this_, /*out*/ Color* result);
19731 void clutter_color_free(Color* this_);
19732 void clutter_color_from_hls(Color* this_, float hue, float luminance, float saturation);
19733 void clutter_color_from_pixel(Color* this_, uint pixel);
19734 int clutter_color_from_string(Color* this_, char* str);
19735 void clutter_color_interpolate(Color* this_, Color* final, double progress, /*out*/ Color* result);
19736 void clutter_color_lighten(Color* this_, /*out*/ Color* result);
19737 void clutter_color_shade(Color* this_, double factor, /*out*/ Color* result);
19738 void clutter_color_subtract(Color* this_, Color* b, /*out*/ Color* result);
19739 void clutter_color_to_hls(Color* this_, /*out*/ float* hue, /*out*/ float* luminance, /*out*/ float* saturation);
19740 uint clutter_color_to_pixel(Color* this_);
19741 char* /*new*/ clutter_color_to_string(Color* this_);
19742 int clutter_color_equal(const(void)* v1, const(void)* v2);
19743 Color* clutter_color_get_static(StaticColor color);
19744 uint clutter_color_hash(const(void)* v);
19745 ColorizeEffect* clutter_colorize_effect_new(Color* tint);
19746 void clutter_colorize_effect_get_tint(ColorizeEffect* this_, /*out*/ Color* tint);
19747 void clutter_colorize_effect_set_tint(ColorizeEffect* this_, Color* tint);
19748 GObject2.ParamSpec* clutter_container_class_find_child_property(GObject2.ObjectClass* klass, char* property_name);
19749 GObject2.ParamSpec** /*new*/ clutter_container_class_list_child_properties(GObject2.ObjectClass* klass, /*out*/ uint* n_properties);
19750 void clutter_container_add(Container* this_, Actor* first_actor, ...);
19751 void clutter_container_add_actor(Container* this_, Actor* actor);
19752 void clutter_container_add_valist(Container* this_, Actor* first_actor, va_list var_args);
19753 void clutter_container_child_get(Container* this_, Actor* actor, char* first_prop, ...);
19754 void clutter_container_child_get_property(Container* this_, Actor* child, char* property, GObject2.Value* value);
19755 void clutter_container_child_notify(Container* this_, Actor* child, GObject2.ParamSpec* pspec);
19756 void clutter_container_child_set(Container* this_, Actor* actor, char* first_prop, ...);
19757 void clutter_container_child_set_property(Container* this_, Actor* child, char* property, GObject2.Value* value);
19758 void clutter_container_create_child_meta(Container* this_, Actor* actor);
19759 void clutter_container_destroy_child_meta(Container* this_, Actor* actor);
19760 Actor* clutter_container_find_child_by_name(Container* this_, char* child_name);
19761 void clutter_container_foreach(Container* this_, Callback callback, void* user_data);
19762 void clutter_container_foreach_with_internals(Container* this_, Callback callback, void* user_data);
19763 ChildMeta* clutter_container_get_child_meta(Container* this_, Actor* actor);
19764 GLib2.List* /*new container*/ clutter_container_get_children(Container* this_);
19765 void clutter_container_lower_child(Container* this_, Actor* actor, Actor* sibling=null);
19766 void clutter_container_raise_child(Container* this_, Actor* actor, Actor* sibling=null);
19767 void clutter_container_remove(Container* this_, Actor* first_actor, ...);
19768 void clutter_container_remove_actor(Container* this_, Actor* actor);
19769 void clutter_container_remove_valist(Container* this_, Actor* first_actor, va_list var_args);
19770 void clutter_container_sort_depth_order(Container* this_);
19771 Cogl.Handle clutter_deform_effect_get_back_material(DeformEffect* this_);
19772 void clutter_deform_effect_get_n_tiles(DeformEffect* this_, /*out*/ uint* x_tiles, /*out*/ uint* y_tiles);
19773 void clutter_deform_effect_invalidate(DeformEffect* this_);
19774 void clutter_deform_effect_set_back_material(DeformEffect* this_, Cogl.Handle material=null);
19775 void clutter_deform_effect_set_n_tiles(DeformEffect* this_, uint x_tiles, uint y_tiles);
19776 DesaturateEffect* clutter_desaturate_effect_new(double factor);
19777 double clutter_desaturate_effect_get_factor(DesaturateEffect* this_);
19778 void clutter_desaturate_effect_set_factor(DesaturateEffect* this_, double factor);
19779 DeviceManager* clutter_device_manager_get_default();
19780 InputDevice* clutter_device_manager_get_core_device(DeviceManager* this_, InputDeviceType device_type);
19781 InputDevice* clutter_device_manager_get_device(DeviceManager* this_, int device_id);
19782 GLib2.SList* /*new container*/ clutter_device_manager_list_devices(DeviceManager* this_);
19783 GLib2.SList* clutter_device_manager_peek_devices(DeviceManager* this_);
19784 DragAction* clutter_drag_action_new();
19785 DragAxis clutter_drag_action_get_drag_axis(DragAction* this_);
19786 Actor* clutter_drag_action_get_drag_handle(DragAction* this_);
19787 void clutter_drag_action_get_drag_threshold(DragAction* this_, /*out*/ uint* x_threshold, /*out*/ uint* y_threshold);
19788 void clutter_drag_action_get_motion_coords(DragAction* this_, /*out*/ float* motion_x, /*out*/ float* motion_y);
19789 void clutter_drag_action_get_press_coords(DragAction* this_, /*out*/ float* press_x, /*out*/ float* press_y);
19790 void clutter_drag_action_set_drag_axis(DragAction* this_, DragAxis axis);
19791 void clutter_drag_action_set_drag_handle(DragAction* this_, Actor* handle=null);
19792 void clutter_drag_action_set_drag_threshold(DragAction* this_, int x_threshold, int y_threshold);
19793 DropAction* clutter_drop_action_new();
19794 void clutter_effect_queue_repaint(Effect* this_);
19795 Event* /*new*/ clutter_event_new(EventType type);
19796 Event* /*new*/ clutter_event_copy(Event* this_);
19797 void clutter_event_free(Event* this_);
19798 double* clutter_event_get_axes(Event* this_, /*out*/ uint* n_axes);
19799 uint clutter_event_get_button(Event* this_);
19800 uint clutter_event_get_click_count(Event* this_);
19801 void clutter_event_get_coords(Event* this_, /*out*/ float* x, /*out*/ float* y);
19802 InputDevice* clutter_event_get_device(Event* this_);
19803 int clutter_event_get_device_id(Event* this_);
19804 InputDeviceType clutter_event_get_device_type(Event* this_);
19805 EventFlags clutter_event_get_flags(Event* this_);
19806 ushort clutter_event_get_key_code(Event* this_);
19807 uint clutter_event_get_key_symbol(Event* this_);
19808 uint clutter_event_get_key_unicode(Event* this_);
19809 Actor* clutter_event_get_related(Event* this_);
19810 ScrollDirection clutter_event_get_scroll_direction(Event* this_);
19811 Actor* clutter_event_get_source(Event* this_);
19812 InputDevice* clutter_event_get_source_device(Event* this_);
19813 Stage* clutter_event_get_stage(Event* this_);
19814 ModifierType clutter_event_get_state(Event* this_);
19815 uint clutter_event_get_time(Event* this_);
19816 void clutter_event_put(Event* this_);
19817 void clutter_event_set_button(Event* this_, uint button);
19818 void clutter_event_set_coords(Event* this_, float x, float y);
19819 void clutter_event_set_device(Event* this_, InputDevice* device=null);
19820 void clutter_event_set_flags(Event* this_, EventFlags flags);
19821 void clutter_event_set_key_code(Event* this_, ushort key_code);
19822 void clutter_event_set_key_symbol(Event* this_, uint key_sym);
19823 void clutter_event_set_key_unicode(Event* this_, uint key_unicode);
19824 void clutter_event_set_related(Event* this_, Actor* actor=null);
19825 void clutter_event_set_scroll_direction(Event* this_, ScrollDirection direction);
19826 void clutter_event_set_source(Event* this_, Actor* actor=null);
19827 void clutter_event_set_source_device(Event* this_, InputDevice* device=null);
19828 void clutter_event_set_stage(Event* this_, Stage* stage=null);
19829 void clutter_event_set_state(Event* this_, ModifierType state);
19830 void clutter_event_set_time(Event* this_, uint time_);
19831 EventType clutter_event_type(Event* this_);
19832 Event* /*new*/ clutter_event_get();
19833 Event* clutter_event_peek();
19834 FixedLayout* clutter_fixed_layout_new();
19835 FlowLayout* clutter_flow_layout_new(FlowOrientation orientation);
19836 float clutter_flow_layout_get_column_spacing(FlowLayout* this_);
19837 void clutter_flow_layout_get_column_width(FlowLayout* this_, /*out*/ float* min_width, /*out*/ float* max_width);
19838 int clutter_flow_layout_get_homogeneous(FlowLayout* this_);
19839 FlowOrientation clutter_flow_layout_get_orientation(FlowLayout* this_);
19840 void clutter_flow_layout_get_row_height(FlowLayout* this_, /*out*/ float* min_height, /*out*/ float* max_height);
19841 float clutter_flow_layout_get_row_spacing(FlowLayout* this_);
19842 void clutter_flow_layout_set_column_spacing(FlowLayout* this_, float spacing);
19843 void clutter_flow_layout_set_column_width(FlowLayout* this_, float min_width, float max_width);
19844 void clutter_flow_layout_set_homogeneous(FlowLayout* this_, int homogeneous);
19845 void clutter_flow_layout_set_orientation(FlowLayout* this_, FlowOrientation orientation);
19846 void clutter_flow_layout_set_row_height(FlowLayout* this_, float min_height, float max_height);
19847 void clutter_flow_layout_set_row_spacing(FlowLayout* this_, float spacing);
19848 int clutter_geometry_intersects(Geometry* this_, Geometry* geometry1);
19849 void clutter_geometry_union(Geometry* this_, Geometry* geometry_b, /*out*/ Geometry* result);
19850 GestureAction* clutter_gesture_action_new();
19851 void clutter_gesture_action_get_motion_coords(GestureAction* this_, uint device, /*out*/ float* motion_x, /*out*/ float* motion_y);
19852 void clutter_gesture_action_get_press_coords(GestureAction* this_, uint device, /*out*/ float* press_x, /*out*/ float* press_y);
19853 void clutter_gesture_action_get_release_coords(GestureAction* this_, uint device, /*out*/ float* release_x, /*out*/ float* release_y);
19854 Group* clutter_group_new();
19855 int clutter_group_get_n_children(Group* this_);
19856 Actor* clutter_group_get_nth_child(Group* this_, int index_);
19857 void clutter_group_remove_all(Group* this_);
19858 InputDevice* clutter_input_device_get_associated_device(InputDevice* this_);
19859 InputAxis clutter_input_device_get_axis(InputDevice* this_, uint index_);
19860 int clutter_input_device_get_axis_value(InputDevice* this_, double* axes, InputAxis axis, /*out*/ double* value);
19861 void clutter_input_device_get_device_coords(InputDevice* this_, /*out*/ int* x, /*out*/ int* y);
19862 int clutter_input_device_get_device_id(InputDevice* this_);
19863 InputMode clutter_input_device_get_device_mode(InputDevice* this_);
19864 char* clutter_input_device_get_device_name(InputDevice* this_);
19865 InputDeviceType clutter_input_device_get_device_type(InputDevice* this_);
19866 int clutter_input_device_get_enabled(InputDevice* this_);
19867 int clutter_input_device_get_has_cursor(InputDevice* this_);
19868 int clutter_input_device_get_key(InputDevice* this_, uint index_, /*out*/ uint* keyval, /*out*/ ModifierType* modifiers);
19869 uint clutter_input_device_get_n_axes(InputDevice* this_);
19870 uint clutter_input_device_get_n_keys(InputDevice* this_);
19871 Actor* clutter_input_device_get_pointer_actor(InputDevice* this_);
19872 Stage* clutter_input_device_get_pointer_stage(InputDevice* this_);
19873 GLib2.List* /*new container*/ clutter_input_device_get_slave_devices(InputDevice* this_);
19874 void clutter_input_device_set_enabled(InputDevice* this_, int enabled);
19875 void clutter_input_device_set_key(InputDevice* this_, uint index_, uint keyval, ModifierType modifiers);
19876 void clutter_input_device_update_from_event(InputDevice* this_, Event* event, int update_stage);
19877 Interval* clutter_interval_new(Type gtype, ...);
19878 Interval* clutter_interval_new_with_values(Type gtype, GObject2.Value* initial, GObject2.Value* final);
19879 void clutter_interval_register_progress_func(Type value_type, ProgressFunc func);
19880 Interval* /*new*/ clutter_interval_clone(Interval* this_);
19881 GObject2.Value* clutter_interval_compute(Interval* this_, double factor);
19882 int clutter_interval_compute_value(Interval* this_, double factor, /*out*/ GObject2.Value* value);
19883 void clutter_interval_get_final_value(Interval* this_, /*out*/ GObject2.Value* value);
19884 void clutter_interval_get_initial_value(Interval* this_, /*out*/ GObject2.Value* value);
19885 void clutter_interval_get_interval(Interval* this_, ...);
19886 Type clutter_interval_get_value_type(Interval* this_);
19887 GObject2.Value* clutter_interval_peek_final_value(Interval* this_);
19888 GObject2.Value* clutter_interval_peek_initial_value(Interval* this_);
19889 void clutter_interval_set_final_value(Interval* this_, GObject2.Value* value);
19890 void clutter_interval_set_initial_value(Interval* this_, GObject2.Value* value);
19891 void clutter_interval_set_interval(Interval* this_, ...);
19892 int clutter_interval_validate(Interval* this_, GObject2.ParamSpec* pspec);
19893 Knot* /*new*/ clutter_knot_copy(Knot* this_);
19894 int clutter_knot_equal(Knot* this_, Knot* knot_b);
19895 void clutter_knot_free(Knot* this_);
19896 void clutter_layout_manager_allocate(LayoutManager* this_, Container* container, ActorBox* allocation, AllocationFlags flags);
19897 Alpha* clutter_layout_manager_begin_animation(LayoutManager* this_, uint duration, c_ulong mode);
19898 void clutter_layout_manager_child_get(LayoutManager* this_, Container* container, Actor* actor, char* first_property, ...);
19899 void clutter_layout_manager_child_get_property(LayoutManager* this_, Container* container, Actor* actor, char* property_name, GObject2.Value* value);
19900 void clutter_layout_manager_child_set(LayoutManager* this_, Container* container, Actor* actor, char* first_property, ...);
19901 void clutter_layout_manager_child_set_property(LayoutManager* this_, Container* container, Actor* actor, char* property_name, GObject2.Value* value);
19902 void clutter_layout_manager_end_animation(LayoutManager* this_);
19903 GObject2.ParamSpec* clutter_layout_manager_find_child_property(LayoutManager* this_, char* name);
19904 double clutter_layout_manager_get_animation_progress(LayoutManager* this_);
19905 LayoutMeta* clutter_layout_manager_get_child_meta(LayoutManager* this_, Container* container, Actor* actor);
19906 void clutter_layout_manager_get_preferred_height(LayoutManager* this_, Container* container, float for_width, /*out*/ float* min_height_p=null, /*out*/ float* nat_height_p=null);
19907 void clutter_layout_manager_get_preferred_width(LayoutManager* this_, Container* container, float for_height, /*out*/ float* min_width_p=null, /*out*/ float* nat_width_p=null);
19908 void clutter_layout_manager_layout_changed(LayoutManager* this_);
19909 GObject2.ParamSpec** /*new*/ clutter_layout_manager_list_child_properties(LayoutManager* this_, /*out*/ uint* n_pspecs);
19910 void clutter_layout_manager_set_container(LayoutManager* this_, Container* container=null);
19911 LayoutManager* clutter_layout_meta_get_manager(LayoutMeta* this_);
19912 ListModel* /*new*/ clutter_list_model_new(uint n_columns, ...);
19913 ListModel* /*new*/ clutter_list_model_newv(uint n_columns, Type* types, char* names);
19914 double clutter_media_get_audio_volume(Media* this_);
19915 double clutter_media_get_buffer_fill(Media* this_);
19916 int clutter_media_get_can_seek(Media* this_);
19917 double clutter_media_get_duration(Media* this_);
19918 int clutter_media_get_playing(Media* this_);
19919 double clutter_media_get_progress(Media* this_);
19920 char* /*new*/ clutter_media_get_subtitle_font_name(Media* this_);
19921 char* /*new*/ clutter_media_get_subtitle_uri(Media* this_);
19922 char* /*new*/ clutter_media_get_uri(Media* this_);
19923 void clutter_media_set_audio_volume(Media* this_, double volume);
19924 void clutter_media_set_filename(Media* this_, char* filename);
19925 void clutter_media_set_playing(Media* this_, int playing);
19926 void clutter_media_set_progress(Media* this_, double progress);
19927 void clutter_media_set_subtitle_font_name(Media* this_, char* font_name);
19928 void clutter_media_set_subtitle_uri(Media* this_, char* uri);
19929 void clutter_media_set_uri(Media* this_, char* uri);
19930 void clutter_model_append(Model* this_, ...);
19931 void clutter_model_appendv(Model* this_, uint n_columns, uint* columns, GObject2.Value* values);
19932 int clutter_model_filter_iter(Model* this_, ModelIter* iter);
19933 int clutter_model_filter_row(Model* this_, uint row);
19934 void clutter_model_foreach(Model* this_, ModelForeachFunc func, void* user_data);
19935 char* clutter_model_get_column_name(Model* this_, uint column);
19936 Type clutter_model_get_column_type(Model* this_, uint column);
19937 int clutter_model_get_filter_set(Model* this_);
19938 ModelIter* /*new*/ clutter_model_get_first_iter(Model* this_);
19939 ModelIter* /*new*/ clutter_model_get_iter_at_row(Model* this_, uint row);
19940 ModelIter* /*new*/ clutter_model_get_last_iter(Model* this_);
19941 uint clutter_model_get_n_columns(Model* this_);
19942 uint clutter_model_get_n_rows(Model* this_);
19943 int clutter_model_get_sorting_column(Model* this_);
19944 void clutter_model_insert(Model* this_, uint row, ...);
19945 void clutter_model_insert_value(Model* this_, uint row, uint column, GObject2.Value* value);
19946 void clutter_model_insertv(Model* this_, uint row, uint n_columns, uint* columns, GObject2.Value* values);
19947 void clutter_model_prepend(Model* this_, ...);
19948 void clutter_model_prependv(Model* this_, uint n_columns, uint* columns, GObject2.Value* values);
19949 void clutter_model_remove(Model* this_, uint row);
19950 void clutter_model_resort(Model* this_);
19951 void clutter_model_set_filter(Model* this_, ModelFilterFunc func, void* user_data, GLib2.DestroyNotify notify);
19952 void clutter_model_set_names(Model* this_, uint n_columns, char* names);
19953 void clutter_model_set_sort(Model* this_, int column, ModelSortFunc func, void* user_data, GLib2.DestroyNotify notify);
19954 void clutter_model_set_sorting_column(Model* this_, int column);
19955 void clutter_model_set_types(Model* this_, uint n_columns, Type* types);
19956 ModelIter* /*new*/ clutter_model_iter_copy(ModelIter* this_);
19957 void clutter_model_iter_get(ModelIter* this_, ...);
19958 Model* clutter_model_iter_get_model(ModelIter* this_);
19959 uint clutter_model_iter_get_row(ModelIter* this_);
19960 void clutter_model_iter_get_valist(ModelIter* this_, va_list args);
19961 void clutter_model_iter_get_value(ModelIter* this_, uint column, /*out*/ GObject2.Value* value);
19962 int clutter_model_iter_is_first(ModelIter* this_);
19963 int clutter_model_iter_is_last(ModelIter* this_);
19964 ModelIter* clutter_model_iter_next(ModelIter* this_);
19965 ModelIter* clutter_model_iter_prev(ModelIter* this_);
19966 void clutter_model_iter_set(ModelIter* this_, ...);
19967 void clutter_model_iter_set_valist(ModelIter* this_, va_list args);
19968 void clutter_model_iter_set_value(ModelIter* this_, uint column, GObject2.Value* value);
19969 Cogl.Handle /*new*/ clutter_offscreen_effect_create_texture(OffscreenEffect* this_, float width, float height);
19970 Cogl.Material* clutter_offscreen_effect_get_target(OffscreenEffect* this_);
19971 int clutter_offscreen_effect_get_target_size(OffscreenEffect* this_, /*out*/ float* width, /*out*/ float* height);
19972 void clutter_offscreen_effect_paint_target(OffscreenEffect* this_);
19973 PageTurnEffect* clutter_page_turn_effect_new(double period, double angle, float radius);
19974 double clutter_page_turn_effect_get_angle(PageTurnEffect* this_);
19975 double clutter_page_turn_effect_get_period(PageTurnEffect* this_);
19976 float clutter_page_turn_effect_get_radius(PageTurnEffect* this_);
19977 void clutter_page_turn_effect_set_angle(PageTurnEffect* this_, double angle);
19978 void clutter_page_turn_effect_set_period(PageTurnEffect* this_, double period);
19979 void clutter_page_turn_effect_set_radius(PageTurnEffect* this_, float radius);
19980 PaintVolume* /*new*/ clutter_paint_volume_copy(PaintVolume* this_);
19981 void clutter_paint_volume_free(PaintVolume* this_);
19982 float clutter_paint_volume_get_depth(PaintVolume* this_);
19983 float clutter_paint_volume_get_height(PaintVolume* this_);
19984 void clutter_paint_volume_get_origin(PaintVolume* this_, /*out*/ Vertex* vertex);
19985 float clutter_paint_volume_get_width(PaintVolume* this_);
19986 void clutter_paint_volume_set_depth(PaintVolume* this_, float depth);
19987 int clutter_paint_volume_set_from_allocation(PaintVolume* this_, Actor* actor);
19988 void clutter_paint_volume_set_height(PaintVolume* this_, float height);
19989 void clutter_paint_volume_set_origin(PaintVolume* this_, Vertex* origin);
19990 void clutter_paint_volume_set_width(PaintVolume* this_, float width);
19991 void clutter_paint_volume_union(PaintVolume* this_, PaintVolume* another_pv);
19992 Path* clutter_path_new();
19993 Path* clutter_path_new_with_description(char* desc);
19994 void clutter_path_add_cairo_path(Path* this_, cairo.Path* cpath);
19995 void clutter_path_add_close(Path* this_);
19996 void clutter_path_add_curve_to(Path* this_, int x_1, int y_1, int x_2, int y_2, int x_3, int y_3);
19997 void clutter_path_add_line_to(Path* this_, int x, int y);
19998 void clutter_path_add_move_to(Path* this_, int x, int y);
19999 void clutter_path_add_node(Path* this_, PathNode* node);
20000 void clutter_path_add_rel_curve_to(Path* this_, int x_1, int y_1, int x_2, int y_2, int x_3, int y_3);
20001 void clutter_path_add_rel_line_to(Path* this_, int x, int y);
20002 void clutter_path_add_rel_move_to(Path* this_, int x, int y);
20003 int clutter_path_add_string(Path* this_, char* str);
20004 void clutter_path_clear(Path* this_);
20005 void clutter_path_foreach(Path* this_, PathCallback callback, void* user_data);
20006 char* /*new*/ clutter_path_get_description(Path* this_);
20007 uint clutter_path_get_length(Path* this_);
20008 uint clutter_path_get_n_nodes(Path* this_);
20009 void clutter_path_get_node(Path* this_, uint index_, /*out*/ PathNode* node);
20010 GLib2.SList* /*new container*/ clutter_path_get_nodes(Path* this_);
20011 uint clutter_path_get_position(Path* this_, double progress, /*out*/ Knot* position);
20012 void clutter_path_insert_node(Path* this_, int index_, PathNode* node);
20013 void clutter_path_remove_node(Path* this_, uint index_);
20014 void clutter_path_replace_node(Path* this_, uint index_, PathNode* node);
20015 int clutter_path_set_description(Path* this_, char* str);
20016 void clutter_path_to_cairo_path(Path* this_, cairo.Context* cr);
20017 PathConstraint* /*new*/ clutter_path_constraint_new(Path* path, float offset);
20018 float clutter_path_constraint_get_offset(PathConstraint* this_);
20019 Path* clutter_path_constraint_get_path(PathConstraint* this_);
20020 void clutter_path_constraint_set_offset(PathConstraint* this_, float offset);
20021 void clutter_path_constraint_set_path(PathConstraint* this_, Path* path=null);
20022 PathNode* /*new*/ clutter_path_node_copy(PathNode* this_);
20023 int clutter_path_node_equal(PathNode* this_, PathNode* node_b);
20024 void clutter_path_node_free(PathNode* this_);
20025 Rectangle* clutter_rectangle_new();
20026 Rectangle* clutter_rectangle_new_with_color(Color* color);
20027 void clutter_rectangle_get_border_color(Rectangle* this_, /*out*/ Color* color);
20028 uint clutter_rectangle_get_border_width(Rectangle* this_);
20029 void clutter_rectangle_get_color(Rectangle* this_, /*out*/ Color* color);
20030 void clutter_rectangle_set_border_color(Rectangle* this_, Color* color);
20031 void clutter_rectangle_set_border_width(Rectangle* this_, uint width);
20032 void clutter_rectangle_set_color(Rectangle* this_, Color* color);
20033 Score* /*new*/ clutter_score_new();
20034 c_ulong clutter_score_append(Score* this_, Timeline* parent, Timeline* timeline);
20035 c_ulong clutter_score_append_at_marker(Score* this_, Timeline* parent, char* marker_name, Timeline* timeline);
20036 int clutter_score_get_loop(Score* this_);
20037 Timeline* clutter_score_get_timeline(Score* this_, c_ulong id_);
20038 int clutter_score_is_playing(Score* this_);
20039 GLib2.SList* /*new container*/ clutter_score_list_timelines(Score* this_);
20040 void clutter_score_pause(Score* this_);
20041 void clutter_score_remove(Score* this_, c_ulong id_);
20042 void clutter_score_remove_all(Score* this_);
20043 void clutter_score_rewind(Score* this_);
20044 void clutter_score_set_loop(Score* this_, int loop);
20045 void clutter_score_start(Score* this_);
20046 void clutter_score_stop(Score* this_);
20047 Script* /*new*/ clutter_script_new();
20048 void clutter_script_add_search_paths(Script* this_, char* paths, size_t n_paths);
20049 void clutter_script_add_states(Script* this_, char* name, State* state);
20050 void clutter_script_connect_signals(Script* this_, void* user_data);
20051 void clutter_script_connect_signals_full(Script* this_, ScriptConnectFunc func, void* user_data);
20052 void clutter_script_ensure_objects(Script* this_);
20053 GObject2.Object* clutter_script_get_object(Script* this_, char* name);
20054 int clutter_script_get_objects(Script* this_, char* first_name, ...);
20055 State* clutter_script_get_states(Script* this_, char* name=null);
20056 Type clutter_script_get_type_from_name(Script* this_, char* type_name);
20057 GLib2.List* /*new container*/ clutter_script_list_objects(Script* this_);
20058 uint clutter_script_load_from_data(Script* this_, char* data, ssize_t length, GLib2.Error** error);
20059 uint clutter_script_load_from_file(Script* this_, char* filename, GLib2.Error** error);
20060 char* /*new*/ clutter_script_lookup_filename(Script* this_, char* filename);
20061 void clutter_script_unmerge_objects(Script* this_, uint merge_id);
20062 char* clutter_scriptable_get_id(Scriptable* this_);
20063 int clutter_scriptable_parse_custom_node(Scriptable* this_, Script* script, GObject2.Value* value, char* name, Json.Node* node);
20064 void clutter_scriptable_set_custom_property(Scriptable* this_, Script* script, char* name, GObject2.Value* value);
20065 void clutter_scriptable_set_id(Scriptable* this_, char* id_);
20066 Settings* clutter_settings_get_default();
20067 Shader* /*new*/ clutter_shader_new();
20068 int clutter_shader_compile(Shader* this_, GLib2.Error** error);
20069 Cogl.Handle clutter_shader_get_cogl_fragment_shader(Shader* this_);
20070 Cogl.Handle clutter_shader_get_cogl_program(Shader* this_);
20071 Cogl.Handle clutter_shader_get_cogl_vertex_shader(Shader* this_);
20072 char* clutter_shader_get_fragment_source(Shader* this_);
20073 int clutter_shader_get_is_enabled(Shader* this_);
20074 char* clutter_shader_get_vertex_source(Shader* this_);
20075 int clutter_shader_is_compiled(Shader* this_);
20076 void clutter_shader_release(Shader* this_);
20077 void clutter_shader_set_fragment_source(Shader* this_, char* data, ssize_t length);
20078 void clutter_shader_set_is_enabled(Shader* this_, int enabled);
20079 void clutter_shader_set_uniform(Shader* this_, char* name, GObject2.Value* value);
20080 void clutter_shader_set_vertex_source(Shader* this_, char* data, ssize_t length);
20081 ShaderEffect* /*new*/ clutter_shader_effect_new(ShaderType shader_type);
20082 Cogl.Handle clutter_shader_effect_get_program(ShaderEffect* this_);
20083 Cogl.Handle clutter_shader_effect_get_shader(ShaderEffect* this_);
20084 int clutter_shader_effect_set_shader_source(ShaderEffect* this_, char* source);
20085 void clutter_shader_effect_set_uniform(ShaderEffect* this_, char* name, Type gtype, size_t n_values, ...);
20086 void clutter_shader_effect_set_uniform_value(ShaderEffect* this_, char* name, GObject2.Value* value);
20087 SnapConstraint* clutter_snap_constraint_new(Actor* source, SnapEdge from_edge, SnapEdge to_edge, float offset);
20088 void clutter_snap_constraint_get_edges(SnapConstraint* this_, /*out*/ SnapEdge* from_edge, /*out*/ SnapEdge* to_edge);
20089 float clutter_snap_constraint_get_offset(SnapConstraint* this_);
20090 Actor* clutter_snap_constraint_get_source(SnapConstraint* this_);
20091 void clutter_snap_constraint_set_edges(SnapConstraint* this_, SnapEdge from_edge, SnapEdge to_edge);
20092 void clutter_snap_constraint_set_offset(SnapConstraint* this_, float offset);
20093 void clutter_snap_constraint_set_source(SnapConstraint* this_, Actor* source=null);
20094 Stage* clutter_stage_new();
20095 ClutterActor* clutter_stage_get_default();
20096 void clutter_stage_ensure_current(Stage* this_);
20097 void clutter_stage_ensure_redraw(Stage* this_);
20098 void clutter_stage_ensure_viewport(Stage* this_);
20099 int clutter_stage_event(Stage* this_, Event* event);
20100 int clutter_stage_get_accept_focus(Stage* this_);
20101 Actor* clutter_stage_get_actor_at_pos(Stage* this_, PickMode pick_mode, int x, int y);
20102 void clutter_stage_get_color(Stage* this_, /*out*/ Color* color);
20103 void clutter_stage_get_fog(Stage* this_, /*out*/ Fog* fog);
20104 int clutter_stage_get_fullscreen(Stage* this_);
20105 Actor* clutter_stage_get_key_focus(Stage* this_);
20106 void clutter_stage_get_minimum_size(Stage* this_, /*out*/ uint* width, /*out*/ uint* height);
20107 int clutter_stage_get_motion_events_enabled(Stage* this_);
20108 int clutter_stage_get_no_clear_hint(Stage* this_);
20109 void clutter_stage_get_perspective(Stage* this_, /*out*/ Perspective* perspective=null);
20110 void clutter_stage_get_redraw_clip_bounds(Stage* this_, /*out*/ cairo.RectangleInt* clip);
20111 int clutter_stage_get_throttle_motion_events(Stage* this_);
20112 char* clutter_stage_get_title(Stage* this_);
20113 int clutter_stage_get_use_alpha(Stage* this_);
20114 int clutter_stage_get_use_fog(Stage* this_);
20115 int clutter_stage_get_user_resizable(Stage* this_);
20116 void clutter_stage_hide_cursor(Stage* this_);
20117 int clutter_stage_is_default(Stage* this_);
20118 void clutter_stage_queue_redraw(Stage* this_);
20119 ubyte* clutter_stage_read_pixels(Stage* this_, int x, int y, int width, int height);
20120 void clutter_stage_set_accept_focus(Stage* this_, int accept_focus);
20121 void clutter_stage_set_color(Stage* this_, Color* color);
20122 void clutter_stage_set_fog(Stage* this_, Fog* fog);
20123 void clutter_stage_set_fullscreen(Stage* this_, int fullscreen);
20124 void clutter_stage_set_key_focus(Stage* this_, Actor* actor=null);
20125 void clutter_stage_set_minimum_size(Stage* this_, uint width, uint height);
20126 void clutter_stage_set_motion_events_enabled(Stage* this_, int enabled);
20127 void clutter_stage_set_no_clear_hint(Stage* this_, int no_clear);
20128 void clutter_stage_set_perspective(Stage* this_, Perspective* perspective);
20129 void clutter_stage_set_throttle_motion_events(Stage* this_, int throttle);
20130 void clutter_stage_set_title(Stage* this_, char* title);
20131 void clutter_stage_set_use_alpha(Stage* this_, int use_alpha);
20132 void clutter_stage_set_use_fog(Stage* this_, int fog);
20133 void clutter_stage_set_user_resizable(Stage* this_, int resizable);
20134 void clutter_stage_show_cursor(Stage* this_);
20135 StageManager* clutter_stage_manager_get_default();
20136 Stage* clutter_stage_manager_get_default_stage(StageManager* this_);
20137 GLib2.SList* /*new container*/ clutter_stage_manager_list_stages(StageManager* this_);
20138 GLib2.SList* clutter_stage_manager_peek_stages(StageManager* this_);
20139 void clutter_stage_manager_set_default_stage(StageManager* this_, Stage* stage);
20140 State* /*new*/ clutter_state_new();
20141 Animator* clutter_state_get_animator(State* this_, char* source_state_name, char* target_state_name);
20142 uint clutter_state_get_duration(State* this_, char* source_state_name=null, char* target_state_name=null);
20143 GLib2.List* /*new container*/ clutter_state_get_keys(State* this_, char* source_state_name=null, char* target_state_name=null, GObject2.Object* object=null, char* property_name=null);
20144 char* clutter_state_get_state(State* this_);
20145 GLib2.List* /*new container*/ clutter_state_get_states(State* this_);
20146 Timeline* clutter_state_get_timeline(State* this_);
20147 void clutter_state_remove_key(State* this_, char* source_state_name=null, char* target_state_name=null, GObject2.Object* object=null, char* property_name=null);
20148 void clutter_state_set(State* this_, char* source_state_name, char* target_state_name, void* first_object, char* first_property_name, c_ulong first_mode, ...);
20149 void clutter_state_set_animator(State* this_, char* source_state_name, char* target_state_name, Animator* animator=null);
20150 void clutter_state_set_duration(State* this_, char* source_state_name, char* target_state_name, uint duration);
20151 State* clutter_state_set_key(State* this_, char* source_state_name, char* target_state_name, GObject2.Object* object, char* property_name, uint mode, GObject2.Value* value, double pre_delay, double post_delay);
20152 Timeline* clutter_state_set_state(State* this_, char* target_state_name);
20153 Timeline* clutter_state_warp_to_state(State* this_, char* target_state_name);
20154 c_ulong clutter_state_key_get_mode(StateKey* this_);
20155 GObject2.Object* clutter_state_key_get_object(StateKey* this_);
20156 double clutter_state_key_get_post_delay(StateKey* this_);
20157 double clutter_state_key_get_pre_delay(StateKey* this_);
20158 char* clutter_state_key_get_property_name(StateKey* this_);
20159 Type clutter_state_key_get_property_type(StateKey* this_);
20160 char* clutter_state_key_get_source_state_name(StateKey* this_);
20161 char* clutter_state_key_get_target_state_name(StateKey* this_);
20162 int clutter_state_key_get_value(StateKey* this_, GObject2.Value* value);
20163 SwipeAction* clutter_swipe_action_new();
20164 TableLayout* clutter_table_layout_new();
20165 void clutter_table_layout_get_alignment(TableLayout* this_, Actor* actor, /*out*/ TableAlignment* x_align, /*out*/ TableAlignment* y_align);
20166 int clutter_table_layout_get_column_count(TableLayout* this_);
20167 uint clutter_table_layout_get_column_spacing(TableLayout* this_);
20168 uint clutter_table_layout_get_easing_duration(TableLayout* this_);
20169 c_ulong clutter_table_layout_get_easing_mode(TableLayout* this_);
20170 void clutter_table_layout_get_expand(TableLayout* this_, Actor* actor, /*out*/ int* x_expand, /*out*/ int* y_expand);
20171 void clutter_table_layout_get_fill(TableLayout* this_, Actor* actor, /*out*/ int* x_fill, /*out*/ int* y_fill);
20172 int clutter_table_layout_get_row_count(TableLayout* this_);
20173 uint clutter_table_layout_get_row_spacing(TableLayout* this_);
20174 void clutter_table_layout_get_span(TableLayout* this_, Actor* actor, /*out*/ int* column_span, /*out*/ int* row_span);
20175 int clutter_table_layout_get_use_animations(TableLayout* this_);
20176 void clutter_table_layout_pack(TableLayout* this_, Actor* actor, int column, int row);
20177 void clutter_table_layout_set_alignment(TableLayout* this_, Actor* actor, TableAlignment x_align, TableAlignment y_align);
20178 void clutter_table_layout_set_column_spacing(TableLayout* this_, uint spacing);
20179 void clutter_table_layout_set_easing_duration(TableLayout* this_, uint msecs);
20180 void clutter_table_layout_set_easing_mode(TableLayout* this_, c_ulong mode);
20181 void clutter_table_layout_set_expand(TableLayout* this_, Actor* actor, int x_expand, int y_expand);
20182 void clutter_table_layout_set_fill(TableLayout* this_, Actor* actor, int x_fill, int y_fill);
20183 void clutter_table_layout_set_row_spacing(TableLayout* this_, uint spacing);
20184 void clutter_table_layout_set_span(TableLayout* this_, Actor* actor, int column_span, int row_span);
20185 void clutter_table_layout_set_use_animations(TableLayout* this_, int animate);
20186 Text* clutter_text_new();
20187 Text* clutter_text_new_full(char* font_name, char* text, Color* color);
20188 Text* clutter_text_new_with_text(char* font_name, char* text);
20189 int clutter_text_activate(Text* this_);
20190 void clutter_text_delete_chars(Text* this_, uint n_chars);
20191 int clutter_text_delete_selection(Text* this_);
20192 void clutter_text_delete_text(Text* this_, ssize_t start_pos, ssize_t end_pos);
20193 int clutter_text_get_activatable(Text* this_);
20194 Pango.AttrList* clutter_text_get_attributes(Text* this_);
20195 char* /*new*/ clutter_text_get_chars(Text* this_, ssize_t start_pos, ssize_t end_pos);
20196 void clutter_text_get_color(Text* this_, /*out*/ Color* color);
20197 void clutter_text_get_cursor_color(Text* this_, /*out*/ Color* color);
20198 int clutter_text_get_cursor_position(Text* this_);
20199 uint clutter_text_get_cursor_size(Text* this_);
20200 int clutter_text_get_cursor_visible(Text* this_);
20201 int clutter_text_get_editable(Text* this_);
20202 Pango.EllipsizeMode clutter_text_get_ellipsize(Text* this_);
20203 Pango.FontDescription* /*new*/ clutter_text_get_font_description(Text* this_);
20204 char* clutter_text_get_font_name(Text* this_);
20205 int clutter_text_get_justify(Text* this_);
20206 Pango.Layout* clutter_text_get_layout(Text* this_);
20207 void clutter_text_get_layout_offsets(Text* this_, /*out*/ int* x, /*out*/ int* y);
20208 Pango.Alignment clutter_text_get_line_alignment(Text* this_);
20209 int clutter_text_get_line_wrap(Text* this_);
20210 Pango.WrapMode clutter_text_get_line_wrap_mode(Text* this_);
20211 int clutter_text_get_max_length(Text* this_);
20212 dchar clutter_text_get_password_char(Text* this_);
20213 int clutter_text_get_selectable(Text* this_);
20214 void clutter_text_get_selected_text_color(Text* this_, /*out*/ Color* color);
20215 char* /*new*/ clutter_text_get_selection(Text* this_);
20216 int clutter_text_get_selection_bound(Text* this_);
20217 void clutter_text_get_selection_color(Text* this_, /*out*/ Color* color);
20218 int clutter_text_get_single_line_mode(Text* this_);
20219 char* clutter_text_get_text(Text* this_);
20220 int clutter_text_get_use_markup(Text* this_);
20221 void clutter_text_insert_text(Text* this_, char* text, ssize_t position);
20222 void clutter_text_insert_unichar(Text* this_, dchar wc);
20223 int clutter_text_position_to_coords(Text* this_, int position, /*out*/ float* x, /*out*/ float* y, /*out*/ float* line_height);
20224 void clutter_text_set_activatable(Text* this_, int activatable);
20225 void clutter_text_set_attributes(Text* this_, Pango.AttrList* attrs);
20226 void clutter_text_set_color(Text* this_, Color* color);
20227 void clutter_text_set_cursor_color(Text* this_, Color* color);
20228 void clutter_text_set_cursor_position(Text* this_, int position);
20229 void clutter_text_set_cursor_size(Text* this_, int size);
20230 void clutter_text_set_cursor_visible(Text* this_, int cursor_visible);
20231 void clutter_text_set_editable(Text* this_, int editable);
20232 void clutter_text_set_ellipsize(Text* this_, Pango.EllipsizeMode mode);
20233 void clutter_text_set_font_description(Text* this_, Pango.FontDescription* font_desc);
20234 void clutter_text_set_font_name(Text* this_, char* font_name=null);
20235 void clutter_text_set_justify(Text* this_, int justify);
20236 void clutter_text_set_line_alignment(Text* this_, Pango.Alignment alignment);
20237 void clutter_text_set_line_wrap(Text* this_, int line_wrap);
20238 void clutter_text_set_line_wrap_mode(Text* this_, Pango.WrapMode wrap_mode);
20239 void clutter_text_set_markup(Text* this_, char* markup);
20240 void clutter_text_set_max_length(Text* this_, int max);
20241 void clutter_text_set_password_char(Text* this_, dchar wc);
20242 void clutter_text_set_preedit_string(Text* this_, char* preedit_str, Pango.AttrList* preedit_attrs, uint cursor_pos);
20243 void clutter_text_set_selectable(Text* this_, int selectable);
20244 void clutter_text_set_selected_text_color(Text* this_, Color* color);
20245 void clutter_text_set_selection(Text* this_, ssize_t start_pos, ssize_t end_pos);
20246 void clutter_text_set_selection_bound(Text* this_, int selection_bound);
20247 void clutter_text_set_selection_color(Text* this_, Color* color);
20248 void clutter_text_set_single_line_mode(Text* this_, int single_line);
20249 void clutter_text_set_text(Text* this_, char* text);
20250 void clutter_text_set_use_markup(Text* this_, int setting);
20251 Texture* clutter_texture_new();
20252 Texture* clutter_texture_new_from_actor(Actor* actor);
20253 Texture* clutter_texture_new_from_file(char* filename, GLib2.Error** error);
20254 void clutter_texture_get_base_size(Texture* this_, /*out*/ int* width, /*out*/ int* height);
20255 Cogl.Handle clutter_texture_get_cogl_material(Texture* this_);
20256 Cogl.Handle clutter_texture_get_cogl_texture(Texture* this_);
20257 TextureQuality clutter_texture_get_filter_quality(Texture* this_);
20258 int clutter_texture_get_keep_aspect_ratio(Texture* this_);
20259 int clutter_texture_get_load_async(Texture* this_);
20260 int clutter_texture_get_load_data_async(Texture* this_);
20261 int clutter_texture_get_max_tile_waste(Texture* this_);
20262 int clutter_texture_get_pick_with_alpha(Texture* this_);
20263 Cogl.PixelFormat clutter_texture_get_pixel_format(Texture* this_);
20264 void clutter_texture_get_repeat(Texture* this_, /*out*/ int* repeat_x, /*out*/ int* repeat_y);
20265 int clutter_texture_get_sync_size(Texture* this_);
20266 int clutter_texture_set_area_from_rgb_data(Texture* this_, ubyte* data, int has_alpha, int x, int y, int width, int height, int rowstride, int bpp, TextureFlags flags, GLib2.Error** error);
20267 void clutter_texture_set_cogl_material(Texture* this_, Cogl.Handle cogl_material);
20268 void clutter_texture_set_cogl_texture(Texture* this_, Cogl.Handle cogl_tex);
20269 void clutter_texture_set_filter_quality(Texture* this_, TextureQuality filter_quality);
20270 int clutter_texture_set_from_file(Texture* this_, char* filename, GLib2.Error** error);
20271 int clutter_texture_set_from_rgb_data(Texture* this_, ubyte* data, int has_alpha, int width, int height, int rowstride, int bpp, TextureFlags flags, GLib2.Error** error);
20272 int clutter_texture_set_from_yuv_data(Texture* this_, ubyte* data, int width, int height, TextureFlags flags, GLib2.Error** error);
20273 void clutter_texture_set_keep_aspect_ratio(Texture* this_, int keep_aspect);
20274 void clutter_texture_set_load_async(Texture* this_, int load_async);
20275 void clutter_texture_set_load_data_async(Texture* this_, int load_async);
20276 void clutter_texture_set_pick_with_alpha(Texture* this_, int pick_with_alpha);
20277 void clutter_texture_set_repeat(Texture* this_, int repeat_x, int repeat_y);
20278 void clutter_texture_set_sync_size(Texture* this_, int sync_size);
20279 Timeline* /*new*/ clutter_timeline_new(uint msecs);
20280 void clutter_timeline_add_marker_at_time(Timeline* this_, char* marker_name, uint msecs);
20281 void clutter_timeline_advance(Timeline* this_, uint msecs);
20282 void clutter_timeline_advance_to_marker(Timeline* this_, char* marker_name);
20283 Timeline* /*new*/ clutter_timeline_clone(Timeline* this_);
20284 int clutter_timeline_get_auto_reverse(Timeline* this_);
20285 uint clutter_timeline_get_delay(Timeline* this_);
20286 uint clutter_timeline_get_delta(Timeline* this_);
20287 TimelineDirection clutter_timeline_get_direction(Timeline* this_);
20288 uint clutter_timeline_get_duration(Timeline* this_);
20289 uint clutter_timeline_get_elapsed_time(Timeline* this_);
20290 int clutter_timeline_get_loop(Timeline* this_);
20291 double clutter_timeline_get_progress(Timeline* this_);
20292 int clutter_timeline_has_marker(Timeline* this_, char* marker_name);
20293 int clutter_timeline_is_playing(Timeline* this_);
20294 char** /*new*/ clutter_timeline_list_markers(Timeline* this_, int msecs, /*out*/ size_t* n_markers);
20295 void clutter_timeline_pause(Timeline* this_);
20296 void clutter_timeline_remove_marker(Timeline* this_, char* marker_name);
20297 void clutter_timeline_rewind(Timeline* this_);
20298 void clutter_timeline_set_auto_reverse(Timeline* this_, int reverse);
20299 void clutter_timeline_set_delay(Timeline* this_, uint msecs);
20300 void clutter_timeline_set_direction(Timeline* this_, TimelineDirection direction);
20301 void clutter_timeline_set_duration(Timeline* this_, uint msecs);
20302 void clutter_timeline_set_loop(Timeline* this_, int loop);
20303 void clutter_timeline_skip(Timeline* this_, uint msecs);
20304 void clutter_timeline_start(Timeline* this_);
20305 void clutter_timeline_stop(Timeline* this_);
20306 uint clutter_timeout_pool_add(TimeoutPool* this_, uint fps, GLib2.SourceFunc func, void* data, GLib2.DestroyNotify notify);
20307 void clutter_timeout_pool_remove(TimeoutPool* this_, uint id_);
20308 TimeoutPool* clutter_timeout_pool_new(int priority);
20309 Units* /*new*/ clutter_units_copy(Units* this_);
20310 void clutter_units_free(Units* this_);
20311 void clutter_units_from_cm(Units* this_, float cm);
20312 void clutter_units_from_em(Units* this_, float em);
20313 void clutter_units_from_em_for_font(Units* this_, char* font_name, float em);
20314 void clutter_units_from_mm(Units* this_, float mm);
20315 void clutter_units_from_pixels(Units* this_, int px);
20316 void clutter_units_from_pt(Units* this_, float pt);
20317 int clutter_units_from_string(Units* this_, char* str);
20318 UnitType clutter_units_get_unit_type(Units* this_);
20319 float clutter_units_get_unit_value(Units* this_);
20320 float clutter_units_to_pixels(Units* this_);
20321 char* /*new*/ clutter_units_to_string(Units* this_);
20322 Vertex* /*new*/ clutter_vertex_new(float x, float y, float z);
20323 Vertex* /*new*/ clutter_vertex_copy(Vertex* this_);
20324 int clutter_vertex_equal(Vertex* this_, Vertex* vertex_b);
20325 void clutter_vertex_free(Vertex* this_);
20326 void clutter_base_init();
20327 void clutter_cairo_set_source_color(cairo.Context* cr, Color* color);
20328 int clutter_check_version(uint major, uint minor, uint micro);
20329 void clutter_clear_glyph_cache();
20330 void clutter_do_event(Event* event);
20331 int clutter_events_pending();
20332 int clutter_feature_available(FeatureFlags feature);
20333 FeatureFlags clutter_feature_get_all();
20334 uint clutter_frame_source_add(uint fps, GLib2.SourceFunc func, void* data);
20335 uint clutter_frame_source_add_full(int priority, uint fps, GLib2.SourceFunc func, void* data, GLib2.DestroyNotify notify);
20336 int clutter_get_accessibility_enabled();
20337 Actor* clutter_get_actor_by_gid(uint id_);
20338 Event* clutter_get_current_event();
20339 uint clutter_get_current_event_time();
20340 int clutter_get_debug_enabled();
20341 Backend* clutter_get_default_backend();
20342 uint clutter_get_default_frame_rate();
20343 TextDirection clutter_get_default_text_direction();
20344 FontFlags clutter_get_font_flags();
20345 Pango.FontMap* clutter_get_font_map();
20346 InputDevice* clutter_get_input_device_for_id(int id_);
20347 Actor* clutter_get_keyboard_grab();
20348 int clutter_get_motion_events_enabled();
20349 GLib2.OptionGroup* /*new*/ clutter_get_option_group();
20350 GLib2.OptionGroup* /*new*/ clutter_get_option_group_without_init();
20351 Actor* clutter_get_pointer_grab();
20352 char* clutter_get_script_id(GObject2.Object* gobject);
20353 int clutter_get_show_fps();
20354 c_ulong clutter_get_timestamp();
20355 void clutter_grab_keyboard(Actor* actor);
20356 void clutter_grab_pointer(Actor* actor);
20357 void clutter_grab_pointer_for_device(Actor* actor, int id_);
20358 InitError clutter_init(/*inout*/ int* argc, /*inout*/ char*** argv=null);
20359 GLib2.Quark clutter_init_error_quark();
20360 InitError clutter_init_with_args(/*inout*/ int* argc, /*inout*/ char*** argv, char* parameter_string, GLib2.OptionEntry* entries, char* translation_domain, GLib2.Error** error);
20361 uint clutter_keysym_to_unicode(uint keyval);
20362 void clutter_main();
20363 int clutter_main_level();
20364 void clutter_main_quit();
20365 GObject2.ParamSpec* clutter_param_spec_color(char* name, char* nick, char* blurb, Color* default_value, GObject2.ParamFlags flags);
20366 GObject2.ParamSpec* clutter_param_spec_fixed(char* name, char* nick, char* blurb, Cogl.Fixed minimum, Cogl.Fixed maximum, Cogl.Fixed default_value, GObject2.ParamFlags flags);
20367 GObject2.ParamSpec* clutter_param_spec_units(char* name, char* nick, char* blurb, UnitType default_type, float minimum, float maximum, float default_value, GObject2.ParamFlags flags);
20368 void clutter_redraw(Stage* stage);
20369 GLib2.Quark clutter_script_error_quark();
20370 void clutter_set_default_frame_rate(uint frames_per_sec);
20371 void clutter_set_font_flags(FontFlags flags);
20372 void clutter_set_motion_events_enabled(int enable);
20373 GLib2.Quark clutter_shader_error_quark();
20374 GLib2.Quark clutter_texture_error_quark();
20375 uint clutter_threads_add_frame_source(uint fps, GLib2.SourceFunc func, void* data);
20376 uint clutter_threads_add_frame_source_full(int priority, uint fps, GLib2.SourceFunc func, void* data, GLib2.DestroyNotify notify);
20377 uint clutter_threads_add_idle(GLib2.SourceFunc func, void* data);
20378 uint clutter_threads_add_idle_full(int priority, GLib2.SourceFunc func, void* data, GLib2.DestroyNotify notify);
20379 uint clutter_threads_add_repaint_func(GLib2.SourceFunc func, void* data, GLib2.DestroyNotify notify);
20380 uint clutter_threads_add_timeout(uint interval, GLib2.SourceFunc func, void* data);
20381 uint clutter_threads_add_timeout_full(int priority, uint interval, GLib2.SourceFunc func, void* data, GLib2.DestroyNotify notify);
20382 void clutter_threads_enter();
20383 void clutter_threads_init();
20384 void clutter_threads_leave();
20385 void clutter_threads_remove_repaint_func(uint handle_id);
20386 void clutter_threads_set_lock_functions(GObject2.Callback enter_fn, GObject2.Callback leave_fn);
20387 void clutter_ungrab_keyboard();
20388 void clutter_ungrab_pointer();
20389 void clutter_ungrab_pointer_for_device(int id_);
20390 int clutter_util_next_p2(int a);
20391 Color* clutter_value_get_color(GObject2.Value* value);
20392 Cogl.Fixed clutter_value_get_fixed(GObject2.Value* value);
20393 float* clutter_value_get_shader_float(GObject2.Value* value, size_t* length);
20394 int* clutter_value_get_shader_int(GObject2.Value* value, size_t* length);
20395 float* clutter_value_get_shader_matrix(GObject2.Value* value, /*out*/ size_t* length);
20396 Units* clutter_value_get_units(GObject2.Value* value);
20397 void clutter_value_set_color(GObject2.Value* value, Color* color);
20398 void clutter_value_set_fixed(GObject2.Value* value, Cogl.Fixed fixed_);
20399 void clutter_value_set_shader_float(GObject2.Value* value, int size, float* floats);
20400 void clutter_value_set_shader_int(GObject2.Value* value, int size, int* ints);
20401 void clutter_value_set_shader_matrix(GObject2.Value* value, int size, float* matrix);
20402 void clutter_value_set_units(GObject2.Value* value, Units* units);