initial commit

This commit is contained in:
root
2023-06-12 09:14:09 +02:00
commit b4912f303e
2545 changed files with 209350 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
/*************************************************************
* *
* Examples for cicon_init() and cicon_exit() *
* Author: Armin Diedering *
* WWW: http://www.Diedering.de *
* *
*************************************************************/
#include <portab.h>
#include <gemfast.h>
/* Following functions are required */
WORD CountOfPlanes(); /* returns the number of planes of the */
/* current resolution */
WORD CanCicon(); /* gives info if the system can do CICONs */
WORD IsMagiC(); /* is MagiC the OS ? */
/* now we are off! */
long rs_ciconinit(CICONBLK *ciconblks, int ncib, OBJECT *objects, int nobj)
{
if(CanCicon())
{
if(IsMagiC())
{
while(ncib--) /* see rsm2cs.hyp */
{
CICON *cicon = ciconblks->mainlist;
CICON *found = cicon;
WORD planes = 0;
while(cicon) /* find suitable colour number */
{
if(cicon->num_planes <= CountOfPlanes()) /* can the OS handle this icon? */
{
if(cicon->num_planes > planes) /* are there more planes */
{ /* that I have found already? */
found = cicon;
planes = found->num_planes; /* I'll remember this */
}
}
cicon = cicon->next_res; /* next colour number */
}
ciconblks->mainlist = found; /* set found */
ciconblks++; /* next icon */
}
}
else
{
/* Here it gets complicated. One has to go through CICON by CICON. */
/* For this you first have to find and set a suitable colour number */
/* as for MagiC see above). Then the found image data, which are present */
/* in the standard format, have to be converted to the device-specific */
/* format. */
/* How this is to be achieved I'll leave to you! ;-) */
}
}
else /* the system can not handle CICONs */
{
while(nobj--) /* then convert all CICONs to ICONs */
{
if((objects->ob_type & 0xff) == G_CICON)
objects->ob_type = (objects->ob_type & ~0xff) | G_ICON;
objects++;
}
}
return(0);
}
void rs_ciconexit(long deskriptor)
{
}

View File

@@ -0,0 +1,11 @@
UniLay.cnf for Fly Dials
#[FlyD]
#02 ff00 1100 0000 0000 0000 0000 Dog's ear
#03 ff00 1200 0004 0004 0000 0000 Exit button
#05 ff00 1200 0010 0010 0000 0000 Radio button
#04 ff00 1200 0000 0000 0000 0000 Check button
#06 ff00 1300 0000 0000 0000 0000 Underscored text (Heading)
#07 ff00 1400 0000 0000 0000 0000 Group frame

Binary file not shown.

View File

@@ -0,0 +1,165 @@
Universal Overlay v1.2
----------------------
Armin Diedering
Last changed: 29.1.2000
Tab width: 3
1. What is UniLay ?
===================
UniLay is an overlay for ResourceMaster from Version 3.0 onwards. With
overlays it is possible to display user-defined objects already in the
editor.
UniLay uses ResourceMaster's own userdef-objects for this, which the
ResourceMaster uses when no MagiC special types are available. This has
the advantage that the overlay with its 2-3 kbyte is kept very small.
The disadvantage is that the objects are displayed in the editor not
quite the same as they will later look in the program. Nevertheless a
rough impression is possible.
2. Installation
===============
RSM 3.0:
--------
Simply copy the files "unilay.ovl" and "unilay.cnf" into the RSM
"modules" folder and rename them to "rsm.ovl" and "rsm.cnf".
RSM 3.2:
--------
Simply copy the files "unilay.ovl" and "unilay.cnf" into the RSM "modules"
folder. As RSM 3.2 supports multiple overlays, the files may be renamed
and UniLay copied several times into the "modules" folder. The filename
for the "*.ovl" and the "*.cnf" have to be identical (e.g. "flydials.ovl"
and "flydials.cnf").
From RSM 3.2 onwards an overlay can offer its own Toolboxes. UniLay looks
in the "modules" folder for a Tools-resource ("Overlay-Name.rsc"). This
Resource must be constructed in exactly the same way as an RSM Tool-
resource -> rsm.hyp.
3. Which objects are supported?
===============================
UniLay or the ResourceMaster currently supports 7 special objects:
- RSM_MOVEBUTTON The well-known dog-ear to make dialogs fly.
- RSM_BUTTON A button with an underscored character.
- RSM_CHECKBUTTON A check-button with/without underscored character.
- RSM_RADIOBUTTON A radio-button with/without underscored character.
- RSM_UNDERLINED An underscored string.
- RSM_GROUPBOX A group frame.
- RSM_NICELINE A niceline for menus.
Apart from RSM_MOVEBUTTON, the special objects only take effect when
dealing with G_STRING, G_BUTTON or G_TITLE objects.
For RSM_BUTTON, RSM_CHECKBUTTON and RSM_RADIOBUTTON the underscored
character will be marked with an opening square bracket in the button
text. Alternatively you can do it like MagiC by setting Whitebak; in that
case the position is determined by bits 8-11 of ob_states using a binary
format starting from none set for the first character, bit 8 (=1) set for
the second, bit 9 (=2) for the third, bit 8+9 (=3) for the fourth etc.
The MagiC method takes priority.
4. How do I configure UniLay?
=============================
UniLay loads in initialization the file "unilay.cnf". In this CNF-file
you can specify for which objects the overlay should be active.
The file has to commence with the following line!
------------Snip-----------
#[xxxx]
------------Snap-----------
This sets the ID of the overlay ("xxxx" represents any 4 characters). If
you want to (or must) use several CNF-files, then you should assign an ID
for each CNF. As the ID of the overlay is also saved in the *.rsm-file,
RSM will only activate the overlay if the IDs match.
To avoid conflicts with public overlays, private IDs should start with a
'_' such as "#[_AO1]" (Armins Overlay No.1).
Then follow the object lines.
Each valid object line is built up as follows:
------------Snip-----------
#00 0000 0000 0000 0000 0000 0000 Comment
------------Snap-----------
So the line always starts with a hash (double-cross). The hash is
followed by 7 hexadecimal-coded numbers, separated by a space. The
first always has 2 places and the rest four places. An optional comment
must be separated by spaces or tabs from the last number.
The first number determines the special object number. The following
apply:
0 -> DRAW_NOTHING
2 -> RSM_MOVEBUTTON
3 -> RSM_BUTTON
4 -> RSM_CHECKBUTTON
5 -> RSM_RADIOBUTTON
6 -> RSM_UNDERLINED
7 -> RSM_GROUPBOX
8 -> RSM_NICELINE
The folllowing 6 numbers are split into 3 pairs. Each number-pair
contains a mask and a comparison value. These number-pairs apply in each
case for the OBJECT-component type, Flags and States.
Example:
---------
1. The overlay should take over the display of an RSM_CHECKBUTTON when:
- The extended type = 22 (hex 16)
- The object type = G_STRING (28 or hex 1c)
#03 ffff 161c 0000 0000 0000 0000
--- ---- ---- -------------------
| | | |
| | | Flags and States are irrelevant
| | Ext.type=22 and Type=G_STRING?
| Use all bits of ob_type
RSM_CHECKBUTTON
2. As a checkbutton should only be draw when the EXIT-flag is not set,
we need a second line:
#00 ffff 161c 0004 0004 0000 0000
--- ---- ----
| | |
| | Is EXIT set?
| Only evaluate the EXIT-flag
DRAW_NOTHING
This line must be placed before the RSM_CHECKBUTTON-line.
3. An RSM_RADIOBUTTON should be drawn for the same conditions as above
when the RADIO-flag is set:
#04 ffff 161c 0010 0010 0000 0000
--- ---- ----
| | |
| | Is RADIO set?
| Only evaluate the RADIO-flag
RSM_RADIOBUTTON
This line too must be placed before the RSM_CHECKBUTTON-line but
after the DRAW_NOTHING line.
4. To summarize:
- The extended type = 22 (hex 16)
- The object type = G_STRING (28 or hex 1c)
- If EXIT-flag, then nothing should be drawn
- If RADIO-flag then RSM_RADIOBUTTON else RSM_CHECKBUTTON
------------Snip-----------
#00 ffff 161c 0004 0004 0000 0000 If Exit draw nothing
#04 ffff 161c 0010 0010 0000 0000 If RADIO -> RSM_RADIOBUTTON
#03 ffff 161c 0000 0000 0000 0000 If no EXIT and also no RADIO
then RSM_CHECKBUTTON
------------Snap-----------