|Title||Predefinition buttons for dialog boxes|
Alan Riley, StataCorp
What do I do with my dialog box if my command has prerequisites or requires predefinitions for it to run? For example, what if the data must be declared st or ct data?
Some prerequisites cannot be encoded easily in the dialog system. If you have a postestimation command, there is no easy way for the dialog system to tell you whether you have already run an estimation command.
In some cases, however, the dialog system can help. If your data must be preset to a certain type, there are some .idlg files to help you deal with this:
_bu_ctset.idlg _bu_stset.idlg _bu_tsset.idlg _bu_panelset.idlg _bu_svyset.idlg
These files take care of ct data, st data, ts data, panel data, and svy data. To run many of the time-series commands, you must have a VARIRF file set, so you can include the .idlg file:
These includes are meant to be the first items on the first panel of the dialog box. They require defining two positions, _x and _y, as the coordinates at which the button will be placed. If you look inside stcox.dlg, you will see the button included this way:
DIALOG main, label("stcox - Fit Cox proportional hazards model") /* */ tabtitle("Model") BEGIN /*--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+*/ DEFINE _x _xsetbu DEFINE _y _top INCLUDE _bu_stset
Here _xsetbu and _top are defined in the header dialog _std_large.idlg. You can also define them yourself by putting numbers in place of _xsetbu and _top. You can see an example of this in the faq.dlg dialog box.
This is another exception to the rule of only using .idlg files that define their own tabs.