[Résolu] ScintillaGadget : Colorer une colonne d'information

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

[Résolu] ScintillaGadget : Colorer une colonne d'information

Message par falsam »

Avec le GadgetScintilla() on peut afficher et colorer la colonne de numérotation des lignes.
On peut aussi afficher une autre colonne pour afficher par exemple les infos de pliage de code.

■ Par contre je n'arrive pas à trouver l'info pour colorer cette colonne.

Voici le code réduit à son stricte minimum.

Code : Tout sélectionner

EnableExplicit

Enumeration Form
  #mf
EndEnumeration

Enumeration Gadget  
  #Editor
EndEnumeration

;-Plan de l'application
Declare Start()

Declare MainFormShow() 
Declare MainFormResize()
Declare MainFormClose()

Declare ScintillaCallBack(Gadget, *scinotify.SCNotification)
Declare ScintillaProperties(Gadget)

Start()

Procedure Start()
  OpenWindow(#mf,  0,  0, 1024, 768, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  If InitScintilla()
    ScintillaGadget(#Editor, 0, 0, WindowWidth(#mf), WindowHeight(#mf), @ScintillaCallBack())
    ScintillaProperties(#Editor)
    SetActiveGadget(#Editor)
  EndIf
  
  BindEvent(#PB_Event_CloseWindow, @MainFormClose())
  
  Repeat : WaitWindowEvent(10) : ForEver
EndProcedure

Procedure ScintillaCallBack(Gadget, *scinotify.SCNotification)
  
EndProcedure

Procedure MainFormClose()
  End  
EndProcedure

Procedure ScintillaProperties(Gadget)
  
  ;Line numbering column 
  ScintillaSendMessage(Gadget, #SCI_SETMARGINTYPEN, 0, #SC_MARGIN_NUMBER)                
  ScintillaSendMessage(Gadget, #SCI_SETMARGINWIDTHN, 0, 50)                               
  ScintillaSendMessage(Gadget, #SCI_STYLESETBACK, #STYLE_LINENUMBER, RGB(154, 205, 50))   
  ScintillaSendMessage(Gadget, #SCI_STYLESETFORE, #STYLE_LINENUMBER, RGB(82, 86, 111))    
  
  ;Code folding (How to colour this column ?)
  ScintillaSendMessage(Gadget, #SCI_SETMARGINMASKN, 2, #SC_MASK_FOLDERS)
  ScintillaSendMessage(Gadget, #SCI_SETMARGINWIDTHN, 2, 20)
  ScintillaSendMessage(Gadget, #SCI_SETMARGINSENSITIVEN, 2, #True)
  
EndProcedure
merci de votre aide

■ Solution

Code : Tout sélectionner

ScintillaSendMessage(Gadget, #SCI_SETFOLDMARGINCOLOUR, 2, RGB(107, 142, 35))
ScintillaSendMessage(Gadget, #SCI_SETFOLDMARGINHICOLOUR, 2, RGB(107, 142, 35))
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: ScintillaGadget : Colorer une colonne d'information

Message par Ar-S »

Aucune idée.. Dans la donc on trouve bien de quoi colorier les lignes mais j'ai pas vu de commande pour les "colomn"
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: ScintillaGadget : Colorer une colonne d'information

Message par falsam »

Ar-S a écrit :Aucune idée.. Dans la donc on trouve bien de quoi colorier les lignes mais j'ai pas vu de commande pour les "colomn"
Ca existe pour la colonne de numération des lignes

Code : Tout sélectionner

;Line numbering column 
  ScintillaSendMessage(Gadget, #SCI_SETMARGINTYPEN, 0, #SC_MARGIN_NUMBER)                
  ScintillaSendMessage(Gadget, #SCI_SETMARGINWIDTHN, 0, 50)                               
  ScintillaSendMessage(Gadget, #SCI_STYLESETBACK, #STYLE_LINENUMBER, RGB(154, 205, 50))   
  ScintillaSendMessage(Gadget, #SCI_STYLESETFORE, #STYLE_LINENUMBER, RGB(82, 86, 111))  
ici la colonne est colorée en vert.

A droite de cette colonne j'ai ajouté une autre colonne et mystère, je ne trouve pas sur la doc officiel de Scintilla comment la colorer.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: ScintillaGadget : Colorer une colonne d'information

Message par falsam »

Ça doit être possible de le faire puis que ça existe avec l'IDE de PureBasic.

La partie droite de l'image correspond à l’éditeur que je code en ce moment. On voit que la colonne est blanche alors qu'elle est bien coloré sur l'IDE de Purebasic.

Image
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: ScintillaGadget : Colorer une colonne d'information

Message par Zorro »

extrait de mon code EPB (via gosci )

Code : Tout sélectionner


	
	
	
	; voici pour colorer la petite marge a droite des numeros de lignes  
				Case #GOSCI_FOLDMARGINLOBACKCOLOR ; on peut colorer en 2 couleurs ..... 
					ScintillaSendMessage(id, #SCI_SETFOLDMARGINCOLOUR, 1, color)
					
				Case #GOSCI_FOLDMARGINHIBACKCOLOR ; deuxieme couleurs (tramé ) 
					ScintillaSendMessage(id, #SCI_SETFOLDMARGINHICOLOUR, 1, color)
					
				;************************************ 
					
					;  ici c'est pour colorer les markers 
				Case #GOSCI_FOLDMARKERSBACKCOLOR
					ScintillaSendMessage(id, #SCI_MARKERSETBACK, #SC_MARKNUM_FOLDEROPEN, color)
					ScintillaSendMessage(id, #SCI_MARKERSETBACK, #SC_MARKNUM_FOLDER, color)
					ScintillaSendMessage(id, #SCI_MARKERSETBACK, #SC_MARKNUM_FOLDERSUB, color)
					ScintillaSendMessage(id, #SCI_MARKERSETBACK, #SC_MARKNUM_FOLDERTAIL, color)
					ScintillaSendMessage(id, #SCI_MARKERSETBACK, #SC_MARKNUM_FOLDEREND, color)
					ScintillaSendMessage(id, #SCI_MARKERSETBACK, #SC_MARKNUM_FOLDEROPENMID, color)
					ScintillaSendMessage(id, #SCI_MARKERSETBACK, #SC_MARKNUM_FOLDERMIDTAIL, color)
				Case #GOSCI_FOLDMARKERSFORECOLOR
					ScintillaSendMessage(id, #SCI_MARKERSETFORE, #SC_MARKNUM_FOLDEROPEN, color)
					ScintillaSendMessage(id, #SCI_MARKERSETFORE, #SC_MARKNUM_FOLDER, color)
					ScintillaSendMessage(id, #SCI_MARKERSETFORE, #SC_MARKNUM_FOLDEREND, color)
					ScintillaSendMessage(id, #SCI_MARKERSETFORE, #SC_MARKNUM_FOLDEROPENMID, color)
		
	
; Epb
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: ScintillaGadget : Colorer une colonne d'information

Message par falsam »

Merci Zorro mais je n'utilise pas cette library.

Srod m'a donné la solution sur le forum anglophone qui d'ailleurs confirme ta solution mais pas avec les mêmes constantes.

Code : Tout sélectionner

ScintillaSendMessage(Gadget, #SCI_SETFOLDMARGINCOLOUR, 2, RGB(107, 142, 35))
 ScintillaSendMessage(Gadget, #SCI_SETFOLDMARGINHICOLOUR, 2, RGB(107, 142, 35))
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: ScintillaGadget : Colorer une colonne d'information

Message par Zorro »

falsam a écrit :Merci Zorro mais je n'utilise pas cette library.

Srod m'a donné la solution sur le forum anglophone qui d'ailleurs confirme ta solution mais pas avec les mêmes constantes.

Code : Tout sélectionner

ScintillaSendMessage(Gadget, #SCI_SETFOLDMARGINCOLOUR, 2, RGB(107, 142, 35))
 ScintillaSendMessage(Gadget, #SCI_SETFOLDMARGINHICOLOUR, 2, RGB(107, 142, 35))
je ne t'avais pas donné les constantes de la librairie
je t'avais donné le code finale

mon exemple

Code : Tout sélectionner

   ScintillaSendMessage(id, #SCI_SETFOLDMARGINCOLOUR, 1, color)   
   ScintillaSendMessage(id, #SCI_SETFOLDMARGINHICOLOUR, 1, color)
l'exemple de Srod

Code : Tout sélectionner

ScintillaSendMessage(Gadget, #SCI_SETFOLDMARGINCOLOUR, 2, RGB(107, 142, 35))
ScintillaSendMessage(Gadget, #SCI_SETFOLDMARGINHICOLOUR, 2, RGB(107, 142, 35)
bref .. c'est le meme code :D
forcement ... c'est le sien dans les deux cas :lol:
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [Résolu] ScintillaGadget : Colorer une colonne d'informa

Message par falsam »

@Zorro : Oops désolé j'ai lu
Zorro a écrit :extrait de mon code EPB (via gosci )
Quand j'ai vu via gosci je me suis dit pas la peine que j'aille plus loin car je ne l'utilise pas.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Mindphazer
Messages : 695
Inscription : mer. 24/août/2005 10:42

Re: ScintillaGadget : Colorer une colonne d'information

Message par Mindphazer »

falsam a écrit :l’éditeur que je code en ce moment.
Intéressant ! On aura le droit de le voir ? :mrgreen:
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: [Résolu] ScintillaGadget : Colorer une colonne d'informa

Message par Zorro »

je ne pense pas que falsam code un editeur Pour Purebasic ... :wink:

mais je peux me tromper
Avatar de l’utilisateur
Mindphazer
Messages : 695
Inscription : mer. 24/août/2005 10:42

Re: [Résolu] ScintillaGadget : Colorer une colonne d'informa

Message par Mindphazer »

Zorro a écrit :je ne pense pas que falsam code un editeur Pour Purebasic ... :wink:

mais je peux me tromper
Au vu de la copie écran, ça n'a pas l'air d'être un source PB en effet...
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [Résolu] ScintillaGadget : Colorer une colonne d'informa

Message par falsam »

Mindphazer a écrit :Au vu de la copie écran, ça n'a pas l'air d'être un source PB en effet...
Et tu as raison.

C'est un éditeur de code JavaScript dédié au framework Babylon.js

Complétion des mots clés.
Insertion de fragments de code depuis un menu popup
Créer par exemple un cube en javascript et l'ajouter à la scene est long à taper.
je sélectionne Box dans le menu contextuel et l'IDE génére la ligne

Code : Tout sélectionner

var myBox = BABYLON.MeshBuilder.CreateBox("myBox", { height: 1, width: 1, depth: 1 }, scene);
Visualisation du résultat 3D (F5) avec ou sans débug.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre