PopNav
------
PopNav is based on PopDoc by Fred Stark.  When command-clicking on a symbol, the original PopDoc showed a popup menu with the symbol name for each place it was declared.  Choosing an item from the popup would open the file in which that instance of the symbol was declared.

PopNav displays more information, such as the file in which the symbol is declared.  In addition, this version adds some navigation popups that allow you to quickly jump to any symbols defined (or optionally declared) in the current file.

This version is designed for the "Cocoa" APIs and has not been tested with the older OpenStep APIs.

Installation Instructions
-------------------------
1. Build PopNav with ProjectBuilder if necessary.
2. Install the PopNav.bundle as required by your version of ProjectBuilder.
3. Quit and relaunch ProjectBuilder.

How Do I Use It?
----------------

Command-click anywhere in a source code window.  This will give you a popup menu of all the methods in the current file (implementation only).

Command-option-click anywhere in a source code window.  This will give you a popup menu of all the methods in the current file (implementation and interface).

Command-shift-click on a symbol.  This will give you a popup menu of every place the symbol is defined (.m and .h files).

Can I Change the Key Bindings?
-----------------------------

As of version 1.0.1, the answer is "Yes". The following keys are available for use in user defaults (with their default values shown):

ShowClickedSymbolsMask	(NSCommandKeyMask, NSShiftKeyMask)
ShowLocalSymbolsWithInterfaceMask	(NSCommandKeyMask)
ShowLocalSymbolsWithoutInterfaceMask	(NSCommandKeyMask, NSAlternateKeyMask)

The following values can be used:

NSShiftKeyMask
NSControlKeyMask
NSAlternateKeyMask
NSCommandKeyMask

For example, if you want the "find references in project" popup menu to come up when you Command-click on a symbol and you want the "show me symbols in this file" popup menu to come up when you Command-Option-click, and you want to disable the "show me the symbols in this file, including interface declarations" popup menu, use the following:

defaults write ProjectBuilder ShowClickedSymbolsMask "( NSCommandKeyMask )"
defaults write ProjectBuilder ShowLocalSymbolsWithInterfaceMask "( NSAlternateKeyMask )"
defaults write ProjectBuilder ShowLocalSymbolsWithoutInterfaceMask "()"


Contact Information
-------------------

Please report bugs to peter@baseview.com.  I make no guarantees, but I will try to address any issues raised.  If I am unable, well, the source is with you...

Change History
--------------

1.0.2
-----
	-- Fix method detection to be language-independent (ObjC, Java, Webscript, ...) (thanks to Tom Hageman)
	-- Fix modifier flags check to consider only device-Independent Shift, Alternate, Control, Command. (thanks to Tom Hageman)
	- Include functions in popup along with class and instance methods.
 
1.0.1
-----
	-- Added some Java support
	-- Allows changing of key bindings using the defaults system.
