OpWiC

Opera Windows Controller
version 1.07         21 April, 2001
by Josef W. Segur

  Contents:

  1. General Description
  2. Disclaimer
  3. Installation
  4. Background
  5. Usage
    1. General
    2. N   Normal restored window size.
    3. F   Full maximize modes.
    4. H   Floating Hotlist size and placement.
    5. X   Transfer Window size and placement.
    6. P   Popup window special handling.
    7. A   Aggressive modes.
    8. I   Ignore minimized Opera windows.
    9. S   Remove unnecessary horizontal Scrollbars.
    10. R   Run "commandline" if Opera isn't running.
    11. D   Use DDE to tell Opera to open a file or URL.
    12. M   Start OpWiC minimized.
    13. Q   Quit OpWiC when Opera quits.
    14. T   Set timer interval.
    15. L   List Opera windows.
    16. W   OpWiC's display size.
    17. V   Visibility options.
    18. G   GlobalCompact function.
  6. Suggestions & Examples
  7. Contacts
  8. Change History

-- I. General Description --

OpWiC is a program which provides additional control of windows opened by the Opera browser. It is based on Hugh Allen's marvelous OperaMax program, but in addition to the pseudo-maximized mode of OperaMax, windows can be any desired size including fully maximized. Options are available to control the Transfer Window or (floating) Hotlist separately from other windows. And there can be a clickable list of all open windows for quick switching.

OpWiC is a 16 bit Windows program intended for use on either 16 or 32 bit Windows systems. It should work with any version of Opera for Windows.

-- II. Disclaimer --

OpWiC is freeware. If you decide to use the program, the following applies:

This software is offered for use as is, and no warranty is stated or implied. The author is not responsible for any loss of data, damage to hardware nor any resulting loss of time or revenue resulting from the use of this program. Like all software, this program is utilized entirely at the user's risk.

-- III. Installation --

Files in zip:

  OPWIC.EXE    The program.
  OPWIC.TXT    This document in plain text form.
  OPWIC.C      Main source code.
  OPWIC.RC     Resource script source.
  OPWIC.ICO    Icon source.

There's no installation routine. Just put OPWIC.EXE in any directory (folder) you choose. OpWiC doesn't create any additional files nor any registry entries, but you may want to add an OPWIC.CFG file and/or modify some file associations as explained later.

-- IV. Background --

Opera uses Windows' Multiple Document Interface (MDI). Opera 3.21 has obvious performance problems switching between large documents in maximized windows. This is because switching between maximized MDI child windows causes TWO to receive WM_SIZE messages. When Opera reformats their text, any difference in width between the maximized and restored size causes a significant delay. Later versions of Opera have improved, but there may still be a noticeable delay. OperaMax is Hugh Allen's very effective solution; "it sits around, looking at Opera's windows, and resizes them when necessary to fit the available area. Thus you have windows almost as big as if they were maximised, without incurring the performance penalty." (Quote from the OperaMax readme.txt)

OpWiC started as a 16 bit port of OperaMax, then grew with additions and modifications. Without Hugh's work as a base, I probably wouldn't have tackled this project.

-- V. Usage --

-- i. General --

Just run it. Leave it running while you browse with Opera. Whenever you switch to a new window in Opera it will be sized to fit the available area, but then you'll be able to resize it. If you resize Opera, the active window will readjust to fit.

OpWiC's title bar provides 5 possible status indications:

To modify how OpWiC operates, there are codes to use as command line options or in an OPWIC.CFG file. You create an OPWIC.CFG in the same directory as OPWIC.EXE using any text editor such as Notepad, simply putting in the codes either all on one line or on separate lines. When you start OpWiC it reads the OPWIC.CFG codes before the command line codes. There are also default settings which are in place before reading OPWIC.CFG. Each code has a possible entry to restore the default in case you want to undo an OPWIC.CFG code with a command line code.

Each code starts with a letter (case insensitive). Numerical entries are needed for some options, indicated with # characters. These may be multidigit numbers and OpWiC will adjust any out of range values. Numbers which control window size or position are on a scale where 0 is the left or top and 1000 is the right or bottom. Think of them as percent of maximum times ten.

You can put spaces between options, but only the D option with an unquoted name _needs_ a trailing space.

When you start OpWiC it forces a previous instance of OpWiC to shut down. This allows changing options by using different command lines.

Here's a quick reference to the codes:
** Codes Affecting Opera Window Displays **
N#,#Normal restored window size.
F#Full maximize modes.
H#,#,#,#,#Floating Hotlist size and placement.
X#,#,#,#,#Transfer Window size and placement.
P#,#,#,#,#Popup window special handling.
A#Aggressive modes.
IIgnore minimized Opera windows.
S#Remove unnecessary horizontal Scrollbars.
R commandlineRun "commandline" if Opera isn't running.
D#"name"Use DDE to tell Opera to open a file or URL.
** Codes for controlling OpWiC **
MStart OpWiC minimized.
QQuit OpWiC when Opera quits.
T#Set timer interval to # ticks.
L#,#,Face,#,#List Opera windows.
W#,#,#,#OpWiC's display size.
V#Visibility options.
** Other **
G#,#GlobalCompact Function.

Control code details:

-- ii. N#,# --

Normal restored window size horizontal,vertical (default N1000,1000). Range 100-1100,10-1100. If you use a number greater than 1000, OpWiC doesn't adjust window position for that axis. N- may be used if you want to keep OpWiC from changing the size of restored browse windows.

The N#,# code may be used instead of Opera's NewWinSize opera.ini setting. Like that setting, it doesn't specify the position for new windows, but it will adjust the position if needed to keep all of the window within the MDI frame when you use a width or height less than 1001.

-- iii. F# --

The F# codes are for those who prefer to browse with a single fully maximized window.

F0=none(default).

F1 just maximizes the first window then does nothing unless you close all windows and again start with a first window.

F2 does a maximize each time you switch to a different window.

F3 and F4 are like F1 and F2, but when they maximize a window they also set it so a restore will go to the N#,# size.

F5 and F6 are like F1 and F2, but make pseudo-maximized windows with the titlebar hidden (this doesn't work with Opera 2.12 or 3.21). These are intended for those running Opera in a full-screen setup, but can be used by anyone who can do without the titlebar information. (Note that OpWiC's window list can be used to show the window title, and Alt+dash[minus sign] brings up an MDI document window's system menu.)

F7 through F10 keep a count of windows, and maximize whenever that count changes to one. (If you use the I code to ignore minimized windows, they aren't counted.) Each maximize also sets the restored size specified by the N code. The count is also used to autotile windows with F8 (horizontal) or F9 (vertical); tiling is done whenever the size of the MDI frame changes or the count changes and is greater than one (but is inhibited if the Shift and Ctrl keys are down for new windows in the background). F7 with Opera's autotile setting is similar to F9, but F9 will retile when the docked Hotlist is displayed or hidden, and doesn't prohibit opening windows in the background.

F10 also does not count the Transfer Window if an X code is controlling it, or the floating Hotlist if an H code is controlling it. When there's just one other window, it maximizes each time you activate that window rather than just when the count changes.

Notes:

F2, F4, or F6 will maximize popup windows, which could be a little confusing if you weren't expecting it.
The original delay problem when switching between maximized windows showing large documents seems to be mostly Opera redoing the word wrap if the restored width differs from the maximized width. F4 with 1000 for the first # of the N code (width) gives fully maximized windows which will switch relatively quickly. F6 involves no window mode change or resizing, so provides the same quickness as OperaMax.
F1 and F2 effectively include the N- code to inhibit adjusting restored windows. With N-, F3 and F5 become identical to F1, F4 and F6 become identical to F2.

-- iv. H#,#,#,#,# --

Hotlist (floating) left,top,right,bottom,mode. H with no numbers gives 0,0,250,1000,1. Mode 3 forces size and position continuously, mode 2 allows dragging the right side only, mode 1 allows any adjustment after OpWiC sizes it at activation. Use H- to restore the default 'off' state with the Hotlist window being treated like other windows.

The H code makes the floating Hotlist a special case with defined size and placement. Switching to that window will size and position it as specified and display it on top of any other windows. Those other windows will be forced to their 'restored' sizes. The H code doesn't have any effect on pre-3.0 Opera versions (or when the Hotlist is docked).

-- v. X#,#,#,#,# --

Transfer Window (Opera 3.5+) left,top,right,bottom,mode. X with no numbers gives 0,0,1000,125,1. Mode 3 forces size and position continuously, mode 2 allows dragging the bottom only, mode 1 allows any adjustment after OpWiC sizes it at activation. Use X- to restore the default 'off' state with the Transfer Window being treated like other windows.

The X code makes the Transfer Window a special case with defined size and placement. Switching to that window will size and position it as specified and display it on top of any other windows. Those other windows will be forced to their 'restored' sizes. The X code doesn't have any effect on pre-3.5 Opera versions.

-- vi. P#,#,#,#,# --

Popup window mode,delay,width,height,start. This attempts to detect popup windows and not handle them like normal windows. P0 is the default allowing popups to be treated like a normal window (i.e. resized by N or F codes). P1 simply leaves them at the size given by the popup code, P2 increases the window size once so the display area is the size of the original overall size. P3 or P4 normally just close popup windows, but they add a 'Kill Popups' item to the system menu which can be unchecked to allow popups to be shown. When that's unchecked, P3 acts like P1 and P4 acts like P2.

OpWiC defines a popup as any window which Opera resizes before expiration of the delay controlled by the second #, a multiplier for the T# value which controls how often OpWiC checks windows. The # can be anything from 0 to 50. A setting of 0 means that when OpWiC first sees a new window it's immediately classified as a normal window if it's normal size, or as a popup if either it's width or height isn't normal. A setting of 1 means that a window won't be classified as normal until it's seen the second time still at normal size. (Exceptions: 1. Any window first seen maximized is immediately classified as normal. 2. The floating Hotlist and the MDI Transfer windows are always classified normal. 3. A window which doesn't get the focus before the delay expires is classified normal.)

Note that Opera will only create a new window for a popup and resize it if the 'Allow Window Create From Documents' box on Preferences | Multimedia is checked. Unchecking that box will mean OpWiC can't recognize any popup.

The 'normal size' is controlled by the third and fourth #'s (width,height). If you're using a specific NewWinSize setting in opera.ini, you just copy those settings. If you're using Windows defaults either via a '-1' parameter in NewWinSize or by not having a NewWinSize, put 0(s) in P's corresponding parameter(s). For those 0's, OpWiC calculates the windows default value based on the MDI frame size and your system settings for Titlebar height and border width. The calculation is based on what my Win95a sytem does; I hope Microsoft hasn't used a different algorithm for other Windows versions.

The final # is a count of windows to be automatically classified as normal at startup of either OpWiC or Opera. The main purpose is to keep windows launched from a 'Saved Window Settings' file from being classified as popups, which they otherwise would be unless you were careful to save them at 'normal size'.

There's no OpWiC setting to keep new windows created with Opera's 'Automatic Window Tile' from being classified as popups. Avoid it unless you _want_ to make a window OpWiC won't mess with.

A list is maintained to keep track of window classification and status. For simplicity it's a fixed size which will allow tracking 127 windows. In the unlikely event you have more than that open the popup code will stop doing anything until you close enough to get back below 128. (Hint: if you want to test this, turn off the Progress bars.) If you restart OpWiC, the list is passed from the instance being shut down to the new instance. If the list isn't empty, then the final # isn't used to automatically classify windows normal.

-- vii. A# --

Aggressive modes. For most settings, OpWiC's default is to only size a window when it becomes the active window, allowing you to resize it after that. A0=default, A1=act on all windows when switching OpWiC from 'paused' to active state, A2=act on all windows every time, A3=act on all restored windows every time, but allow the active window to be maximized.

For the F8 and F9 autotiling modes, the default is to retile when the MDI frame changes size or the number of windows changes. A2 and A3 make the retile continuous as expected. There's a side effect that a switch to a different window automatically places it at the top left of the MDI frame. It's slightly disconcerting to click on a window and have it move out from under the cursor, but rather nice when switching windows from the keyboard not having to shift your eyes to another part of the screen. These combinations also inhibit the H and X codes to avoid a rapid switching between tiled and specified size of the floating Hotlist or Transfer Window.

The A2 code with no other sizing options makes OpWiC like OperaMax; you can't switch out of pseudo-maximized mode without pausing. F4 combined with A2 similarly forces fully maximized windows.

-- viii. I --

Ignore minimized Opera windows (I- for default 'off' state).

-- ix. S# --

Remove unnecessary horizontal scrollbars. S1 for fully maximized windows only, Opera 32 bit. S2 for any size window, 32 bit. S3 and S4 are the same as S1 and S2, but for 16 bit Opera. (default S0, no scrollbar control)

The S# codes take effect only after Opera has completed formatting a page. If the progress dialog is enabled, OpWiC waits for the window history ComboBox to reappear. In any case, it waits until the vertical scrollrange is stable. There may be a significant delay when viewing large documents, but the display is ugly if OpWiC tries to kill the scrollbar earlier. Note: The different parameters for 32 and 16 bit Opera are due to differences in the way Opera sets the scrollbars. I've tested with 32 bit Opera 2.12, 3.21, 3.51, and 3.60; and 16 bit Opera 3.51 and 3.60.

-- x. R commandline --

Commandline is executed if Opera isn't running. Give the full pathname of Opera on your system plus any Opera command line arguments. On 32 bit systems, it's safest to use the short version of the pathname (i.e. use RC:\Progra~1\Opera\opera.exe). On my Win95a system I can use the ...\Program Files\... version if I enclose it in double quotes, but a user has reported that only the short version without double quotes works on NT4.

Note that this option must be the last on the line. Everything after is arguments to Opera. In an OPWIC.CFG the commandline is terminated at an end of line, but no codes after that will be recognized. (R- gives the default 'no commandline', but still must be the last option).

The R option will actually execute any program, but is meant to start Opera if it isn't already running. If you need a long Opera commandline I suggest putting it in OPWIC.CFG, since Windows limits the total length of the arguments to OpWiC in a commandline to 127 characters.

If Windows indicates that execution failed, a message box is displayed with the title 'OpWiC: can't execute', and the commandline as the text of the message.

-- xi. D#"name" --

Use DDE to tell Opera to open a file (full pathname) or URL. D1 and D3 cause Opera to open a new window, D2 and D4 use the last active non-minimized browse window. D1 and D2 cause Opera to come to the front, D3 and D4 don't. This works even if Opera is already running. (D0 to restore default no DDE) For backward compatibility, D"name" is the same as D1"name" and D- is the same as D0.

When OpWiC is starting Opera with an R option, there's a short delay so the window opened for the D option should end up on top of any other Opera windows. The D#"name" form can be replaced with just D#name if the name doesn't contain any spaces and you do put a space after the end of the name. The D codes are particularly useful for setting up an OpWiC plus Opera configuration as the default browser for files or protocols, see the examples section.

-- xii. M --

Start OpWiC minimized (M- for default normal window).

-- xiii. Q --

Quit OpWiC when Opera quits (Q- for default no quit).

-- xiv. T# --

Set timer interval to # ticks (default is 6). There are 18.2 ticks in a second, # may be set to anything in the range 1 to 59.

The T# code controls how often OpWiC checks to see if there's a window which needs to be resized. The default T6 checks about 3 (18.2 / 6) times a second and T1 would check 18 times a second. Each check of course uses some CPU time.

-- xv. L#,#,Face,#,# --

List Opera windows. L0=none(default).

The L#,#,Face,#,# codes provide a clickable listing of Opera window titles. Titles longer than 70 characters are truncated and shown with two trailing dots. You may have to resize OpWiC vertically to show the list (the W code includes control of this). The list has both vertical and horizontal scrollbars. Click a line in the list or shift the highlite to a line and press the 'Enter' key to switch Opera to that window.

The first # is a multiplier for the T value which controls how often the list updates; if you're using the default T6 and add an L3, the effective value for updating the list is 18, or about once a second.

The second # for L controls the sort order and highlighted line for the list:
- If 0 or 3, the list is presented just as Windows delivers it in Z order where the active window is at the top. If you use Opera's 1 or 2 key while viewing the list, you'll see that either the top window is moved to the bottom causing the previous second window to become active, or the bottom window is moved to the top. Creating a new Opera window with Shift+Click adds it at the top. Creating a new window in the background with Shift+Ctrl+Click adds it immediately below the top.
- If 1 or 4, the listbox sorts alphabetically by title. Duplicate titles and changing titles as you browse to a new page make this somewhat less than ideal.
- If 2 or 5, OpWiC inserts the titles in window handle order, and the listbox doesn't sort. Since the window handle is unchanging from creation to destruction of a window, the list order doesn't change. But a new window may appear anyplace in the list since window handles are not necessarily created in order.
- If 0, 1, or 2, the highlight is positionally sticky; if you've moved it to the third line of the list it'll stay there until you move it again.
- If 3, 4, or 5, the highlight moves to indicate the active Opera window, even when you switch windows in Opera. To allow keyboard users to still be able to move the highlight the automatic move to the active window only takes place immediately after a window switch or when the list order changes. This isn't perfect: navigating the list while the active page is still loading could be interrupted by a popup or a redirect.

The L parameters Face,#,# control the font used in the window list. 'Face' is the name as usually shown in a font selection dialog, the first # is point size, and the second is font weight, which can range from 100 to 900. 400 is what a font dialog sets for 'regular' fonts, and 700 for 'bold' fonts. TrueType fonts will react to the full range, at least on Win95. (Note: if you don't add these parameters to the L option, the list will use the default system font.)

-- xvi. W#,#,#,# --

OpWiC's initial display left,top,width,height. (default W500,0,300,0 = origin at center top of screen, 30% of your screen width, minimal height) Height values 1-32 are height mode controls which automatically hide the list when another window is active (see below for more explanation), other values are scaled initial height. Height controls are only useful with the window list.

The final # for W#,#,#,# is used to control the height of the list. If that's 0 or greater than 32, it just sets the initial height scaled to screen height. If that's in the 1 to 32 range an autohide mode is activated so the list is only shown when OpWiC is the active window. 8 modes are implemented: Odd modes 1, 3, 5, and 7 initially show one line and remember any height change you make by dragging. Modes 2, 4, 6, and 8 automatically size the list to show all windows if possible. Modes 3, 4, 7, and 8 activate Opera when a window is selected, thereby deactivating OpWiC so the list immediately autohides. Modes 5, 6, 7, and 8 are supposed to activate OpWiC automatically when you move the mouse cursor over the title bar, but sometimes don't. It seems to work reliably if the previously active window belongs to a 16 bit program, but less so if a 32 bit program was active (7 and 8 seem to work correctly with 32 bit Opera after the first window switch from the list). The fallback is just to click the title bar as you would with modes 1 through 4. Here's a matrix of the modes:

 1  2  3  4  5  6  7  8
 X     X     X     X        Manual height adjustment
    X     X     X     X     Height from number of windows
       X  X        X  X     Switch to Opera on window select
             X  X  X  X     Auto Activate OpWiC on mouse over

-- xvii. V# --

Visibility of OpWiC. V0=always on top (default), V1=normal window which can be covered by other windows, V2=hidden, V3 and V4 are hidden when first launched or when replacing a visible OpWiC window, but are visible when replacing a hidden OpWiC window. When visible, V3 is always on top, V4 is a normal window.

When OpWiC is hidden by V2, V3, or V4 it can be shut down by the Q option, by the task list (Ctrl+Alt+Del in Win95), by shutting down Windows, or by starting a visible version (anything other than V2) then shutting down normally. Starting a visible version is also useful if you want to pause OpWiC or look at a windows list. The alternating hidden/visible action of V3 and V4 is meant to make this reasonably easy.

-- xviii. G#,# --

This is a feature for users on 16 bit Windows. All it does is perform a GlobalCompact function. The first # controls when the function is performed. It may be a period in minutes between automatic execution of the function, or it may be an asterisk to put a 'GlobalCompact' item on the system menu so you can click when you want to do the function. The second # is the amount of memory to free in Megabytes. 0 for the first # will inhibit the function, the default case. 0 or no entry for the second # will try to free 14 Megabytes.

For 16 bit Windows, the function is described as:

The GlobalCompact function rearranges memory currently allocated to the global heap so that the specified amount of memory is free. If the function cannot free the requested amount of memory, it frees as much as possible.

For 32 bit Windows, the function is described as:

The GlobalCompact function is obsolete. This function is provided only for compatibility with 16-bit versions of Windows. It has no meaning in the 32-bit environment.

As expected from that, there seems to be no effect on my Win95a system.

-- VI. Suggestions & Examples --

Notes:

I don't have a Win3.1 or Win NT testbed, so this is all based on operating under Win95.
In all examples you may need to adjust paths.

I suggest putting the options you usually want in OPWIC.CFG and using the command line only to add or modify settings.

Since OpWiC only reads the OPWIC.CFG file and never writes to it, you can leave the file open in your text editor while you're trying out options. Just save the file without closing it, then restart OpWiC to see the effect.

** Example 1: OperaMax emulation with file list. **

OPWIC.CFG:
-------------------
a2
i
t2
q
L9,1
rC:\Progra~1\Opera\opera.exe
-------------------

Shortcut Target:

"C:\internet\utils\opwic.exe"

 

** Example 2: OpWiC plus Opera as default browser for HTML files. **

OPWIC.CFG:
-------------------
f4
a1
L3,0
rC:\Progra~1\Opera\opera.exe /nowin
-------------------

From the View menu of Windows Explorer or My Computer select Options..., then the File Types tab. Find and select the type which applies for .htm and .html extensions ('HTML Document' on my system), then click the Edit.. button. Click the New.. button. In the New Action dialog, name the action 'OpWiC open', then in 'Application used to perform action' put:

C:\internet\utils\opwic.exe D1"%1"

Click OK for the New Action.
Back in the Edit File Type dialog, click the 'OpWiC open' action to highlite it, then the 'Set Default' button and the OK button, then close the Options dialog.

After this, double-clicking an html file will launch OpWiC and Opera and display the file fully maximized. Double-clicking another will create a new fully maximized Opera window to show it. If you open several, resizing OpWiC to show the list will provide that additional method to switch between them. Alternatively, you could use the D2 code in place of D1 to have the new document displayed in the same window, or if you normally want to click several before switching to Opera to see them you might prefer D3 or D4.

Since this just adds a new action, you can easily switch back to the previous default action using the 'Set Default' button on the Edit File Type dialog.

A similar procedure works for any file type or protocol which Opera can handle. For the protocols which may be launched by clicking a link in another application, you'll probably need to edit the 'open' action rather than adding a new action.

** Example 3: My configuration **

I run Win95 on a Pentium 200 MMX system with a 17 inch monitor at 1152 x 864 resolution. I prefer doing all web browsing with a single maximized Opera window, but I keep the titlebar, menu, toolbar+status, and progress bar visible. Opera itself isn't quite maximized, there's a little desktop space to its right and bottom where I can click an edge of Columbine Bookmark Merge or some other net apps I may also have running. My Internet connection is dial-up with at best a 28800 bps rate.

OPWIC.CFG:
-------------------
f3A1
n1000,865
x0,0,1000,313,2
s2
L3,0,Arial Narrow,10,800
w500,0,333,8
h0,0,275,1000,2
i
RC:\INTERNET\OPERA36\OPERA.EXE /e
-------------------

The f3 code gives me an initial window that's maximized and the n height value makes it restore to less than the maximum restored height by just enough to let the top part of the Transfer Window show. The A1 is added so that if I somehow end up viewing a new window or adjust the existing window, I can right-click OpWiC twice to fix the window's restored size.

The x values set the Transfer Window size as I like it; full width with just enough height to show progress for two simultaneous downloads. I determined the 313 bottom setting by enabling 'Show Window Size' on Opera's Document Window preferences, then using a browse window to measure the overall height (753), the Transfer Window height (236), and the browse window height (651) when it was set to reveal just the top progress area of the Transfer Window. Then 236/753 = .313 (and 651/753 = .865 to get the n height value).

s2 removes the browse window horizontal scrollbar if appropriate even when the window is restored, since I'm trying to keep it useful for browsing in both states.

The L and W codes enable the Opera window list though I seldom need it. The W positioning puts the OpWiC title bar over a generally unused part of Opera's title bar so I'm not losing any useful screen space. The H and I codes are also seldom useful.

The R code runs Opera 3.6 32 bit. If I want any of the other five versions of Opera I currently have installed, I just start Opera before OpWiC. The /e at the end is only there because Opera Software's default browser configurations always include it. I don't think it does anything here.

-- VII. Contacts --

Hugh Allen's OperaMax page: http://members.xoom.com/hfa/opera/operamax.html

Me: Josef W. Segur (Joe)

My email: jsegur@westelcom.com

My homepage: http://www.westelcom.com/users/jsegur/

The latest version of OpWiC will always be available for download at my homepage.

-- VIII. Change History --

***************************************
**** OpWiC 1.07            21 April 2001 ****

Bugfix: The delay before requesting a page by the D option wasn't working.

Bugfix: The floating Hotlist window or the MDI Transfer window was being treated as a popup by the P code if an H or X option wasn't in use. Added code so those windows will always be treated as normal windows.

Change: For windows opened by Ctrl+Shift+Click from a maximized window, the modified MDI logic added in Opera 5.1x makes the background window pseudo-maximized. That resize triggered OpWiC's Popup detection. Added code so the Popup detection only applies to windows which become active during the delay period.

***************************************
**** OpWiC 1.06         27 December 1999 ****

Bugs fixed: Using OpWiC with a window list, the intial list couldn't be navigated with the keyboard, and didn't have a vertical scrollbar when needed.

Added option to have window list highlight follow active window, controlled by variants of the second # for the L code.

Shifted window list right to provide better separation of first letters in titles from the left border.

The window list horizontal scrollbar is now set for the longest title in the list rather than the longest possible title.

***************************************
**** OpWiC 1.05          8 November 1999 ****

Added F10 mode, maximize whenever there's only one window, not counting Transfer Window or floating Hotlist when they're controlled by X or H.

By request, restored G code for GlobalCompact with a variant so it can be triggered from the menu.

Revised R code documentation to include limitations with long path names on 32 bit systems and some other detail.

***************************************
**** OpWiC 1.04          21 October 1999 ****

Revised P code, added a menu item to inhibit variants which close popups.

Removed experimental G code.

***************************************
**** OpWiC 1.03        28 September 1999 ***

Added P code for special handling of popup windows.

Added G code for experimental Global memory compaction.

***************************************
**** OpWiC 1.02        5 September 1999 ****

Inhibited the initial automatic window list dropdown when starting OpWiC to open a document by DDE.

Added F7, F8, and F9 modes, maximize whenever there's only one window. F8 does horizontal autotile when there's more than one, F9 vertical autotile.

Attempted to improve the documentation, particularly the Usage section. Comments and suggestions are welcome.

***************************************
***** OpWiC 1.01          25 August 1999 *****

Bugfix: The X and H codes weren't positioning the top left corner of the Transfer Window or floating Hotlist.

The S code horizontal scroll removal wasn't effective when the vertical scroll was already at the bottom of a document; Opera didn't want to repaint. Added a simulated click on the vertical scroll thumb to force the repaint.

Added N- special case to inhibit sizing of restored windows in case someone wants to use other OpWiC features without messing with window sizes.

Added A3 code which continuously resizes windows when the active window is restored, but allows maximizing the active window.

Expanded the D code to four variants to allow DDE opening of documents either in an existing or new window, and either forcing Opera to the foreground or not.

***************************************
***** OpWiC 1.00           5 August 1999 *****

Release version.

No version number in titlebar so status can be seen with narrower display.

***************************************
*** OpWiC 1.0 Beta E        1 August 1999 ***

Fixed bug with M code prohibiting hiding with V codes.

**************************************
*** OpWiC 1.0 Beta D        31 July 1999 ***

Added V codes for OpWiC visibility control.

Added list insertion code so window list in window handle order no longer needs the handle code prefix.

Enabled maximize/restore for OpWiC, mostly to allow recovery if a 3rd party program maximized it.

Added F5 and F6 pseudo-fully maximized modes.

Fixed restore from minimize to resize OpWiC for even autohide height modes.

**************************************
*** OpWiC 1.0 Beta C        25 July 1999 ***

Fixed bug in detecting absence of window history ComboBox for S options.

**************************************
*** OpWiC 1.0 Beta B        23 July 1999 ***

Mouse selection in window list changed from double-click to single.

Added S options for removal of unnecessary horizontal scollbars.

Added a fifth parameter to H and X options for more complete control.

Added three parameters to L option for list font control.

Rewrote W option to provide full placement and size control for the OpWiC window, including autohide modes for the window list.

N option parameter range increased to 1100 to allow forcing left, right, or bottom of restored window to be clipped.

**************************************
*** OpWiC 1.0 Beta A        14 July 1999 ***

Initial public version.

- End -