-
Notifications
You must be signed in to change notification settings - Fork 0
/
panes.xml
83 lines (68 loc) · 5.54 KB
/
panes.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE xmlmanual SYSTEM "panes.dtd">
<!-- Copyright 2021-2023, Stephen Fryatt (info@stevefryatt.org.uk)
-
- This file is part of Pane Tutorial:
-
- http://www.stevefryatt.org.uk/software/
-
- Licensed under the EUPL, Version 1.2 only (the "Licence");
- You may not use this work except in compliance with the
- Licence.
-
- You may obtain a copy of the Licence at:
-
- http://joinup.ec.europa.eu/software/page/eupl
-
- Unless required by applicable law or agreed to in
- writing, software distributed under the Licence is
- distributed on an "AS IS" basis, WITHOUT WARRANTIES
- OR CONDITIONS OF ANY KIND, either express or implied.
-
- See the Licence for the specific language governing
- permissions and limitations under the Licence.
-->
<manual xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xmldoc.xsd" version="1.8.6">
<title>Handling Panes</title>
<breadcrumb><dir>Home</dir><dir>RISC OS</dir></breadcrumb>
<icons>
<zip width="34" height="34">../../images/types/zip.png</zip>
<armv7 alt="ARMV7 OK" width="34" height="39">../../images/compatibility/armv7.png</armv7>
<iyonix alt="Iyonix OK" width="34" height="39">../../images/compatibility/iyonix.gif</iyonix>
</icons>
<resources>
<images>Images</images>
<downloads>Downloads</downloads>
<common>Common</common>
<chapters>Chapters</chapters>
</resources>
<licence>the MIT No Attribution License</licence>
<!-- Index -->
<index>
<filename>index.php</filename>
<uri>./</uri>
<uri></uri>
<section>
<p>One area of the RISC OS Wimp which appears to be shrouded in mystery is the handling of pane windows. Whilst many modern applications will have toolbars or status displays, how they’re implemented is something that doesn’t seem to get a mention in any of the books on programming. Even the usually helpful <cite>Programmer’s Reference Manual</cite> is coy on the subject.</p>
<p>This guide was written after seeing the question asked many times in the forums and newsgroups. It isn’t intended to be a beginner’s guide to Wimp programming, but rather a more detailed look at the specific issues surrounding the handling of pane windows within applications. If you’re looking for an entry-level guide to the much larger subject of writing desktop applications, then for BASIC programmers I would suggest looking at <cite><link href="http://www.riscos.com/support/developers/wimpprog/index.htm">A Beginner’s Guide To Wimp Programming</link></cite> or <cite>Wimp Programming For All</cite> (which is available to buy from R-Comp through their PlingStore application). If your preferred language is C, then you may find my own <link href="wimp-prog" external="false">Wimp Programming In C</link> tutorial helpful.</p>
<p>It’s worth remembering that these days there are many ways to handle panes. In addition to doing things the ‘old-fashioned way’, there’s the Nested Wimp, the Toolbox and even third-party libraries such as DeskLib if you're working in C. Whilst I’ll cover some of these here, I won’t cover them all. If you’re starting work on a new application, it’s definitely worth considering what the best approach would be – the newer, ‘higher level’ solutions were created by Acorn to make developers’ lives easier!</p>
<p>The examples in this tutorial are written in BASIC, but the techniques are equally applicable to other languages such as C – I hope that I have managed to explain them in a way that allows them to be applied in your environment of choice. The example code is all licenced under the MIT No Attribution Licence, with the aim of making it as widely useful as possible.</p>
<p>Many thanks to all those on the <link href="https://www.riscosopen.org/forum/">ROOL Forums</link> who have offered suggestions while I’ve worked on this guide; in particular Steve Drain, whose input helped to clarify some of my misunderstandings on the subject.</p>
</section>
<chapterlist/>
<section>
<title>About this tutorial</title>
<p>This tutorial is licenced under Version 1.2 of the European Union Public Licence, and the source – in the form of a collection of XML files and the associated graphics and example downloads – can be found <link href="https://github.com/steve-fryatt/pane-tutorial">on GitHub</link>. It can be built into the format required by this website using my <link href="https://github.com/steve-fryatt/xmldocs">XML Docs tools</link>; these may be useful as a starting point for using the content in other forms, and are also released under the EUPL v1.2.</p>
<p>The content of the example archives, made available to download at points throughout the tutorial, is licenced under the MIT No Attribution License in order to make the examples as useful as possible to those wishing to learn from them. The intent is that whilst re-use of the tutorial text itself must be done within the terms of version 1.2 of the EUPL, free use of the example code can be made by developers in their own RISC OS applications.</p>
</section>
</index>
<chapter file="ch01-an-example-application.xml"/>
<chapter file="ch02-a-side-toolbox.xml"/>
<chapter file="ch03-a-top-toolbar.xml"/>
<chapter file="ch04-column-headings.xml"/>
<chapter file="ch05-does-order-matter.xml"/>
<chapter file="ch06-the-nested-wimp.xml"/>
<chapter file="ch07-responsive-nesting.xml"/>
<chapter file="ch08-moving-the-furniture.xml"/>
<chapter file="ch09-an-embedded-toolbox.xml"/>
</manual>