add 'local style' for listboxes (still needs support in listbox content)
authorFelix Domke <tmbinc@elitedvb.net>
Wed, 15 Aug 2007 20:08:37 +0000 (20:08 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Wed, 15 Aug 2007 20:08:37 +0000 (20:08 +0000)
lib/gui/elistbox.cpp
lib/gui/elistbox.h

index c21f363f4b9dd6a13b499e30687adfbeb63c77d9..c3b202cb65fc57b9551c4a6dfdb526d14cf1a6e3 100644 (file)
@@ -471,3 +471,32 @@ void eListbox::entryReset(bool selectionHome)
        moveSelection(justCheck);
        invalidate();
 }
        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;
+}
index 7538170cf2c20c38651e89e813244ad32c2c99ad..62461e14fc8cdb9e36edca9e7d7318726f775973 100644 (file)
@@ -54,6 +54,23 @@ protected:
 #endif
 };
 
 #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();
 class eListbox: public eWidget
 {
        void updateScrollBar();
@@ -72,7 +89,7 @@ public:
        void setWrapAround(bool);
 
        void setContent(iListboxContent *content);
        void setWrapAround(bool);
 
        void setContent(iListboxContent *content);
-       
+
 /*     enum Movement {
                moveUp,
                moveDown,
 /*     enum Movement {
                moveUp,
                moveDown,
@@ -100,6 +117,14 @@ public:
 
        void setItemHeight(int h);
        void setSelectionEnable(int en);
 
        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);
 #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;
        int m_selection_enabled;
        ePtr<iListboxContent> m_content;
        eSlider *m_scrollbar;
+       eListboxStyle m_style;
 #endif
 };
 
 #endif
 };