Home  /  Resources & support  /  FAQs  /  Predefinition buttons for dialog boxes

How can I take care of prerequisites in dialog boxes?

Title   Predefinition buttons for dialog boxes
Authors Jean Marie Linhart, StataCorp
Alan Riley, StataCorp

Question:

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?

Answer:

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:

    _bu_vrfset.idlg

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.