ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

DonationCoder.com Software > Find And Run Robot

FARR Plugin SDK 1.0 Released - Make a FARR plugin DLL - if you dare

(1/2) > >>

mouser:
Ok the new downloads of FARR v2 now have the plugin SDK included (installed in FARR directory).  So programmers please do grab the FARR v2 alpha release and get to work!! (email me [email protected] for private link to FARR alpha download if you don't have it yet).

It's sorely lacking in documentation, but it does include full source code for the FarrFox plugin, plus sample projects for dev-c++ and visual studio.  However you should be prepared for some frustration as you try to figure out how to get it to all work right.. I'm here to help though.

If you do not intend to write your plugin in C++ your job is going to be 1000x more painful, since i've provided helper code for C++ but not for anything else.  I'm happy to add more features, so plugin coders feel free to request more abilities.

ps.
I will be giving out some DC Mugs to the first few real FARR plugins, and i'll be announcing a contest for best FARR plugins with some better prizes soon :)

TucknDar:
Oh, no... now I need to come up with an idea for a FARR plugin AND learn to code :'(

jk, I can't wait to see some cool plugins born :)

Ruffnekk:
Excellent!!  ;D I was waiting for this every day  :Thmbsup:

mouser:
Here's the ReadMe from the download:

//---------------------------------------------------------------------------
Find and Run Robot (FARR) v2 Plugin SDK Documentation
https://www.donationcoder.com/Software/Mouser/findrun/index.html
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
Documentation v1.0 - Apr 5, 2007 - [email protected]
//---------------------------------------------------------------------------


//---------------------------------------------------------------------------
This document explains some basic information on how to program plugins for
 the Find and Run Robot 2 tool for MS Windows.
//---------------------------------------------------------------------------



//---------------------------------------------------------------------------
WARNING

Please keep in mind that the plugin support for FARR is brand new as of
 April 2007, and is still just in preliminary stages.  While it is working,
 you should expect changes, bugfixes, and lackluster documentation until
 things develop further.
Should you choose to continue developing a plugin for FARR at this early
 stage, expect frustration and heartache, but lots of support from the author.
 If there are features i can add to help you, just let me know.
 -mouser ([email protected])
//---------------------------------------------------------------------------



//---------------------------------------------------------------------------
OVERVIEW - What can you do with FARR plugins?

The basic things you can do with a FARR plugin are:

1. Present standard file/url results to the user based on what they type.

 For example, the farrfox plugin that is included in the SDK shows how
 to make a plugin that loads all firefox, opera, and IE bookmarks and
 let's the user search them.  In this case, FARR's built in keyword filtering
 is used to filter and sort and score the results, the plugin's job is
 simply to return all possible matches.  If you prefer you can do the filtering
 and scoring yourself.  You can provide custom descriptions and icons for
 results.


2. Take over the launching of results.

 Normally, FARR knows how to launch file results and URLs, but if you wish,
 your plugin can takeover launching of all or some results.  Using this
 functionality you can present arbitrary result lists which have whatever
 meaning you want (not files or urls), and then decide how to react when
 user selects from your list.  (Note FARR already has builtin funcionts to
 copy stuff to clipboard or to the last window open before FARR was
 triggered).


3. Replace the output window with richedit text.

 This is sort of unusual, but you can choose to tell FARR to replace the
 normal results with a long richtext (or plaintext) string.  This might be
 useful if you wanted to show the user some help text or other text.  Right
 now this text is readonly and nothing the user types gets sent back to the
 plugin, but we could change this if coders want to do something more fancy.
 Adding support to display HTML and react to it.


4. Adjusting item scores

 This is less useful than you might think because it can slow down searching
 significantly, but this allows you to simply modify the scores returned
 by normal FARR or other plugins, or reject them, etc.


5. Show or Hide the FARR window.

 This is useful if you want to take over triggering of FARR.
//---------------------------------------------------------------------------



//---------------------------------------------------------------------------
FUTURE POSSIBILITIES

1. Display any windows controls in the output

 I think a good solution to having real flexibility is to allow the coder
 to display any windows control in the output window (via activex or simply
 by setting parent hwnd).  In this way you could really display any info.


2. Custom grid output

 Short of taking over the output completely, plugins will soon be able to
 ask FARR to display a table/grid of info with custom column header info.


3. Add custom info to files

 You will soon be able to add info to results.  This would be useful for
 doing things like adding mp3 tag info to the display of mp3 files.
//---------------------------------------------------------------------------



//---------------------------------------------------------------------------
WHAT DO I NEED TO MAKE A PLUGIN?

1. A FARR plugin is a DLL, and you should be able to make a plugin in any
 language that can create windows DLLs.

2. All of the official samples are made in C++ (youll find samples for
 dev-c++, ms visual c++, and borland c++ builder which is what the advanced
 farrfox plugin is made in).  But you should be able to use any language
 that can create DLLs.

3. Making your plugin in C++ will be much easier curently just because
 i've already written a lot of helper code your c++ plugins.  If you are
 writing a plugin in a language other than c++ then you are going to have
 to study the C++ helper code in the Source directory to get a better idea
 of what you have to do.
//---------------------------------------------------------------------------



//---------------------------------------------------------------------------
OK TEACH ME HOW TO MAKE A PLUGIN!

1. I have now yet written good documentation on how to code plugins. Sorry!!
 I will try to add real walkthrough and documentation later.

2. But I have tried to thoroughly document the c++ helper files and the
 simple sample plugins.  Please use those samples as your guide to
 make a new plugin.  The C++ Builder FARRFOX plugin is a full plugin which
 will show you lots of tricks.

3. Feel free to email me at [email protected] or find me on
 irc (#donationcoder on efnet) for more help.

4. If anyone feels like making a walkthrough for plugin construction I
 would be delighted to host it, and ditto for other language plugin code.
//---------------------------------------------------------------------------



//---------------------------------------------------------------------------
HOW DO I DEPLOY/TEST MY PLUGIN?

1. Just make a subdirectory for your plugin, and place the dll and any custom
 icon for it in that subdirectory (see the myplugin.cpp file for how to
 specify the info for your plugin and its icon file).

2. Then just copy that subdirectory into your FARR Plugins/ subdirectory and
 restart FARR (or go to plugin options to rescan for new plugins).
//---------------------------------------------------------------------------

mouser:
Hamradio has made some badges, that will be added under your name and in your profil if you write a plugin for any DC software (including FARR):



DC Mugs+Badges.. gotta catch 'em all!

Navigation

[0] Message Index

[#] Next page

Go to full version