Jump to content

Recommended Posts

Posted

This is a basic editor that uses IE functions and jasvscript/css to control the display and highlight terms. It sets the html docuement in to edit mode, to be used as the edit box, and the javascript scans and runs the highlighter onkeyup.

The example is set to highlight "If", "Then" and "EndIf". If you were to type "endif", it would automatically change it to "EndIf" and highlight it.

Example Source Code:

#NoTrayIcon
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <IE.au3>
#include <WindowsConstants.au3>

Opt("GUIOnEventMode", 1)
Opt("GUIResizeMode", $GUI_DOCKAUTO)
Opt("TrayMenuMode", 3)

Local $html = '', $r = @CRLF
$html &= '<html>'&$r
$html &= '<head>'&$r
$html &= '   <script type="text/javascript">'&$r
$html &= '      function HighlightSyntax(word,highlightcolor) {'&$r
$html &= '         var replacement = "<span class=''color-" + highlightcolor + "''>" + word + "</span>";'
$html &= '         var re = new RegExp(word, "ig");'
$html &= '         document.body.innerHTML = document.body.innerHTML.replace(re, replacement);'
$html &= '         '&$r
$html &= '      }'&$r
$html &= '      function SyntaxHighlighter() {'&$r
$html &= '         HighlightSyntax("EndIf","blue");'&$r
$html &= '         HighlightSyntax("If","blue");'&$r
$html &= '         HighlightSyntax("Then","blue");'&$r
$html &= '      }'&$r
$html &= '   </script>'&$r
$html &= '   <style type="text/css">'&$r
$html &= '      html, body { width: 100%; height: 100%; background: #FFFFFF; color: #000000; border: 0px none; font-family: times; font-size: 14px; padding: 0px; margin: 0px; }'&$r
$html &= '      p { padding: 0px; margin: 0px; }'&$r
$html &= '      .color-blue { color: #0000FF; }'&$r
$html &= '   </style>'&$r
$html &= '</head>'&$r
$html &= '<body onkeyup="SyntaxHighlighter()" contenteditable="true" designMode="on">'&$r
$html &= '</body>'&$r
$html &= '</html>'

Global $UI_FORM = GUICreate("Syntax Highlighting, Resizable Rich Text Editor", 601, 371, 192, 124, BitOR($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_CLIPCHILDREN,$WS_TABSTOP,$WS_SIZEBOX), BitOR($WS_EX_TRANSPARENT,$WS_EX_WINDOWEDGE))
Local $UI_MENU_File = GUICtrlCreateMenu("&File")
Global $UI_MENU_Exit = GUICtrlCreateMenuItem("&Exit", $UI_MENU_File)
Global $UI_IE = _IECreateEmbedded()
Global $UI_IEOject = GUICtrlCreateObj($UI_IE, 0, 0, 600, 350)
GUICtrlSetOnEvent($UI_MENU_Exit, "GUI_Close")
GUISetOnEvent($GUI_EVENT_CLOSE, "GUI_Close", $UI_FORM)
GUICtrlSetResizing($UI_IEOject, $GUI_DOCKAUTO)
GUISetState(@SW_SHOW, $UI_FORM)

_IENavigate($UI_IE, "about:blank")
_IEDocWriteHTML($UI_IE, $html)

While 1
    Sleep(10)
WEnd

Func GUI_Close()
    GUIDelete($UI_FORM)
    Exit
EndFunc

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...