Thor I (Beta)

The tool for managing add-on tools in the IDE

Requires VFP9

Thor is a tool for managing add-on tools in the IDE. It
  • has a user interface to control the assignment of hot keys to tools and developer-defined menus. The UI provides four different methods for accessing these tools:
    1. By assigning hot keys to them
    2. By creating pop-up menus accessible via hot keys
    3. By adding them as bars under any of the VFP system pads (File, Edit, View, etc.)
    4. By creating new pads in the VFP system menu and adding them as bars under these new pads
  • provides a unified method for registering tools.
  • and simplifies the task of sharing them between developers.
Thor comes with a ready-made list of tools from two sources, the Thor Repository and PEM Editor. (See below)

Click here to download the latest release of Thor I

Click here for the Thor Repository

Click here for the Thor Help Pages

Sample showing three new menu pads in VFP system menu (Thor, PEM Editor, and JRN), the tools installed from PEM Editor, and some the the Thor UI.

thormain.jpg

Unlike the normal limited set of hot keys available from ON KEY LABEL, Thor provides for the full range of multiple-keystroke combinations ({Ctrl + Alt + A}, for instance).

The 'tools' managed by Thor are simply PRGs with the following characteristics
  • The name of the PRG must begin with Thor_Tool_
  • The PRG must be saved either in the default Tools folder (which is created at installation) or anywhere in the path
  • The first 20 lines or so of the PRG must follow a fixed template, allowing Thor to query them as to their name, description, etc.
Installing Thor

After you have downloaded the Zip file into its installation folder, do the following:

     Clear All
     Do Thor.APP 


This will create a folder named Thor in the installation folder, some sub-folders and files in that folder, update the VFP system menu (by adding a menu pad for Thor), and open the Thor form.

Running Thor

Thor needs to be started once each IDE session. (It survives Clear All). It can be done in either of two ways:

(a) By calling Thor.App directly
     Do Thor.APP with 'Run' 

(b) By calling RunThor.PRG, a PRG which is created in the sub-folder and which can be copied anywhere (such as to a folder in the path)
     Do RunThor

Note: The distinction here is that Thor.APP cannot be moved from its installation folder (if so, it has to be re-installed). RunThor.PRG can be moved, as it contains an explicit reference to the folder where Thor.APP is installed.

The Thor Repository

Inherent in the design of Thor is the anticipation that members of the FoxPro community will have utilities of value that can well be shared throughout the community. The structure of the tool PRGs make such sharing simple.

The 'Thor Repository' is a catalog of such tools. The intent is that this repository grow over time, as developers submit tools to be included. The starting repository has about a dozen such tools.

To register the tools from the Repository, copy the PRGs from the ZIP file into the Tools sub-folder.

Click here for the Thor Repository

Tools from PEM Editor

Version 7 of PEM Editor, now re-named 'PEM Editor w/ IDE Tools', contains more than three dozen tools that can be accessed through Thor. These include some tools released in version 6 of PEM Editor, along with a large number of completely new tools. These can be downloaded from the PEM Editor page.

PEM Editor also "publishes" a pair of objects that simplify building further tools. More than half of the original tools in the Thor Repository use these objects.

Registration of the tools from PEM Editor occurs automatically (if Thor is running) when you install PEM Editor by executing:

     Do PEMEditor.APP 


***********************************************************

Release History

Thor I Beta - Released 2011-06-03

Acknowledgments:

  • The concept for this project started with Jim Nelson (the Project Manager).
  • The design was created by a group which included Doug Hennig, Eric Selje, and Tore Bleken.
  • The entire UI was designed and implemented by Doug Hennig.

Last edited Jun 29, 2011 at 3:34 AM by JimRNelson, version 24

Comments

JimRNelson Oct 24, 2011 at 10:17 PM 
Mike -- I did not see your comments here until today. Thank you very much for your kind comments! See you in a couple of days!

MikePotjer Oct 13, 2011 at 3:49 PM 
I have a number of homegrown tools, as well as numerous third-party tools that I use in my development environment. When I first heard of Thor, I thought, Wow, what a great way to manage all that. I didn't download it right away, but only because I was busy and I was afraid I would spend a lot of time exploring its features and adding things to it. Well, I finally installed it, and "Wow" just does not do it justice. This is a "Mega-Wow"! Not only does Thor make it easy to hook in and manage any IDE tool you are currently using, but if you install PEM Editor for Thor and the Thor Repository, you get a whole suite of really useful stuff. I've been using PEM Editor for a long time, so I knew there were a lot of little gems in there, but it wasn't always convenient to get at them. Thor solves that problem, and then some. Plus, if you create a tool for Thor that you think will useful to others, even something really small, Thor makes it ridiculously easy to share what you create. It is my opinion that this is the most universally useful add-on ever created for VFP. I can't say enough about it here to do it justice. Don't wait to get it like I did -- get it now! You won't regret it. If you are fortunate enough to be attending SW Fox this year, be sure and attend Jim's sessions for a personal tour of Thor and its tools.

Kudos to Jim and everyone else who contributed to this project. Awesome job!

Koen Sep 6, 2011 at 4:00 PM 
Downloading and installig inclusive the new PEM7: worked as a charm! Thanks for sharing these tools!

JimRNelson Jun 3, 2011 at 1:53 PM 
Sorry about that problem with the download page of Thor! Please try again!

sgrappatore Jun 3, 2011 at 7:00 AM 
Link for download doesn't work!