81 lines
2.8 KiB
Plaintext
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()
|