1class @beta Efl.Ui.Pan extends Efl.Canvas.Group implements Efl.Content
2{
3   [[Pan widget class.
4
5     This widget positions its contents (set using @Efl.Content.content) relative to the widget itself.
6     This is particularly useful for large content which does not fit inside its container. In this case
7     only a portion is shown.
8
9     The position of this "window" into the content can be changed using @Efl.Ui.Pan.pan_position.
10     This widget does not provide means for a user to change the content's position (like scroll bars).
11     This widget is meant to be used internally by other classes like @Efl.Ui.Scroll.Manager.
12   ]]
13   methods {
14      @property pan_position {
15         [[Position of the content inside the Pan widget.
16
17           Setting the position to @Efl.Ui.Pan.pan_position_min makes the upper left corner of the content visible.
18           Setting the position to @Efl.Ui.Pan.pan_position_max makes the lower right corner of the content visible.
19           Values outside this range are valid and make the background show.
20         ]]
21         values {
22            position: Eina.Position2D;  [[Content position.]]
23         }
24      }
25      @property content_size {
26         [[Size of the content currently set through @Efl.Content.content.
27           This is a convenience proxy.
28         ]]
29         get {
30         }
31         values {
32            size: Eina.Size2D; [[The size of the content.]]
33         }
34      }
35      @property pan_position_min {
36         [[Position you can set to @Efl.Ui.Pan.pan_position so that the content's upper left corner is visible.
37           Always (0, 0).
38         ]]
39         get {
40         }
41         values {
42            pos: Eina.Position2D; [[Content's upper left corner position.]]
43         }
44      }
45      @property pan_position_max {
46         [[Position you can set to @Efl.Ui.Pan.pan_position so that the content's lower right corner is visible.
47           It depends both on the content's size and this widget's size.
48         ]]
49         get {
50         }
51         values {
52            pos: Eina.Position2D; [[Content's lower right corner position.]]
53         }
54      }
55   }
56   implements {
57      Efl.Object.constructor;
58      Efl.Object.destructor;
59      Efl.Gfx.Entity.visible { set; }
60      Efl.Gfx.Entity.position { set; }
61      Efl.Gfx.Entity.size { set; }
62      Efl.Content.content { set; get; }
63      Efl.Content.content_unset;
64      Efl.Canvas.Group.group_calculate;
65   }
66   events {
67      pan,content_position,changed: Eina.Position2D; [[The content's position has changed, its position in the event
68                                                       is the new position.]]
69      pan,content_size,changed: Eina.Size2D; [[The content's size has changed, its size in the event is the new size.]]
70   }
71}
72