aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2007-08-15 20:08:37 +0000
committerFelix Domke <tmbinc@elitedvb.net>2007-08-15 20:08:37 +0000
commitd31edc55afe5881edd22b2b058f3b2e8663cdf3d (patch)
treebb4079a54f401eed2d4aee8a8b9d9cd96ac861fa /lib
parent9ce6ca4f63e908ef0ed64c3cf9d02ed307c2da46 (diff)
downloadenigma2-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.cpp29
-rw-r--r--lib/gui/elistbox.h28
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
};