コード例 #1
0
ファイル: traygui.py プロジェクト: imammedo/memocard
class TrayApp:

	def get_default_config(self):
		config = ConfigParser.RawConfigParser()
		config.add_section('GUI')
		config.set('GUI', 'CardWindowY', '15')
		config.set('GUI', 'CardWindowY', '15')
		config.add_section('Learning')
		config.set('Learning', 'SlideTimeout', '10')
		config.set('Learning', 'SlideInterval', '40')
		config.set('Learning', 'FlipSides', 'false')
		config.set('Learning', 'DefaultDB', 'french.jml')
		return config

	def __init__(self):
		self.config = ConfigParser.RawConfigParser()
		try:
			self.config.readfp(open('memocard.cfg'))
		except:
			self.config = self.get_default_config()

		self.flip = self.config.getboolean('Learning', 'FlipSides')

		self.icon = TrayIcon()
		self.icon.connect('activate', self.slide_show_cb)

		# Build menu
		menu = gtk.Menu()
		self.topMenu = menu
		menuItem = gtk.MenuItem('Start/Stop slide show')
		menuItem.connect('activate', self.slide_show_cb)
		self.slide_show_mode = False
		menu.append(menuItem)
		menuItem = gtk.CheckMenuItem('Flip cards')
		menuItem.connect('activate', self.flip_cb)
		menu.append(menuItem)
		menuItem = gtk.ImageMenuItem(gtk.STOCK_QUIT)
		menuItem.connect('activate', self.quit_cb, self.icon)
		menu.append(menuItem)

		self.icon.connect('popup-menu', self.popup_menu_cb, menu)
		self.icon.show()

		# Init cards database
		self.db = jmemorize_db.jMemorizeDB()
		self.db.open_db(self.config.get('Learning', 'DefaultDB'))

		# Add Filter menu Item if backend provides it
		try:
			flt = self.db.getFilter()
			flt_menu = self.build_FilterMenu(flt)
			if flt_menu != None:
				menuItem = gtk.MenuItem('Filter')
				menuItem.set_submenu(flt_menu)
				menu.prepend(menuItem)
				menu.connect('hide', self.setToolTip_from_filter)
		except Exception, e:
			print "Unable to get Filter menu from DB: ", e