def OnSearch(self, event = None): l = [] wx.BeginBusyCursor() s = util.lower(misc.fromGUI(self.searchEntry.GetValue())) sex = self.sexRb.GetSelection() nt = self.nameRb.GetSelection() selTypes = {} item = -1 while 1: item = self.typeList.GetNextItem(item, wx.LIST_NEXT_ALL, wx.LIST_STATE_SELECTED) if item == -1: break selTypes[self.typeList.GetItemData(item)] = True if len(selTypes) == len(nameArr.typeNamesCnt): doTypes = False else: doTypes = True for i in xrange(nameArr.count): if (sex != 2) and (sex == nameArr.sex[i]): continue if doTypes and nameArr.type[i] not in selTypes: continue if s: name = util.lower(nameArr.name[i]) if nt == 0: if not name.startswith(s): continue elif nt == 1: if name.find(s) == -1: continue elif nt == 2: if not name.endswith(s): continue l.append(i) self.list.items = l self.list.SetItemCount(len(l)) self.list.EnsureVisible(0) wx.EndBusyCursor() self.foundLabel.SetLabel("%d names found." % len(l))
def OnSearch(self, event=None): l = [] wx.BeginBusyCursor() s = util.lower(misc.fromGUI(self.searchEntry.GetValue())) sex = self.sexRb.GetSelection() nt = self.nameRb.GetSelection() selTypes = {} item = -1 while 1: item = self.typeList.GetNextItem(item, wx.LIST_NEXT_ALL, wx.LIST_STATE_SELECTED) if item == -1: break selTypes[self.typeList.GetItemData(item)] = True if len(selTypes) == len(nameArr.typeNamesCnt): doTypes = False else: doTypes = True for i in xrange(nameArr.count): if (sex != 2) and (sex == nameArr.sex[i]): continue if doTypes and nameArr.type[i] not in selTypes: continue if s: name = util.lower(nameArr.name[i]) if nt == 0: if not name.startswith(s): continue elif nt == 1: if name.find(s) == -1: continue elif nt == 2: if not name.endswith(s): continue l.append(i) self.list.items = l self.list.SetItemCount(len(l)) self.list.EnsureVisible(0) wx.EndBusyCursor() self.foundLabel.SetLabel("%d names found." % len(l))
def cleanWord(self, word): word = util.splitToWords(util.lower(util.toInputStr(word))) if len(word) == 0: return "" return word[0]
def isKnown(self, word): word = util.lower(word) return word in gdict or \ word in self.cnames or \ self.sp.scDict.isKnown(word) or \ self.gScDict.isKnown(word) or \ word.isdigit()
def OnPaint(self, event): dc = wx.BufferedPaintDC(self, self.screenBuf) size = self.GetClientSize() dc.SetBrush(wx.WHITE_BRUSH) dc.SetPen(wx.WHITE_PEN) dc.DrawRectangle(0, 0, size.width, size.height) dc.SetPen(wx.BLACK_PEN) dc.SetTextForeground(wx.BLACK) for y in range(self.rows + 1): util.drawLine(dc, self.offset, self.offset + y * self.cellSize, self.cols * self.cellSize + 1, 0) for x in range(self.cols + 1): util.drawLine(dc, self.offset + x * self.cellSize, self.offset, 0, self.rows * self.cellSize) dc.SetFont(self.normalFont) for y in range(self.rows): for x in range(self.cols): i = y * self.cols + x if i < len(self.chars): util.drawText(dc, self.chars[i], x * self.cellSize + self.offset + self.cellSize // 2 + 1, y * self.cellSize + self.offset + self.cellSize // 2 + 1, util.ALIGN_CENTER, util.VALIGN_CENTER) y = self.offset + self.rows * self.cellSize pad = 5 if self.selected: self.drawCharBox(dc, "Selected:", self.selected, self.offset, y + pad, 75) c = util.upper(self.selected) if c == self.selected: c = util.lower(self.selected) if c == self.selected: c = None if c: self.drawCharBox(dc, "Opposite case:", c, self.offset + 150, y + pad, 110) dc.SetFont(self.smallFont) dc.DrawText("Character code: %d" % ord(self.selected), 360, y + pad) else: dc.SetFont(self.smallFont) dc.DrawText("Click on a character to select it.", self.offset, y + pad)
def OnSuggest(self, event): if not self.sc.word: return isAllCaps = self.sc.word == util.upper(self.sc.word) isCapitalized = self.sc.word[:1] == util.upper(self.sc.word[:1]) word = util.lower(self.sc.word) wl = len(word) wstart = word[:2] d = 500 fifo = util.FIFO(5) wx.BeginBusyCursor() for w in spellcheck.prefixDict[util.getWordPrefix(word)]: if w.startswith(wstart): d = self.tryWord(word, wl, w, d, fifo) for w in self.gScDict.words.iterkeys(): if w.startswith(wstart): d = self.tryWord(word, wl, w, d, fifo) for w in self.ctrl.sp.scDict.words.iterkeys(): if w.startswith(wstart): d = self.tryWord(word, wl, w, d, fifo) items = fifo.get() wx.EndBusyCursor() if len(items) == 0: wx.MessageBox("No similar words found.", "Results", wx.OK, self) return dlg = wx.SingleChoiceDialog( self, "Most similar words:", "Suggestions", items) if dlg.ShowModal() == wx.ID_OK: sel = dlg.GetSelection() newWord = items[sel] if isAllCaps: newWord = util.upper(newWord) elif isCapitalized: newWord = util.capitalize(newWord) self.replaceEntry.SetValue(newWord) dlg.Destroy()
def OnPaint(self, event): dc = wx.BufferedPaintDC(self, self.screenBuf) size = self.GetClientSize() dc.SetBrush(wx.WHITE_BRUSH) dc.SetPen(wx.WHITE_PEN) dc.DrawRectangle(0, 0, size.width, size.height) dc.SetPen(wx.BLACK_PEN) dc.SetTextForeground(wx.BLACK) for y in range(self.rows + 1): util.drawLine(dc, self.offset, self.offset + y * self.cellSize, self.cols * self.cellSize + 1, 0) for x in range(self.cols + 1): util.drawLine(dc, self.offset + x * self.cellSize, self.offset, 0, self.rows * self.cellSize) dc.SetFont(self.normalFont) for y in range(self.rows): for x in range(self.cols): i = y * self.cols + x if i < len(self.chars): util.drawText( dc, self.chars[i], x * self.cellSize + self.offset + self.cellSize // 2 + 1, y * self.cellSize + self.offset + self.cellSize // 2 + 1, util.ALIGN_CENTER, util.VALIGN_CENTER) y = self.offset + self.rows * self.cellSize pad = 5 if self.selected: code = ord(self.selected) self.drawCharBox(dc, "Selected", self.selected, self.offset, y + pad, 75) c = util.upper(self.selected) if c == self.selected: c = util.lower(self.selected) if c == self.selected: c = None if c: self.drawCharBox(dc, "Opposite Case", c, self.offset + 150, y + pad, 110) dc.SetFont(self.smallFont) dc.DrawText("Character Code: %d" % code, 360, y + pad) if code == 32: dc.DrawText("Normal Space", 360, y + pad + 30) elif code == 160: dc.DrawText("Non-breaking Space", 360, y + pad + 30) else: dc.SetFont(self.smallFont) dc.DrawText("Select a character", self.offset, y + pad)
sys.path.insert(0, "../src") import misc import util util.init(False) misc.init(False) s = util.loadFile("../dict_en.dat", None) if s == None: raise Exception("error") words = {} lines = s.splitlines() for it in lines: words[util.lower(it)] = None for arg in sys.argv[1:]: words[util.lower(arg)] = None words = list(words.keys()) words.sort() f = open("../dict_en.dat", "wb") for w in words: f.write("%s\n" % w) f.close()
if len(sys.argv) < 2: raise "add_word.py word1 word2..." sys.path.insert(0, "..") import util util.init(False) s = util.loadFile("../dict_en.dat", None) if s == None: raise "error" words = {} lines = s.splitlines() for it in lines: words[util.lower(it)] = None for arg in sys.argv[1:]: words[util.lower(arg)] = None words = words.keys() words.sort() f = open("../dict_en.dat", "wb") for w in words: f.write("%s\n" % w) f.close()