
It is really easy to handle that. We provide the algorithm. First of all, the algorithm provided supposes severals hypothesis :
(!U)Example(!u)
/* Handle a multiple formular */
void formONGLET( WINDOW *win) {
static int show = FORM1; /* formular currently displayed */
int bckgrd[] = {FORM1, FORM2, FORM3 /*, etc ...*/};
/* Describes links between thumb index and
* formular */
int res = evnt.buff[4];
switch( res) {
/* The multiple formular handling is here */
case INDEX1:
case INDEX2:
case INDEX3:
/* ... */
/* Test if the choice is already displayed */
if( show == bckgrd[res-BUT1]) break;
/* Hide the current form */
FORM(win)[show].ob_flags |= HIDETREE;
/* Unhide the new form */
FORM(win)[bckgrd[res-BUT1]].ob_flags &= ~HIDETREE;
/* keep in memory the form displayed */
show = bckgrd[res-BUT1];
/* this instruction fixes a bug from WinDom */
((W_FORM*)win->data)->edit = -1;
/* Display the new form and the thumb index selected */
ObjcDraw( OC_FORM, wglb.appfront, show, MAX_DEPTH);
ObjcDraw( OC_FORM, wglb.appfront, res, 0);
break;
/* Others objects ... */
case OK:
...
}
}