Page 1 sur 10

LibEditorPlus

Publié : mar. 01/févr./2005 8:53
par Progi1984
Voilà ma première lib : une librairie donnant quelques bonus au Editorgadget de PureBasic.

LibEditorPlus


Voir Exemple.pb dans le dossier Help\LibEditorPlus :

V0.1
Fonctions :Editor_CursorX(Gadget)
Editor_CursorY(Gadget)
Editor_CursorPos(Gadget)
Editor_Locate(Gadget,x,y)
Editor_Select(Gadget, LineStart.l, CharStart.l, LineEnd.l, CharEnd.l)
Editor_ColorText(gadget,ydeb,xdeb,yfin,xfin,color)
Editor_ColorBackground(gadget,color)
Editor_Paste(gadget)
Editor_Cut(gadget)
Editor_Copy(gadget)
Editor_DeleteSel(gadget)
Editor_Undo(gadget)
Editor_Redo(gadget)
Editor_Activate(gadget)

V0.2
Ajout de nouvelles fonctions
Editor_Impression(Gadget.l,docname.s)
Editor_Color(Gadget, Color.l)
Editor_FontSize(Gadget, Fontsize.l)
Editor_Font(Gadget, FontName.s)
Editor_Format(Gadget, Flags.l)
Editor_PasteText(gadget,Text$)
Editor_Up(gadget)
Editor_Down(gadget)
HL_Init_Comments(str$)
HL_Init_Strings(str)
HL_Init_KeyWord(file$)
HL_Activate_Entiers(x)
HL_Activate_Comments(x)
HL_Activate_Keywords(x)
HL_Activate_Strings(x)
Editor_Highlight(gadget)

v0.21 - 03/02/05
Modifié : Editor_Highlight(gadget)
-> Il considére maintenant que le signe de commentaires compris entre deux signes de chaînes appartient à la chaîne et ne commence pas un commentaire

v0.22 - 04/02-05
Ajouté : Editor_Zoom(Gadget,ValeurZoom,ValeurMax)

v0.23 - 02/04/05
Fixé : Editor_Highlight(gadget)
-> Problème de détection entre les chaînes et les commentaires
Ajouté : Editor_OFile(gadget.l,filename.s,error.s)
Ajouté : Editor_SFile(gadget.l,filename.s,error.s)

v0.24 - 10/05/05
Fixé : Editor_Highlight(): bug entre les commentaires et les chaines
Fixé : Editor_Highlight(): clignotage lorsque l'on dépasse la limite droite de l'Editorgadget
Ajouté : Editor_AutomaticLine(Gadget.l,Activate)
1 pour activer
0 pour désactiver
Ajouté : Editor_Alinea(Gadget.l,Taille.l)

v0.3 - 16/05/05
Ajouté : Concept : Numérotation des lignes
Ajouté : LN_AddLine(GadgetId.l,Position,Text.s)
Ajouté : LN_Start(Window.l,Gadgetid.l)
Ajouté : LN_Update(GadgetId.l)
Ajouté : LN_Flags(Type,Index,Style,Tab)

v0.31 - 16/05/05
@Le Soldat Inconnu
Ajouté : Editor_PosSelStart(Gadget.l)
Ajouté : Editor_PosSelEnd(Gadget.l)

v0.32 - 18/05/05
Fixé : Bug de Editor_CursorX() : Il ajouté +1 à chaque fois
@Tme007
Ajouté : HL_Init_KeywordData(AdresseDebutDatas, NbMotsCles)

Futures Fonctions:
Editor_GetModify()
Editor_Find(str$)
Editor_Replace(str$,strreplace$)
Editor_Highlight():
-----Améliorer la coloration syntaxique des entiers
-----Ajouté:
----------Opérateurs(=+-*/)
----------Séparateur(parenthèses)
----------Constante
----------Variable
----------Structure
----------Fonction
Editor_Comment(yes or no, linedepart, lienend)

Concepts :
--Bookmarks
--AutoCompletion
--Boite de Dialogue "Go To Line"
--Support de l'IntelliMouse (scrolling)
--Utilisation du RTF

Remerciements
Erix14 : pour le clignotage lors du dépassement de ligne pour la fonction de coloration syntaxique !
Nico & Denis : pour le subclassing !
Denis : pour appeler des datas dans une fonction !

Testez et dites moi ce que vous en pensez !

N'hésitez pas : commentaires, suggestions, remarques, etc.

:!: Tout est accepté :!:

Publié : mar. 01/févr./2005 17:15
par Oliv
Je vais esayer dès que j'ai le temps :D
Tu l'as fait avec les API ou toi même ? :oops:

Publié : mar. 01/févr./2005 21:02
par Jacobus
J'ai essayé ta Lib Progi1984
( Ton exemple, je l'ai pas encore intégrée dans un prg )
Très sympa ! Encore un peu de fun dans PB, merci.

Publié : mer. 02/févr./2005 13:53
par Pingtix
J'ai moi aussi testé l'exemple et c'est plutot cool !

Publié : mer. 02/févr./2005 14:57
par Progi1984
Merci, si vous avez des idées n'hésitez pas !

@Oliv : pour certains focntions genre Copier,coller, etc , c''est garce à l'API.
Mais sinon Highlight (coloration syntaxique), c'est moi !!!!! :)

Publié : mer. 02/févr./2005 19:21
par Le Soldat Inconnu
une erreur dans ton exemple

Code : Tout sélectionner

    Repeat 
      EventID = WaitWindowEvent()
      If EventID = #PB_EventGadget    
        Select EventGadgetID()

        EndSelect
      EndIf
    Until WaitWindowEvent()=#PB_Event_CloseWindow 
il y a 2 WaitWindowEvent() donc on rate des évènements.

la c'est mieux :)

Code : Tout sélectionner

    Repeat 
      EventID = WaitWindowEvent()
      If EventID = #PB_EventGadget    
        Select EventGadgetID()

        EndSelect
      EndIf
    Until EventID=#PB_Event_CloseWindow 

Publié : jeu. 03/févr./2005 8:47
par Progi1984
Salut à tous, merci au SOldat Inconnu
@Soldat inconnu : je m'en occupe dés que possible

V0.2
  • Ajout de nouvelles fonctions
    Editor_Impression(Gadget.l,docname.s)
    Editor_Color(Gadget, Color.l)
    Editor_FontSize(Gadget, Fontsize.l)
    Editor_Font(Gadget, FontName.s)
    Editor_Format(Gadget, Flags.l)
    Editor_PasteText(gadget,Text$)
    Editor_Up(gadget)
    Editor_Down(gadget)
    HL_Init_Comments(str$)
    HL_Init_Strings(str)
    HL_Init_KeyWord(file$)
    HL_Activate_Entiers(x)
    HL_Activate_Comments(x)
    HL_Activate_Keywords(x)
    HL_Activate_Strings(x)
    Editor_Highlight(gadget)

Publié : dim. 06/févr./2005 13:45
par gansta93
Salut,

Pourquoi je n'ai que les sources dans le dossier examples ?
L'example se trouve-t-il dans l'aide ? sinon où ?

Publié : lun. 07/févr./2005 9:43
par Progi1984
Regarde dans le Zip !!!

Publié : lun. 07/févr./2005 10:55
par gansta93
Progi1984 a écrit :Regarde dans le Zip !!!
Oui, j'ai le ZIP,<j'ai les dossiers et en plus le fichier d'historique.

Publié : lun. 07/févr./2005 12:27
par nico
Y a pas d'exemple, pour tester c'est pas l'idéal!

:)

PS: oui, j'ai regardé dans le ZIP, si tu pouvais faire de même. :lol:

Publié : lun. 07/févr./2005 17:57
par gansta93
Ouf, pour une fois j'ai pas fais de gaffe :-).

Publié : mar. 08/févr./2005 9:08
par Progi1984
Désolé, je me suis trompé, je vous le ramène demain.
Errare humanum Est.

Publié : mer. 09/févr./2005 14:00
par Progi1984
Voila, c'est bon je vous ai ramené ma lib avec un nouvel exemple : DSL !

Voici les nouveautés :
v0.21 - 03/02/05
Modifié : Editor_Highlight(gadget)
-> Il considére maintenant que le signe de commentaires compris entre deux signes de chaînes appartient à la chaîne et ne commence pas un commentaire

v0.22 - 04/02-05
Ajouté : Editor_Zoom(Gadget,ValeurZoom,ValeurMax)

PS: @All : + de nouveautés à la rentrée.

Publié : jeu. 10/févr./2005 8:18
par gansta93
Salut,

ça serait bien que tu mette une fonction dans ta lib pour activer/désactiver le retour à la ligne automatique.
Voici un petit exemple qui le traite.

Code : Tout sélectionner

; Une petite fenêtre
If OpenWindow(0,0,0,200,200,13565952,"lol") And CreateGadgetList(WindowID(0))
; un editorgadget qui prand tout...
EditorGadget(0,0,0,200,200)
; Le Ctrl+R pour activer/désactiver le retour à la ligne automatique
AddKeyboardShortcut(0,#PB_Shortcut_Control|#PB_Shortcut_R,1)
Repeat
Select WaitWindowEvent()
Case #PB_EventMenu
Select EventMenuID()
Case 1
SendMessage_(GadgetID(0),#EM_SetTargetdevice,0,State)
; Si state est 0, le retour à la ligne est activé
; si égal à 1, désactivé.
; Condition pour que sa valeure change
If state=0
state=1
Else
state=0
EndIf
EndSelect
Case #PB_EventCloseWindow
End
EndSelect
Delay(20)
ForEver
EndIf
End