Hi Alexandre,

  Thanks a lot for your reply. I'll try to attach the source file to this
message, however not sure if this mailing list allows attachments, so I have
uploaded it also to my ftp side:
ftp://ftp.uliy.com/pub/python/te.py

  I tried to run this file on the smartphone and on PocketPc, the same
result. Was playing with OnOpen method detaching the Edit control from the
frame, adding the text and attaching it again, still the same, cursor does
not move.

  Would so much appreciate any comments.

Igor.

From: Alexandre Delattre <[EMAIL PROTECTED]>
Subject: Re: [PythonCE] Programaticly moving cursor in multi-line edit
        control
To: pythonce@python.org
Message-ID: <[EMAIL PROTECTED]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Igor,

 From what you say, I don't see what you could have done wrong.
can you send me the full source code  so I can give a try ?

Alexandre

import ppygui as gui
import os
import rdebug

class MainFrame(gui.CeFrame):
# subclass to create our own main frame type
  keyFlag = 0
  filename = ''
  defaultFolder = ''
  startSelection = 0
  endSelection = 0

  def __init__(self):
    gui.CeFrame.__init__(self, title="Text edit", menu="menu", action=("Clear", 
self.onClear))

    self.MainMenu = gui.Menu()
    self.FileMenu = gui.PopupMenu()
    self.TextMenu = gui.PopupMenu()
    self.EditMenu = gui.PopupMenu()
    self.navigateMenu = gui.PopupMenu()
    self.FileMenu.append("New", self.OnNew)
    self.FileMenu.append("Open...", self.OnOpen)
    self.FileMenu.append("Save", self.OnSave)
    self.FileMenu.append("Save As...", self.OnSaveAs)
    self.SymbolsMenu = gui.PopupMenu()
    self.SymbolsMenu.append("''", self.OnApostrophi)
    self.SymbolsMenu.append('[]', self.OnBrackets)
    self.SymbolsMenu.append('<', self.OnLess)
    self.SymbolsMenu.append('>', self.OnGreater)
    self.SymbolsMenu.append('{}', self.OnBraces)
    self.SymbolsMenu.append('=', self.OnEquals)
    self.TextMenu.append_menu('Symbols', self.SymbolsMenu)
    self.TextMenu.append("Cursor pos", self.OnCursorPosition)
    self.EditMenu.append("Start Selection", self.OnStartSelection)
    self.EditMenu.append("End Selection", self.OnEndSelection)
    self.EditMenu.append("Select line", self.OnSelectLine)
    self.EditMenu.append("Copy", self.OnCopy)
    self.EditMenu.append("Paste", self.OnPaste)
    self.EditMenu.append("Delete", self.OnDeleteSelection)
    self.navigateMenu.append("Start of file", self.OnStartOfFile)
    self.navigateMenu.append("End of file", self.OnEndOfFile)
    self.navigateMenu.append("Home", self.OnHome)
    self.navigateMenu.append("End", self.OnEnd)
    self.cb_menu.append_menu("File", self.FileMenu)
    self.cb_menu.append_menu("Edit", self.EditMenu)
    self.cb_menu.append_menu("Navigate", self.navigateMenu)
    self.cb_menu.append_menu("Text", self.TextMenu)
    self.cb_menu.append("Exit", self.onExit)
    self.text_entry = gui.Edit(self, multiline=True)
    sizer = gui.VBox(border=(0,0,0,0), spacing=0)
    sizer.add(self.text_entry)
    self.sizer = sizer
    self.text_entry.text = ""
    self.text_entry.focus()
    
  def onClear(self, x):
    self.text_entry.text = ""
    self.text_entry.bringtofront()
    
  def onExit(self, x):
    self.close()

  def OnNew(self, x):
    self.text_entry.text = ""
    self.filename = 'untitled'
    print "Window title: "+self.texte
    self.text = U'Untitled'
    
  def OnOpen(self, x):
    self.filename = gui.FileDialog.open()
    self.text = 'Please wait...'
    fl = open(self.filename, 'r')
    l = fl.readlines()
    self.text_entry = None
    self.text_entry = gui.Edit(self, multiline=True)
    for i in l:
      self.text_entry.append(i)
    sizer = gui.VBox(border=(0,0,0,0), spacing=0)
    sizer.add(self.text_entry)
    self.sizer = sizer  
    fl.close()
    l = []
    self.defaultFolder = os.path.split(self.filename)[0]
    self.text_entry.selection = 0, 0
    self.text = self.filename
    self.text_entry.update()
    self.text_entry.focus()
    
  def OnSave(self, x):
    if self.filename == '':
      self.filename = 'unnamed.txt'
    if self.defaultFolder == '':
      self.defaultFolder = '.'
      self.filename = os.path.join(self.defaultFolder, self.filename)
    fl = open(self.filename, "w")
    fl.write(self.text_entry.text)
    fl.close()
    self.text_entry.focus()
    
  def OnSaveAs(self, x):
    self.filename = gui.FileDialog.save()
    fl = open(self.filename, 'w')
    fl.write(self.text_entry.text)
    fl.close()
    self.text_entry.focus()

  def OnApostrophi(self, x):
    selection =  self.text_entry.selection
    pos = selection[0]
    self.text_entry.text = self.text_entry.text[:pos] + "''" + 
self.text_entry.text[pos:]
    self.text_entry.selection = (selection[0]+2, selection[1]+2)
    
  def OnBrackets(self, x):
    selection =  self.text_entry.selection
    pos = selection[0]
    self.text_entry.text = self.text_entry.text[:pos] + "[]" + 
self.text_entry.text[pos:]
    self.text_entry.selection = (selection[0]+2, selection[1]+2)
    
  def OnBraces(self, x):
    selection =  self.text_entry.selection
    pos = selection[0]
    self.text_entry.text = self.text_entry.text[:pos] + "{}" + 
self.text_entry.text[pos:]
    self.text_entry.selection = (selection[0]+2, selection[1]+2)
    
  def OnLess(self, x):
    selection =  self.text_entry.selection
    pos = selection[0]
    self.text_entry.text = self.text_entry.text[:pos] + "<" + 
self.text_entry.text[pos:]
    self.text_entry.selection = (selection[0]+1, selection[1]+1)
    
  def OnGreater(self, x):
    selection =  self.text_entry.selection
    pos = selection[0]
    self.text_entry.text = self.text_entry.text[:pos] + ">" + 
self.text_entry.text[pos:]
    self.text_entry.selection = (selection[0]+1, selection[1]+1)
    
  def OnEquals(self, x):
    selection =  self.text_entry.selection
    pos = selection[0]
    self.text_entry.text = self.text_entry.text[:pos] + "=" + 
self.text_entry.text[pos:]
    self.text_entry.selection = (selection[0]+1, selection[1]+1)

  def OnStartSelection(self, x):
    self.startSelection = self.text_entry.selection[0]
    self.text_entry.focus()
    
  def OnEndSelection(self, x):
    self.endSelection = self.text_entry.selection[0]
    self.text_entry.selection = (self.startSelection, self.endSelection)
    self.text_entry.focus()
    
  def OnSelectLine(self, x):
    start = self.text_entry.line_index(-1)
    end = self.text_entry.line_index(-1) + self.text_entry.line_length(-1)
    self.text_entry.selection = (start, end)
    self.text_entry.focus()
    
  def OnCopy(self, x):
    self.text_entry.copy()
    self.text_entry.focus()
    
  def OnPaste(self, x):
    self.text_entry.paste()
    self.text_entry.focus()
    
  def OnDeleteSelection(self, x):
    self.text_entry.cut()
    self.text_entry.focus()
    
  def OnStartOfFile(self, x):
    self.text_entry.selection = (0, 0)
    self.text_entry.update()
    self.text_entry.focus()
    
  def OnEndOfFile(self, x):
    eof = len(self.text_entry.text)
    self.text_entry.selection = (eof, eof)
    self.text_entry.focus()
    
  def OnHome(self, x):
    i = self.text_entry.line_index(-1)
    self.text_entry.selection = (i, i)
    self.text_entry.focus()
    
  def OnEnd(self, x):
    i = self.text_entry.line_index(-1) + self.text_entry.line_length(-1)
    self.text_entry.selection = (i, i)
    self.text_entry.focus()
    
  def OnCursorPosition(self, x):
    line = self.text_entry.line_from_char(-1)+1
    col = self.text_entry.selection[0] - self.text_entry.line_index(-1)+1
    msg = "Line: "+str(line) + " Col: " + str(col)
    gui.Message.ok("Cursor position", msg)
    self.text_entry.focus()
    
if __name__ == '__main__':
  #rdebug.set_std('igor.txt', 'igor.err')
  app = gui.Application()
  app.mainframe = MainFrame()
  app.run()
  app.mainframe.text_entry.focus()
_______________________________________________
PythonCE mailing list
PythonCE@python.org
http://mail.python.org/mailman/listinfo/pythonce

Reply via email to