MXSEditor Control Plugin ( Beta )

Hi ,
Some of you might remember a video i posted last year about a plugin i was developing to control the Maxscript Editor via maxscript. Development on it is on hold (actually since last year) because i’ve got loads of other things to do. But it is in a pretty usable shape already, so i decided to release it in the current state…

It provides a powerfull Maxscript interface to the maxscript editor (MXSE) and the underlying Scintilla component, allows MXSE to sit in an extended viewport etc. Scintilla knowledge is a plus if you want to control the editor. It’s important to read the readme accompaning the package.

Anyways, feel free do give it a go and post your experience here

BTW: it contains Max 2008 up to 2012 only, 32 and 64 bit
2013 would require some rework because of unicode

Here’s the demo video i recorded last year, where i control the editors text selection via an realtime playing Mp3 per AudioFloat animation controller. Pardon my voice, but i had caught a cold at that time

//youtu.be/lMl0c55rvng

And here the download
[Download MXSEditor GUP V0.5 Beta1](Josef 'spacefrog' Wienerroither – 3ds Max Specialist | Games & Tools Developer | Autodesk Expert Elite Global Utility Plugin)

And finally, here’s a list of interfaces/structs the plugin provides (besides all Scintilla commands):

Interface: MXSEditor
   Properties:
    .x : integer : Read|Write
    .y : integer : Read|Write
    .width : integer : Read|Write
    .height : integer : Read|Write
    .enableCallbacks : boolean : Read|Write
    .isVisible : boolean : Read|Write
    .verbose : boolean : Read|Write
    .isExtendedVP : boolean : Read
    .mainHWND : HWND : Read
    .editHWND : HWND : Read
    .documentCount : integer : Read
    .currentDocument : string : Read
   Methods:
    <void>redraw()
    <void>show()
    <boolean>endExtendedVP()
    <void>reloadOptions()
    <boolean>editFile <string>filename quiet:<boolean>
       quiet default value: false
    <string>documentAtNumber <integer>index
    <boolean>sendCommand <string>commandstring
    <void>menuCommand <string>menucode
    <boolean>setWindowPosition <integer>x <integer>y <integer>width <integer>height
    <string>getConfigProperty <string>name
    <integer>getConfigIntProperty <string>name
    <void>setConfigProperty <string>name <string>value
    <integer>listFunctions()
    <integer>listConstants()
    <integer>listProperties()
    <integer>listMenucodes()
   Actions:
MXSEProps (const StructDef): #Struct:MXSEProps(
  list:<fn>,
  set:<fn>,
  get:<fn>,
  dump:<fn>)
MXSEFuncs (const StructDef): #Struct:MXSEFuncs(
  list:<fn>,
  call:<fn>)

-- DO NOT USE MXSECallback ! , it is totally broken/unimplemented
MXSECallback (const StructDef): #Struct:MXSECallback(
  list:<fn>,
  set:<fn>,
  disable:<fn>,
  remove:<fn>,
  get:<fn>,
  removeAll:<fn>,
  enable:<fn>)

Great stuff!