+static void macctrl_switchtopanel(struct macctrls *mcs, unsigned int which)
+{
+ unsigned int i, j;
+ union macctrl *mc;
+
+ /* Panel 0 is special and always visible. */
+ for (i = 1; i < mcs->npanels; i++)
+ for (mc = mcs->panels[i]; mc != NULL; mc = mc->generic.next)
+ switch (mc->generic.type) {
+ case MACCTRL_TEXT:
+ if (i == which)
+ ShowControl(mc->text.tbctrl);
+ else
+ HideControl(mc->text.tbctrl);
+ break;
+ case MACCTRL_RADIO:
+ for (j = 0; j < mc->generic.ctrl->radio.nbuttons; j++)
+ if (i == which)
+ ShowControl(mc->radio.tbctrls[j]);
+ else
+ HideControl(mc->radio.tbctrls[j]);
+ break;
+ case MACCTRL_CHECKBOX:
+ if (i == which)
+ ShowControl(mc->checkbox.tbctrl);
+ else
+ HideControl(mc->checkbox.tbctrl);
+ break;
+ case MACCTRL_BUTTON:
+ if (i == which)
+ ShowControl(mc->button.tbctrl);
+ else
+ HideControl(mc->button.tbctrl);
+ break;
+
+ }
+}
+