Commit 8dfb2d92 authored by Neil Turton's avatar Neil Turton
Browse files

Merged WIMP imported

parent 48557505
hdr/** gitlab-language=armasm linguist-language=armasm linguist-detectable=true
s/** gitlab-language=armasm linguist-language=armasm linguist-detectable=true
*,ffb gitlab-language=bbcbasic linguist-language=bbcbasic linguist-detectable=true
**/c/** gitlab-language=c linguist-language=c linguist-detectable=true
......@@ -22,6 +22,8 @@
# 25-May-94 AMcC Created.
# 18-Oct-94 AMcC Template3D now copied to Resources as 'Templates'
# Now correctly copies Tools3D to Resources:...Tools
# 26-Jun-95 JRH Now copies STB (ie hacked-down) versions of Tools,
# Templates and Sprites. Doesn't copy Sprites22
#
#
......@@ -68,11 +70,12 @@ clean:
resources:
${MKDIR} ${RESDIR}.${COMPONENT}
${CP} Resources.${LOCALE}.Messages ${RESDIR}.${COMPONENT}.Messages ${CPFLAGS}
${CP} Resources.${LOCALE}.Template3D ${RESDIR}.${COMPONENT}.Templates ${CPFLAGS}
${CP} Resources.${LOCALE}.Sprites ${RESDIR}.${COMPONENT}.Sprites ${CPFLAGS}
${CP} Resources.${LOCALE}.Sprites22 ${RESDIR}.${COMPONENT}.Sprites22 ${CPFLAGS}
${CP} Resources.${LOCALE}.Tools3d ${RESDIR}.${COMPONENT}.Tools ${CPFLAGS}
${CP} Resources.${LOCALE}.Messages ${RESDIR}.${COMPONENT}.Messages ${CPFLAGS}
${CP} Resources.${LOCALE}.<Machine>.Templates ${RESDIR}.${COMPONENT}.Templates ${CPFLAGS}
${CP} Resources.${LOCALE}.<Machine>.Sprites ${RESDIR}.${COMPONENT}.Sprites ${CPFLAGS}
-${CP} Resources.${LOCALE}.<Machine>.TileN ${RESDIR}.${COMPONENT}.TileN ${CPFLAGS}
-${CP} Resources.${LOCALE}.<Machine>.TileV ${RESDIR}.${COMPONENT}.TileV ${CPFLAGS}
${CP} Resources.${LOCALE}.<Machine>.Tools ${RESDIR}.${COMPONENT}.Tools ${CPFLAGS}
@echo ${COMPONENT}: resource files copied
${TARGET}: ${SOURCE}
......
BadParent:Window cannot be its own parent
| Copyright 1997 Acorn Computers Ltd
|
| Licensed under the Apache License, Version 2.0 (the "License");
| you may not use this file except in compliance with the License.
| You may obtain a copy of the License at
|
| http://www.apache.org/licenses/LICENSE-2.0
|
| Unless required by applicable law or agreed to in writing, software
| distributed under the License is distributed on an "AS IS" BASIS,
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
| See the License for the specific language governing permissions and
| limitations under the License.
|
Dir <Obey$Dir>
amu_machine export
Notes on Wimp sources
---------------------
At the bottom of the Options file, I've set a few of the options to
the values that are required for me to test the code on my RISC PC -
if you set the switch to false, it'll use the settings that were
present when I received the sources - I don't know if those are the
settings you need for the NC or not.
The debug option is also on, so you may want to turn that off as well.
Apart from that, the only other thing you need to do is to add the
following message token to the Wimp's message file:
BadParent:Sorry, child windows cannot be nested
It's probably not worth integrating my changes with yours just yet,
since I've about to embark on the next phase of development (nested
child windows etc.).
Let me know if you have any problems compiling the Wimp with these
sources.
Summary of test routines
------------------------
The main test program is Test.Nest1, which has a whole bunch of
keyboard shortcuts with which you can insert windows inside each other
in various nefarious ways. The actual keys are listed in the program.
Test.Many is designed to check that braindead panic redraw works with
child windows. This is what happens when the Wimp's rectangle
arithmetic overflows its rectangle list, thus requiring a more direct
approach to redraw the screen (start at the back and redraw everything
in turn, without worrying about which bits overlap).
Note that the Wimp's new redraw algorithm is much more sophisticated
than the old one, as it collects up all Wimp_OpenWindows since the
previous Wimp_Poll and performs them together, which allows it to do
far more block-copies (rather than redraws) when moving pane windows,
and can often move a parent and all its children with a single
block-copy.
Normally the new algorithm makes better use of the rectangle area than
the old one, but since it uses two lists of invalid rectangles, it's
possible that under some circumstances it may perform worse than the
old one, in which case I'd be interested to know about it.
Test.Multi is designed to show off the new multiple-block-copying
stuff, in that a series of child windows is being moved in a circle.
Where each rectangle overlaps the one after it, the old Wimp has no
choice but to redraw all but the first one, whereas the new code is
able to block-copy all but one of the rectangles.
No preview for this file type
Test plan
=========
Opening child windows:
Opening inside a parent
Altering stack depth within the parent
Moving and overlapping within the parent, and with the parent's siblings
Moving to a different parent, or to the top level
Moving, scrolling and resizing a child window
Closing a child window
Opening several child windows at once
Deleting a child window
Opening the parent:
Check alignment options of the children
Combinations of children that are/n't linked to the work area
Moving, scrolling and resizing the parent
Make sure the correct optimizations are carried out
Opening more than one parent window at once
Closing and reopening a parent with children
Deleting a parent window
Braindead redraw:
Running out of rectangles at all possible points in the process
Intelligent redraw of whole screen
Braindead redraw if intelligent one fails (make sure children are redrawn)
Wimp operations:
Wimp_ForceRedraw with opens pending
Wimp_BlockCopy with opens pending
Wimp_RedrawWindow with opens pending
Wimp_UpdateWindow with opens pending
Wimp_DeleteWindow with opens pending
Wimp_SetMode with opens pending
Wimp_DragBox with opens pending
Wimp_SetCaretPosition with opens pending
Altering menu caret selection when child window had caret & parent was closed
| Copyright 1997 Acorn Computers Ltd
|
| Licensed under the Apache License, Version 2.0 (the "License");
| you may not use this file except in compliance with the License.
| You may obtain a copy of the License at
|
| http://www.apache.org/licenses/LICENSE-2.0
|
| Unless required by applicable law or agreed to in writing, software
| distributed under the License is distributed on an "AS IS" BASIS,
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
| See the License for the specific language governing permissions and
| limitations under the License.
|
|> !Run
WimpSlot 64k 64k
Run <Obey$Dir>.EnumTest
| Copyright 1997 Acorn Computers Ltd
|
| Licensed under the Apache License, Version 2.0 (the "License");
| you may not use this file except in compliance with the License.
| You may obtain a copy of the License at
|
| http://www.apache.org/licenses/LICENSE-2.0
|
| Unless required by applicable law or agreed to in writing, software
| distributed under the License is distributed on an "AS IS" BASIS,
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
| See the License for the specific language governing permissions and
| limitations under the License.
|
|> !Run
WimpSlot 64k 64k
Run <Obey$Dir>.ManyTest
| Copyright 1997 Acorn Computers Ltd
|
| Licensed under the Apache License, Version 2.0 (the "License");
| you may not use this file except in compliance with the License.
| You may obtain a copy of the License at
|
| http://www.apache.org/licenses/LICENSE-2.0
|
| Unless required by applicable law or agreed to in writing, software
| distributed under the License is distributed on an "AS IS" BASIS,
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
| See the License for the specific language governing permissions and
| limitations under the License.
|
|> !Run
WimpSlot 64k 64k
Run <Obey$Dir>.MultiTest
| Copyright 1997 Acorn Computers Ltd
|
| Licensed under the Apache License, Version 2.0 (the "License");
| you may not use this file except in compliance with the License.
| You may obtain a copy of the License at
|
| http://www.apache.org/licenses/LICENSE-2.0
|
| Unless required by applicable law or agreed to in writing, software
| distributed under the License is distributed on an "AS IS" BASIS,
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
| See the License for the specific language governing permissions and
| limitations under the License.
|
|> !Run
WimpSlot 64k 64k
Run <Obey$Dir>.WindowTest
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment