From: Felix Domke Date: Wed, 15 Aug 2007 20:08:37 +0000 (+0000) Subject: add 'local style' for listboxes (still needs support in listbox content) X-Git-Tag: 2.6.0~1968 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/d31edc55afe5881edd22b2b058f3b2e8663cdf3d add 'local style' for listboxes (still needs support in listbox content) --- diff --git a/lib/gui/elistbox.cpp b/lib/gui/elistbox.cpp index c21f363f..c3b202cb 100644 --- a/lib/gui/elistbox.cpp +++ b/lib/gui/elistbox.cpp @@ -471,3 +471,32 @@ void eListbox::entryReset(bool selectionHome) moveSelection(justCheck); invalidate(); } + +void eListbox::setBackgroundColor(gRGB &col) +{ + m_style.m_background_color = col; + m_style.m_background_color_set = 1; +} + +void eListbox::setForegroundColor(gRGB &col) +{ + m_style.m_foreground_color = col; + m_style.m_foreground_color_set = 1; +} + +void eListbox::setBackgroundPicture(gPixmap *pm) +{ + m_style.m_background = pm; +} + +void eListbox::setSelectionPicture(gPixmap *pm) +{ + m_style.m_selection = pm; +} + +struct eListboxStyle *eListbox::getLocalStyle(void) +{ + /* transparency is set directly in the widget */ + m_style.m_transparent_background = isTransparent(); + return &m_style; +} diff --git a/lib/gui/elistbox.h b/lib/gui/elistbox.h index 7538170c..62461e14 100644 --- a/lib/gui/elistbox.h +++ b/lib/gui/elistbox.h @@ -54,6 +54,23 @@ protected: #endif }; +struct eListboxStyle +{ + ePtr m_background, m_selection; + int m_transparent_background; + gRGB m_background_color, m_foreground_color; + int m_background_color_set, m_foreground_color_set; + + /* + {m_transparent_background m_background_color_set m_background} + {0 0 0} use global background color + {0 1 x} use background color + {0 0 p} use background picture + {1 x 0} use transparent background + {1 x p} use transparent background picture + */ +}; + class eListbox: public eWidget { void updateScrollBar(); @@ -72,7 +89,7 @@ public: void setWrapAround(bool); void setContent(iListboxContent *content); - + /* enum Movement { moveUp, moveDown, @@ -100,6 +117,14 @@ public: void setItemHeight(int h); void setSelectionEnable(int en); + + void setBackgroundColor(gRGB &col); + void setForegroundColor(gRGB &col); + void setTransparent(int t); + void setBackgroundPicture(gPixmap *pm); + void setSelectionPicture(gPixmap *pm); + + struct eListboxStyle *getLocalStyle(void); #ifndef SWIG /* entryAdded: an entry was added *before* the given index. it's index is the given number. */ void entryAdded(int index); @@ -125,6 +150,7 @@ private: int m_selection_enabled; ePtr m_content; eSlider *m_scrollbar; + eListboxStyle m_style; #endif };