	12 . Constantes et variables documentes


	12.1 Les constantes

		12.1.1 Les constantes systmes

; Type de message GEM
MN_SELECTED		= 10
WM_REDRAW		= 20
WM_TOPPED		= 21
WM_CLOSED		= 22
WM_FULLED		= 23
WM_ARROWED		= 24
WM_HSLID		= 25
WM_VSLID		= 26
WM_SIZED		= 27
WM_MOVED		= 28
WM_NEWTOP		= 29
WM_UNTOPPED		= 30
WM_ONTOP		= 31
WM_BOTTOM		= 33
WM_ICONIFY		= 34
WM_UNICONIFY		= 35
WM_ALLICONIFY		= 36
WM_TOOLBAR		= 37
AC_OPEN		= 40
AC_CLOSE		= 41
AP_TERM		= 50
AP_TFAIL		= 51
AP_RESCHG		= 57
SHUT_COMPLETED		= 60
RESCH_COMPLETED		= 61
AP_DRAGDROP		= 63
SH_WDRAW		= 72
CH_EXIT		= 90

; Sous type pour le message WM_ARROWED
WA_UPPAGE		= 0
WA_DNPAGE		= 1
WA_UPLINE		= 2
WA_DNLINE		= 3
WA_LFPAGE		= 4
WA_RTPAGE		= 5
WA_LFLINE		= 6
WA_RTLINE		= 7

; mode pour le wind_set et wind_get
WF_NAME		= 2
WF_INFO		= 3
WF_WORKXYWH		= 4
WF_CURRXYWH		= 5
WF_PREVXYWH		= 6
WF_FULLXYWH		= 7
WF_HSLIDE		= 8
WF_VSLIDE		= 9
WF_TOP			= 10
WF_FIRSTXYWH		= 11
WF_NEXTXYWH		= 12
WF_NEWDESK		= 14
WF_HSLSIZE		= 15
WF_VSLSIZE		= 16
WF_SCREEN		= 17
WF_COLOR		= 18
WF_DCOLOR		= 19
WF_OWNER		= 20
WF_BEVENT		= 24
WF_BOTTOM		= 25
WF_ICONIFY		= 26
WF_UNICONIFY		= 27
WF_UNICONIFYXYWH		= 28
WF_TOOLBAR		= 30
WF_FTOOLBAR		= 31
WF_NTOOLBAR		= 32

; Paramtres pour le wind_update
END_UPDATE		= 0
BEG_UPDATE		= 1
END_MCTRL		= 2
BEG_MCTRL		= 3

; Liste des bit pour evnt_multi
EVNT_KEYBD		= 0	; attend une touche
EVNT_BUTTON		= 1	; attend un bouton de la 
souris
EVNT_MOUSE1		= 2	; attend la souris vers/dans 
une zone
EVNT_MOUSE2		= 3	; idem (2me zone)
EVNT_MESAG		= 4	; vnement GEM
EVNT_TIMER		= 5	; timers

MASK_EVNT_KEYBD		= 1<<EVNT_KEYBD
MASK_EVNT_BUTTON		= 1<<EVNT_BUTTON
MASK_EVNT_MOUSE1		= 1<<EVNT_MOUSE1
MASK_EVNT_MOUSE2		= 1<<EVNT_MOUSE2
MASK_EVNT_MESAG		= 1<<EVNT_MESAG
MASK_EVNT_TIMER		= 1<<EVNT_TIMER

; Liste des bits pour le wind_create (gadgets)
NAME			= 0
CLOSER			= 1
FULLER			= 2
MOVER			= 3
INFO			= 4
SIZER			= 5
UPARROW		= 6
DNARROW		= 7
VSLIDE			= 8
LFARROW		= 9
RTARROW		= 10
HSLIDE			= 11
SMALLER		= 14

MASK_NAME		= 1<<NAME
MASK_CLOSER		= 1<<CLOSER
MASK_FULLER		= 1<<FULLER
MASK_MOVER		= 1<<MOVER
MASK_INFO		= 1<<INFO
MASK_SIZER		= 1<<SIZER
MASK_UPARROW		= 1<<UPARROW
MASK_DNARROW		= 1<<DNARROW
MASK_VSLIDE		= 1<<VSLIDE
MASK_LFARROW		= 1<<LFARROW
MASK_RTARROW		= 1<<RTARROW
MASK_HSLIDE		= 1<<HSLIDE
MASK_SMALLER		= 1<<SMALLER

; Types d'objet graphique
G_BOX			= 20
G_TEXT			= 21
G_BOXTEXT		= 22
G_IMAGE		= 23
G_PROGDEF		= 24
G_IBOX			= 25
G_BUTTON		= 26
G_BOXCHAR		= 27
G_STRING		= 28
G_FTEXT		= 29
G_FBOXTEXT		= 30
G_ICON			= 31
G_TITLE		= 32
G_CICON		= 33

; Object Flags
SELECTABLE		= 0
DEFAULT		= 1
EXIT			= 2
EDITABLE		= 3
RBUTTON		= 4
LASTOB			= 5
TOUCHEXIT		= 6
HIDETREE		= 7
INDIRECT		= 8
FL3DIND		= 9
FL3DACT		= 10
SUBMENU		= 11

MASK_SELECTABLE		= 1<<SELECTABLE
MASK_DEFAULT		= 1<<DEFAULT
MASK_EXIT		= 1<<EXIT
MASK_EDITABLE		= 1<<EDITABLE
MASK_RBUTTON		= 1<<RBUTTON
MASK_LASTOB		= 1<<LASTOB
MASK_TOUCHEXIT		= 1<<TOUCHEXIT
MASK_HIDETREE		= 1<<HIDETREE
MASK_INDIRECT		= 1<<INDIRECT
MASK_FL3DIND		= 1<<FL3DIND
MASK_FL3DACT		= 1<<FL3DACT
MASK_SUBMENU		= 1<<SUBMENU

; Object States
SELECTED		= 0
CROSSED		= 1
CHECKED		= 2
DISABLED		= 3
OUTLINED		= 4
SHADOWED		= 5

MASK_SELECTED		= 1<<SELECTED
MASK_CROSSED		= 1<<CROSSED
MASK_CHECKED		= 1<<CHECKED
MASK_DISABLED		= 1<<DISABLED
MASK_OUTLINED		= 1<<OUTLINED
MASK_SHADOWED		= 1<<SHADOWED

; Paramtres pour la fonction graf_mouse #type<,adresse>
ARROW			= 0
TEXT_CRSR		= 1
BUSY_BEE		= 2
POINT_HAND		= 3
FLAT_HAND		= 4
THIN_CROSS		= 5
THICK_CROSS		= 6
OUTLN_CROSS		= 7
USER_DEF		= 255	; + adresse
M_OFF			= 256
M_ON			= 257
M_SAVE			= 258	; + adresse ?
M_LAST			= 259	; + adresse ?
M_RESTORE		= 260	; + adresse ?

; Mode d'affichage VDI
MD_REPLACE		= 1

PF_FASTLOAD		= 0
PF_TTRAMLOAD		= 1
PF_TTRAMMEM		= 2

		12.1.2 Les constantes Visual Assembleur


GWVA_APP_OBJ_EVNT_TABLE:
	Constante interne

GWVA_APP_OBJ_RETURN_CODE:
	Modifiez ce mot avant de sauter dans GWVA_VISUAL40_END et ce sera votre code de 
retour de fin d'application.

GWVA_ALERT_NO_RSC:
	Constante interne

GWVA_ALERT_AP_INIT_FAILED:
	Constante interne

GWVA_ALERT_V_OPEN_FAILED:
	Constante interne

GWVA_APP_OBJ_COPYRIGHT_MESSAGE:
	Ce label pointe sur un message qui donne des informations de copyright sur le Visual As-
sembleur (ainsi que sa version). Ce label doit apparatre dans votre fentre d'information (dans 
la barre d'info par exemple) pour dire que votre programme a t ralis avec le Visual As-
sembleur.

GWVA_APP_OBJ_VISUAL_VERSION:
	Ce label pointe sur un mot long qui donne la version du Visual Assembleur formate com-
me suit (pour informer l'utilisateur de la version) :
	1er octet : version majeure en ASCII (exemple : dc.b '4')
	2me octet : version mineure en ASCII (exemple : dc.b '0')
	3me & 4me octet : sous version(patchlevel) en ASCII (exemple : dc.b '33')

GWVA_APP_OBJ_REGISTER_STRING:
	Le label GWVA_APP_OBJ_REGISTER_MESSAGE doit pointer sur une chane 'RN : ' 
suivie de votre numro d'enregistrement complet si vous diffusez un produit qui doit vous rap-
porter de l'argent (SHAREWARE ou VENDU)
	Pour un logiciel FREEWARE, ce label doit pointer sur la chane :
		"RN : UNREGISTERED version for FREEWARE programs"

GWVA_WTEXT_OBJ_SHORTCUTS:
	Constante interne

GWVA_WIND_OBJ_PRG_WM_JUMP_TAB:
	Constante interne


	12.2 Les Variables

Ces variables sont disponibles pour le programmeur ds le premier appel  ses routines 
(CUSTOM_INITS). Vous pouvez donc d'entr dtecter le nombre de couleurs disponibles, la 
prsence d'un coprocesseur arithmtique ...

		12.2.1 L'application principale

Variables gnrales  l'application principale. 

GWVA_APP_OBJ_STACK:
	Variable interne

GWVA_APP_OBJ_PTR:						1 mot long
	Adresse o est stocke le pointeur sur la structure application donne au tout dbut par le 
programmeur.

GWVA_APP_OBJ_IS_ACC_PRG:				1 mot
	Variable qui indique si on est en train de se faire excuter en mode accessoire (0) ou en mo-
de programme (1).

GWVA_APP_OBJ_BASE_PAGE:				1 mot long
	Variable qui donne l'adresse de la page de base.

GWVA_APP_OBJ_CMD_LINE_PTR:				1 mot long
	Variable qui donne l'adresse du premier caractre de la ligne de commande.

GWVA_APP_OBJ_CMD_LINE_SIZE: 			1 mot
	Variable qui donne la taille de la ligne de commande.

GWVA_APP_OBJ_DTA: 						44 octets
	Buffer DTA utilisable par le programmeur. Le Visual force le DTA du GEM sur ce buffer 
 l'initialisation.

GWVA_APP_OBJ_STARTED_PATH:
	Buffer contenant le chemin disque (au format : X:\PATH\) au lancement du programme.

GWVA_APP_OBJ_SEARCH_IN_OUT:			2 mots longs
	Paramtre temporaires internes pour la recherche de COOKIE ou XBRA.

GWVA_APP_OBJ_COOKIE_COPRO:				1 mot
	variable informant directement de la prsence d'un ventuel coprocesseur.

GWVA_APP_OBJ_COOKIE_TOS_VERSION:
	Suite de 4 octets indiquant la version du TOS de la machine actuelle.
		Exemple. : $0404

GWVA_APP_OBJ_COOKIE_MINT:				1 mot
	Dtecte la prsence de Multi-tos et donne sa version, 0.w s'il n'est pas prsent.

GWVA_APP_OBJ_COOKIE_MAGIC:				1 mot long
	Dtecte la prsence de MagiC et donne un pointeur sur la structure associe. 0.l s'il n'est pas 
prsent.

GWVA_APP_OBJ_COOKIE_GENEVA:			1 mot long
	Dtecte la prsence de Geneva et donne un pointeur sur la structure associe. 0.l s'il n'est 
pas prsent.

GWVA_APP_OBJ_COOKIE_SELECTRIX_PTR:
GWVA_APP_OBJ_COOKIE_SELECTRIX_COMM_WORD:
GWVA_APP_OBJ_COOKIE_SELECTRIX_OUT_COUNT:
GWVA_APP_OBJ_COOKIE_SELECTRIX_OUT_PTR:	4 mots longs
	Pointeurs pour les utilisateurs de SelectricTM et de ses slections multiples :
	un 1er mot long	: adresse de base de SelectricTM (0 si pas SelectricTM)
	un 2me mot long	: adresse du mot de communication
	un 3me mot long	: adresse du compteur de sortie
	un 4me mot long	: adresse du pointeur de sortie

GWVA_OLD_SUPERVISOR_STACK:
	Variable interne utilise par la macro SUPER

GWVA_APP_OBJ_ACC_NUMBER:
	Numro d'identification si on est lanc en accessoire. Ne devrait pas vous servir.

GWVA_APP_OBJ_ADD_MALLOC_RSC_ICN:
	Pointeurs internes servant pour la relocation de ressource.

GWVA_APP_OBJ_TEXT_WIDTH:
GWVA_APP_OBJ_TEXT_HEIGTH: 				2 mots
	Donne la largeur et la hauteur de la police de caractre standard  l'ouverture de la station 
virtuelle.

GWVA_APP_OBJ_CELL_WIDTH:
GWVA_APP_OBJ_CELL_HEIGHT:				2 mots
	Donne la largeur et la hauteur d'une cellule contenant la police standard  l'ouverture de la 
station virtuelle. Sert pour rserver la taille de la fentre.

GWVA_APP_OBJ_SYSTEM_LARGEFONT_HEIGHT	1 mot
GWVA_APP_OBJ_SYSTEM_LARGEFONT_CELL_WIDTH	1 mot
GWVA_APP_OBJ_SYSTEM_LARGEFONT_CELL_HEIGHT	1 mot
	Donne la taille de la police systme standard.

GWVA_APP_OBJ_SYSTEM_SMALLFONT_HEIGHT:	1 mot
GWVA_APP_OBJ_SYSTEM_SMALLFONT_CELL_WIDTH	1 mot
GWVA_APP_OBJ_SYSTEM_SMALLFONT_CELL_HEIGHT	1 mot
	Donne la taille de la police systme pour les textes des formulaires dfinis en petite police. 

GWVA_APP_OBJ_DESKTOP_X:
GWVA_APP_OBJ_DESKTOP_Y:
GWVA_APP_OBJ_DESKTOP_W:
GWVA_APP_OBJ_DESKTOP_H:					4 mots
	Donne la position du bureau et sa  taille. Peut servir  calculer et  positionner une fentre.

GWVA_APP_OBJ_TMP_ADD_TREE:				1 mot long
	Sert pour utiliser la routine RETURN_TREE_OBJ_PTR. Vous pouvez vous en servir 
pour vos propre application, tout en sachant que le Visual s'en sert lui aussi.

GWVA_APP_OBJ_VDI_WORKSTATION:			57 mots
	Buffer de 57 mots donnant les informations standard sur la station virtuelle.

GWVA_APP_OBJ_VDI_WORKSTATION_EXTD:	57 mots
	Buffer de 57 mots donnant les informations tendues standard sur la station virtuelle.

GWVA_APP_OBJ_TMP_WIND_HANDLE:
	Variable interne

GWVA_APP_OBJ_ACC_STATE:
	Variable indiquant l'tat de la station virtuelle (Cela n'a d'intrt que si on est en accessoi-
re) :	0=ferme ou 1=ouverte

GWVA_APP_MFDB_SRC:						1 mot long + 8 mots
	Buffer source pour les fonctions suivantes : VRO_CPYFRM & VRT_CPYFRM & 
VR_TRNFM. Vous pouvez vous en servir.

GWVA_APP_MFDB_DEST:						1 mot long + 8 mots
	Idem ci-avant mais pour la destination.

GWVA_APP_OBJ_WIND_LIST:
	Variable interne : Liste de pointeurs sur les structures fentres qui sont rserves.

GWVA_APP_OBJ_SAVE_PALETTE:				256 mots longs
	Variable interne : sert pour sauvegarder la palette standard.


		12.2.2 Les vnements


	Variables spcifiques  l'vnement EVNT_MULTI et aux changes de messages,  sauve-
garde de tous les paramtres de retour : 

GWVA_APP_OBJ_EVENT_BITS:				1 mot
	Sauvegarde des bits retourns par l'EVNT_MULTI:
GWVA_APP_OBJ_EVNT_MULTI_MX:			1 mot
	Position de la souris
GWVA_APP_OBJ_EVNT_MULTI_MY:			1 mot
GWVA_APP_OBJ_EVNT_MULTI_MB:			1 mot
	tat des boutons souris
GWVA_APP_OBJ_EVNT_MULTI_KS:				1 mot
	tat des touches spciales
GWVA_APP_OBJ_EVNT_MULTI_KC:			1 mot
	Touche enfonce
GWVA_APP_OBJ_EVNT_MULTI_MC:			1 mot
	Nombre de clik souris
GWVA_APP_OBJ_MSG_BUF:					8 mots
	Pour EVNT_MULTI : sauvegarde des messages.
GWVA_APP_OBJ_MSG_EXT_BUF:				256 octets
	Pour APPL_READ - APPL_WRITE : sauvegarde des messages.


		12.2.3 Le menu principal


GWVA_APP_OBJ_TMP_MENU_OBJ:
	Variable interne.


		12.2.4 Les fentres


GWVA_WIND_OBJ_REDRAW_BOX:
GWVA_WIND_OBJ_REDRAW_CLIP:
GWVA_WIND_OBJ_FORM_NUM_OBJ_REDRAW:
GWVA_WIND_OBJ_FORM_DEPTH_OBJ_REDRAW:
GWVA_WIND_OBJ_FORM_WHAT_OBJ_REDRAW:
GWVA_WFORM_OBJ_TMP_POPUP_OBJ:
GWVA_WIND_OBJ_NEW_TEXT_VAR:
GWVA_WIND_OBJ_REDRAW_INTERSEC:
GWVA_WIND_OBJ_REDRAW_BLANK:
GWVA_WTEXT_OBJ_DUMMY:
GWVA_WTEXT_OBJ_INTERMEDIAIRE:
	Variables internes.
