                                                Stockholm, SWEDEN, 2014.05.04
===================
PeekView     v1.2.5
===================

INTRODUCTION:

PeekView is a discrete tool which is allowing you to toggle View Display Style 
"on-the-fly" by simply pressing a hotkey. 

Pressing the same hotkey again will return you to the previous View Display Style
(the original View Style will be called baseline). 

This is why it is called PeekView: it peeks into another view display style while 
preserving your original setup. For example you can peek from Wireframe to Smooth 
and then return to Wireframe with the same hotkey.

PeekView always preserves all previous Display Styles for all affected views. 
When you peek into another Style you do it with assumed intent of returning to 
previous one once you are done with peeking. 

This effectively means that at any given moment there are only two View Display 
Styles maintained for each View: the current one and the previous one. What the 
previous one (the baseline) contains is decided by the state of 'Keep last peek' 
toggle.
 

Keep last peek toggle to change baseline Style: 
-----------------------------------------------

When it is 'on', when changing View Display Style and subsequently using yet 
another one by pressing another hotkey, whatever the style was immediately before 
it will be your new baseline. For example going from Wireframe to Smooth with one 
hotkey, and then to Illustration with another one, your new baseline will be Smooth.  

When it is 'off', when changing View Display Style and subsequently using yet 
another by pressing another hotkey, the original baseline will be used when you 
are returning from the peek. For example going from Wireframe to Smooth with one 
hotkey, and then to Illustration with another one, your baseline still will be 
Wireframe.  

Pressing the same hotkey twice swaps those two Styles (activate the other one). 

You can define up to three different hotkeys for three different view Styles. 


The target view option button:
------------------------------

The 'Target view' selection can be either the view explicitly set by you or it will 
be selected dynamically, depending on the 'Target view' setting. 

Most 'Target view' options are fairly self-explaining: for example 'Topmost' means 
the view on the top of the view stack, 'Cursor' means the one which is currently 
beneath the current position of your mouse cursor, etc. but one option is different: 

The  '> icon: Zoom, Pan, Rotate' option:

  When this option is selected, the last view where you selected the viewing command 
  from its View Control icon bar becomes dynamically rendered whenever the cursor is 
  within this view. As you are not using the hotkey to flip the render styles here, 
  the used View Display Style must be assigned differently.

  Normally, it is either the Style assigned to the first hotkey or the one you used 
  most recently. Note that you can override this as described below.
  
  There are two ways to change the View Display Style when the target view is set to 
  '> icon: Zoom, Pan, Rotate' (use the hotkey in both cases):

  1. Temporarily override active Style:
     Do it when your cursor is *inside* the target view when pressing the hotkey. 

  2. Set the Style permanently:
     Do it when cursor is *outside* of the view area when you are pressing the hotkey. 
	 If the PeekView dialog box is visible the '>' character will confirm your
	 selection.
     The chosen setting for View Display Style for viewing commands can now be saved.


When to use overrides:
----------------------

Additionally, in peek mode, any of view attributes (like line weights, dimensions, etc.) 
can be overridden to present the peeked view exactly as you want, regardless of how the 
view attributes were set originally. Previous view attributes will return when you are 
done with the peek.

This is handy for example when you want to peek on your model without seeing all
dimensions, text or patterns or whatever else you want to override during your peek.

To enable the override function, check the check box 'Use overrides'.

For each view attribute there are two checkboxes, the left one decide whether to 
override the attribute, and the right to decide the preferred state of this 
override, un-checked box means 'off', checked box means 'on'.



CUSTOMIZING WORKFLOW:
---------------------

 To open the dialog box use keyin: PEEKVIEW SETTINGS 

 To open the About info-box use keyin: PEEKVIEW HELP

 To enable or disable the overall use of View Attribute overrides use following keyins: 
	PEEKVIEW OVERRIDES 
	PEEKVIEW OVERRIDES ON
	PEEKVIEW OVERRIDES OFF

 To use keyins in lieu of hotkeys, the keyin format is PEEKVIEW HOTKEYx:  
	PEEKVIEW HOTKEY1
	PEEKVIEW HOTKEY2 
	PEEKVIEW HOTKEY3 
	PEEKVIEW HOTKEY4 


INSTALLATION:
-------------

Unpack contents of attached archive to your \mdlapps directory and start the 
tool via key-in: MDL LOAD PEEKVIEW

Manually starting PeekView via keyin will always open the PeekView Settings dialog box.
However starting PeekView via MS_DGNAPPS environment variable will not open it.
Instead, you will need to use keyin: PEEKVIEW SETTINGS


===================
Change Log
===================

(*) v0.1 Alpha:

- initial proof of concept released

(*) v0.2 Alpha:

- Changed behavior after a hotkey. Now the viewing command is always 
  unconditionally terminated. This avoids unexpected View Display Mode changes 
  on unrelated views (my thanks goes to Thomas Voghera for feedback on this 
  issue).

(*) v0.3 Alpha:

- Added an option to allow preserving intermediate viewing commands while 
  returning to original View Display Mode. Unfortunately this reduces the number
  of available modes, because I have yet to find where MicroStation stores the 
  tidbit about WHICH named Display Style is active... 
  (Thanks to Peter Tegza for higlighting this issue)

(*) v0.4 Alpha:

- Fixed bug which affected detection of some hotkeys.
  (Thanks to Adrian C for alerting me)

(*) v0.5 Alpha:

- Fixed glitch causing keyin history list being flowed by PeekView.
  (Thanks to Peter Tegza for alerting me)

- Improved 'keep viewing changes'. Now it preserves all original View Styles.

- Added ability to define new Display Styles. See 'Known Problems' below.

(*) v1.0.0 Beta:

- Added View Attribute overrides to be automatically applied while in peek.
  You decide which ones.

- Main dialog box can now be dismissed.

- Added keyin interface

  PEEKVIEW SETTINGS
  PEEKVIEW OVERRIDES [ON|OFF]
  PEEKVIEW HELP 

- Added intro.

(*) v1.0.1 Beta:

- Fixed bug: when unloading or switching DGN Models, PeekView from now on will
  respect 'keep viewing changes' setting.

(*) v1.0.2:  THIS IS A PRODUCTION RELEASE

- Fixed bug: target view should be reopened automatically if it was closed before 
  issuing the hotkey.

- Fixed bug: now PeekView works correctly when started by other means than keyin,
  for example as a DGNAPP (MS_DGNAPPS).

- New toggle: 'keep last peek' was added. It is enabled by default. This further 
  streamlines the most common workflows.

(*) v1.1.0:  THIS IS A PRODUCTION RELEASE UPDATE

- Added a hotkey to enable baselining of view setup at any time.
  In other words, now you can force PeekView to accept your current views setup as 
  a new starting point for peeking (otherwise the starting point would be whatever 
  was found when you opened your DGN file or reloaded PeekView).

- Added feedback to indicate which Views are peeked at the moment and which (if any) 
  hotkey will "unpeek" them. This shows in annotated View title bars.

- Fixed bug: viewing commands are no longer interrupted when peeking. This bug was 
  a side effect of using another viewing command by PeekView to change display 
  styles.
  As new viewing command always terminate the previous one, my workaround is to
  detect and restart the previous one when PeekView is done with activating the new 
  view style. The more elegant solution will be implemented when Bentley enhance 
  the current MDL API to enable activating view styles programmatically.

(*) v1.2.0:  THIS IS A PRODUCTION RELEASE UPDATE

- Added several new 'Target View' selections. Some are really cool!	
  See the introduction at the begining of this document for details.

- Added a few new view attribute overrides.

- Removed 'keep viewing changes'. Everybody wanted it being enabled, so this toggle 
  was just cluttering the interface.

(*) v1.2.1:  THIS IS A PRODUCTION RELEASE UPDATE

- Fixed small bug affecting 'Baseline' when in new 'Zooming Panning Rotating' mode.

(*) v1.2.2:  THIS IS A PRODUCTION RELEASE UPDATE

- Fixed small bug affecting using regular hotkeys when in new PeekView 'Zooming 
  Panning Rotating' mode.

- Enhanced feedback (in dialog box) indicating which mode is used by 'Zooming 
  Panning Rotating' mode.

(*) v1.2.3:  THIS IS A PRODUCTION RELEASE UPDATE

- Added keyins to be used in lieu of hotkeys.

- Enhanced operation of '> icon: Zoom, Pan, Rotate' to avoid unwanted view updates.

(*) v1.2.4:  THIS IS A PRODUCTION RELEASE UPDATE

- Resolved a bug where some PeekView hotkeys collided with those defined for MicroStation
  function key shortcuts, for example: Alt-X collided with Alt-F9.

(*) v1.2.5:  THIS IS A PRODUCTION RELEASE UPDATE

- Enhanced operation of '> icon: Zoom, Pan, Rotate'. 
  Focus of Dynamic Peek is now limited to view where the View Control icon was selected.


===================
Known Problems
===================

Only if you are using other View Display Styles beside those which are delivered 
with MicroStation, please read on.

There is currently a limitation in MicroStation programming interfaces which 
prevents detection of available View Display Styles by third party programs, 
like this one.  

According to Bentley this limitation will be removed in future updates to 
MicroStation. Until this happens, PeekView has no way to know which styles are 
available. I have hardcoded those which are delivered with MicroStation but 
nothing prevents you from adding new ones. 

In order to circumvent this limitation, you need to provide some help to 
PeekView. If you define a configuration variable PEEKVIEW_ADDITIONAL_VIEW_STYLES 
and put in it a comma-delimited list of names of your custom View Styles, you will 
find them available in PeekView.


Tested on MicroStation 8.11.5.17 thru MicroStation 8.11.9.459 (SS3, Update 2)


===================
LICENSE:
===================

This is a free software.
You are free to use this tool without any obligations to me whatsoever. 

Obviously you are using it entirely on your own risk. All updates to this 
tool will be posted on our web site (http://www.ustation.se) for free download.



I hope that you will find PeekView very useful for your work.
All feedback is highly appreciated and strongly encouraged.


Very best regards,
/Chris Zakrewsky


Team uStation AB
www.ustation.se


S W E D E N