move cursor to valid position when current is invalid (on call invalidate)
[enigma2.git] / lib / gui / evideo.cpp
1 #include <lib/gui/evideo.h>
2
3 eVideoWidget::eVideoWidget(eWidget *parent): eWidget(parent)
4 {
5 }
6
7 int eVideoWidget::event(int event, void *data, void *data2)
8 {
9         switch (event)
10         {
11         case evtChangedPosition:
12         case evtChangedSize:
13                 eDebug("position is now ...");
14                 updatePosition();
15         }
16         return eWidget::event(event, data, data2);
17 }
18
19
20 void eVideoWidget::updatePosition()
21 {
22         ePoint abspos = getAbsolutePosition();
23         eDebug("position is %d %d -> %d %d", abspos.x(), abspos.y(), size().width(), size().height());
24         
25         for (int i=0; i<4; ++i)
26         {
27                 char *targets[]={"left", "top", "width", "height"};
28                 char filename[128];
29                 snprintf(filename, 128, "/proc/stb/vmpeg/%d/dst_%s", 1, targets[i]);
30                 FILE *f = fopen(filename, "w");
31                 if (!f)
32                 {
33                         eDebug("failed to open %s - %m", filename);
34                         break;
35                 }
36                 int val = 0;
37                 switch (i)
38                 {
39                 case 0: val = abspos.x(); break;
40                 case 1: val = abspos.y(); break;
41                 case 2: val = size().width(); break;
42                 case 3: val = size().height(); break;
43                 }
44                 fprintf(f, "%08x\n", val);
45                 fclose(f);
46                 eDebug("%s %08x", filename, val);
47         }
48 }