--- /dev/null
+import gtk
+
+gtk.HILDON_SIZE_AUTO = -1
+gtk.HILDON_SIZE_AUTO_WIDTH = -1
+gtk.HILDON_SIZE_FINGER_HEIGHT = 32
+gtk.HILDON_SIZE_THUMB_HEIGHT = 48
+
+BUTTON_ARRANGEMENT_VERTICAL = 1
+
+def hildon_gtk_window_set_progress_indicator(wnd, onoff):
+ pass
+
+class Program(gtk.Window):
+ instance = None
+
+ def __init__(self):
+ gtk.Window.__init__(self, type=gtk.WINDOW_TOPLEVEL)
+ self._vbox = gtk.VBox()
+ self._title = gtk.Label("Jamaendo")
+ self._backbtn = gtk.Button("<<<")
+ self._hbox = gtk.HBox()
+ self._hbox.pack_start(self._title, True)
+ self._hbox.pack_start(self._backbtn, False)
+ self._notebook = gtk.Notebook()
+ self._notebook.set_size_request(800, 445)
+ self._notebook.set_show_tabs(False)
+ self._vbox.pack_start(self._hbox, False)
+ self._vbox.pack_start(self._notebook, True)
+ self.add(self._vbox)
+ self.show_all()
+ Program.instance = self
+
+ def add_window(self, wnd):
+ pass
+
+ def add_stackable(self, wnd):
+ idx = self._notebook.append_page(wnd)
+ self._notebook.set_current_page(idx)
+ wnd.show_all()
+ wnd._nb_index = idx
+
+class StackableWindow(gtk.Frame):
+ def __init__(self):
+ gtk.Frame.__init__(self)
+ self._nb_index = 0
+ Program.instance.add_stackable(self)
+ def set_app_menu(self, menu):
+ pass
+
+ def set_title(self, title):
+ Program.instance._title.set_text(title)#_notebook.set_tab_label_text(self, title)
+
+class AppMenu(object):
+ def __init__(self):
+ pass
+
+ def append(self, widget):
+ pass
+
+ def show_all(self):
+ pass
+
+class GtkButton(gtk.Button):
+ def __init__(self, size):
+ gtk.Button.__init__(self)
+
+
+class Button(gtk.Button):
+ def __init__(self, size, layout):
+ gtk.Button.__init__(self)
+
+ def set_text(self, title, subtitle):
+ self.set_label(title)
+
+class PannableArea(gtk.ScrolledWindow):
+ pass
self.work = []
def _retrieve(self, url, fname):
+ BROKEN = 'http://imgjam.com/radios/default/default.100.png'
+ if url == BROKEN:
+ return None
f = open(fname, 'wb')
c = pycurl.Curl()
c.setopt(pycurl.FOLLOWLOCATION, 1)
LOG_FILENAME = '/tmp/jamaendo.log'
LOG_LEVEL = logging.DEBUG
-#LOG_FORMAT = "%(asctime)s %(name)-19s %(levelname)-5s - %(message)s"
LOG_FORMAT = "%(asctime)s %(name)-10s: [%(lineno)4d] %(levelname)-5s %(message)s"
-logging.basicConfig(filename=LOG_FILENAME, level=LOG_LEVEL, format=LOG_FORMAT)
+
+_rootlogger = logging.getLogger()
+_fhandler = logging.FileHandler(LOG_FILENAME)
+_shandler = logging.StreamHandler()
+_formatter = logging.Formatter(LOG_FORMAT)
+_fhandler.setFormatter(_formatter)
+_shandler.setFormatter(_formatter)
+
+_rootlogger.addHandler(_fhandler)
+_rootlogger.addHandler(_shandler)
+_rootlogger.setLevel(LOG_LEVEL)
import os
import gtk
import gobject
-import hildon
+try:
+ import hildon
+except:
+ import helldon as hildon
import jamaendo
import util
from settings import settings
# hildon colors
import gtk
-import hildon
+try:
+ import hildon
+ _using_helldon = False
+except:
+ import helldon as hildon
+ _using_helldon = True
# See the Fremantle Master Layout Guide for more information:
# http://tinyurl.com/fremantle-master-layout-guide
settings = gtk.settings_get_default()
font_style = gtk.rc_get_style_by_paths(settings, logicalfontname, \
None, None)
+ if not font_style:
+ font_style = gtk.rc_get_style_by_paths(settings,
+ 'GtkButton', 'GtkButton', gtk.Button)
+
font_desc = font_style.font_desc
return font_desc
settings = gtk.settings_get_default()
color_style = gtk.rc_get_style_by_paths(settings, 'GtkButton', \
'osso-logical-colors', gtk.Button)
- return color_style.lookup_color(logicalcolorname)
-def font(name):
- return get_font_desc(name).to_string()
+ if not color_style:
+ font_style = gtk.rc_get_style_by_paths(settings,
+ 'GtkButton', 'GtkButton', gtk.Button)
+ return color_style.lookup_color(logicalcolorname)
+if _using_helldon:
+ def font(name):
+ return "normal"
+else:
+ def font(name):
+ return get_font_desc(name).to_string()
-def color(name):
- return get_color('SecondaryTextColor').to_string()
+if _using_helldon:
+ def color(name):
+ return "#333333"
+else:
+ def color(name):
+ return get_color('SecondaryTextColor').to_string()
import sys
current_module = sys.modules[__name__]
for fnt in logical_font_names:
- setattr(current_module, fnt, font(fnt))
+ setattr(current_module, fnt, lambda: font(fnt))
for clr in logical_color_names:
- setattr(current_module, clr, color(clr))
+ setattr(current_module, clr, lambda: color(clr))
# (based on http://pygstdocs.berlios.de/pygst-tutorial/seeking.html)
#
import gtk
-import hildon
+try:
+ import hildon
+except:
+ import helldon as hildon
import jamaendo
from playerwindow import open_playerwindow
from showartist import ShowArtist
# (based on http://pygstdocs.berlios.de/pygst-tutorial/seeking.html)
#
import gtk
-import hildon
+try:
+ import hildon
+except:
+ import helldon as hildon
import jamaendo
from playerwindow import open_playerwindow
from showartist import ShowArtist
# what the fuck, GTK
import gtk
-import hildon
+try:
+ import hildon
+except:
+ import helldon as hildon
class ListBox(gtk.TreeView):
def __init__(self):
self.filesrc = self.player
self.filesrc_property = 'uri'
self.volume_control = self.player
- self.volume_multiplier = 1.
+ self.volume_multiplier = 10.
self.volume_property = 'volume'
def _on_decoder_pad_added(self, decoder, src_pad, sink_pad):
#
import gtk
import gobject
-import hildon
+try:
+ import hildon
+except:
+ import helldon as hildon
import util
import pango
import jamaendo
if self.playlist.radio_mode:
ppstr = '<span size="small">Radio: %s</span>'%(cgi.escape(self.playlist.radio_name))
else:
- ppstr = '<span font_desc="%s" foreground="%s">Track %s of %s</span>'%(colors.SmallSystemFont, colors.SecondaryTextColor, int(playlist_pos)+1, playlist_size)
+ ppstr = '<span font_desc="%s" foreground="%s">Track %s of %s</span>'%(colors.SmallSystemFont(), colors.SecondaryTextColor(), int(playlist_pos)+1, playlist_size)
self.playlist_pos.set_markup(ppstr)
- self.track.set_markup('<span font_desc="%s">%s</span>'%(colors.LargeSystemFont, cgi.escape(track)))
+ self.track.set_markup('<span font_desc="%s">%s</span>'%(colors.LargeSystemFont(), cgi.escape(track)))
self.artist.set_markup('%s'%(cgi.escape(artist)))
- self.album.set_markup('<span foreground="%s">%s</span>'%(colors.SecondaryTextColor, cgi.escape(album)))
+ self.album.set_markup('<span foreground="%s">%s</span>'%(colors.SecondaryTextColor(), cgi.escape(album)))
def show_banner(self, message, timeout = 2000):
banner = hildon.hildon_banner_show_information(self, '', message)
# (based on http://pygstdocs.berlios.de/pygst-tutorial/seeking.html)
#
import gtk
-import hildon
+try:
+ import hildon
+except:
+ import helldon as hildon
import jamaendo
from settings import settings
import logging
# (based on http://pygstdocs.berlios.de/pygst-tutorial/seeking.html)
#
import gtk
-import hildon
+try:
+ import hildon
+except:
+ import helldon as hildon
import jamaendo
from playerwindow import open_playerwindow
from albumlist import RadioList
# (based on http://pygstdocs.berlios.de/pygst-tutorial/seeking.html)
#
import gtk
-import hildon
+try:
+ import hildon
+except:
+ import helldon as hildon
import jamaendo
from playerwindow import open_playerwindow
from showartist import ShowArtist
#
import gtk
import cgi
-import hildon
+try:
+ import hildon
+except:
+ import helldon as hildon
import jamaendo
from player import Playlist
from playerwindow import open_playerwindow
# (based on http://pygstdocs.berlios.de/pygst-tutorial/seeking.html)
#
import gtk
-import hildon
+try:
+ import hildon
+except:
+ import helldon as hildon
import jamaendo
from playerwindow import open_playerwindow
from albumlist import AlbumList
log.critical('Using GTK widgets, install "python2.5-hildon" '
'for this to work properly.')
else:
- log.critical('This ui only works in maemo')
- sys.exit(1)
+ log.critical('This ui (probably) only works in maemo')
+ import helldon as hildon
from dbus.mainloop.glib import DBusGMainLoop