Code archives/BlitzPlus Gui/CreateSyntaxArea(...)
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| Hi. Heres Syntax Sample: Abs After And Before Case Const Data Default Delete Dim Each Else ElseIf EndIf Exit False Field First Float For Forever Function Global Gosub Goto Handle If Include Insert Int Last Local Mod New Next Not Null Object Or Pi Read Repeat Restore Return Sar Select Sgn Shl Shr Step Str Then To True Type Until Wend While Xor DebugLog FreeTimer WaitTimer CreateTimer SetEnv GetEnv SystemProperty CommandLine MilliSecs Delay ExecFile RuntimeError AppTitle Stop End RuntimeStats EntityName NameEntity FreeEntity ShowEntity HideEntity EntityOrder EntityAutoFade EntityFX EntityBlend EntityTexture EntityShininess EntityAlpha EntityColor PaintEntity FindChild GetChild CountChildren EntityParent Animating AnimLength AnimTime AnimSeq ExtractAnimSeq AddAnimSeq SetAnimKey Animate SetAnimTime AlignToVector PointEntity RotateEntity ScaleEntity PositionEntity TranslateEntity TurnEntity MoveEntity CollisionTriangle CollisionSurface CollisionEntity CollisionTime CollisionNZ CollisionNY CollisionNX CollisionZ CollisionY CollisionX CountCollisions EntityCollided EntityDistance EntityBox EntityRadius GetEntityType GetParent EntityPickMode EntityType ResetEntity DeltaYaw DeltaPitch VectorPitch VectorYaw TFormedZ TFormedY TFormedX TFormNormal TFormVector TFormPoint GetMatElement EntityRoll EntityYaw EntityPitch EntityZ EntityY EntityX CopyEntity EmitSound CreateListener ModifyTerrain TerrainHeight TerrainSize TerrainZ TerrainY TerrainX TerrainShading TerrainDetail LoadTerrain CreateTerrain CreatePlane CreateMirror BSPAmbientLight BSPLighting LoadBSP MD2Animating MD2AnimLength MD2AnimTime AnimateMD2 LoadMD2 SpriteViewMode HandleSprite ScaleSprite RotateSprite LoadSprite CreateSprite CreatePivot LightConeAngles LightRange LightColor CreateLight PickedTriangle PickedSurface PickedEntity PickedTime PickedNZ PickedNY PickedNX PickedZ PickedY PickedX CameraPick LinePick EntityPick EntityVisible EntityInView ProjectedZ ProjectedY ProjectedX CameraProject CameraFogMode CameraFogRange CameraFogColor CameraViewport CameraProjMode CameraClsMode CameraClsColor CameraRange CameraZoom CreateCamera TriangleVertex VertexW VertexV VertexU VertexAlpha VertexBlue VertexGreen VertexRed VertexNZ VertexNY VertexNX VertexZ VertexY VertexX CountTriangles CountVertices VertexTexCoords VertexColor VertexNormal VertexCoords AddTriangle AddVertex PaintSurface ClearSurface FindSurface CreateSurface GetSurface CountSurfaces MeshesIntersect MeshDepth MeshHeight MeshWidth LightMesh UpdateNormals AddMesh PaintMesh FlipMesh FitMesh PositionMesh RotateMesh ScaleMesh CopyMesh CreateCone CreateCylinder CreateSphere CreateCube CreateMesh LoadAnimSeq LoadAnimMesh LoadMesh BrushFX BrushBlend BrushTexture BrushShininess BrushAlpha BrushColor FreeBrush LoadBrush CreateBrush TextureFilter ClearTextureFilters TextureBuffer TextureHeight TextureWidth PositionTexture RotateTexture ScaleTexture TextureCoords TextureBlend FreeTexture LoadAnimTexture LoadTexture CreateTexture Stats3D TrisRendered ActiveTextures ClearWorld RenderWorld CaptureWorld UpdateWorld Collisions ClearCollisions AmbientLight WireFrame AntiAlias Dither WBuffer HWMultiTex LoaderMatrix NetMsgData NetMsgTo NetMsgFrom NetMsgType RecvNetMsg SendNetMsg NetPlayerLocal NetPlayerName DeleteNetPlayer CreateNetPlayer StopNetGame JoinNetGame HostNetGame StartNetGame Load3DSound ChannelPlaying ChannelPan ChannelVolume ChannelPitch ResumeChannel PauseChannel StopChannel PlayCDTrack PlayMusic PlaySound SoundPan SoundVolume SoundPitch LoopSound FreeSound LoadSound DirectInputEnabled EnableDirectInput FlushJoy JoyVDir JoyUDir JoyZDir JoyYDir JoyXDir JoyHat JoyRoll JoyYaw JoyPitch JoyV JoyU JoyZ JoyY JoyX JoyWait WaitJoy GetJoy JoyHit JoyDown JoyType MoveMouse FlushMouse MouseZSpeed MouseYSpeed MouseXSpeed MouseZ MouseY MouseX MouseWait WaitMouse GetMouse MouseHit MouseDown FlushKeys WaitKey GetKey KeyHit KeyDown HidePointer ShowPointer Locate Input Write ImageRectCollide ImageRectOverlap RectsOverlap ImagesCollide ImagesOverlap TFormFilter TFormImage RotateImage ResizeImage ScaleImage ImageYHandle ImageXHandle ImageHeight ImageWidth AutoMidHandle MidHandle HandleImage MaskImage DrawBlockRect DrawImageRect TileBlock TileImage DrawBlock DrawImage ImageBuffer GrabImage SaveImage FreeImage LoadAnimImage CreateImage CopyImage LoadImage CloseMovie MoviePlaying MovieHeight MovieWidth DrawMovie OpenMovie StringHeight StringWidth FontHeight FontWidth FreeFont LoadFont CopyRect Text Line Oval Rect Plot Cls SetFont ClsColor ColorBlue ColorGreen ColorRed GetColor Color Viewport Origin CopyPixelFast CopyPixel WritePixelFast ReadPixelFast WritePixel ReadPixel UnlockBuffer LockBuffer SaveBuffer LoadBuffer GraphicsBuffer SetBuffer GraphicsDepth GraphicsHeight GraphicsWidth Flip VWait ScanLine BackBuffer FrontBuffer GammaBlue GammaGreen GammaRed UpdateGamma SetGamma EndGraphics Graphics3D Graphics Windowed3D GfxMode3D GfxMode3DExists CountGfxModes3D GfxDriver3D TotalVidMem AvailVidMem GfxModeDepth GfxModeHeight GfxModeWidth GfxModeExists CountGfxModes SetGfxDriver GfxDriverName CountGfxDrivers CallDLL WriteBytes ReadBytes PokeFloat PokeInt PokeShort PokeByte PeekFloat PeekInt PeekShort PeekByte CopyBank ResizeBank BankSize FreeBank CreateBank DeleteFile CopyFile FileType FileSize DeleteDir CreateDir ChangeDir CurrentDir NextFile CloseDir ReadDir SeekFile FilePos CloseFile WriteFile ReadFile OpenFile TCPTimeouts TCPStreamPort TCPStreamIP AcceptTCPStream CloseTCPServer CreateTCPServer CloseTCPStream OpenTCPStream UDPTimeouts UDPMsgPort UDPMsgIP UDPStreamPort UDPStreamIP RecvUDPMsg SendUDPMsg CloseUDPStream CreateUDPStream HostIP CountHostIPs DottedIP CopyStream WriteLine WriteString WriteFloat WriteInt WriteShort WriteByte ReadLine ReadString ReadFloat ReadInt ReadShort ReadByte ReadAvail Eof CurrentTime CurrentDate Bin Hex Len Asc Chr RSet LSet Trim Lower Upper Mid Instr Replace Right Left String RndSeed SeedRnd Rand Rnd Log10 Log Exp Ceil Floor Sqr ATan2 ATan ACos ASin Tan Cos Sin Have fun. Cu, ST. :) | |||||
wnd = CreateWindow("SyntaxArea Sample", 10, 10, 400, 400, 0, 1)
butn1 = CreateButton("Exit.", 2, 2, 100, 30, wnd)
S_Style = CreateSyntaxStyle()
SyntaxAreaWordsFromFile S_Style, "syntax.txt", 255, 255, 0
S_Area = CreateSyntaxArea(2, 40, 388, 300, wnd)
SetSyntaxAreaStyle S_Area, S_Style
Programm = 1
While Programm
MyEvent = WaitEvent()
If EventSource() = butn1 Then Programm = 0
SyntaxAreaScanAll S_Area
Wend
Type SyntaxAreas
Field S_Handle
Field S_GadGet
Field S_Style.SyntaxStyles
End Type
Type SyntaxStyles
Field S_Handle
Field Color_BG[3]
Field Color_StdFont[3]
Field S_Char1$
Field S_Char2$
Field S_Char3$
Field Font
Field FontName$
Field FontSize
Field MaxWordLen
End Type
Type SyntaxWord
Field S_Style.SyntaxStyles
Field Word$
Field Color_StdFont[3]
End Type
Function CreateSyntaxArea(x1,y1,x2,y2,g,s=0)
nextround=1
While nextround = 1
newhandle = Rnd(99999) : nextround=0
For SA.SyntaxAreas = Each SyntaxAreas
If SA\S_Handle = newhandle Then nextround=1
Next
Wend
SA.SyntaxAreas = New SyntaxAreas
SA\S_Handle = newhandle
SA\S_GadGet = CreateTextArea(x1, y1, x2, y2,g,s)
Return SA\S_Handle
End Function
Function SetSyntaxAreaStyle(H_Syntax, H_Style)
For SA.SyntaxAreas = Each SyntaxAreas
If SA\S_Handle = H_Syntax Then
For SS.SyntaxStyles = Each SyntaxStyles
If SS\S_Handle = H_Style Then
SA\S_Style = SS
SetTextAreaColor SA\S_GadGet, SS\Color_BG[1], SS\Color_BG[2], SS\Color_BG[3], 1
SetTextAreaColor SA\S_GadGet, SS\Color_StdFont[1], SS\Color_StdFont[2], SS\Color_StdFont[3]
SS\Font = LoadFont(SS\FontName$, SS\FontSize)
SetTextAreaFont SA\S_GadGet, SS\Font
FreeFont SS\Font
End If
Next
End If
Next
End Function
Function CreateSyntaxStyle()
.n_round : newhandle = Rnd(99999) : For SS.SyntaxStyles = Each SyntaxStyles
If SS\S_Handle = newhandle Then Goto n_round
Next
SS.SyntaxStyles = New SyntaxStyles
SS\S_Handle = newhandle
SS\Color_BG[1] = 50 : SS\Color_BG[2] = 50 : SS\Color_BG[3] = 255
SS\Color_StdFont[1] = 255 : SS\Color_StdFont[2] = 255 : SS\Color_StdFont[3] = 255
SS\FontName$ = "Blitz"
SS\FontSize = 20
SS\S_Char1$ = "1234567890"
SS\S_Char2$ = "´!"+Chr$(34)+"§&/()=?`<,.*'>;:!"
SS\S_Char3$ = "qwertzuiopüasdfghjklöäßyxcvbnmQWERTZUIOPÜASDFGHJKLÖÄYXCVBNM$%#"
Return SS\S_Handle
End Function
Function SyntaxAreaAddWord(H_Style, Word$, C_R, C_G, C_B)
For SS.SyntaxStyles = Each SyntaxStyles
If SS\S_Handle = H_Style Then
SW.SyntaxWord = New SyntaxWord
SW\S_Style = SS
SW\Word$ = Word$
SW\Color_StdFont[1] = C_R : SW\Color_StdFont[2] = C_G : SW\Color_StdFont[3] = C_B
If SS\MaxWordLen < Word$ Then SS\MaxWordLen = Len(Word$)
End If
Next
End Function
Function SyntaxAreaWordsFromFile(H_Style, FileName$, C_R, C_G, C_B)
TheFile = ReadFile(FileName$)
While Not Eof(TheFile)
Word$ = ReadLine$(TheFile)
If Instr(Word$, " ") Then Word$ = Mid$(Word$, 1, Instr(Word$, " ")-1)
SyntaxAreaAddWord(H_Style, Word$, C_R, C_G, C_B)
Wend
CloseFile(TheFile)
End Function
Function SyntaxAreaScanAll(H_Syntax)
For SA.SyntaxAreas = Each SyntaxAreas
If SA\S_Handle = H_Syntax Then
SyntaxCur = TextAreaCursor(SA\S_GadGet)
SyntaxText$ = TextAreaText$(SA\S_GadGet)
CurA = SyntaxCur
Repeat
If (CurA < 1) Or (Not Instr(SA\S_Style\S_Char1$+SA\S_Style\S_Char3$, Mid$(SyntaxText$,CurA,1))>0) Then Exit
CurA = CurA - 1
Forever
mabs = 1
If Not Instr(SA\S_Style\S_Char1$+SA\S_Style\S_Char3$, Mid$(SyntaxText$,CurA,1))>0 Then CurA=CurA+1 : mabs = 0
CurB = CurA
Repeat
If (CurB > Len(SyntaxText$)) Or (Not Instr(SA\S_Style\S_Char1$+SA\S_Style\S_Char3$, Mid$(SyntaxText$,CurB,1))>0) Then Exit
CurB = CurB + 1
Forever
Word$ = Mid$(SyntaxText$, CurA+mabs, CurB-CurA-mabs)
FormatTextAreaText SA\S_GadGet, SA\S_Style\Color_StdFont[1], SA\S_Style\Color_StdFont[2], SA\S_Style\Color_StdFont[3], 0, CurA-mabs-1, CurB-CurA
fWord = 0
For SW.SyntaxWord = Each SyntaxWord
If SA\S_Style = SW\S_Style Then
If Lower(Word$) = Lower(SW\Word$) Then
FormatTextAreaText SA\S_GadGet, SW\Color_StdFont[1], SW\Color_StdFont[2], SW\Color_StdFont[3], 0, CurA-mabs-1, CurB-CurA
fWord = 1
End If
End If
Next
If fWord = 0 Then FormatTextAreaText SA\S_GadGet, SA\S_Style\Color_StdFont[1], SA\S_Style\Color_StdFont[2], SA\S_Style\Color_StdFont[3], 0, SyntaxCur-1,1
End If
Next
End Function |
Comments
None.
Code Archives Forum