print "*** warning *** scan was not finished!"
def isDone(self):
- return self.state == self.Done
+ print "state is %d " % (self.state)
+ return self.state == self.Done or self.state == self.Error
class ActionMap:
def __init__(self, contexts = [ ], actions = { }, prio=0):
def __init__(self, navcore, now_or_next):
# listen to evUpdatedEventInfo and evStopService
# note that evStopService will be called once to establish a known state
+ self.now_or_next = now_or_next
PerServiceDisplay.__init__(self, navcore,
{
pNavigation.evUpdatedEventInfo: self.ourEvent,
pNavigation.evStopService: self.stopEvent
})
- self.now_or_next = now_or_next
def ourEvent(self):
info = iServiceInformationPtr()
print "new event info in EventInfo! yeah!"
def stopEvent(self):
- self.setText("waiting for event data...");
+ self.setText(
+ ("waiting for event data...", "", "--:--", "--:--")[self.now_or_next]);
class ServiceName(PerServiceDisplay):
def __init__(self, navcore):
ttd+=td;
if (ttd>=difference)
continue;
+ if (!ttd)
+ return t;
difference=ttd;
best_choice=t;
}
m_rc->submit(o);
}
+void gPainter::setPalette(gPixmap *source)
+{
+ ASSERT(source);
+ setPalette(source->surface->clut.data, source->surface->clut.start, source->surface->clut.colors);
+}
+
void gPainter::mergePalette(gPixmap *target)
{
gOpcode o;
void blit(gPixmap *pixmap, ePoint pos, const eRect &what=eRect(), int flags=0);
void setPalette(gRGB *colors, int start=0, int len=256);
+ void setPalette(gPixmap *source);
void mergePalette(gPixmap *target);
void line(ePoint start, ePoint end);
m_dirty_region |= region;
}
-void eWidgetDesktop::setBackgroundColor(gColor col)
+void eWidgetDesktop::setBackgroundColor(gRGB col)
{
m_background_color = col;
}
}
+void eWidgetDesktop::setPalette(gPixmap &pm)
+{
+ ASSERT(m_dc);
+ gPainter painter(m_dc);
+ painter.setPalette(&pm);
+}
+
void eWidgetDesktop::paint()
{
gPainter painter(m_dc);
gRegion m_dirty_region;
gRegion m_background_region;
ePtr<gDC> m_dc;
- gColor m_background_color;
+ gRGB m_background_color;
public:
eWidgetDesktop(eSize screen);
~eWidgetDesktop();
void paint();
void setDC(gDC *dc);
- void setBackgroundColor(gColor col);
+ void setBackgroundColor(gRGB col);
+
+ void setPalette(gPixmap &pm);
void setRedrawTask(eMainloop &ml);
eWindowStyleSkinned::eWindowStyleSkinned()
{
- m_background_color = gRGB(0x808080);
+ // m_background_color = gRGB(0x808080);
+
+ // TODO: initialize colors!!
}
void eWindowStyleSkinned::handleNewSize(eWindow *wnd, eSize &size, eSize &offset)
void eWindowStyleSkinned::paintBackground(gPainter &painter, const ePoint &offset, const eSize &size)
{
- painter.setBackgroundColor(m_background_color);
+ painter.setBackgroundColor(m_color[colBackground]);
painter.clear();
}
switch (what)
{
case styleLabel:
- painter.setForegroundColor(gColor(0x1F));
+ painter.setForegroundColor(m_color[colLabelForeground]);
break;
case styleListboxSelected:
- painter.setForegroundColor(gColor(0x1F));
- painter.setBackgroundColor(gColor(0x1A));
+ painter.setForegroundColor(m_color[colListboxSelectedForeground]);
+ painter.setBackgroundColor(m_color[colListboxSelectedBackground]);
break;
case styleListboxNormal:
- painter.setForegroundColor(gColor(0x1C));
- painter.setBackgroundColor(m_background_color);
+ painter.setForegroundColor(m_color[colListboxForeground]);
+ painter.setBackgroundColor(m_color[colListboxBackground]);
break;
case styleListboxMarked:
- painter.setForegroundColor(gColor(0x2F));
- painter.setBackgroundColor(gColor(0x2A));
+ painter.setForegroundColor(m_color[colListboxMarkedForeground]);
+ painter.setBackgroundColor(m_color[colListboxMarkedBackground]);
break;
}
}
m_border[bs].m_border_right, m_border[bs].m_border_bottom);
}
-void eWindowStyleSkinned::setDefaultBackgroundColor(const gRGB &back)
+void eWindowStyleSkinned::setColor(int what, const gRGB &col)
{
- m_background_color = back;
- eDebug("set default background color!");
+ if ((what < colMax) && (what >= 0))
+ m_color[what] = col;
}
void setPixmap(int bs, int bp, gPixmap &pixmap);
- void setDefaultBackgroundColor(const gRGB &back);
+ enum {
+ colBackground,
+ colLabelForeground,
+ colListboxBackground,
+ colListboxForeground,
+ colListboxSelectedBackground,
+ colListboxSelectedForeground,
+ colListboxMarkedBackground,
+ colListboxMarkedForeground,
+ colMax
+ };
+
+ void setColor(int what, const gRGB &back);
private:
struct borderSet
borderSet m_border[bsMax];
- gRGB m_background_color;
+ gRGB m_color[colMax];
void drawBorder(gPainter &painter, const eRect &size, struct borderSet &border, int where);
};
class serviceScan(Screen):
def ok(self):
+ print "ok"
if self["scan"].isDone():
self.close()
import xml.dom.minidom
from xml.dom import EMPTY_NAMESPACE
+
+colorNames = dict()
+
def dump(x, i=0):
print " " * i + str(x)
try:
dom = xml.dom.minidom.parseString(
"""<skin>
+
+ <colors>
+ <color name="white" value="#ffffff" />
+ <color name="black" value="#000000" />
+ <color name="dark" value="#294a6b" />
+ </colors>
<windowstyle type="skinned">
- <color name="defaultBackground" color="#4075a7" />
+ <color name="Background" color="#4075a7" />
+ <color name="LabelForeground" color="#ffffff" />
+ <color name="ListboxBackground" color="#4075a7" />
+ <color name="ListboxForeground" color="#ffffff" />
+ <color name="ListboxSelectedBackground" color="#80ff80" />
+ <color name="ListboxSelectedForeground" color="#ffffff" />
+ <color name="ListboxMarkedBackground" color="#ff0000" />
+ <color name="ListboxMarkedForeground" color="#ffffff" />
<borderset name="bsWindow">
<pixmap pos="bpTopLeft" filename="data/b_w_tl.png" />
<pixmap pos="bpTop" filename="data/b_w_t.png" />
<widget name="theClock" position="10,60" size="280,50" />
</screen>
<screen name="infoBar" position="0,380" size="720,151" title="InfoBar" flags="wfNoBorder">
- <ePixmap position="0,0" size="720,151" pixmap="info-bg.png" />
+ <ePixmap position="0,0" size="720,151" pixmap="data/info-bg.png" />
- <widget name="ServiceName" position="69,30" size="427,26" valign="center" font="Arial;32" />
- <widget name="CurrentTime" position="575,10" size="66,30" />
- <widget name="Event_Now" position="273,68" size="282,30" font="Arial;29" backgroundColor="#586D88" />
- <widget name="Event_Next" position="273,98" size="282,30" font="Arial;29" />
- <widget name="Event_Now_Duration" position="555,68" size="70,26" font="Arial;26" />
- <widget name="Event_Next_Duration" position="555,98" size="70,26" font="Arial;26" />
+ <widget name="ServiceName" position="69,30" size="427,26" valign="center" font="Arial;32" backgroundColor="#101258" />
+ <widget name="CurrentTime" position="575,10" size="66,30" backgroundColor="dark" font="Arial;16" />
+ <widget name="Event_Now" position="273,68" size="282,30" font="Arial;29" backgroundColor="dark" />
+ <widget name="Event_Next" position="273,98" size="282,30" font="Arial;29" backgroundColor="dark" />
+ <widget name="Event_Now_Duration" position="555,68" size="70,26" font="Arial;26" backgroundColor="dark" />
+ <widget name="Event_Next_Duration" position="555,98" size="70,26" font="Arial;26" backgroundColor="dark" />
<!-- <eLabel position="70,0" size="300,30" text=".oO skin Oo." font="Arial;20" /> -->
</screen>
<screen name="channelSelection" position="100,80" size="500,240" title="Channel Selection">
def parseColor(str):
if str[0] != '#':
- raise "color must be #aarrggbb"
+ try:
+ return colorNames[str]
+ except:
+ raise ("color '%s' must be #aarrggbb or valid named color" % (str))
return gRGB(int(str[1:], 0x10))
def applyAttributes(guiObject, node, desktop):
skin = dom.childNodes[0]
assert skin.tagName == "skin", "root element in skin must be 'skin'!"
+ for c in elementsWithTag(skin.childNodes, "colors"):
+ for color in elementsWithTag(c.childNodes, "color"):
+ name = str(color.getAttribute("name"))
+ color = str(color.getAttribute("value"))
+
+ if not len(color):
+ raise ("need color and name, got %s %s" % (name, color))
+
+ colorNames[name] = parseColor(color)
+
for windowstyle in elementsWithTag(skin.childNodes, "windowstyle"):
style = eWindowStyleSkinned()
type = str(color.getAttribute("name"))
color = parseColor(color.getAttribute("color"))
- if type == "defaultBackground":
- style.setDefaultBackgroundColor(color)
- else:
- raise "unknown color %s" % (type)
+ try:
+ style.setColor(eWindowStyleSkinned.__dict__["col" + type], color)
+ except:
+ raise ("Unknown color %s" % (type))
x = eWindowStyleManagerPtr()
eWindowStyleManager.getInstance(x)