#include <lib/gdi/grc.h> /* for gRegion */
#include <lib/base/eptrlist.h> /* for eSmartPtrList */
#include <lib/gui/ewindowstyle.h> /* for eWindowStyle */
+#include <lib/gui/ewidgetanimation.h>
+
+class eWidgetDesktop;class eWidgetDesktop;
class eWidget
{
void setBackgroundColor(const gRGB &col);
void clearBackgroundColor();
+ void setZPosition(int z);
+ void setTransparent(int transp);
+
/* untested code */
int isVisible() { return (m_vis & wVisShow) && ((!m_parent) || m_parent->isVisible()); }
/* ... */
+
+ int isTransparent() { return m_vis & wVisTransparent; }
+
+ ePoint getAbsolutePosition();
+ eWidgetAnimation m_animation;
private:
eWidgetDesktop *m_desktop;
ePtrList<eWidget> m_childs;
ePoint m_position;
eSize m_size;
+ /* will be accounted when there's a client offset */
+ eSize m_client_offset;
eWidget *m_parent;
ePtr<eWindowStyle> m_style;
+ void insertIntoParent();
void doPaint(gPainter &painter, const gRegion ®ion);
void recalcClipRegionsWhenVisible();
+ void parentRemoved();
+
gRGB m_background_color;
int m_have_background_color;
eWidget *m_current_focus, *m_focus_owner;
+
+ int m_z_position;
+
protected:
virtual ~eWidget();
void mayKillFocus();
// all in local space!
gRegion m_clip_region, m_visible_region, m_visible_with_childs;
+ struct eWidgetDesktopCompBuffer *m_comp_buffer;
enum eWidgetEvent
{
void setFocus(eWidget *focus);
};
-extern eWidgetDesktop *getDesktop();
+extern eWidgetDesktop *getDesktop(int which);
#endif