diff --git a/Chapters/ch02-a-side-toolbox.xml b/Chapters/ch02-a-side-toolbox.xml index 31e7a50..c08a397 100644 --- a/Chapters/ch02-a-side-toolbox.xml +++ b/Chapters/ch02-a-side-toolbox.xml @@ -105,13 +105,16 @@ CASE reason% OF ENDCASE ENDPROC -

Each of these event-handling procedures will need to check each incoming event, to see which window it applies to. If it’s the handle of the main window, then – in addition to calling the appropriate Wimp SWI as before – any additional work required to handle the pane will need to be performed as well.

+

Before either of these two new procedures will do anything, they will check the handle of the window to which the event applies. If it’s the handle of the main window, then they will need to do the work required to handle the pane as well; for any other window, they can simply call the appropriate Wimp SWI as before.

-

In the case of PROCopen_window_request(), we will change the code so that for any Open_Window_Request events relating to the main window, a new PROChandle_pane_windows() procedure will be called after the event has been passed to the Wimp_OpenWindow SWI. This code to do this can be seen in ; PROChandle_pane_windows() will look after moving the toolbox pane for us, but we’ll worry about what it looks like later on.

+

In the case of PROCopen_window_request(), we will change the code so that any Open_Window_Request events relating to the main window are passed on again to another new procedure: PROChandle_pane_windows(). Events for other windows will simply be passed on to the Wimp_OpenWindow SWI. This code to do this can be seen in ; We’ll worry about what PROChandle_pane_windows() looks like later on.

DEF PROCopen_window_request(b%) -SYS "Wimp_OpenWindow",,b% -IF !b% = MainWindow% THEN PROChandle_pane_windows(b%) +IF !b% = MainWindow% THEN + PROChandle_pane_windows(b%) +ELSE + SYS "Wimp_OpenWindow",,b% +ENDIF ENDPROC

Of course, if the main window and its toolbox should be acting as one then, in addition to moving when the main window moves, the pane should be closed when the main window closes. We can look after this in a very similar way with our new PROCclose_window_request() procedure, seen in . If the window being closed is the main window, then the toolbox window will be closed first; either way, the window referenced by the event is closed afterwards.

@@ -130,10 +133,9 @@ ENDPROC REM Open the window at the top of the window stack. q%!28 = -1 : REM Window to open behind (-1 is top of stack) - SYS "Wimp_OpenWindow",,q% -

This is just another call to Wimp_OpenWindow, so we can simply follow it with a call to PROChandle_pane_windows() in the same was as we have done in the Open_Window_Request event handler. This means that our new PROCopen_main_window() will look as seen in .

+

This is just another call to Wimp_OpenWindow, so we can simply replace it with a call to PROChandle_pane_windows() in the same way as we have done in the Open_Window_Request event handler. This means that our new PROCopen_main_window() will look as seen in .

DEF PROCopen_main_window LOCAL screen_width%, screen_height%, window_size% @@ -175,8 +177,6 @@ ENDIF REM Open the window at the top of the window stack. q%!28 = -1 : REM Window to open behind (-1 is top of stack) - -SYS "Wimp_OpenWindow",,q% PROChandle_pane_windows(q%) ENDPROC @@ -187,7 +187,7 @@ ENDPROC
Setting the visible area -

Now that we have ensured that our new PROChandle_pane_windows() procedure will be called following every Wimp_OpenWindow call which applies to the main window, all that remains to be done is to work out how to adjust the toolbox pane so that the two windows appear to be joined together on screen. To do this, we will need to know where the main window ended up on screen once it was opened, and fortunately this information is already waiting for us.

+

Now that we have ensured that our new PROChandle_pane_windows() procedure will be called instead of Wimp_OpenWindow for every event which applies to the main window, all that remains to be done is to work out how to adjust the toolbox pane so that the two windows appear to be joined together on screen. To do this, we will need to know where the main window ended up on screen once it was opened, and fortunately this information is already waiting for us.

Since the arrival of the Nested Wimp with RISC OS 4.02, the Wimp_OpenWindow SWI has been documented as returning with the contents of the window state block, passed to it in R1, updated to reflect where the window was actually opened. In the Nested Window Manager Functional Specification, Acorn wrote that “since RISC OS 2 (and possibly even earlier), Wimp_OpenWindow has had undocumented return conditions: values at R1+4 to R1+24 are updated to represent the actual parameters of the opened window after valid ranges have been taken into account, and the window has been forced on-screen (if applicable).”

@@ -205,7 +205,7 @@ SYS "Wimp_GetWindowState",,toolbox% box_width% = toolbox%!12 - toolbox%!4 : REM Visible Area X1 - X0 box_height% = toolbox%!16 - toolbox%!8 : REM Visible Area Y1 - Y0 -

As already noted, we know where the main window has ended up on screen. We also know the relationship that we want to have between the main window and its pane, as shown in . We can therefore update the pane’s window state block so that it is in the correct position relative to the main window, then call Wimp_OpenWindow to open it on the screen.

+

As already noted, we know where the main window has ended up on screen. We also know the relationship that we want to have between the main window and its pane, as shown in . We can therefore update the pane’s window state block so that it is in the correct position relative to the main window, update the main window’s position if necessary, then call Wimp_OpenWindow for both windows in turn.

@@ -234,15 +234,21 @@ toolbox%!4 = main%!4 - box_width% : REM Visible Area X0

In a similar way, if a window with its pane flag set gains the caret, then the Wimp will give input focus to (and set the ‘window has input focus’ flag at bit 20 of the window flags for) the first window below it in the stack which is not a pane. Finally, when working out which bits of a window might need redrawing following a re-size, the Wimp will treat any panes immediately above it as being transparent – on the basis that the application may be about to move them anyway.

-

Keeping the Z order of the windows correct is fairly straight-forward. The window state block for the main window contains the position in the window stack at which it was opened, in terms of the handle of the window that it is positioned beneath at offset 28. Since the toolbox pane should be in front of the main window, we can open it behind the same window that the main window has just been opened behind. This means that it will end up being inserted into the stack between that window and our main window, thereby ending up in front of our main window as required. To achieve this, we copy the window handle from the main window’s block into the pane’s block.

+

Keeping the Z order of the windows correct is fairly straight-forward. The window state block for the main window contains the position in the window stack at which it should be opened, in terms of the handle of the window that it is positioned beneath at offset 28. Since the toolbox pane should be in front of the main window, we can copy this value into the pane’s block so that the pane appears at the correct position in the stack.

-toolbox%!28 = main%!28 +IF main%!28 <> ToolBoxWindow% THEN toolbox%!28 = main%!28 -

The pane is now ready to be opened in its new location, using a call to Wimp_OpenWindow.

+

There’s one exception to this, however. If the Wimp is already asking us to open the main window behind the pane, then both the pane and the main window must already be in the correct positions in the window stack. In this case, there’s no point attempting to open the pane behind itself, so we just leave things as they are. The pane is now ready to be opened in its new location, using a call to Wimp_OpenWindow.

SYS "Wimp_OpenWindow",,toolbox% -

With the pane open in the correct place, there’s nothing else to be done! Putting all of the code above together, PROChandle_pane_windows() will look as shown in .

+

With the pane open in the correct place, all that remains to do is to open the main window. This is done using the block from the Open_Window_Request event almost unchanged: the only thing that we alter is the handle of the window to open behind, which we set to the handle of the pane. This ensures that the pane is always directly in front of the main window.

+ +main%!28 = ToolBoxWindow% + +SYS "Wimp_OpenWindow",,main% + +

Putting all of the code above together, PROChandle_pane_windows() will look as shown in .

DEF PROChandle_pane_windows(main%) LOCAL toolbox%, box_width%, box_height% @@ -271,13 +277,20 @@ toolbox%!8 = main%!16 - box_height% : REM Visible Area Y0 toolbox%!12 = main%!4 : REM Visible Area X1 toolbox%!16 = main%!16 : REM Visible Area Y1 -REM Open the toolbox pane behind the same window that the main window -REM was opened behind. This will place it directly in front of the -REM main window. +REM Unless the main window is to be opened behind the toolbox pane, meaning +REM that the pane must already be in the correct place in the stack, set the +REM pane's Open Behind so that it appears in the stack where the main window +REM is required to go. -toolbox%!28 = main%!28 +IF main%!28 <> ToolBoxWindow% THEN toolbox%!28 = main%!28 SYS "Wimp_OpenWindow",,toolbox% + +REM Set the main window's Open Behind so that it opens behind the pane. + +main%!28 = ToolBoxWindow% + +SYS "Wimp_OpenWindow",,main% ENDPROC

Running our new application should reveal a main window similar to that shown in . If the main window is moved, the pane should remain securely attached at all times.

diff --git a/Chapters/ch03-a-top-toolbar.xml b/Chapters/ch03-a-top-toolbar.xml index a89bfc0..5700d90 100644 --- a/Chapters/ch03-a-top-toolbar.xml +++ b/Chapters/ch03-a-top-toolbar.xml @@ -129,18 +129,26 @@ toolbar%!12 = main%!12 : REM Visible Area X1

Just as with our previous example, the two panes must appear directly in front of the main window in the window stack. The exact order doesn’t matter to the Wimp, so we will choose to put the toolbar in front of the main window, and the toolbox in front of the toolbar. When deciding, it pays to look at positions where the different panes might overlap, and consider which will look best to the user.

-

We will start at the top of the pile of panes and work down towards the main window – so the first thing to open is the toolbox directly behind the window that’s in front of the main window – inserting it in front of the main window, exactly as we did before.

+

We will start at the top of the pile of panes and work down towards the main window – so the first thing to open is the toolbox directly behind the window that’s supposed to be in front of the main window, exactly as we did before.

-toolbox%!28 = main%!28 +IF (main%!28 <> ToolBarWindow%) OR (toolbar%!28 <> ToolBoxWindow%) THEN toolbox%!28 = main%!28 SYS "Wimp_OpenWindow",,toolbox% -

With the toolbox open in the correct place, we can open the toolbar behind it, which will mean that it will end up inserted directly in front of the main window in a similar way.

+

We still need to check to see if the windows are already in their correct places in the stack, but with two panes to consider we must now check both whether the main window is behind the toolbar, and whether the toolbar is behind the toolbox. If either isn’t in the correct place, then we will need to re-position the toolbox – as the top window of the pile – and work down from that.

+ +

With the toolbox open, we can open the toolbar behind it...

toolbar%!28 = ToolBoxWindow% SYS "Wimp_OpenWindow",,toolbar% +

...and then, at the bottom of our little pile of windows, comes the main window itself.

+ +main%!28 = ToolBarWindow% + +SYS "Wimp_OpenWindow",,main% +

Putting all of the new code together with the old, PROChandle_pane_windows() now looks as shown in .

DEF PROChandle_pane_windows(main%) @@ -200,11 +208,12 @@ ENDCASE toolbox%!8 = main%!16 - box_height% : REM Visible Area Y0 toolbox%!16 = main%!16 : REM Visible Area Y1 -REM Open the toolbox pane behind the same window that the main window -REM was opened behind. This will place it directly in front of the -REM main window. +REM Unless the main window is to be opened behind the toolbar pane, and the +REM toolbar pane is already behind the toolbox pane, meaning that all three +REM windows must already be in the correct place in the stack, set the toolbox's +REM Open Behind so that it appears in the stack where the main window is to go. -toolbox%!28 = main%!28 +IF (main%!28 <> ToolBarWindow%) OR (toolbar%!28 <> ToolBoxWindow%) THEN toolbox%!28 = main%!28 SYS "Wimp_OpenWindow",,toolbox% @@ -213,6 +222,12 @@ REM Set the toolbar window's Open Behind so that it opens behind the toolbox. toolbar%!28 = ToolBoxWindow% SYS "Wimp_OpenWindow",,toolbar% + +REM Set the main window's Open Behind so that it opens behind the toolbar. + +main%!28 = ToolBarWindow% + +SYS "Wimp_OpenWindow",,main% ENDPROC

Running the updated application should reveal a new toolbar attached to the top of the main window, as shown in . If resized or moved around the screen, both the toolbar and the original toolbox should move and adjust their sizes together. Note that if the caret is placed in the toolbar’s writeable icon, the main window is shown as having input focus: this is a result of the panes having their ‘window is a pane’ flags set.

diff --git a/Chapters/ch04-column-headings.xml b/Chapters/ch04-column-headings.xml index 39bdbbf..4dbeea7 100644 --- a/Chapters/ch04-column-headings.xml +++ b/Chapters/ch04-column-headings.xml @@ -126,13 +126,20 @@ toolbar%!8 = main%!16 - bar_height% : REM Visible Area Y0 toolbar%!12 = main%!12 : REM Visible Area X1 toolbar%!16 = main%!16 : REM Visible Area Y1 -REM Open the toolbar pane behind the same window that the main window -REM was opened behind. This will place it directly in front of the -REM main window. +REM Unless the main window is to be opened behind the toolbar pane, and the +REM toolbar pane is already behind the toolbox pane, meaning that all three +REM windows must already be in the correct place in the stack, set the toolbox's +REM Open Behind so that it appears in the stack where the main window is to go. -toolbar%!28 = main%!28 +IF main%!28 <> ToolBarWindow% THEN toolbar%!28 = main%!28 SYS "Wimp_OpenWindow",,toolbar% + +REM Set the main window's Open Behind so that it opens behind the toolbar. + +main%!28 = ToolBarWindow% + +SYS "Wimp_OpenWindow",,main% ENDPROC

The code here should be comparable to that found in – a single pane, but attached in a toolbar style instead of a toolbox. When run, the window should appear as seen in , with the new column headings lining up with the coloured grid squares below.

@@ -194,13 +201,20 @@ REM Align the toolbar pane's scroll offset with the main window. toolbar%!20 = main%!20 : REM X Scroll Offset -REM Open the toolbar pane behind the same window that the main window -REM was opened behind. This will place it directly in front of the -REM main window. +REM Unless the main window is to be opened behind the toolbar pane, and the +REM toolbar pane is already behind the toolbox pane, meaning that all three +REM windows must already be in the correct place in the stack, set the toolbox's +REM Open Behind so that it appears in the stack where the main window is to go. -toolbar%!28 = main%!28 +IF main%!28 <> ToolBarWindow% THEN toolbar%!28 = main%!28 SYS "Wimp_OpenWindow",,toolbar% + +REM Set the main window's Open Behind so that it opens behind the toolbar. + +main%!28 = ToolBarWindow% + +SYS "Wimp_OpenWindow",,main% ENDPROC

Loading this version of the application, we can now scroll around the main window’s work area with the column headings in the toolbar remaining in step as seen in .

diff --git a/Downloads/Chapter01/ExampleApp/!PaneDemo/!Boot,feb b/Downloads/Chapter01/ExampleApp/!PaneDemo/!Boot,feb index 05fdbf5..1835fe7 100644 --- a/Downloads/Chapter01/ExampleApp/!PaneDemo/!Boot,feb +++ b/Downloads/Chapter01/ExampleApp/!PaneDemo/!Boot,feb @@ -1,6 +1,6 @@ | >!Boot | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter01/ExampleApp/!PaneDemo/!Run,feb b/Downloads/Chapter01/ExampleApp/!PaneDemo/!Run,feb index d4679e1..219f46e 100644 --- a/Downloads/Chapter01/ExampleApp/!PaneDemo/!Run,feb +++ b/Downloads/Chapter01/ExampleApp/!PaneDemo/!Run,feb @@ -1,6 +1,6 @@ | >!Run | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter01/ExampleApp/!PaneDemo/!RunImage,ffb b/Downloads/Chapter01/ExampleApp/!PaneDemo/!RunImage,ffb index b9fb067..9abc06b 100644 Binary files a/Downloads/Chapter01/ExampleApp/!PaneDemo/!RunImage,ffb and b/Downloads/Chapter01/ExampleApp/!PaneDemo/!RunImage,ffb differ diff --git a/Downloads/Chapter02/SideBox1/!PaneDemo/!Boot,feb b/Downloads/Chapter02/SideBox1/!PaneDemo/!Boot,feb index 05fdbf5..1835fe7 100644 --- a/Downloads/Chapter02/SideBox1/!PaneDemo/!Boot,feb +++ b/Downloads/Chapter02/SideBox1/!PaneDemo/!Boot,feb @@ -1,6 +1,6 @@ | >!Boot | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter02/SideBox1/!PaneDemo/!Run,feb b/Downloads/Chapter02/SideBox1/!PaneDemo/!Run,feb index d4679e1..219f46e 100644 --- a/Downloads/Chapter02/SideBox1/!PaneDemo/!Run,feb +++ b/Downloads/Chapter02/SideBox1/!PaneDemo/!Run,feb @@ -1,6 +1,6 @@ | >!Run | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter02/SideBox1/!PaneDemo/!RunImage,ffb b/Downloads/Chapter02/SideBox1/!PaneDemo/!RunImage,ffb index 8873b4d..469f14a 100644 Binary files a/Downloads/Chapter02/SideBox1/!PaneDemo/!RunImage,ffb and b/Downloads/Chapter02/SideBox1/!PaneDemo/!RunImage,ffb differ diff --git a/Downloads/Chapter02/SideBox2/!PaneDemo/!Boot,feb b/Downloads/Chapter02/SideBox2/!PaneDemo/!Boot,feb index 05fdbf5..1835fe7 100644 --- a/Downloads/Chapter02/SideBox2/!PaneDemo/!Boot,feb +++ b/Downloads/Chapter02/SideBox2/!PaneDemo/!Boot,feb @@ -1,6 +1,6 @@ | >!Boot | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter02/SideBox2/!PaneDemo/!Run,feb b/Downloads/Chapter02/SideBox2/!PaneDemo/!Run,feb index d4679e1..219f46e 100644 --- a/Downloads/Chapter02/SideBox2/!PaneDemo/!Run,feb +++ b/Downloads/Chapter02/SideBox2/!PaneDemo/!Run,feb @@ -1,6 +1,6 @@ | >!Run | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter02/SideBox2/!PaneDemo/!RunImage,ffb b/Downloads/Chapter02/SideBox2/!PaneDemo/!RunImage,ffb index d702aea..8c7e157 100644 Binary files a/Downloads/Chapter02/SideBox2/!PaneDemo/!RunImage,ffb and b/Downloads/Chapter02/SideBox2/!PaneDemo/!RunImage,ffb differ diff --git a/Downloads/Chapter03/TopBar1/!PaneDemo/!Boot,feb b/Downloads/Chapter03/TopBar1/!PaneDemo/!Boot,feb index 05fdbf5..1835fe7 100644 --- a/Downloads/Chapter03/TopBar1/!PaneDemo/!Boot,feb +++ b/Downloads/Chapter03/TopBar1/!PaneDemo/!Boot,feb @@ -1,6 +1,6 @@ | >!Boot | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter03/TopBar1/!PaneDemo/!Run,feb b/Downloads/Chapter03/TopBar1/!PaneDemo/!Run,feb index d4679e1..219f46e 100644 --- a/Downloads/Chapter03/TopBar1/!PaneDemo/!Run,feb +++ b/Downloads/Chapter03/TopBar1/!PaneDemo/!Run,feb @@ -1,6 +1,6 @@ | >!Run | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter03/TopBar1/!PaneDemo/!RunImage,ffb b/Downloads/Chapter03/TopBar1/!PaneDemo/!RunImage,ffb index 6df84cb..f9be2a8 100644 Binary files a/Downloads/Chapter03/TopBar1/!PaneDemo/!RunImage,ffb and b/Downloads/Chapter03/TopBar1/!PaneDemo/!RunImage,ffb differ diff --git a/Downloads/Chapter03/TopBar2/!PaneDemo/!Boot,feb b/Downloads/Chapter03/TopBar2/!PaneDemo/!Boot,feb index 05fdbf5..1835fe7 100644 --- a/Downloads/Chapter03/TopBar2/!PaneDemo/!Boot,feb +++ b/Downloads/Chapter03/TopBar2/!PaneDemo/!Boot,feb @@ -1,6 +1,6 @@ | >!Boot | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter03/TopBar2/!PaneDemo/!Run,feb b/Downloads/Chapter03/TopBar2/!PaneDemo/!Run,feb index d4679e1..219f46e 100644 --- a/Downloads/Chapter03/TopBar2/!PaneDemo/!Run,feb +++ b/Downloads/Chapter03/TopBar2/!PaneDemo/!Run,feb @@ -1,6 +1,6 @@ | >!Run | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter03/TopBar2/!PaneDemo/!RunImage,ffb b/Downloads/Chapter03/TopBar2/!PaneDemo/!RunImage,ffb index 5dfae9d..939c33b 100644 Binary files a/Downloads/Chapter03/TopBar2/!PaneDemo/!RunImage,ffb and b/Downloads/Chapter03/TopBar2/!PaneDemo/!RunImage,ffb differ diff --git a/Downloads/Chapter03/TopBar3/!PaneDemo/!Boot,feb b/Downloads/Chapter03/TopBar3/!PaneDemo/!Boot,feb index 05fdbf5..1835fe7 100644 --- a/Downloads/Chapter03/TopBar3/!PaneDemo/!Boot,feb +++ b/Downloads/Chapter03/TopBar3/!PaneDemo/!Boot,feb @@ -1,6 +1,6 @@ | >!Boot | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter03/TopBar3/!PaneDemo/!Run,feb b/Downloads/Chapter03/TopBar3/!PaneDemo/!Run,feb index d4679e1..219f46e 100644 --- a/Downloads/Chapter03/TopBar3/!PaneDemo/!Run,feb +++ b/Downloads/Chapter03/TopBar3/!PaneDemo/!Run,feb @@ -1,6 +1,6 @@ | >!Run | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter03/TopBar3/!PaneDemo/!RunImage,ffb b/Downloads/Chapter03/TopBar3/!PaneDemo/!RunImage,ffb index 772b590..1382a70 100644 Binary files a/Downloads/Chapter03/TopBar3/!PaneDemo/!RunImage,ffb and b/Downloads/Chapter03/TopBar3/!PaneDemo/!RunImage,ffb differ diff --git a/Downloads/Chapter03/TopBar4/!PaneDemo/!Boot,feb b/Downloads/Chapter03/TopBar4/!PaneDemo/!Boot,feb index 05fdbf5..1835fe7 100644 --- a/Downloads/Chapter03/TopBar4/!PaneDemo/!Boot,feb +++ b/Downloads/Chapter03/TopBar4/!PaneDemo/!Boot,feb @@ -1,6 +1,6 @@ | >!Boot | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter03/TopBar4/!PaneDemo/!Run,feb b/Downloads/Chapter03/TopBar4/!PaneDemo/!Run,feb index d4679e1..219f46e 100644 --- a/Downloads/Chapter03/TopBar4/!PaneDemo/!Run,feb +++ b/Downloads/Chapter03/TopBar4/!PaneDemo/!Run,feb @@ -1,6 +1,6 @@ | >!Run | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter03/TopBar4/!PaneDemo/!RunImage,ffb b/Downloads/Chapter03/TopBar4/!PaneDemo/!RunImage,ffb index 56845a3..05fd699 100644 Binary files a/Downloads/Chapter03/TopBar4/!PaneDemo/!RunImage,ffb and b/Downloads/Chapter03/TopBar4/!PaneDemo/!RunImage,ffb differ diff --git a/Downloads/Chapter04/ColHead1/!PaneDemo/!Boot,feb b/Downloads/Chapter04/ColHead1/!PaneDemo/!Boot,feb index 05fdbf5..1835fe7 100644 --- a/Downloads/Chapter04/ColHead1/!PaneDemo/!Boot,feb +++ b/Downloads/Chapter04/ColHead1/!PaneDemo/!Boot,feb @@ -1,6 +1,6 @@ | >!Boot | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter04/ColHead1/!PaneDemo/!Run,feb b/Downloads/Chapter04/ColHead1/!PaneDemo/!Run,feb index d4679e1..219f46e 100644 --- a/Downloads/Chapter04/ColHead1/!PaneDemo/!Run,feb +++ b/Downloads/Chapter04/ColHead1/!PaneDemo/!Run,feb @@ -1,6 +1,6 @@ | >!Run | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter04/ColHead1/!PaneDemo/!RunImage,ffb b/Downloads/Chapter04/ColHead1/!PaneDemo/!RunImage,ffb index c99c849..b5c0808 100644 Binary files a/Downloads/Chapter04/ColHead1/!PaneDemo/!RunImage,ffb and b/Downloads/Chapter04/ColHead1/!PaneDemo/!RunImage,ffb differ diff --git a/Downloads/Chapter04/ColHead2/!PaneDemo/!Boot,feb b/Downloads/Chapter04/ColHead2/!PaneDemo/!Boot,feb index 05fdbf5..1835fe7 100644 --- a/Downloads/Chapter04/ColHead2/!PaneDemo/!Boot,feb +++ b/Downloads/Chapter04/ColHead2/!PaneDemo/!Boot,feb @@ -1,6 +1,6 @@ | >!Boot | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter04/ColHead2/!PaneDemo/!Run,feb b/Downloads/Chapter04/ColHead2/!PaneDemo/!Run,feb index d4679e1..219f46e 100644 --- a/Downloads/Chapter04/ColHead2/!PaneDemo/!Run,feb +++ b/Downloads/Chapter04/ColHead2/!PaneDemo/!Run,feb @@ -1,6 +1,6 @@ | >!Run | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter04/ColHead2/!PaneDemo/!RunImage,ffb b/Downloads/Chapter04/ColHead2/!PaneDemo/!RunImage,ffb index 44a1c15..034b2f3 100644 Binary files a/Downloads/Chapter04/ColHead2/!PaneDemo/!RunImage,ffb and b/Downloads/Chapter04/ColHead2/!PaneDemo/!RunImage,ffb differ diff --git a/Downloads/Chapter05/NestedFixed/!PaneDemo/!Boot,feb b/Downloads/Chapter05/NestedFixed/!PaneDemo/!Boot,feb index 05fdbf5..1835fe7 100644 --- a/Downloads/Chapter05/NestedFixed/!PaneDemo/!Boot,feb +++ b/Downloads/Chapter05/NestedFixed/!PaneDemo/!Boot,feb @@ -1,6 +1,6 @@ | >!Boot | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter05/NestedFixed/!PaneDemo/!Run,feb b/Downloads/Chapter05/NestedFixed/!PaneDemo/!Run,feb index f64a031..a10cc85 100644 --- a/Downloads/Chapter05/NestedFixed/!PaneDemo/!Run,feb +++ b/Downloads/Chapter05/NestedFixed/!PaneDemo/!Run,feb @@ -1,6 +1,6 @@ | >!Run | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter05/NestedFixed/!PaneDemo/!RunImage,ffb b/Downloads/Chapter05/NestedFixed/!PaneDemo/!RunImage,ffb index ce3a1e1..8f3e968 100644 Binary files a/Downloads/Chapter05/NestedFixed/!PaneDemo/!RunImage,ffb and b/Downloads/Chapter05/NestedFixed/!PaneDemo/!RunImage,ffb differ diff --git a/Downloads/Chapter05/NestedScroll/!PaneDemo/!Boot,feb b/Downloads/Chapter05/NestedScroll/!PaneDemo/!Boot,feb index 05fdbf5..1835fe7 100644 --- a/Downloads/Chapter05/NestedScroll/!PaneDemo/!Boot,feb +++ b/Downloads/Chapter05/NestedScroll/!PaneDemo/!Boot,feb @@ -1,6 +1,6 @@ | >!Boot | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter05/NestedScroll/!PaneDemo/!Run,feb b/Downloads/Chapter05/NestedScroll/!PaneDemo/!Run,feb index f64a031..a10cc85 100644 --- a/Downloads/Chapter05/NestedScroll/!PaneDemo/!Run,feb +++ b/Downloads/Chapter05/NestedScroll/!PaneDemo/!Run,feb @@ -1,6 +1,6 @@ | >!Run | -| Copyright 2021, Stephen Fryatt (info@stevefryatt.org.uk) +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) | | This file is part of PaneDemo: | diff --git a/Downloads/Chapter05/NestedScroll/!PaneDemo/!RunImage,ffb b/Downloads/Chapter05/NestedScroll/!PaneDemo/!RunImage,ffb index 1a6089d..a38b032 100644 Binary files a/Downloads/Chapter05/NestedScroll/!PaneDemo/!RunImage,ffb and b/Downloads/Chapter05/NestedScroll/!PaneDemo/!RunImage,ffb differ