Does anyone know where I can download Alex Restrepo’s SyntaxHighlightEditField. I have Googled and dug around but cannot find any working links. Is this still in circulation?
I think you’re looking for the CustomEditField. It can be found at http://code.google.com/p/custom-editfield/
Thanks Bob, is this yours? I have run and got an error with a text encoding Encodings.UCS4 not existing. Any ideas? Thanks
Nope. Mine is the Formatted Text Control at https://www.bkeeney.com/formatted-text-control/.
I have seen that error in the CustomEditField and I think all I did was comment out that line of code. No ill effects in my projects but your mileage may vary.
After google’ing UCS4 it was AKA UTF32 so I chanced it and changed it. Again no ill effects.
Be aware that for keyboard handling on OS X and edit field handling “keydown” etc WON’T be sufficient
its why we went so far as to create the TextInputCanvas plugin that you can use to base controls that do text editing off of
Sorry to hijack the thread, but are there any docs for this plugin? All I found was the code repo.
I don’t honestly know whats even in the repo
I just got to be the guinea pig as we used it first for the IDE before we open sourced it.
Not sure if Joe ever wrote anything up or if Paul did
Joe’s offline for a couple days so I cant ask him at all
Load CustomEditField.rbp, in the Folder ‘CustomEditField’ is a module named ‘Info’.
Duble click on ‘Info’ opens a tab with the docs (Info, Docs, SyntaxDefinitions …)
I use it in my Python Editor , I have made to test code with different versions of Python.
it is not quite finished yet (save bookmarks not working actually),but you can already work with.
PythOSX
copy the folder PythOSX somewhere
Hi Mike,
I put the SyntaxHighlightEditField into my dropbox - you can get it from there:
https://dl.dropboxusercontent.com/u/992591/REALbasic/Classes/SyntaxHighlightEditField.zip
Thanks, but I meant docs for the TextInputCanvas plugin @Norman Palardy mentioned.
The only documentation they have is the source code at GitHub - xojo/TextInputCanvas: TextInputCanvas is a plugin for the Xojo programming environment that allows developers to implement custom text input controls with international input support.
Good thing I’ve been planning to learn C++
is there a plugin for textinputcanvas ready to use??
To use TextInputCanvas you really DON’T need C++
True, but if the source code is the only documentation I ought to learn how to read it.
The events are basically all commented in TextInputCanvas.cpp. There’s not much more for documentation, since very few people need this (Bob’s the only one up until now).
I’ll see if we can include this in the git hub stuff once I add more detail to it
The comment at the beginning of the list of constants is the protocol / class in Apples documentation where you will find more information about this command / constant
Events
BaselineAtIndex( index as integer ) as integer
CharacterAtPoint( x as integer, y as integer ) as integer
DiscardIncompleteText()
DoCommand( command as string ) as boolean
FontNameAtLocation( location as integer ) as string
FontSizeAtLocation( location as integer ) as integer
IncompleteTextRange() as TextRange
SetIncompleteText( text as string, replacementRange as TextRange, relativeSelection as TextRange )
InsertText( text as string, range as TextRange )
IsEditable() as boolean
KeyFallsThrough( key as string ) as boolean
Paint( g as Graphics, areas() as object )
RectForRange( byref range as TextRange ) as REALbasic.Rect
SelectedRange() as TextRange
TextForRange( range as TextRange ) as string
TextLength() as integer
MouseDown(x as Integer, y as Integer) as Boolean
MouseDrag(x as Integer, y as Integer)
MouseUp(x as Integer, y as Integer)
GotFocus()
LostFocus()
EnableMenuItems()
Constants (most used in DoCommand as the command )
// NSResponder: Selection movement and scrolling
moveForward:
moveRight:
moveBackward:
moveLeft:
moveUp:
moveDown:
moveWordForward:
moveWordBackward:
moveToBeginningOfLine:
moveToEndOfLine:
moveToBeginningOfParagraph:
moveToEndOfParagraph:
moveToEndOfDocument:
moveToBeginningOfDocument:
pageDown:
pageUp:
centerSelectionInVisibleArea:
// NSResponder: Selection movement and scrolling
moveBackwardAndModifySelection:
moveForwardAndModifySelection:
moveWordForwardAndModifySelection:
moveWordBackwardAndModifySelection:
moveUpAndModifySelection:
moveDownAndModifySelection:
// NSResponder: Selection movement and scrolling
moveToBeginningOfLineAndModifySelection:
moveToEndOfLineAndModifySelection:
moveToBeginningOfParagraphAndModifySelection:
moveToEndOfParagraphAndModifySelection:
moveToEndOfDocumentAndModifySelection:
moveToBeginningOfDocumentAndModifySelection:
pageDownAndModifySelection:
pageUpAndModifySelection:
moveParagraphForwardAndModifySelection:
moveParagraphBackwardAndModifySelection:
// NSResponder: Selection movement and scrolling (added in 10.3)
moveWordRight:
moveWordLeft:
moveRightAndModifySelection:
moveLeftAndModifySelection:
moveWordRightAndModifySelection:
moveWordLeftAndModifySelection:
// NSResponder: Selection movement and scrolling (added in 10.6)
moveToLeftEndOfLine:
moveToRightEndOfLine:
moveToLeftEndOfLineAndModifySelection:
moveToRightEndOfLineAndModifySelection:
// NSResponder: Selection movement and scrolling
scrollPageUp:
scrollPageDown:
scrollLineUp:
scrollLineDown:
// NSResponder: Selection movement and scrolling
scrollToBeginningOfDocument:
scrollToEndOfDocument:
// NSResponder: Graphical Element transposition
transpose:
transposeWords:
// NSResponder: Selections
selectAll:
selectParagraph:
selectLine:
selectWord:
// NSResponder: Insertions and Indentations
indent:
insertTab:
insertBacktab:
insertNewline:
insertParagraphSeparator:
insertNewlineIgnoringFieldEditor:
insertTabIgnoringFieldEditor:
insertLineBreak:
insertContainerBreak:
insertSingleQuoteIgnoringSubstitution:
insertDoubleQuoteIgnoringSubstitution:
// NSResponder: Case changes
changeCaseOfLetter
uppercaseWord:
lowercaseWord:
capitalizeWord:
// NSResponder: Deletions
deleteForward:
deleteBackward:
deleteBackwardByDecomposingPreviousCharacter:
deleteWordForward:
deleteWordBackward:
deleteToBeginningOfLine:
deleteToEndOfLine:
deleteToBeginningOfParagraph:
deleteToEndOfParagraph:
yank:
// NSResponder: Completion
complete:
// NSResponder: Mark/Point manipulation
setMark:
deleteToMark:
selectToMark:
swapWithMark:
// NSResponder: Cancellation
cancelOperation:
// NSResponder: Writing Direction
makeBaseWritingDirectionNatural:
makeBaseWritingDirectionLeftToRight:
makeBaseWritingDirectionRightToLeft:
makeTextWritingDirectionNatural:
makeTextWritingDirectionLeftToRight:
makeTextWritingDirectionRightToLeft:
// Not part of NSResponder, something custom we need for Windows
rbToggleOverwriteMode
rbCopy
rbCut
rbPaste
rbUndo
TextRanges
Text ranges assume that the body of text is one long block of text
Properties
Location as Integer
Length as Integer
EndLocation as Integer
Methods
Constructor()
Constructor( location as integer, length as integer )
Now you dont have to read C++