import os
import osso
import cairo
-import pango
import datetime
+supports_alpha = False
# constants. dbfile is the location of the csv
# comiccache is the location of the images
-APP_VERSION = "0.1"
+APP_VERSION = "0.2.5"
imagedir = "/home/user/comic-widget/images/"
dbdir = "/home/user/comic-widget/db/"
class ComicHomePlugin(hildondesktop.HomePluginItem):
def __init__(self):
hildondesktop.HomePluginItem.__init__(self)
+ global supports_alpha
self.set_settings(True)
self.connect("show-settings", self.show_options)
self.osso_c = osso.Context("comic-widget", "0.0.1", False)
self.set_name = "comicwidget"
screen = self.get_screen()
colormap = screen.get_rgba_colormap()
+ if colormap == None:
+ colormap = screen.get_rgb_colormap()
+ supports_alpha = False
+ else:
+ supports_alpha = True
self.set_colormap(colormap)
self.set_app_paintable(True)
#setup internal area
# **************** Cairo draw functions ***************
- def realize(self):
+ def realize(self, widget):
+ global supports_alpha
+
+ # To check if the display supports alpha channels, get the colormap
screen = self.get_screen()
colormap = screen.get_rgba_colormap()
+ if colormap == None:
+ print 'Your screen does not support alpha channels!'
+ colormap = screen.get_rgb_colormap()
+ supports_alpha = False
+ else:
+ # print 'Your screen supports alpha channels!'
+ supports_alpha = True
+
+ # Now we have a colormap appropriate for the screen, use it
self.set_colormap(colormap)
- return None
+
+ return False
def do_expose_event(widget, event):
cr = widget.window.cairo_create()
region = gtk.gdk.region_rectangle(event.area)
cr.region(region)
bg_color=gtk.gdk.color_parse('#000000')
- cr.set_source_rgba (0.0, 0.0, 0.0, 0.5)
+ if supports_alpha:
+ cr.set_source_rgba (0.0, 0.0, 0.0, 0.5)
+ else:
+ cr.set_source_rgb (0.0, 0.0, 0.0)
+
cr.fill_preserve()
return False
self.e_goweb.show_all()
elif func == 'switch':
- self.keypointer = (self.keypointer + 1) % 2
+ self.keypointer = (self.keypointer + 1) % 3
self.imgvpos = 0
self.db = []
print "switching to " + self.keys[self.keypointer]
self.comic_image = self.get_resized_pixmap(self.db.get_comic(), self.imgvpos)
self.e_open.add(self.comic_image)
self.e_open.show_all()
-
+
else:
return False
self.draw(widget, "0")
print "vpos after fixing image: " + str(self.imgvpos)
return retimg
+ def screen_changed(self, widget, old_screen=None):
+ global supports_alpha
+
+ # To check if the display supports alpha channels, get the colormap
+ screen = self.get_screen()
+ colormap = screen.get_rgba_colormap()
+ if colormap == None:
+ print 'Your screen does not support alpha channels!'
+ colormap = screen.get_rgb_colormap()
+ supports_alpha = False
+ else:
+ # print 'Your screen supports alpha channels!'
+ supports_alpha = True
+
+ # Now we have a colormap appropriate for the screen, use it
+ self.set_colormap(colormap)
+
+ return False
# ************************* OPTIONS ********************************