/**************************************************************************************/ /* Animated Button written by Marc Bariley */ /**************************************************************************************/ /* ANB_New */ /* ANB_Del */ /* ANB_SetClickReflex */ /* ANB_SetCursorMoveInReflex */ /* ANB_SetCursorMoveOutReflex */ /* ANB_GetObject */ /* ANB_ChangeDisplayFlags */ /* ANB_ChangeCoordinates */ /* ANB_GetCoordinates */ /* ANB_GetGraphicalState */ /**************************************************************************************/ /* librairy used: _jint2D _jobj2dlib.pkg */ /**************************************************************************************/ /* les types de bouton */ var ANB_FULL =0b01000000;; var ANB_MASK =0b01000000;; /* AnimButton: ANBObj2D : l'objet 2D associe ANBbitmap: bitmap contenant les differents etats du bouton ANBcoords: liste des coordonnees des differents etats du bouton. dans l'ordre : état 0, masque (si le flag est présent), anim*, états enfoncés dans l'anim* ANBflags : flags du bouton ANBstate : etat du bouton ANBstep : étape dans l'anim ANBrate : espace de temps entre chaque étape de l'anim en ms ANBtimer : timer de l'anim ANBtransp: couleur de transparence ANBClickReflex : reflexe utilisateur lors du clic sur le bouton ANBCursorMoveInReflex : reflexe utilisateur lorsque la souris entre sur le bouton ANBCursorMoveOutReflex: reflexe utilisateur lorsque la souris sort sur le bouton */ struct ANIButton=[ ANBObj2D : Obj2D, ANBbitmap: ObjBitmap, ANBframes: I, ANBframeW: I, ANBtransp: I, ANBflags : I, ANBstate : I, ANBstep : I, ANBrate : I, ANBtimer : Timer, ANBClickReflex : fun [ANIButton I I I] ANIButton, ANBCursorMoveInReflex : fun [ANIButton I I I] ANIButton, ANBCursorMoveOutReflex: fun [ANIButton I I I] ANIButton ] MkAnimButton;; /************************************************************************************/ /* Fonctions externes du AnimButton */ /************************************************************************************/ /* Constructeur du AnimButton channel : canal de construction cont : container auquel appartient le rollover parent : l'objet pere coord : coordonnees de l'objet par rapport au pere name : nom de l'objet bmp : ressource pour construire l'objet (bitmap) nframes : nombre de frames dans la bitmap de reference, sans mask tcoord : coordonnees de la couleur de transparence flag : flag de construction (O2D_ENABLE, O2D_DISABLE, O2D_HIDE, ANB_MASK) rate : espace de temps entre chaque pas de l'anim en ms */ proto ANB_New = fun [Chn ContainerType Obj2D [I I] S ObjBitmap I [I I] I I] ANIButton;; proto ANB_Del = fun [ANIButton] ANIButton;; proto ANB_SetClickReflex = fun [ANIButton fun [ANIButton I I I u0] ANIButton u0] ANIButton;; proto ANB_SetCursorMoveInReflex = fun [ANIButton fun [ANIButton I I I u0] ANIButton u0] ANIButton;; proto ANB_SetCursorMoveOutReflex = fun [ANIButton fun [ANIButton I I I u0] ANIButton u0] ANIButton;; proto ANB_GetObject = fun [ANIButton] Obj2D;; proto ANB_ChangeDisplayFlags = fun [ANIButton I I I] ANIButton;; proto ANB_GetDisplayFlags = fun [ANIButton] I;; proto ANB_ChangeCoordinates = fun [ANIButton [I I] I I] ANIButton;; proto ANB_GetCoordinates = fun [ANIButton] [I I];; proto ANB_GetGraphicalState = fun [ANIButton] [ObjBitmap I I I I I];;