Programmation automatique (Autogad)

Programmation d'applications complexes
Avatar de l’utilisateur
MLD
Messages : 1097
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Programmation automatique (Autogad)

Message par MLD »

Le placement des gadgets

Code : Tout sélectionner

;*****************************
;Autogad V4 MLD 01/12/2019
;¤¤¤¤¤¤ Numéros des éléments ¤¤¤¤¤¤¤¤¤¤¤¤¤
#FP = 1:#FrameGadget1 = 2:#eticdm1 = 3:#eticdm2 = 4:#eticdm3 = 5:#eticdm4 = 6:#spindm1 = 7:#spindm2 = 8:#spindm3 = 9:#spindm4 = 10:#cocheFCT = 11
#btenrdm = 12:#btrazdm = 13:#eticpol1 = 14:#eticpol2 = 15:#eticpol3 = 16:#eticpol4 = 17:#trait1 = 18:#trait2 = 19
#listpol = 20:#listtail = 21:#cochcoulF = 22:#cochcoulT = 23:#cochG = 24:#cochI = 25:#cochS = 26:#cochB = 27:#cochHQ = 28:#FramTestpol = 29
#Txttestpol = 30:#canvaspol = 31:#Framerespol = 32:#eticft1 = 33:#eticft2 = 34:#stringNpol = 35:#stringIDF = 36:#txtresft = 37:#cochDPIpol =38
#framegad1 = 40:#Txtlistgad = 41:#listgad = 42:#cochDPIgad = 45:#eticIDgad = 46:#eticnblet = 47:#eticnblig = 48:#stringIDgad = 49:#spinnblet = 50:
#spinblig = 51:#cochMajmin = 52:#cochMajseul = 53:#traith1 = 55
#eticlarg = 60:#etichaut = 61:#eticX = 62:#eticY = 63:#stringlarg = 64:#stringhaut = 65:#stringX = 66:#stringY = 67:#txtempX = 68:#txtempY = 69
#etictransp = 70:#cocheLHman = 71:#traitvertical = 72:#cocheplacegad = 73:#cocheombre = 74:#trakbartrans = 75
#Framcodegad = 80:#Editcodegad = 81:#FramcodePP = 82:#EditcodePP = 83:#cocheDPIgad = 84:#cochefont = 85:#cochegad = 86:#cochereffontgad = 87
#btPP = 90:#btaid = 91:#btstop = 92
;********** Place_gad *******
#fenpg = 101:#text = 102:#FicDim = 103

Define CURSOR.q ; this is POINT structure by fact

Structure HOOKSTRUCT
  vkCode.l
EndStructure

Declare EnumFontFamExProc(*lpelfe.ENUMLOGFONTEX,*lpntme.NEWTEXTMETRICEX,FontType,lParam)
Declare style()
Declare LH(Ft$,tp,st1,st2,st3,st4,st5)
Declare Rgl()
Declare dess (X,Y)
Declare CalculDimGad(tw.D,th)
Declare ConstrucGad()
Declare visuPP()
;¤¤¤¤¤¤¤ D A G ¤¤¤¤¤¤¤¤
#Ldef = 1920:#Hdef = 1080 
Global definecrlarg.d = GetSystemMetrics_(#SM_CXSCREEN)
Global definecrht.d = GetSystemMetrics_(#SM_CYSCREEN)

Procedure X(lg.d)
  ProcedureReturn lg.d *(definecrlarg.d/#Ldef)
EndProcedure

Procedure Y(h.d)
  ProcedureReturn h.d *(definecrht.d /#Hdef) 
EndProcedure 
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
Global Dim L.s(20)
Global NewList NomFont.s()
Global tw.D,th,copfont$,Gadw,Gadh,Ft$,tp,DPauto.b
Global Cgad$,Cidgad$,vCgad$,vCgadF$,vCgadCLF$,vCgadCLT$,HTbar
Global FontID2 = LoadFont(161,"Noto Serif Condensed",X(10),0|0|0|0|0)
Global FontID3 = LoadFont(162,"Noto Serif Condensed",X(10),256|0|0|0|0)

Macro EcriEtict(gad)
  SetGadgetFont(gad,FontID3)
EndMacro

;¤¤¤¤ aide ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
 L.s(1) = "But du logiciel:" +#CRLF$
 L.s(2) = "1° Insérer facilement des gadgets sur une fenêtre en cours de réalisation."+#CRLF$
 L.s(3) = "2° Copier le code nécessaire aux gadgets dans votre logiciel en cours de développement, par l'intermédiaire du presse-papiers" +#CRLF$
 L.s(4) = "Principe:"+#CRLF$
 L.s(5) = "Une fenêtre quadrillée transparente vient se superposer a votre fenêtre en cours de développement, et projette l'ombre du futur gadget sur celle-ci a l'endroit souhaité."+#CRLF$
 L.s(6) = "Les paramètres du futur gadget sont alors transmissiblent dans le presse-papiers pour une copie dans votre code."+#CRLF$
 L.s(7) = "Utilisation:"+#CRLF$
 L.s(8) = "1° Faite apparaitre la fenêtre en cours de développement."+#CRLF$
 L.s(9) = "2° Utilisez AUTOGAD."+#CRLF$
 L.s(10) = "3° indiquez dans AUTOGAD les dimensions de votre fenêtre de manière à ce que la fenêtre quadrillée se superpose exactement a celle-ci. (Vous pouvez enregistrer les dimensions pour une utilisation ultérieur)"+#CRLF$
 L.s(11) = "4° Choisissez un gadget dans la liste. Si le gadget contient du texte, choisissez une police .Ce choix déterminera la largeur, et hauteur de certains gadgets. (La dimension de la fonte peut être automatique en fonction de la résolution de l'écran)"+#CRLF$
 L.s(12) = "De même si le gadget le permet choisissez les couleurs de fond et de texte." + #CRLF$
 L.s(13) = "La taille du gadget étant définie, l'ombre de celui-ci apparait sur la fenêtre.(La dimension des gadgets peut être automatique en fonction de la résolution de l'écran)"+#CRLF$
 L.s(14) = "Vous pouvez déplacer l'ombre à l'aide de la souris, et fixer les paramètres X,Y par un clic droit. Ou plus finement en utilisant"+#CRLF$
 L.s(15) = "les touches de direction du clavier. Un appuis sur entrée validera la position X,Y."+#CRLF$
 L.s(16) = "5° Faites un choix du code à insérer dans le presse-papiers en cliquant sur une des cases a cocher, et cliquez ensuite sur le bouton presse-papiers."+#CRLF$
 L.s(17) = "Remarque:"+#CRLF$
 L.s(18) = "La largeur et hauteur de n'importe quel gadget peut se définir manuellement en cochant la case L-H manuel. Si vous programmez des gadgets dans une définition d'écran autre que celle d'origine, les dimensions indiquées dans les lignes du presse papier seront adaptées."+#CRLF$
 L.s(19) = "Si vous utilisez le dimensionnement automatique, il est indispensable d'inclure dans votre logiciel le code indiqué par la case a cochée DA, et de coder votre fenêtre comme ceci: OpenWindow(0,X(0),Y(0),X(220),Y(100),Texte$,#PB_Window_SystemMenu)."+#CRLF$
 L.s(20) = "Ce logiciel étant compatible avec Winconstructeur_5, si la fenêtre a été réalisé avec celui-ci, le code pour les dimensions automatique n'est pas utile."
 For X = 1 To 20
   LT$ = LT$ + L.s(X)
 Next
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
Procedure.l KeyboardHook(nCode, wParam, *p.HOOKSTRUCT)
 If WindowMouseX(101)=> 0 And  WindowMouseX(101)< (WindowWidth(101,1))And WindowMouseY(101)=> 0 And WindowMouseY(101)< (WindowHeight(101,1)+1)  
  GetCursorPos_(point.point) 
  If wParam =  #WM_KEYDOWN
   Select *p\vkCode
    Case 13
      SetGadgetText(66,Str(WindowMouseX(101))):SetGadgetText(67,Str((WindowMouseY(101)))) ;inscrit coordonnées souris
      style() 
    Case 37
      SetCursorPos_(point\X - 1,point\Y) 
    Case 38  
      SetCursorPos_(point\X ,point\Y -1)
    Case 39 
      SetCursorPos_(point\X + 1,point\Y) 
    Case 40
      SetCursorPos_(point\X ,point\Y +1)
   EndSelect 
  EndIf
 EndIf
EndProcedure

Procedure GestionCaret(Gadget) ; Gestion du caret dans stringGadget
 SendMessage_(GadgetID(Gadget), #EM_GETSEL, @Debut_Position, @Fin_position)    
 y = Debut_Position
 Texte.s = GetGadgetText(Gadget)
 x =Len(Texte)
 Texte2.s = Left(Texte,y ) + Right(Texte,x-y)
 SendMessage_(GadgetID(Gadget), #EM_SETSEL, x, x) 
EndProcedure

Procedure MLD_ActCoche(Gad,Act) ;1 = actif 0 = non actif
haut.D = GadgetHeight(Gad): larg.D = haut.D 
CreateImage(Gad,larg,haut)
hdc=StartDrawing(ImageOutput(Gad))
  ;Dessine l'image 
  DrawingMode(#PB_2DDrawing_Gradient)      
  BackColor($BEBEBE):FrontColor($FFFFFF)
  LinearGradient(0,haut *1.5,0,0)
  Box(0,0,larg,haut)
  ;Position du texte
  DrawingMode(#PB_2DDrawing_Transparent)
  DrawingFont(FontID3);font obligatoire en tête de programme
  txtcoche$ = Chr(10003)
  hautxtC = TextHeight(txtcoche$):largtxtC = TextWidth(txtcoche$)
  ctrtxtC = ((larg - largtxtC)/2 )+1; centre le text en largeur
  ctxtC = (haut - hautxtC)/2  ; centre le text en hauteur
  If Act = 1
   SetGadgetState(Gad,1):DrawText(ctrtxtC,ctxtC,txtcoche$,$32CD32)
 Else
   SetGadgetState(Gad,0)
  EndIf 
StopDrawing()
SetGadgetAttribute(Gad,#PB_Button_Image,ImageID(Gad))      
EndProcedure

Procedure MLD_Coche(Gad,x.D,y.D,larg.D,haut.D,txt$,coultxt,Action) ;le num de gadget ne doit jamais être 0| Action 1 = ok 0 = no ok
  ButtonImageGadget(Gad,x,y,haut,haut,0,#PB_Button_Toggle)
  CouleurFond = GetSysColor_(#COLOR_3DFACE)
  hautbt.D = GadgetHeight(Gad)
  plG = x + hautbt.D + 12
  txtgad = TextGadget(#PB_Any,plG,y,larg.D,haut.D,txt$,#SS_CENTERIMAGE)
  SetGadgetColor(txtgad,#PB_Gadget_BackColor,CouleurFond) :SetGadgetColor(txtgad,#PB_Gadget_FrontColor,coultxt)
  SetGadgetFont(txtgad,FontID2);font obligatoire en tête de programme
  MLD_ActCoche(Gad,Action)
EndProcedure

Procedure cadrestring(Gad)
  SetWindowLongPtr_(GadgetID(Gad),#GWL_EXSTYLE,GetWindowLongPtr_(GadgetID(Gad),#GWL_EXSTYLE)|#WS_EX_STATICEDGE &~ #WS_EX_CLIENTEDGE)
  SetWindowPos_(GadgetID(Gad),0,0,0,0,0,#SWP_NOZORDER|#SWP_NOMOVE|#SWP_NOSIZE|#SWP_FRAMECHANGED|#SWP_DRAWFRAME)
EndProcedure 

Procedure EnumFontFamExProc(*lpelfe.ENUMLOGFONTEX,*lpntme.NEWTEXTMETRICEX,FontType,lParam)
   NomFont$ = PeekS(@*lpelfe\elfFullName)
   Select FontType
      Case #TRUETYPE_FONTTYPE 
        Type$ = "[TT]  "
   EndSelect
   dp =0 
   ForEach NomFont()
     If NomFont() = Type$ + NomFont$:dp=1:EndIf
    Next
    If dp =0
     AddElement(NomFont())
     NomFont() = Type$ + NomFont$ :Type$ = ""
    EndIf
    ProcedureReturn #True
  EndProcedure
  
  Procedure Gest_cmd()
  DisableGadget(22,0):DisableGadget(23,0) 
  DisableGadget(48,1):DisableGadget(51,1)
  DisableGadget(47,0):DisableGadget(50,0)
  MLD_ActCoche(71,0)
  SendMessage_(GadgetID(64),#EM_SETREADONLY,1,0):SendMessage_(GadgetID(65),#EM_SETREADONLY,1,0)
  SetGadgetColor(64,#PB_Gadget_BackColor,$00FF7F):SetGadgetColor(65,#PB_Gadget_BackColor,$00FF7F)
  Select Trim(GetGadgetText(42))
    Case "Button","CheckBox","Option","ComboBox","Shortcut"
     DisableGadget(22,1):DisableGadget(23,1) 
    Case "Calendar"
      DisableGadget(23,1):DisableGadget(47,1):DisableGadget(50,1)
    Case  "Editor","ListView","ListIcon","Tree" 
      DisableGadget(48,0):DisableGadget(51,0)
    Case "ExplorerList","ExplorerTree","ProgressBar"
      DisableGadget(47,1):DisableGadget(50,1)
      MLD_ActCoche(71,1)
      SendMessage_(GadgetID(64),#EM_SETREADONLY,0,0):SendMessage_(GadgetID(65),#EM_SETREADONLY,0,0)
      SetGadgetColor(64,#PB_Gadget_BackColor,$00FFFF):SetGadgetColor(65,#PB_Gadget_BackColor,$00FFFF) 
    Case "Frame"
      DisableGadget(22,1):DisableGadget(23,1)
      DisableGadget(47,1):DisableGadget(50,1)
      MLD_ActCoche(71,1)
      SendMessage_(GadgetID(64),#EM_SETREADONLY,0,0):SendMessage_(GadgetID(65),#EM_SETREADONLY,0,0)
      SetGadgetColor(64,#PB_Gadget_BackColor,$00FFFF):SetGadgetColor(65,#PB_Gadget_BackColor,$00FFFF) 
    Case "Canvas","ButtonImage","ExplorerCombo","IPAddress","Image","OpenGL","Panel","ScrollArea","ScrollBar","TrackBar","Web" 
      DisableGadget(22,1):DisableGadget(23,1)
      DisableGadget(47,1):DisableGadget(50,1)
      MLD_ActCoche(71,1)
      SendMessage_(GadgetID(64),#EM_SETREADONLY,0,0):SendMessage_(GadgetID(65),#EM_SETREADONLY,0,0)
      SetGadgetColor(64,#PB_Gadget_BackColor,$00FFFF):SetGadgetColor(65,#PB_Gadget_BackColor,$00FFFF)
    Case "Container"
      DisableGadget(23,1)
      DisableGadget(47,1):DisableGadget(50,1)
      MLD_ActCoche(71,1)
      SendMessage_(GadgetID(64),#EM_SETREADONLY,0,0):SendMessage_(GadgetID(65),#EM_SETREADONLY,0,0)
      SetGadgetColor(64,#PB_Gadget_BackColor,$00FFFF):SetGadgetColor(65,#PB_Gadget_BackColor,$00FFFF)
  EndSelect
  style()
EndProcedure    

Procedure VisuEmumFont()
 lf.LOGFONT
 lf\lfCharset = #DEFAULT_CHARSET
 hdc = GetDC_(WindowID(1))
 EnumFontFamiliesEx_(hdc,lf,@EnumFontFamExProc(),0,0)
 ReleaseDC_(WindowID(1),hdc)
 SortList( NomFont.s(),#PB_Sort_Ascending)   
 ForEach NomFont()
  AddGadgetItem(20,-1,NomFont()) 
 Next
EndProcedure

Procedure colorgadfond()
  If GetGadgetState(22) = 1
    Couleur = ColorRequester() 
    If couleur > -1:SetGadgetColor(30,#PB_Gadget_BackColor,couleur):EndIf 
  Else
    SetGadgetColor(30,#PB_Gadget_BackColor,#PB_Default)
  EndIf
EndProcedure

Procedure colorgadtxt()
  If GetGadgetState(23) = 1
    Couleur = ColorRequester() 
    If couleur > -1:SetGadgetColor(30,#PB_Gadget_FrontColor,couleur):EndIf 
  Else
    SetGadgetColor(30,#PB_Gadget_FrontColor,#PB_Default)
  EndIf
EndProcedure 

Procedure testPolice(Ft$,st1,St2,st3,st4,st5)
  SetGadgetText(29,"Test police: taille 12:"+ Ft$)
  FontID5 = LoadFont(170,Ft$,13,st1|St2|st3|st4|st5) 
  SetGadgetFont(30,FontID5)
EndProcedure

Procedure style()
 If GetGadgetState(24) = 1
  MLD_ActCoche(24,1):st1 = #PB_Font_Bold
 Else  
  MLD_ActCoche(24,0):st1 = 0
 EndIf
 If GetGadgetState(25) = 1
  MLD_ActCoche(25,1):st2 = #PB_Font_Italic 
 Else  
  MLD_ActCoche(25,0):st2 = 0
 EndIf
 If GetGadgetState(26) = 1
  MLD_ActCoche(26,1):st3 = #PB_Font_Underline 
 Else  
  MLD_ActCoche(26,0):st3 = 0
 EndIf
 If GetGadgetState(27) = 1
  MLD_ActCoche(27,1):st4 = #PB_Font_StrikeOut 
 Else  
  MLD_ActCoche(27,0):st4 = 0
 EndIf
 If GetGadgetState(28) = 1
  MLD_ActCoche(28,1):st5 = #PB_Font_HighQuality 
 Else  
  MLD_ActCoche(28,0):st5 = 0
 EndIf 
 testPolice(Ft$,st1,St2,st3,st4,st5)
 LH(Ft$,tp,st1,st2,st3,st4,st5)
EndProcedure

Procedure LH(Ft$,tp,st1,st2,st3,st4,st5)
  tw.D = 0:th = 0
  FontID10 = LoadFont(202,Ft$,tp,st1|st2|st3|st4|st5) ;******************
  If GetGadgetState(38) = 1
    ;FontID10 = LoadFont(202,Ft$,X(tp),st1|st2|st3|st4|st5) 
    Lf$ = "X(" + Str(tp) + ")"
  Else
    ;FontID10 = LoadFont(202,Ft$,tp,st1|st2|st3|st4|st5) 
    Lf$ = Str(tp)
  EndIf 
 For t= 52 To 53
    If GetGadgetState(t) = 1:Break:EndIf 
  Next
  Select t
    Case 52  
      a$ ="ABwbikMplR"
    Case 53  
      a$ ="ABWJLIPYFS"
  EndSelect  
  StartDrawing(CanvasOutput(31))
   DrawingFont(FontID10)
   DrawText(31, 80,a$,$0, 0)
   tw.D = (TextWidth(a$)/10)
   th = TextHeight(a$)
  StopDrawing()
  If GetGadgetText(35) = "" And GetGadgetText(36) = ""
   copfont$ = "FontID = LoadFont(#Police," + Chr(34) + Ft$+ Chr(34) + "," + Lf$ + "," + Str(st1) + "|" + Str(st2)+ "|" + Str(st3)+ "|" + Str(st4)+ "|" + Str(st5)+ ")"
  EndIf
  If GetGadgetText(35) <> "" And GetGadgetText(36) = ""
   copfont$ = "FontID = LoadFont("+ GetGadgetText(35) + "," + Chr(34) + Ft$+ Chr(34) + "," + Lf$ + "," + Str(st1) + "|" + Str(st2)+ "|" + Str(st3)+ "|" + Str(st4)+ "|" + Str(st5)+ ")" 
  EndIf
  If GetGadgetText(35) = "" And GetGadgetText(36) <> ""
   copfont$ = GetGadgetText(36) + " = LoadFont(#Police," + Chr(34) + Ft$+ Chr(34) + "," + Lf$ + "," + Str(st1) + "|" + Str(st2)+ "|" + Str(st3)+ "|" + Str(st4)+ "|" + Str(st5)+ ")"
  EndIf
  If GetGadgetText(35) <> "" And GetGadgetText(36) <> ""
   copfont$ = GetGadgetText(36) + " = LoadFont("+ GetGadgetText(35) + "," + Chr(34) + Ft$+ Chr(34) + "," + Lf$ + "," + Str(st1) + "|" + Str(st2)+ "|" + Str(st3)+ "|" + Str(st4)+ "|" + Str(st5)+ ")" 
  EndIf
  SetGadgetText(37,copfont$)
  CalculDimGad(tw.D,th)
EndProcedure

Procedure Gadig();indique gadget et ID gad
  Cgad$ = GetGadgetText(42):Cidgad$ = GetGadgetText(49) 
  If Cidgad$ = "";ID gad
    Cidgad$ = "#Gadget"
  EndIf
  ConstrucGad()
EndProcedure

Procedure CalculDimGad(tw.D,th)
If GetGadgetState(71) <> 1 ;ne tient compte que des gadget dont la L-H est donné en automatique 
  nbl = GetGadgetState(50);nombre de lettres
  nblg = GetGadgetState(51);nombre de lignes
  Select Cgad$
   Case "Button"
     Gadw = Round((tw.D*nbl)+2,#PB_Round_Up);*******************
     Gadh = th + 7;*******************************************
   Case "Calendar"
    Gadw = 320:Gadh = 260
   Case "Editor","Spin"  
     Gadw = Round(tw.D*nbl,#PB_Round_Up)+ 40 
     Gadh = (th * nblg)+ (th * 0.38)
   Case "ComboBox","ListIcon","ListView"
     If GetGadgetState(53) = 1;majuscule 
      Gadw = Round((tw.D*nbl),#PB_Round_Up) + 30 
     Else  
       Gadw = Round(tw.D*nbl,#PB_Round_Up)+ 25 
     EndIf 
     If Cgad$ = "ComboBox": Gadh = (th * nblg)+7:EndIf
     If Cgad$ = "ListIcon": Gadh = ((th + 8) * nblg)-6:EndIf
     If Cgad$ = "ListView": Gadh = ((th + 1.2) * nblg)-2:EndIf
   Case "Date" 
     Gadw = Round((tw.D*nbl),#PB_Round_Up) + 40
     Gadh = th + 6 
   Case "Tree"
     If GetGadgetState(53) = 1;majuscule 
      Gadw = Round((tw.D*nbl),#PB_Round_Up) + 55 
     Else  
       Gadw = Round(tw.D*nbl,#PB_Round_Up)+ 40
     EndIf 
     Gadh = ((th+4) * nblg)
  Case "CheckBox","Option"
     Gadw = Round((tw.D*nbl)+ 13,#PB_Round_Up)
     Gadh = th + 6 
  Case "HyperLink","String" 
    Gadw = Round((tw.D*nbl)+ 6,#PB_Round_Up)
    Gadh = th + 6 
  Case "Text","Frame","Shortcut"  
      Gadw = Round((tw.D*nbl),#PB_Round_Up)
      Gadh = th + 2 
  EndSelect
  If  DPauto.b = 1;drapeau dims auto 
    Gadw = X(Gadw): Gadh =  Y(Gadh)
  EndIf  
   SetGadgetText(64,Str(Gadw)):SetGadgetText(65,Str(Gadh))
Else
  Gadw = Val(GetGadgetText(64)):Gadh = Val(GetGadgetText(65))
EndIf 
  ConstrucGad()
EndProcedure  

Procedure ConstrucGad()
  GX$ = GetGadgetText(66):GY$ = GetGadgetText(67):Gw$ = Str(Gadw):Gh$ = Str(Gadh)
  If GetGadgetState(45) = 1
    KX.d = (definecrlarg /#Ldef):KY.d = (definecrht /#Hdef)
    GX$ = Str(ValD(GX$)/KX.d):GY$ = Str(ValD(GY$)/KY.d)
    Gw$ = Str(Gadw/KX):Gh$ = Str(Gadh/KY)
    ;Debug Gw$;******************
   GX$ = "X(" + GX$ + ")":GY$ = "Y(" + GY$ + ")" :Gw$ = "X(" + Gw$ + ")" :Gh$ = "Y(" + Gh$ + ")"
  EndIf
  If GetGadgetText(36) = "";ID font
    Fid$ = "FontID"
  Else
    Fid$ = GetGadgetText(36)
  EndIf 
  ClearGadgetItems(81)
  Select Cgad$
    Case "Editor","ListView","Canvas","Calendar","ComboBox","Container","Date","IPAddress","OpenGL","Panel","Tree"   
       vCgad$ = Cgad$ + "Gadget(" + Cidgad$ + "," + GX$ + "," + GY$ + "," + Gw$ + "," + Gh$ + ")"
    Case "Button","String","Text","CheckBox","Option","ExplorerCombo","ExplorerList","ExplorerTree","Frame"  
      vCgad$ = Cgad$ + "Gadget("+ Cidgad$ +"," + GX$ + "," + GY$ + "," + Gw$ + "," + Gh$ + ",Texte$)"
    Case "HyperLink"
      vCgad$ = Cgad$ + "Gadget("+ Cidgad$ +"," + GX$ + "," + GY$ + "," + Gw$ + "," + Gh$ + "," + "Texte$" + ",Couleur)"
    Case "ButtonImage","Image"
      vCgad$ = Cgad$ + "Gadget("+ Cidgad$ +"," + GX$ + "," + GY$ + "," + Gw$ + "," + Gh$ + ",ImageID())"
    Case "ProgressBar","Spin","TrackBar" 
      vCgad$ = Cgad$ + "Gadget("+ Cidgad$ +"," + GX$ + "," + GY$ + "," + Gw$ + "," + Gh$ +"," + "Minimum" + "," + "Maximum" + ")" 
    Case "ScrollArea"
      vCgad$ = Cgad$ + "Gadget("+ Cidgad$ +"," + GX$ + "," + GY$ + "," + Gw$ + "," + Gh$ + "," + "LargeurZoneInterne" + "," + "HauteurZoneInterne"+ "," + "ValeurDeplacement" + ")"  
    Case "ScrollBar"
      vCgad$ = Cgad$ + "Gadget("+ Cidgad$ +"," + GX$ + "," + GY$ + "," + Gw$ + "," + Gh$ + "," + "Minimum" + "," + "Maximum"+ "," + "LongueurPage"  + ")" 
    Case "Shortcut"
      vCgad$ = Cgad$ + "Gadget("+ Cidgad$ +"," + GX$ + "," + GY$ + "," + Gw$ + "," + Gh$ + ",Raccourci)"
    Case "ListIcon"
      vCgad$ = Cgad$ + "Gadget("+ Cidgad$ +"," + GX$ + "," + GY$ + "," + Gw$ + "," + Gh$ + "," + "Texte$" + "," + Gw$ + "- X(22)" + ")"
    Case "Web"
      vCgad$ = Cgad$ + "Gadget("+ Cidgad$ +"," + GX$ + "," + GY$ + "," + Gw$ + "," + Gh$ + ",URL$)"
  EndSelect    
  AddGadgetItem (81,-1,vCgad$)
  Select Cgad$
    Case "ButtonImage", "Calendar"
    Default 
     vCgadF$ = "SetGadgetFont(" + Cidgad$ + "," + Fid$ +")"
     AddGadgetItem (81,-1,vCgadF$) 
  EndSelect   
  If GetGadgetState(22) = 1 And IsWindowEnabled_(GadgetID(22))=1 ;coul fond
    Coulf$ =  Hex(GetGadgetColor(30,#PB_Gadget_BackColor))
    vCgadCLF$ = "SetGadgetColor(" + Cidgad$ + ",#PB_Gadget_BackColor,$" + Coulf$ + ")"  
    AddGadgetItem (81,-1,vCgadCLF$)
  EndIf
  If GetGadgetState(23) = 1 And IsWindowEnabled_(GadgetID(22))=1;coul text
    CoulT$ =  Hex(GetGadgetColor(30,#PB_Gadget_FrontColor))
    vCgadCLT$ = "SetGadgetColor(" + Cidgad$ + ",#PB_Gadget_FrontColor,$" + CoulT$ + ")"  
    AddGadgetItem (81,-1,vCgadCLT$)
  EndIf
  visuPP()  
EndProcedure 

Procedure gest_cochePP(IDcoche)
 MLD_ActCoche(IDcoche,1)
 For z = 84 To 87              
   If z <> IDcoche:MLD_ActCoche(z,0):EndIf
 Next
EndProcedure  

Procedure visuPP()
  ClearGadgetItems(83)
  SetGadgetColor(83,#PB_Gadget_FrontColor,$0)
  If GetGadgetState(84) = 1;DA
   sl$ = Chr(13) + Chr(10) 
   D1$ =";¤¤¤¤¤¤¤ D A G ¤¤¤¤¤¤¤¤"
   D2$ ="#Ldef = 1920:#Hdef = 1080" 
   D3$ ="Global definecrlarg.d = GetSystemMetrics_(#SM_CXSCREEN)"
   D4$ ="Global definecrht.d = GetSystemMetrics_(#SM_CYSCREEN)"
   D5$ = "Procedure X(lg.d)"
   D6$ = " ProcedureReturn lg.d *(definecrlarg.d/#Ldef)"
   D7$ = "EndProcedure"
   D8$ = "Procedure Y(h.d)"
   D9$ = " ProcedureReturn h.d *(definecrht.d /#Hdef)" 
   D10$ = "EndProcedure" 
   D11$ = ";¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤" 
   Dt$ = D1$ + sl$ + D2$ +sl$ + D3$ + sl$ + D4$  + sl$ + D5$ + sl$ +  D6$ + sl$ + D7$ + sl$ + D8$ + sl$ + D9$ + sl$ + D10$ + sl$ + D11$   
   AddGadgetItem (83,-1,Dt$)
  EndIf  
  If GetGadgetState(85) = 1 
    AddGadgetItem (83,-1,copfont$)
  EndIf
  If GetGadgetState(86) = 1 Or GetGadgetState(87) = 1 
    AddGadgetItem (83,-1,vCgad$)
    If GetGadgetState(87) = 1 :AddGadgetItem (83,-1,vCgadF$):EndIf
    If GetGadgetState(22) = 1 And IsWindowEnabled_(GadgetID(22))=1:AddGadgetItem (83,-1,vCgadCLF$):EndIf
    If GetGadgetState(23) = 1 And IsWindowEnabled_(GadgetID(23))=1:AddGadgetItem (83,-1,vCgadCLT$):EndIf 
  EndIf
EndProcedure  

Procedure  prfich();présence fichier dims
  If GetGadgetColor(7,#PB_Gadget_BackColor) = 65407
   For c = 7 To 10
   SetGadgetColor(c,#PB_Gadget_BackColor,$00A5FF)
   Next  
  EndIf
EndProcedure  
;¤¤¤¤¤¤¤¤ Place_gad ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
Procedure PG()
  Hmax = WindowHeight(1, #PB_Window_FrameCoordinate):Hzi = WindowHeight(1, #PB_Window_InnerCoordinate)
  HTbar = (Hmax - Hzi)-2
  If  ReadFile(103,"Dims_AutoGad")<> 0
    While Eof(103) = 0           
      a$ = ReadString(103) ;Extraction des dims
    Wend
    CloseFile(103)
    If Val(StringField(a$,6,",")) = 1
     MLD_ActCoche(45,1) 
     DPauto.b = 1;drapeau dims auto 
     SetGadgetState (7,X(Val(StringField(a$,1,",")))):SetGadgetState (8,Y(Val(StringField(a$,2,",")))):SetGadgetState (9,X(Val(StringField(a$,3,",")))):SetGadgetState (10,Y(Val(StringField(a$,4,","))))
    Else
     DPauto.b = 0
     SetGadgetState (7,Val(StringField(a$,1,","))):SetGadgetState (8,Val(StringField(a$,2,","))):SetGadgetState (9,Val(StringField(a$,3,","))):SetGadgetState (10,Val(StringField(a$,4,",")))
    EndIf  
    For c = 7 To 10
      SetGadgetColor(c,#PB_Gadget_BackColor,$00FF7F)
    Next
    If Val(StringField(a$,5,",")) = 1:posF = 0:MLD_ActCoche(11,1): Else :posF = HTbar:EndIf ;posF = fenêtre avec ou sans barre de titre
  Else
    SetGadgetState (7,650):SetGadgetState (8,200):SetGadgetState (9,700):SetGadgetState (10,400)
    For c = 7 To 10
      SetGadgetColor(c,#PB_Gadget_BackColor,$FFFF)
    Next  
  EndIf 
  Xp= Val(GetGadgetText(7))+2:Yp= Val(GetGadgetText(8)) + posF :Lr= Val(GetGadgetText(9)):Ht= Val(GetGadgetText(10))
  If Val(StringField(a$,7,",")) = 1:scrn = #PB_Window_ScreenCentered :Else :scrn = 0:EndIf;pour screencentered
  Define hWPG = OpenWindow(101,Xp,Yp,Lr,Ht, "",#PB_Window_BorderLess|scrn)
  SetWindowColor(101,$FFF1F1) 
  StickyWindow(101,1)
  HideWindow(101,0)
  SetWindowLong_(WindowID(101), #GWL_EXSTYLE, GetWindowLong_(WindowID(101), #GWL_EXSTYLE) | #WS_EX_LAYERED);transparence:
  SetLayeredWindowAttributes_(WindowID(101), 0,140, #LWA_ALPHA)
  LoadFont(1, "Noto Sans Condensed", 7,#PB_Font_HighQuality)
  If DPauto.b = 1
    TextGadget(102,10,10,X(Val(GetGadgetText(64))),Y(Val(GetGadgetText(65))),"");*************
  Else
    TextGadget(102,10,10,Val(GetGadgetText(64)),Val(GetGadgetText(65)),"");*************
  EndIf  
  SetGadgetColor(102,#PB_Gadget_BackColor,$D3D3D3)
  Rgl()
EndProcedure 

Procedure dess(X,Y)
  If GetGadgetState(74) = 1
   If X > 0 And Y > 0
    HideGadget(102,0)
;     If DPauto.b = 1
;       ResizeGadget(102, X, Y,X(Val(GetGadgetText(64))),Y(Val(GetGadgetText(65))))
;       Debug X(Val(GetGadgetText(64))) 
;     Else  
      ResizeGadget(102, X, Y,Val(GetGadgetText(64)),Val(GetGadgetText(65)))
;    EndIf  
   Rgl()
  Else
   HideGadget(102,1)
   Rgl()
  EndIf
 EndIf
EndProcedure

 Procedure Rgl()
   Protected  i.i,x.i,w.i
    UpdateWindow_(WindowID(101))
    StartDrawing(WindowOutput(101))
    DrawingFont(FontID(1))
    For x=0 To WindowWidth(101) Step 20 
      Line(x,0,1,10,$0000FF);vingtaine haut
      DrawText(x-2,12,Str(x),$0,$FFF1F1);chiffres du haut 
      Line(x,WindowHeight(101)-1,1,-10,$0000FF);vingtaine bas
      DrawText(x-2,WindowHeight(101)-20,Str(x),$0,$FFF1F1) ;chiffres du bas
    Next  
    For xx= 10 To WindowWidth(101) Step 20 
      If xx < = (WindowWidth(101)-40)
        Line (xx+20,20,1,WindowHeight(101)-10,$FFBCBC);quadriage
      EndIf
      Line (xx,0,1,5,$CD0000);dizaine haut
      Line(xx,WindowHeight(101)-1,1,-5,$CD0000);dizaine bas
    Next
    For y = 30 To (WindowHeight(101) -30)Step 20
      Line(1,y,10,1,$0000FF);vingtaine gauche
      DrawText(15,y-5,Str(y),$0,$FFF1F1);chiffres gauche 
      Line(WindowWidth(101)-1,y,-10,1,$0000FF);vingtaine droit
      DrawText(WindowWidth(101)-20,y-5,Str(y),$0,$FFF1F1);chifres droit 
    Next  
    For yy = 40 To (WindowHeight(101) -30)Step 20
      Line (6,yy,WindowWidth(101)-10,1,$FFBCBC);quadriage h
      Line (1,yy,5,1,$CD0000);dizaine gauche
      Line(WindowWidth(101)-1,yy,-5,1,$CD0000);dizaine droit
    Next
    StopDrawing()
    UpdateWindow_(WindowID(101))
 EndProcedure
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤   
Procedure AjustPG(indpg.B)
 If indpg.B = 1 
   If GetGadgetState(11) = 1  
    ResizeWindow(101,Val(GetGadgetText(7))+2,Val(GetGadgetText(8)),#PB_Ignore,#PB_Ignore)
   Else
    ResizeWindow(101,Val(GetGadgetText(7))+2,Val(GetGadgetText(8))+ HTbar,#PB_Ignore,#PB_Ignore)
   EndIf  
 EndIf
 If indpg.B = 2
   ResizeWindow(101,#PB_Ignore,#PB_Ignore,Val(GetGadgetText(9)),Val(GetGadgetText(10))) 
   InvalidateRect_(WindowID(101), 0, 1):Rgl()
 EndIf  
EndProcedure

Procedure PP()
  ClearClipboard()
  SetGadgetColor(83,#PB_Gadget_FrontColor,$FFFFFF)
  SetClipboardText(GetGadgetText(83))
EndProcedure

Procedure EnrDim()
 If GetGadgetState(11) = 1:pf$ = "1": Else :pf$ = "0":EndIf
 CreateFile(103,"Dims_AutoGad")
  Dim$ = GetGadgetText(7) + "," + GetGadgetText(8) + "," + GetGadgetText(9) + "," + GetGadgetText(10) + "," + pf$ + ","
  FileSeek(103, Lof(103))           
  WriteString(103,Dim$)
 CloseFile(103)
 For c = 7 To 10
  SetGadgetColor(c,#PB_Gadget_BackColor,$00FF7F)
 Next  
EndProcedure  

Define hWndFP = OpenWindow(1,X(0),Y(10),X(503),Y(985),"AUTOGAD",#PB_Window_MinimizeGadget)
StickyWindow(1,1)
CanvasGadget(31,0,0,1000,500):HideGadget(31,1)
FrameGadget(2,X(10),Y(2),X(485),Y(62),"Dimensions de la fenêtre en cours de conception")
SetGadgetFont(2,FontID3)
TextGadget(3,X(27),Y(27),X(9),Y(20),"X")
TextGadget(4,X(110),Y(27),X(9),Y(20),"Y")
TextGadget(5,X(190),Y(27),X(10),Y(21),"L")
TextGadget(6,X(270),Y(27),X(10),Y(21),"H")
SpinGadget (7,X(45),Y(23),X(55),Y(26),0, 3000,#PB_Spin_Numeric)
SpinGadget (8,X(128),Y(23),X(55),Y(26),0, 3000,#PB_Spin_Numeric)
SpinGadget (9,X(208),Y(23),X(55),Y(26),20, 3000,#PB_Spin_Numeric)
SpinGadget (10,X(288),Y(23),X(55),Y(26),20, 3000,#PB_Spin_Numeric)
For x = 3 To 10
  EcriEtict(x)
  If X > 6:cadrestring(X):EndIf
Next
MLD_Coche(11,X(360),Y(13),X(95),Y(20),"Fenêtre sans titre",$CD0000,0)
ButtonGadget(12,X(360),Y(37),X(50),Y(22),"Enr"):GadgetToolTip(12,"Enregistre les dimensions pour une utilisation ultérieur")
ButtonGadget(13,X(435),Y(37),X(50),Y(22),"Raz"):GadgetToolTip(13,"Remet a zéro les dimensions")
TextGadget(14,X(20),Y(62),X(216),Y(21),"")
TextGadget(15,X(320),Y(62),X(59),Y(21),"Taille")
TextGadget(16,X(410),Y(62),X(65),Y(21),"Couleurs")
TextGadget(17,X(20),Y(190),X(43),Y(21),"Style:")
For x = 12 To 17
  EcriEtict(x)
Next
TextGadget(18,X(400),Y(85),X(75),Y(1),"");trait1
SetGadgetColor(18,#PB_Gadget_BackColor,$0)
TextGadget(19,X(400),Y(170),X(75),Y(1),"")
SetGadgetColor(19,#PB_Gadget_BackColor,$0)
ListViewGadget(20,X(10),Y(85),X(265),Y(96))
SetGadgetFont(20,FontID2)
SetGadgetColor(20,#PB_Gadget_BackColor,$B2DAD1)
SetGadgetColor(20,#PB_Gadget_FrontColor,$000080)
cadrestring(20)
VisuEmumFont()
SetGadgetText(20,"[TT]  Tahoma");sélectionne
SetGadgetText(14,"Choix polices" + Space(6)+ "Nb " + Str(CountGadgetItems(20)))
ListViewGadget(21,X(318),Y(85),X(50),Y(96))
SetGadgetFont(21,FontID2)
SetGadgetColor(21,#PB_Gadget_BackColor,$B2DAD1)
SetGadgetColor(21,#PB_Gadget_FrontColor,$000080)
cadrestring(21)
For z = 6 To 70
  AddGadgetItem(21,-1,Str(z))
Next
SetGadgetText(21,"12");sélectionne
MLD_Coche(22,X(405),Y(95),X(85),Y(20),"Fond",$CD0000,0)
MLD_Coche(23,X(405),Y(140),X(85),Y(20),"Texte",$CD0000,0)
MLD_Coche(24,X(63),Y(188),X(27),Y(20),"G",$CD0000,0)
MLD_Coche(25,X(132),Y(188),X(20),Y(20),"I",$CD0000,0)
MLD_Coche(26,X(190),Y(188),X(25),Y(20),"S",$CD0000,0)
MLD_Coche(27,X(255),Y(188),X(30),Y(20),"B",$CD0000,0)
MLD_Coche(28,X(325),Y(188),X(30),Y(20),"HQ",$CD0000,0)
MLD_Coche(38,X(395),Y(188),X(60),Y(20),"DA fonte",$CD0000,1);coche DA fonte
GadgetToolTip(38,"Dimensions Automatique de la fonte (DAf)")
FrameGadget(29,X(10),Y(210),X(480),Y(80),"")
EcriEtict(29)
TextGadget(30,X(15),Y(235),X(470),Y(47),"AZuytmwxc1230TRF45 ЯЍ ΩΣ WX")
FrameGadget(32,X(10),Y(300),X(485),Y(70),"Code fonte")
EcriEtict(32)
TextGadget(33,X(100),Y(315),X(100),Y(17),"Num de police")
TextGadget(34,X(270),Y(315),X(80),Y(17),"ID fonte")
StringGadget(35,X(205),Y(313),X(55),Y(20),"",#PB_String_Numeric|#ES_CENTER)
SendMessage_(GadgetID(35),#EM_LIMITTEXT,5,0)
cadrestring(35):SetGadgetColor(35,#PB_Gadget_BackColor,$00FFFF)
StringGadget(36,X(330),Y(313),X(100),Y(20),"",#ES_CENTER);id fonte
SendMessage_(GadgetID(36),#EM_LIMITTEXT,13,0)
cadrestring(36):SetGadgetColor(36,#PB_Gadget_BackColor,$00FFFF)
For x  = 32 To 36
  EcriEtict(x)
Next  
TextGadget(37,X(13),Y(340),X(480),Y(22),"")
cadrestring(37):SetGadgetColor(37,#PB_Gadget_BackColor,$00FF7F)
SetGadgetFont(37,FontID2)
FrameGadget(40,X(10),Y(370),X(485),Y(270),"Paramètres Gadget")
EcriEtict(40)
TextGadget(41,X(15),Y(390),X(100),Y(17),"Choix gadgets")
EcriEtict(41)
ListViewGadget(42,X(15),Y(410),X(120),Y(95));list gadgets
SetGadgetFont(42,FontID2)
cadrestring(42):SetGadgetColor(42,#PB_Gadget_BackColor,$B2DAD1):SetGadgetColor(42,#PB_Gadget_BackColor,$B2DAD1)
AddGadgetItem (42,-1,"Button"):AddGadgetItem (42,-1,"ButtonImage"):AddGadgetItem (42,-1,"Calendar")        
AddGadgetItem (42,-1,"Canvas"):AddGadgetItem (42,-1,"CheckBox"):AddGadgetItem (42,-1,"ComboBox"):AddGadgetItem (42,-1,"Container")
AddGadgetItem (42,-1,"Date"):AddGadgetItem (42,-1,"Editor"):AddGadgetItem (42,-1,"ExplorerCombo"): AddGadgetItem (42,-1,"ExplorerList")
AddGadgetItem (42,-1,"ExplorerTree"):AddGadgetItem (42,-1,"Frame"):AddGadgetItem (42,-1,"HyperLink"):AddGadgetItem (42,-1,"Image")
AddGadgetItem (42,-1,"IPAddress"):AddGadgetItem (42,-1,"ListIcon"):AddGadgetItem (42,-1,"ListView"):AddGadgetItem (42,-1,"OpenGL")
AddGadgetItem (42,-1,"Option"):AddGadgetItem (42,-1,"Panel"):AddGadgetItem (42,-1,"ProgressBar"):AddGadgetItem (42,-1,"ScrollArea")
AddGadgetItem (42,-1,"ScrollBar"):AddGadgetItem (42,-1,"Shortcut"):AddGadgetItem (42,-1,"Spin"):AddGadgetItem (42,-1,"String")
AddGadgetItem (42,-1,"Text"):AddGadgetItem (42,-1,"TrackBar"):AddGadgetItem (42,-1,"Tree"):AddGadgetItem (42,-1,"Web")
SetGadgetText(42,"Text");sélectionne
MLD_Coche(45,X(215),Y(385),X(230),Y(20),"Dimensions Automatique des gadgets",$CD0000,1);coche DAg gadgets
GadgetToolTip(45,"Dimensions Automatique des gadgets,en fonction de la définition ecran (DAg)")
TextGadget(46,X(140),Y(410),X(80),Y(17),"ID Gadget")
TextGadget(47,X(140),Y(438),X(80),Y(17),"Nb lettre")
TextGadget(48,X(140),Y(473),X(80),Y(17),"Nb ligne")
DisableGadget(48,1)
StringGadget(49,X(215),Y(410),X(130),Y(20),"",#ES_CENTER);ID gad
SendMessage_(GadgetID(49),#EM_LIMITTEXT,16,0)
cadrestring(49):SetGadgetColor(49,#PB_Gadget_BackColor,$00FFFF)
SpinGadget(50,X(215),Y(435),X(130),Y(28),1,5000,#PB_Spin_Numeric|#PB_Spin_ReadOnly);nb lettre 
SetGadgetColor(50,#PB_Gadget_BackColor,$00FFFF):SetGadgetState (50,1)
SpinGadget(51,X(215),Y(470),X(130),Y(28),1,1000,#PB_Spin_Numeric|#PB_Spin_ReadOnly);nb lig
SetGadgetColor(51,#PB_Gadget_BackColor,$00FFFF):SetGadgetState (51,1)
DisableGadget(51,1)
For x  = 46 To 51
  EcriEtict(x)
Next 
MLD_Coche(52,X(360),Y(420),X(85),Y(20),"Maj/Minus",$CD0000,1)
MLD_Coche(53,X(360),Y(459),X(85),Y(20),"Maj seulement",$CD0000,0)
TextGadget(55,X(100),Y(510),X(303),Y(1),"");trait_H
SetGadgetColor(55,#PB_Gadget_BackColor,$A9A9A9)
TextGadget(60,X(15),Y(520),X(80),Y(17),"Largeur")
TextGadget(61,X(15),Y(545),X(80),Y(17),"Hauteur")
TextGadget(62,X(15),Y(595),X(110),Y(17),"Emplacement X:")
TextGadget(63,X(175),Y(595),X(20),Y(17),"Y:")
StringGadget(64,X(95),Y(518),X(100),Y(20),"",#PB_String_Numeric|#ES_CENTER|#PB_String_ReadOnly);larg
SendMessage_(GadgetID(64),#EM_LIMITTEXT,4,0)
cadrestring(64):SetGadgetColor(64,#PB_Gadget_BackColor,$00FF7F)
StringGadget(65,X(95),Y(543),X(100),Y(20),"",#PB_String_Numeric|#ES_CENTER|#PB_String_ReadOnly);haut
SendMessage_(GadgetID(65),#EM_LIMITTEXT,4,0)
cadrestring(65):SetGadgetColor(65,#PB_Gadget_BackColor,$00FF7F)
StringGadget(66,X(122),Y(593),X(45),Y(20),"0",#PB_String_Numeric|#ES_CENTER);X
SendMessage_(GadgetID(66),#EM_LIMITTEXT,4,0)
cadrestring(66):SetGadgetColor(66,#PB_Gadget_BackColor,$00FFFF)
StringGadget(67,X(195),Y(593),X(45),Y(20),"0",#PB_String_Numeric|#ES_CENTER);y
SendMessage_(GadgetID(67),#EM_LIMITTEXT,4,0)
cadrestring(67):SetGadgetColor(67,#PB_Gadget_BackColor,$00FFFF)
TextGadget(68,X(121),Y(613),X(45),Y(17),"0",#PB_Text_Center)
TextGadget(69,X(195),Y(613),X(45),Y(17),"0",#PB_Text_Center)
TextGadget(70,X(323),Y(575),X(95),Y(17),"Transparence")
For x  = 60 To 70
  EcriEtict(x)
Next
MLD_Coche(71,X(15),Y(570),X(100),Y(20),"L - H manuel",$CD0000,0)
TextGadget(72,X(252),Y(525),X(1),Y(65),"");trait_V
SetGadgetColor(72,#PB_Gadget_BackColor,$A9A9A9)
MLD_Coche(73,X(263),Y(520),X(150),Y(20),"Utilise Place_Gadget ",$CD0000,1)
MLD_Coche(74,X(263),Y(550),X(150),Y(20),"Ombre du Gadget ",$CD0000,1)
TrackBarGadget(75,X(263),Y(600),X(230),Y(30),100,255)
SetGadgetState(75,140)
FrameGadget(80,X(10),Y(640),X(485),Y(112),"Code Gadget")
EcriEtict(80)
EditorGadget (81,X(15),Y(660),X(475),Y(85),#PB_Editor_ReadOnly)
SetGadgetColor(81,#PB_Gadget_BackColor,$00FF7F):SetGadgetFont(81,FontID2)
FrameGadget(82,X(10),Y(755),X(485),Y(190),"Code pour le presse-papiers")
EcriEtict(82)
EditorGadget (83,X(15),Y(775),X(475),Y(130),#PB_Editor_ReadOnly)
SetGadgetColor(83,#PB_Gadget_BackColor,$BFDD35):SetGadgetFont(83,FontID2)
MLD_Coche(84,X(30),Y(915),X(70),Y(20),"Code DA",$CD0000,0)
MLD_Coche(85,X(140),Y(915),X(50),Y(20),"Fonte",$CD0000,0)
MLD_Coche(86,X(230),Y(915),X(50),Y(20),"Gadget",$CD0000,1)
MLD_Coche(87,X(330),Y(915),X(130),Y(20),"Gadget + ref Fonte",$CD0000,0)
ButtonGadget(90,X(225),Y(950),X(110),Y(30),"Presse-papiers")
EcriEtict(90)
ButtonGadget(91,X(335),Y(950),X(80),Y(30),"Aide")
EcriEtict(91)
ButtonGadget(92,X(415),Y(950),X(80),Y(30),"Stop")
EcriEtict(92)
If Left(GetGadgetText(20),3) = "[TT"
 Ft$ = Mid(GetGadgetText(20),7,Len(GetGadgetText(20)));Si TT enlève le type
Else
 Ft$ = GetGadgetText(20)
EndIf
tp =Val(GetGadgetText(21))
Gadig()
style()
PG()
Repeat
GetCursorPos_(@CURSOR) 
 hWnd = WindowFromPoint_(CURSOR) ; get window handle under specified cursor pos (excluding hidden/disabled windows)
 If hWnd = WindowID(1)
    DestroyCursor_(cur0)
    SetActiveWindow(1):dess(0,0) 
  EndIf
  If hWnd = WindowID(101)
    SetActiveWindow(101):cur0 = LoadCursor_(0, #IDC_CROSS):SetCursor_(cur0)
    SetWindowsHookEx_(#WH_KEYBOARD_LL,@KeyboardHook(),GetModuleHandle_(0),0)
    dess(WindowMouseX(101),WindowMouseY(101)):SetGadgetText(68,Str(WindowMouseX(101))):SetGadgetText(69,Str(WindowMouseY(101)))
  EndIf    
Event = WaitWindowEvent()
   Select EventWindow()  
    Case 1 ;fenetre principale
      If Event = #PB_Event_CloseWindow:DestroyCursor_(cur0): Break : EndIf 
      If GetWindowState(1) = #PB_Window_Minimize
        HideWindow(101,1):dpw.b = 1
      EndIf
      If GetWindowState(1) = #PB_Window_Normal And dpw.b = 1
        dpw.b = 0:HideWindow(101,0):Rgl() 
      EndIf  
      If Event = #PB_Event_Gadget
        Select EventGadget()
          Case 7;X dimfen
             prfich() 
             Select EventType()
                 Case #PB_EventType_Up 
                  AjustPG(1)
                 Case #PB_EventType_Down
                   AjustPG(1)
                 Case #PB_EventType_Change
                   AjustPG(1)
               EndSelect
          Case 8;Y dimfen
             prfich() 
             Select EventType()
                 Case #PB_EventType_Up 
                  AjustPG(1)
                 Case #PB_EventType_Down
                   AjustPG(1)
                 Case #PB_EventType_Change
                   AjustPG(1)
               EndSelect
          Case 9; larg dimfen
             prfich() 
             Select EventType()
                 Case #PB_EventType_Up 
                  AjustPG(2)
                 Case #PB_EventType_Down
                   AjustPG(2)
                 Case #PB_EventType_Change
                   AjustPG(2)
               EndSelect
          Case 10; larg dimfen
             prfich() 
             Select EventType()
                 Case #PB_EventType_Up 
                  AjustPG(2)
                 Case #PB_EventType_Down
                   AjustPG(2)
                 Case #PB_EventType_Change
                   AjustPG(2)
             EndSelect 
          Case 11;coche fenetre sans titre
            If GetGadgetState(11) = 1
              MLD_ActCoche(11,1)
              ResizeWindow(101,#PB_Ignore,Val(GetGadgetText(8)) ,#PB_Ignore,#PB_Ignore)
              If  ReadFile(103,"Dims_AutoGad")<> 0 :EnrDim():EndIf 
             Else  
               MLD_ActCoche(11,0)
               ResizeWindow(101,#PB_Ignore,Val(GetGadgetText(8)) + HTbar ,#PB_Ignore,#PB_Ignore)
               If  ReadFile(103,"Dims_AutoGad")<> 0 :EnrDim():EndIf
             EndIf 
           Case 12;bt enr dim
             EnrDim()
          Case 13 ;raz dims
             DeleteFile("Dims_AutoGad")
             PG()
          Case 20;liste Police
             If Left(GetGadgetText(20),3) = "[TT"
               Ft$ = Mid(GetGadgetText(20),7,Len(GetGadgetText(20)));Si TT enlève le type
             Else
               Ft$ = GetGadgetText(20)
             EndIf
             style()
          Case 21;liste taille
             tp = Val(GetGadgetText(21))
             style()
             Case 22;coul fond
               If GetGadgetState(22) = 1
                MLD_ActCoche(22,1):colorgadfond()
              Else  
                MLD_ActCoche(22,0):colorgadfond()
              EndIf
              style()
          Case 23;coul texte
             If GetGadgetState(23) = 1
               MLD_ActCoche(23,1):colorgadtxt()
             Else  
               MLD_ActCoche(23,0):colorgadtxt()
             EndIf
             style()    
          Case 24;coche gras
             style()
          Case 25;coche Italique
             style()
          Case 26;coche Souligné
             style()
          Case 27;coche Barré
             style()
          Case 28;coche Haute qualité
             style()   
          Case 35;string num police
             Select EventType() 
               Case #PB_EventType_Change
                style() 
             EndSelect 
          Case 36;string IDfont
             Select EventType() 
               Case #PB_EventType_Change
                style() 
             EndSelect 
          Case 38;DPI fonte
             If GetGadgetState(38) = 0
                MLD_ActCoche(38,0)
             Else  
               MLD_ActCoche(38,1)
              EndIf
              style() 
            Case 42;list gad
             SetGadgetText(49,"")
             SetGadgetState (50,1):SetGadgetState (51,1)
             SetGadgetText(66,""):SetGadgetText(67,"")
             Gadig()
             Gest_cmd()
          Case 45 ;DAG
             If GetGadgetState(45) = 1
                MLD_ActCoche(45,1)
              Else  
                MLD_ActCoche(45,0)
              EndIf
              ConstrucGad()
          Case 49 ;ID gad
             Select EventType() 
               Case #PB_EventType_Change
                 If Len(GetGadgetText(49))= 1 
                  Select  Asc(GetGadgetText(49))
                   Case 35,48 To 57
                   Default
                    If GetGadgetText(49)<>""
                      SetGadgetText(49,"#" + GetGadgetText(49)):GestionCaret(49);si l'ID n'est pas un chiffre met # devant
                    EndIf  
                  EndSelect
                EndIf
                Gadig()
             EndSelect 
          Case 50;nb lettre 
             Select EventType()
               Case #PB_EventType_Up 
                 style()
               Case #PB_EventType_Down  
                 style()
             EndSelect    
          Case 51;nb ligne 
             Select EventType()
               Case #PB_EventType_Up 
                 style()
               Case #PB_EventType_Down  
                 style()
             EndSelect    
          Case 52;Coche Maj/minus
             MLD_ActCoche(52,1):MLD_ActCoche(53,0) 
             style()
          Case 53;Coche Maj
             MLD_ActCoche(53,1):MLD_ActCoche(52,0)
             style() 
          Case 64 ;Larg
             Select EventType() 
               Case #PB_EventType_Change
                 CalculDimGad(ValD(GetGadgetText(64)),Val(GetGadgetText(65)))
                 GestionCaret(64)
             EndSelect
          Case 65 ;Haut
             Select EventType() 
               Case #PB_EventType_Change
                CalculDimGad(ValD(GetGadgetText(64)),Val(GetGadgetText(65))) 
                GestionCaret(65)
             EndSelect    
          Case 71;coche LH
             If GetGadgetState(71) = 1
               MLD_ActCoche(71,1)
               SendMessage_(GadgetID(64),#EM_SETREADONLY,0,0):SendMessage_(GadgetID(65),#EM_SETREADONLY,0,0)
               SetGadgetColor(64,#PB_Gadget_BackColor,$00FFFF):SetGadgetColor(65,#PB_Gadget_BackColor,$00FFFF)
             Else
               MLD_ActCoche(71,0)
               SendMessage_(GadgetID(64),#EM_SETREADONLY,1,0):SendMessage_(GadgetID(65),#EM_SETREADONLY,1,0)
               SetGadgetColor(64,#PB_Gadget_BackColor,$00FF7F):SetGadgetColor(65,#PB_Gadget_BackColor,$00FF7F)
               CalculDimGad(tw.D,th)
             EndIf  
          Case 73;regle
             If GetGadgetState(73) = 1
              MLD_ActCoche(73,1)
              HideWindow(101,0):SetActiveWindow(101):Rgl() 
             Else
              HideWindow(101,1)
              MLD_ActCoche(73,0)
             EndIf  
          Case 74;ombre
             If GetGadgetState(74) = 1
               MLD_ActCoche(74 ,1)
               HideGadget(102,0)
             Else
               MLD_ActCoche(74 ,0)
               HideGadget(102,1)
             EndIf   
          Case 75;trackbar
             SetLayeredWindowAttributes_(WindowID(101), 0, GetGadgetState(75), #LWA_ALPHA)  
          Case 84 ;PP_DA
             If GetGadgetState(84) = 1
               gest_cochePP(84):visuPP()
             EndIf
          Case 85 ;PP_Fonte
             If GetGadgetState(85) = 1
               gest_cochePP(85):visuPP()
             EndIf
          Case 86 ;PP_Gad
             If GetGadgetState(86) = 1
               gest_cochePP(86):visuPP()
             EndIf
          Case 87 ;PP_Gad + reffont  
             If GetGadgetState(87) = 1
               gest_cochePP(87):visuPP()
             EndIf
          Case 90 ;bt PP
             PP()
          Case 91;bt aide
              MessageRequester("Logiciel AUTOGAD",LT$,#PB_MessageRequester_Ok | #PB_MessageRequester_Info)   
          Case 92;bt stop
             Break 
         EndSelect    
       EndIf       
    Case 101;fenetre pg
       If Event =  #WM_RBUTTONDOWN
        SetGadgetText(66,Str(WindowMouseX(101))):SetGadgetText(67,Str((WindowMouseY(101))));inscrit coordonnées souris 
        style() 
       EndIf
       If Event =  #WM_LBUTTONDOWN 
        SendMessage_(WindowID(101), #WM_NCLBUTTONDOWN, #HTCAPTION, 0) 
       EndIf
   EndSelect
  ForEver  
End