Kirix Support Forums

Plugins (.krx)

Please post any help questions, requests or other feedback here.

Plugins (.krx)

Postby kapex01 on Thu Aug 23, 2007 11:10 am

nice product.

got some ideas i want to explore

i've developed lots of code over the past few years that i would
like to use (technical analysis, yahoo, opentick.com etc ...), that would
greatly enhance my productivity. also have wrappers for other
third party libraries (ta-lib.org, ROOT++ gui and .root file) that i would like to integrate.

from my initial interactions, this platform could be perfect as a basis for
a TA trading platform with dynamic scripting.

therefore, would like an example of a plugin (.krx, .js)

i want to explore the potential to load .dll/.so libraries.

quick questions (maybe not answerable right now) :

1) is this possible?
2) would the .dll/.so i load need to 'signed' (aka: java jni)
3) is it possible to create a window/canvas (embedded, popup etc ...) and export
the window/canvas handle so that it can be 'rendered' to.

TIA
kapex01
Registered User
 
Posts: 3
Joined: Thu Aug 23, 2007 10:45 am

Plugins PT II

Postby kapex01 on Thu Aug 23, 2007 11:13 am

of course, willing to submit any 'discoveries' back into community.

Again, TIA
kapex01
Registered User
 
Posts: 3
Joined: Thu Aug 23, 2007 10:45 am

Re: Plugins (.krx)

Postby Ben on Thu Aug 23, 2007 12:22 pm

Hello,

I think that this platform might be ideal for your purposes. You can definitely create extensions: we've been able to code a number of fairly complex analysis extensions in the built-in language and have been satisfied with the results.

First, here is a link to our online documentation: http://www.kirix.com/docs. A lot of the key classes have small samples which can get you up and running, and we'll be expanding this to include examples for creating extensions. Please note, the API is still in beta, so minor changes will occur, and we'd welcome any feedback you'd be able to provide.

Now the answers to your questions:

1) Right now binary loading of dll's and so's is not possible, however this isn't hard to add. See below regarding our plans for this.

2) The dll or so file you would load would not need to be signed. The bindings we would add for this would work similarly to dlopen() and GetModuleHandle().

3) Grabbing the HWND window handle from a form and passing it to a raw method in your binary would go hand-in-hand with the external binary module support.

You will probably make quite a bit of progress with the available classes that are exposed in the scripting language, which include a host of classes for database, file, http access and GUI controls. However, we like your suggestion because it enables these other components to be integrated. We'll be adding the ability to load external dll's and so's shortly.

Thanks for the great suggestion.

All the best,
Ben
Ben Williams
Kirix Support Team
User avatar
Ben
Kirix Support Team
 
Posts: 522
Joined: Mon Dec 19, 2005 6:29 am

Re: Plugins (.krx)

Postby Aaron on Mon Aug 27, 2007 8:35 am

kapex01 wrote:i want to explore the potential to load .dll/.so libraries.

We've now implemented this functionality, and it will be available this Wednesday or Thursday in the next beta release, along with an example of an extension/plugin.

Thanks again!
Aaron Williams
Kirix Support Team
User avatar
Aaron
Kirix Support Team
 
Posts: 120
Joined: Fri Dec 16, 2005 3:01 pm

Re: Plugins (.krx)

Postby kapex01 on Tue Aug 28, 2007 6:04 am

We've now implemented this functionality, and it will be available this Wednesday or Thursday in the next beta release, along with an example of an extension/plugin


excellent!
kapex01
Registered User
 
Posts: 3
Joined: Thu Aug 23, 2007 10:45 am

Re: Plugins (.krx)

Postby Dave on Tue Sep 04, 2007 3:18 pm

Hello,

Attached you'll find a very basic extension file which can be installed in Kirix Strata (beta 3 and above). This is a basic example which adds a menu and inserts some menu items to the Host application's menu bar. There is also a very basic form example included. The structure of the extension file may change slightly as we near final release, but for now, here are Extension basics for Kirix Strata:

1) For now, extensions are simply .zip files with a .kxt file extension (NOTE: Kirix Strata will successfully install an extension that has a .zip file extension, although for organizational purposes, it's best to just use the .kxt file extension).

2) There are two required files and a number of optional files that can be included in a Kirix Extension:
  • An "info.xml" file that contains the metadata for the extension. (Required)
  • A main javascript file that contains the code you want to use in the extension. (Required)
  • As many other javascript and/or resource files you'd like to include which may be referenced in your javascript code. NOTE: You can include bitmaps and/or text resources in the Extension file which can be referenced by calling Extension.getBitmapResource() or Extension.getTextResource(). See http://www.kirix.com/docs/Extension.html for an example of how this works. (Optional)
  • A bitmap file that will be shown in the Extension Manager inside Kirix Strata. This bitmap file must be referenced in the <bitmap> tag in the "info.xml" file. (Optional)
3) Inside the "info.xml" file mentioned above there are a number of tags:
  • <guid> - Unique ID for the extension (generate using 'guidgen' on Windows or 'uuidgen' on Linux or by visiting a website such as http://www.guidgen.com)
  • <name> - Name shown in the Extension Manager in Kirix Strata.
  • <author> - Author of the Extension.
  • <bitmap> - Bitmap shown in the Extension Manager in Kirix Strata.
  • <startup> - Initial javascript file to be called when the extension is run.
  • <copyright> - Copyright information for the extension.
  • <description> - Description shown in the Extension Manager in Kirix Strata.
  • <major_version> - Major version shown in the Extension Manager in Kirix Strata.
  • <minor_version> - Minor version shown in the Extension Manager in Kirix Strata.
  • <subminor_version> - Subminor version shown in the Extension Manager in Kirix Strata.
To install the attached extension in Kirix Strata, download the attached "application_menu.kxt" file. Go to Tools --> Extensions... in Kirix Strata, click the "Add Extensions..." button and find the file you just downloaded. After installing, close and then restart Strata. The extension will insert some menu items into the "Tools" menu, add a "My Menu" menu in the menu bar with simple example menu items and add a "Close MyExtension" menu item in the "Help" menu.

--

Also, for specific information regarding how to interface with system dlls/sos see:

http://www.kirix.com/docs/NativeModule.html

Hope this helps. If you have further questions, feel free to ask!

All the best,
Dave.
Attachments
application_menu.kxt
(2.29 KiB) Downloaded 441 times
Dave Williams
Kirix Support Team
User avatar
Dave
Kirix Support Team
 
Posts: 32
Joined: Wed Sep 21, 2005 11:07 pm

Re: Plugins (.kxt)

Postby Ken on Tue Jun 17, 2008 6:29 pm

Just a quick mention that today we released a full Extensions area and Developer Resources section:

http://www.kirix.com/extensions/
http://www.kirix.com/extensions/develop ... urces.html

Also, we have started a Strata Blog section too -- which will be dedicated to tips & tricks, examples and interesting applications:

http://www.kirix.com/stratablog/

Much more to come...
Ken Kaczmarek
Kirix Support Team
User avatar
Ken
Kirix Support Team
 
Posts: 147
Joined: Mon Dec 19, 2005 10:36 am

Return to Strata Help & Feedback