LibEditorPlus

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

LibEditorPlus

Message 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é :!:
Dernière modification par Progi1984 le mer. 18/mai/2005 20:34, modifié 11 fois.
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message 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:
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message 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.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Pingtix
Messages : 159
Inscription : mer. 03/nov./2004 15:30

Message par Pingtix »

J'ai moi aussi testé l'exemple et c'est plutot cool !
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message 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 !!!!! :)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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 
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message 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)
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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ù ?
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Regarde dans le Zip !!!
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message 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:
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Ouf, pour une fois j'ai pas fais de gaffe :-).
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Désolé, je me suis trompé, je vous le ramène demain.
Errare humanum Est.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message 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.
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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
Répondre