git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
main/Makefile.am: support to extract version information from (git) tarballs created...
[enigma2.git]
/
lib
/
gui
/
ewidget.h
diff --git
a/lib/gui/ewidget.h
b/lib/gui/ewidget.h
index 6739f25e35ed28dbd34db83d13106782c58ef855..8af66b057e74b6ae18b39051bacbf1d041df0a63 100644
(file)
--- a/
lib/gui/ewidget.h
+++ b/
lib/gui/ewidget.h
@@
-6,6
+6,8
@@
#include <lib/gui/ewindowstyle.h> /* for eWindowStyle */
#include <lib/gui/ewidgetanimation.h>
#include <lib/gui/ewindowstyle.h> /* for eWindowStyle */
#include <lib/gui/ewidgetanimation.h>
+#define MAX_LAYER 16
+
class eWidgetDesktop;class eWidgetDesktop;
class eWidget
class eWidgetDesktop;class eWidgetDesktop;
class eWidget
@@
-13,12
+15,14
@@
class eWidget
friend class eWidgetDesktop;
public:
eWidget(eWidget *parent);
friend class eWidgetDesktop;
public:
eWidget(eWidget *parent);
-
+ virtual ~eWidget();
+
void move(ePoint pos);
void resize(eSize size);
ePoint position() const { return m_position; }
eSize size() const { return m_size; }
void move(ePoint pos);
void resize(eSize size);
ePoint position() const { return m_position; }
eSize size() const { return m_size; }
+ eSize csize() const { return m_client_size; }
void invalidate(const gRegion ®ion = gRegion::invalidRegion());
void invalidate(const gRegion ®ion = gRegion::invalidRegion());
@@
-33,7
+37,7
@@
public:
void destruct();
void destruct();
-
int getStyle(ePtr<eWindowStyle> &style
) { if (!m_style) return 1; style = m_style; return 0; }
+
SWIG_VOID(int) getStyle(ePtr<eWindowStyle> &SWIG_NAMED_OUTPUT(style)
) { if (!m_style) return 1; style = m_style; return 0; }
void setStyle(eWindowStyle *style) { m_style = style; }
void setBackgroundColor(const gRGB &col);
void setStyle(eWindowStyle *style) { m_style = style; }
void setBackgroundColor(const gRGB &col);
@@
-48,6
+52,8
@@
public:
int isTransparent() { return m_vis & wVisTransparent; }
int isTransparent() { return m_vis & wVisTransparent; }
+ ePoint getAbsolutePosition();
+
eWidgetAnimation m_animation;
private:
eWidgetDesktop *m_desktop;
eWidgetAnimation m_animation;
private:
eWidgetDesktop *m_desktop;
@@
-59,9
+65,11
@@
private:
int m_vis;
int m_vis;
+ int m_layer;
+
ePtrList<eWidget> m_childs;
ePoint m_position;
ePtrList<eWidget> m_childs;
ePoint m_position;
- eSize m_size;
+ eSize m_size
, m_client_size
;
/* will be accounted when there's a client offset */
eSize m_client_offset;
eWidget *m_parent;
/* will be accounted when there's a client offset */
eSize m_client_offset;
eWidget *m_parent;
@@
-69,7
+77,7
@@
private:
ePtr<eWindowStyle> m_style;
void insertIntoParent();
ePtr<eWindowStyle> m_style;
void insertIntoParent();
- void doPaint(gPainter &painter, const gRegion ®ion);
+ void doPaint(gPainter &painter, const gRegion ®ion
, int layer
);
void recalcClipRegionsWhenVisible();
void parentRemoved();
void recalcClipRegionsWhenVisible();
void parentRemoved();
@@
-80,15
+88,14
@@
private:
eWidget *m_current_focus, *m_focus_owner;
int m_z_position;
eWidget *m_current_focus, *m_focus_owner;
int m_z_position;
-
+ int m_notify_child_on_position_change;
protected:
protected:
- virtual ~eWidget();
void mayKillFocus();
public:
// all in local space!
gRegion m_clip_region, m_visible_region, m_visible_with_childs;
void mayKillFocus();
public:
// all in local space!
gRegion m_clip_region, m_visible_region, m_visible_with_childs;
- struct eWidgetDesktopCompBuffer *m_comp_buffer;
+ struct eWidgetDesktopCompBuffer *m_comp_buffer
[MAX_LAYER]
;
enum eWidgetEvent
{
enum eWidgetEvent
{
@@
-97,8
+104,9
@@
public:
evtChangedPosition,
evtChangedSize,
evtChangedPosition,
evtChangedSize,
- evtWillShow,
- evtWillHide,
+ evtParentChangedPosition,
+
+ evtParentVisibilityChanged,
evtWillChangePosition, /* new size is eRect *data */
evtWillChangeSize,
evtWillChangePosition, /* new size is eRect *data */
evtWillChangeSize,
@@
-111,8
+119,13
@@
public:
};
virtual int event(int event, void *data = 0, void *data2 = 0);
void setFocus(eWidget *focus);
};
virtual int event(int event, void *data = 0, void *data2 = 0);
void setFocus(eWidget *focus);
+
+ /* enable this if you need the absolute position of the widget */
+ void setPositionNotifyChild(int n) { m_notify_child_on_position_change = 1; }
+
+ void notifyShowHide();
};
};
-extern eWidgetDesktop *getDesktop();
+extern eWidgetDesktop *getDesktop(
int which
);
#endif
#endif