/*//////////////////////////   EZ_02.C    /////////////////////////////*/
#include <EAZY_GEM.H> 
#include "EZ_02.RSC\EZ_02.H"    
#define W_EZ_02       1     
static CALLBACK WindProcEZ_02(int w_ind, EVNT_O *Evnt);
/*---------------------------- main ------------------------------------*/
void main (void)
{MAX_WIND  = 2;   
 if (InitEazyGem("EZ_02.PRG") != -1)    
    {CreateWindow(SMALLER|CLOSER |NAME   |MOVER  |BORDER |XMOVER, 
                  W_EZ_02, 0L, WindProcEZ_02, 0,0,0,0, "FENETRE DIALOGUE");    
     BouclePrincipale(0L);  
    }
 ExitEasyGem();   
}
/*------------------------------ WindProcEZ_02 ---------------------------*/
CALLBACK WindProcEZ_02(int w_ind, EVNT_O *Evnt)
{if (Evnt->evnt & MU_KEYBD)
    {int wh_top;                    
     wind_get( 0, WF_TOP, &wh_top); 
     if (Windtab[w_ind].w_h == wh_top ) Xform_keybd(w_ind, Evnt);
    }
 if (Evnt->evnt & MU_BUTTON)
    {int ob_ret;                
     OBJECT *object;            
     ob_ret = Xform_button(w_ind, Evnt);     
     if (ob_ret>-1)            
        {Evnt->evnt &= ~MU_BUTTON;  
         object=Windtab[w_ind].DlgVar.tree;   
         object[ob_ret].ob_state &= ~SELECTED;  
        }  
    } 
 if (Evnt->evnt & MU_TIMER)  
    {int wh_top;                    
     wind_get( 0, WF_TOP, &wh_top); 
     if (Windtab[w_ind].w_h == wh_top ) Xform_timer(w_ind);    
    }
 if (Evnt->evnt & MU_MOVE)  Xform_mu_move(w_ind, Evnt);
 if (Evnt->evnt & MU_MESAG)
    {switch (Evnt->pipe[MESG])
       {case WM_CONSTRUCT:
             Windtab[w_ind].DlgVar.AdrRsc = LoadAppliRsc( "EZ_02.RSC", SCALE); 
             if (Windtab[w_ind].DlgVar.AdrRsc)  
                {Windtab[w_ind].DlgVar.type    = RSC_DIAL;
                 Windtab[w_ind].DlgVar.NumTree = 0; 
                 Xform_construct(w_ind, Evnt);
                }                     
             else return WM_ABORT;         
             AdjustWindCoordToScreen (w_ind, Evnt, (GRECT*)&Evnt->pipe[X_B]);              
             break;
        case WM_DESTRUCT:       
             Xform_Destruct(w_ind, Evnt);    
             RscFicUnLoad(Windtab[w_ind].DlgVar.AdrRsc);                
             break;   
        case WM_TT_ON_OFF:      
             SetBulleState(Windtab[w_ind].w_h, Windtab[w_ind].DlgVar.tree);
             break;
        case WM_REDRAW: 
             Lister_rectangles(Windtab[w_ind].w_h,(GRECT*)&Evnt->pipe[X_G]);                          
             break;     
        case WM_BOTTOM:     wind_set(Windtab[w_ind].w_h, WF_BOTTOM ); break;          
        case WM_TOPPED:     wind_set(Windtab[w_ind].w_h, WF_TOP );    break;
        case WM_CLOSED:     EZGemRun = 0;                             break;
        case WM_ALLICONIFY: AllIconify(0L);                           break;    
        case WM_ICONIFY:    IconifyWindow(w_ind, 0L);                 break;    
        case WM_UNICONIFY:  UnconifyWindow(w_ind);                    break;
        case WM_MOVED:      OnWm_moved(w_ind, Evnt);                  break;   
        case AP_TERM:       EZGemRun=-1;  break;      
       } /* end switch message     */
    } /* end if Evnt & MU_MESSAG  */      
 return Evnt->evnt;    /* retourner le flux evenementiel (modifie ou pas)    */
}


