From: י. <gol...@gm...> - 2008-10-28 01:41:44
|
# -*- coding: UTF-8 -*- import wx import wx.html as html import pythoncom, pyHook from pywinauto import win32defines from pywinauto.controls.HwndWrapper import win32functions from pywinauto.controls.HwndWrapper import HwndWrapper from pywinauto.controls.HwndWrapper import win32structures from pywinauto.controls.HwndWrapper import time from pywinauto.controls.HwndWrapper import Timings from pywinauto.controls.HwndWrapper import ctypes from pywinauto import win32defines from pywinauto import win32functions from pywinauto.controls.HwndWrapper import SendKeys import sys import urllib2 import re import pywinauto.clipboard import sqlite3 as lite import time import pyTTS tts = pyTTS.Create() tts.Speak('whelcome to open babylon') con = lite.connect('test.s3db') con.text_factory = str c = con.cursor() cur = con.cursor() from functions import * from box import * class MyFrame(wx.Frame): def __init__(self, parent, ID, title, search_word='help'): global cnrl, do_speak wx.Frame.__init__(self, parent, ID, title, size=(320, 250), style=wx.STAY_ON_TOP| wx.DEFAULT_FRAME_STYLE) panel1=wx.Panel(self, -1, size=(320, 60)) panel1.SetBackgroundColour("#cce8fa") wx.BitmapButton(panel1, wx.ID_ANY , wx.Bitmap('images/logo.gif'),(10, 0), (204, 40) ) panel2 = wx.Panel(self,-1, size=(330, 200)) panel2.SetBackgroundColour("#dededf") panel3= wx.PyScrolledWindow(panel2,-1,(10,10), size=(290, 160)) panel3.SetBackgroundColour("white") search=wx.Panel(self, -1, size=(320, 20)) search.SetBackgroundColour("#dededf") cnrl=wx.TextCtrl(search, 11, '', (20, 5), (120, 20),style=wx.TE_PROCESS_ENTER) wx.Button(search, 12 , "Go", (140, 5), (30, 18)) self.Bind(wx.EVT_BUTTON, self.OnClick, id=12) cnrl.Bind(wx.EVT_TEXT_ENTER, self.OnKeyDown) self.SetFocus() box=wx.BoxSizer(wx.VERTICAL) box.Add(panel1, 0, wx.EXPAND) box.Add(search, 0, wx.EXPAND) box.Add(panel2 , 1, wx.EXPAND) fixScroll=wx.BoxSizer(wx.VERTICAL) fixScroll.Add((10, 10)) fixScroll2=wx.BoxSizer(wx.HORIZONTAL) fixScroll2.Add((10, 10)) fixScroll2.Add(panel3, 1 , wx.EXPAND) fixScroll2.Add((10, 10)) fixScroll.Add(fixScroll2,1 , wx.EXPAND) fixScroll.Add((10, 10)) hbox=wx.BoxSizer(wx.VERTICAL) search_word=search_word.lower() search_word=MyEncod(search_word) word='' category=0 counter=0 type='' lang= re.compile("[a-zA-Z]") if lang.match(search_word): do_speak=search_word cur.execute('select * from `english_words` where `word` = ? limit 1', [search_word]) for row in cur: cur.execute('select * from `english_hebrew` where `english_word`=? order by `internal_type`, `order`',[str(row[0])]) for line in cur: un_str=MyDecod(line[2]) word+=un_str+", " if line[5] != type and type!= '': heb_title(hbox, panel3, real, type, word) word='' category=line[6] type=line[5] real=line[4] counter+=1 if word !='': heb_title(hbox, panel3, real, type, word) if counter ==0: req = urllib2.Request('http://tictakinfo.co.il/babylon/request.php?word='+search_word) response = urllib2.urlopen(req) string= response.read() category=string.split("/") x=1 while x <len(category): cat=category[x] var =cat.split("#") real=var[0] var= var[1].split("@") type= var[0] var = var[1].split(";") transe= var[1] words= transe.split(":") for word in words: word+=MyDecod(word)+", " transe =transe.replace(":", ", ") heb_title(hbox, panel3, real, type, MyDecod(transe)) word='' x+=1 else: cur.execute('select * from hebrew_words where word = ?', [search_word]) for row in cur: word_num=str(row[0]) cur.execute('select * from hebrew_english where hebrew_word = ? ORDER BY `word_type`, `order`', [word_num]) for line in cur: word+=MyDecod(line[1])+" ," if line[5] != type and type !='': eng_title(hbox, panel3, line[5], line[4], word) word='' category=line[6] real=line[4] type=line[5] counter+=1 if word !='': eng_title(hbox, panel3, type, real, word) word='' if counter ==0: req = urllib2.Request('http://tictakinfo.co.il/babylon/request.php?word='+search_word) response = urllib2.urlopen(req) string= response.read() category=string.split("/") x=1 while x <len(category): cat=category[x] var =cat.split("#") real=var[0] var= var[1].split("@") type= var[0] var = var[1].split(";") transe= var[1] transe =transe.replace(":", ", ") eng_title(hbox, panel3, MyDecod(type), MyDecod(real), MyDecod(transe)) word='' x+=1 panel3.SetSizer(hbox) panel3.SetScrollRate(1,1) panel2.SetSizer(fixScroll) self.SetAutoLayout(True) self.SetSizer(box) self.Layout() def OnClick(self,event): global cnrl, frame search=cnrl.GetValue() frame.Close() frame = MyFrame(None, -1, 'Babylon', search) frame.SetPosition(wx.Point(0,0)) frame.Show(True) def OnKeyDown(self, event): global cnrl, frame keycode = event.GetKeyCode() class MyTaskBarIcon(wx.TaskBarIcon): def __init__(self, frame): wx.TaskBarIcon.__init__(self) self.frame = frame self.SetIcon(wx.Icon('images/menu1.png', wx.BITMAP_TYPE_PNG)) self.Bind(wx.EVT_MENU, self.OnTaskBarActivate, id=1) self.Bind(wx.EVT_MENU, self.OnTaskBarDeactivate, id=2) self.Bind(wx.EVT_MENU, self.OnTaskBarClose, id=3) #self.frame.Bind(wx.EVT_CLOSE, self.OnClose) def CreatePopupMenu(self): menu = wx.Menu() menu.Append(1, 'Show (F10)') menu.Append(2, 'Hide (F8)') menu.Append(3, 'Close') return menu def OnTaskBarClose(self, event): global frame self.Destroy() frame.Close() def OnTaskBarActivate(self, event): if not self.frame.IsShown(): self.frame.Show() def OnTaskBarDeactivate(self, event): if self.frame.IsShown(): self.frame.Hide() def OnKeyboardEvent(event): global frame, frame2, do_pop, position, bbb, text2, text1, do_speak if event.KeyID ==123: if hasattr(frame, 'Close'): frame.Close() SendKeys.SendKeys("""^{INSERT}""") SendKeys.SendKeys("""^{INSERT}""") search= pywinauto.clipboard.GetData() search= search.strip() frame = MyFrame(None, -1, 'Babylon', search) frame.SetPosition(wx.Point(0,0)) frame.Show(True) if do_speak!='': do_speak=MyDecod(do_speak) tts.Speak(do_speak) do_speak='' return False if event.KeyID ==121: if hasattr(frame, 'Close'): frame.Close() perform_click_input(None, "left", position , True) SendKeys.SendKeys("""^{INSERT}""") SendKeys.SendKeys("""^{INSERT}""") search= pywinauto.clipboard.GetData() search= search.strip() frame = MyFrame(None, -1, 'Babylon', search) frame.SetPosition(wx.Point(0,0)) frame.Show(True) if do_speak!='': tts.Speak(do_speak) do_speak='' if event.KeyID ==119: frame.Hide() if event.KeyID ==162: do_pop=1; return True def OnKeyboardUp(event): global do_pop if event.KeyID ==162: do_pop=0; return True def OnMouseEvent(event): global position , do_pop, frame, do_middle, do_speak position= event.Position if event.Message==519 and do_pop==1: if hasattr(frame, 'Close'): frame.Close() perform_click_input(None, "left", position , True) SendKeys.SendKeys("""^{INSERT}""") SendKeys.SendKeys("""^{INSERT}""") search= pywinauto.clipboard.GetData() search= search.strip() frame = MyFrame(None, -1, 'Babylon', search) frame.SetPosition(wx.Point(0,0)) frame.Show(True) return False else: return True position=None do_pop=0 do_middle=0 x=1 app = wx.App() frame = MyFrame(None, -1, 'Babylon') frame.tskic = MyTaskBarIcon(frame) frame.SetPosition(wx.Point(0,0)) frame.Show(True) hm = pyHook.HookManager() hm.KeyDown = OnKeyboardEvent hm.KeyUp = OnKeyboardUp hm.MouseAll = OnMouseEvent hm.HookKeyboard() hm.HookMouse() app.MainLoop() |