diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2007-08-15 20:08:37 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2007-08-15 20:08:37 +0000 |
| commit | d31edc55afe5881edd22b2b058f3b2e8663cdf3d (patch) | |
| tree | bb4079a54f401eed2d4aee8a8b9d9cd96ac861fa /lib | |
| parent | 9ce6ca4f63e908ef0ed64c3cf9d02ed307c2da46 (diff) | |
| download | enigma2-d31edc55afe5881edd22b2b058f3b2e8663cdf3d.tar.gz enigma2-d31edc55afe5881edd22b2b058f3b2e8663cdf3d.zip | |
add 'local style' for listboxes (still needs support in listbox content)
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/gui/elistbox.cpp | 29 | ||||
| -rw-r--r-- | lib/gui/elistbox.h | 28 |
2 files changed, 56 insertions, 1 deletions
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<gPixmap> 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<iListboxContent> m_content; eSlider *m_scrollbar; + eListboxStyle m_style; #endif }; |
