pywinauto/doc_src/TODO.txt
2006-01-06 23:01:53 +00:00

81 lines
2.8 KiB
Plaintext

============================================================================
APPLICATION TODO's
============================================================================
* Create a class that makes it easy to deal with a single window (e.g. no application)
* Allow apps to be started in a different thread so we don't lock up
- this is being done already - the problem is that some messages cannot
be sent across processes if they have pointers (so we need to send a
synchronous message which waits for the other process to respond
before returning)
* Message traps - how to handle unwanted message boxes popping up?
a) Wait for an Exception then handle it there
b) set a trap waiting for a specific dialog
* Implement an opional timing/config module so that all timing can be customized
* Handle adding reference controls (in that they should be the controls used for finding windows)
* Add referencing by closest static (or surrounding group box?)
* Find the reference name of a variable .e.g so that in Dialog._write() we
can know the variable name that called the _write on (this we don't have
to repeat the XML file name!)
* If we remove the delay after a button click in controlactions then
trying to close two dialogs in a row might fail because the first
dialog hasn't closed yet and the 2nd may have similar title and
same closing button e.g PageSetup.OK.Click(), PageSetup2.OK.Click().
A possible solution to this might be to keep a cache of windows in the
application and no two different dialog identifiers (PageSetup and PageSetup2
in this case) can have the same handle - so returning the handle of PageSetup
when we call PageSetup2 would fail (and we would do our usual waiting until
it succeeds or times out).
Investigate using any of the following
BringWindowToTop
EnumThreadWindows
GetGUIThreadInfo
GetTopWindow
============================================================================
============================================================================
# a) Dialogs returned from App (dialog)
# should respond to _ctrl and their own actions
# b) Controls returned from Dialogs
# should respond to _ctrl and their own actions
# c) Dialogs should be able to respond to calls of
# FindControl
# d) Apps should be able to respond to calls of
# FindDialog
# e) Dialogs need to be able to respond to MenuSelect
# app.dlgTitle
# app._Dialog(dlgSearchParams): raises WindowNotFound, WindowAmbiguous
# dlg.ControlTitle
# dlg._Control(ctrlSearchParams)
# dlg._Menu(menupath).Select()
# OR???
# dlg._Menu.File.Open.Select()
# dlg._.IsVisible
# dlg.Close()
# ctrl._.IsVisible
# ctrl.Click()
#App.Dialog.Control.Action()
#or App.Dialog.Action()