Initial commit
This commit is contained in:
BIN
AmigaE.info
Normal file
BIN
AmigaE.info
Normal file
Binary file not shown.
BIN
AmigaE/ClickTabExample
Normal file
BIN
AmigaE/ClickTabExample
Normal file
Binary file not shown.
159
AmigaE/ClickTabExample.e
Normal file
159
AmigaE/ClickTabExample.e
Normal file
@@ -0,0 +1,159 @@
|
||||
/* ClickTabExample.e - Ported to E by Eric Sauvageau. */
|
||||
|
||||
OPT PREPROCESS
|
||||
|
||||
MODULE 'tools/constructors', 'tools/boopsi'
|
||||
|
||||
MODULE 'exec/types','exec/memory','dos/dos','dos/dosextens','exec/lists',
|
||||
'exec/nodes','intuition','graphics','intuition/intuition',
|
||||
'intuition/gadgetclass','intuition/imageclass',
|
||||
'intuition/intuitionbase','intuition/classusr',
|
||||
'intuition/gadgetclass','intuition/cghooks','intuition/icclass',
|
||||
'intuition/classes','intuition/sghooks','graphics/gfxbase',
|
||||
'graphics/text','graphics/gfxmacros','utility/tagitem','utility/hooks'
|
||||
|
||||
|
||||
MODULE 'clicktab','gadgets/clicktab','window','classes/window','layout',
|
||||
'gadgets/layout', 'other/classact_macros'
|
||||
|
||||
DEF listitems:PTR TO mlh
|
||||
|
||||
|
||||
CONST ID_CLICKTAB =1
|
||||
|
||||
|
||||
PROC clickTabNodes(list:PTR TO lh, labels:PTR TO LONG)
|
||||
DEF node=NIL, i=0
|
||||
|
||||
newlist(list)
|
||||
|
||||
WHILE labels[i]
|
||||
|
||||
IF (node := AllocClickTabNodeA([TNA_TEXT, labels[i],
|
||||
TNA_NUMBER, i,
|
||||
TNA_ENABLED, TRUE,
|
||||
TNA_SPACING, 6,
|
||||
TAG_DONE]))
|
||||
|
||||
AddTail(list,node)
|
||||
ENDIF
|
||||
|
||||
INC i
|
||||
|
||||
ENDWHILE
|
||||
ENDPROC
|
||||
|
||||
|
||||
PROC freeClickTabNodes(list:PTR TO lh)
|
||||
DEF node:PTR TO ln, nextnode:PTR TO ln
|
||||
|
||||
node:= list.head
|
||||
|
||||
WHILE (nextnode = node.succ)
|
||||
FreeClickTabNode(node)
|
||||
node := nextnode
|
||||
ENDWHILE
|
||||
|
||||
END list -> Optional, the E cleanup code would do it for us anyway.
|
||||
ENDPROC
|
||||
|
||||
PROC main()
|
||||
DEF win=NIL:PTR TO window, tab_object=NIL:PTR TO object, win_object=NIL:PTR TO object
|
||||
DEF wait, signal, result, done = FALSE, code, tmpres,tmpres2
|
||||
DEF names:PTR TO LONG
|
||||
|
||||
names:=['Tab_1','Tab_2','Tab_3','Tab_4',NIL]
|
||||
|
||||
-> Open the classes
|
||||
|
||||
windowbase := OpenLibrary('window.class',0)
|
||||
layoutbase := OpenLibrary('gadgets/layout.gadget',0)
|
||||
clicktabbase := OpenLibrary('gadgets/clicktab.gadget',0)
|
||||
|
||||
IF (windowbase AND layoutbase AND clicktabbase)
|
||||
clickTabNodes(NEW listitems, names)
|
||||
|
||||
/* Create the window object. */
|
||||
win_object := WindowObject,
|
||||
WA_SCREENTITLE, 'ClassAct Copyright 1995, Phantom Development LLC.',
|
||||
WA_TITLE, 'ClassAct clicktab.gadget Example',
|
||||
WA_SIZEGADGET, TRUE,
|
||||
WA_LEFT, 40,
|
||||
WA_TOP, 30,
|
||||
WA_DEPTHGADGET, TRUE,
|
||||
WA_DRAGBAR, TRUE,
|
||||
WA_CLOSEGADGET, TRUE,
|
||||
WA_ACTIVATE, TRUE,
|
||||
WA_SMARTREFRESH, TRUE,
|
||||
WINDOW_PARENTGROUP, VLayoutObject,
|
||||
LAYOUT_SPACEOUTER, TRUE,
|
||||
LAYOUT_DEFERLAYOUT, TRUE,
|
||||
LAYOUT_ADDCHILD, tab_object := ClickTabObject,
|
||||
GA_ID, ID_CLICKTAB,
|
||||
CLICKTAB_LABELS, listitems,
|
||||
CLICKTAB_CURRENT, 0,
|
||||
End,
|
||||
End,
|
||||
End
|
||||
|
||||
-> Object creation sucessful?
|
||||
|
||||
IF win_object
|
||||
|
||||
-> Open the window.
|
||||
|
||||
IF (win := CA_OpenWindow(win_object))
|
||||
|
||||
-> Obtain the window wait signal mask.
|
||||
|
||||
GetAttr( WINDOW_SIGMASK, win_object, {signal})
|
||||
|
||||
-> Input Event Loop
|
||||
|
||||
WHILE done = FALSE
|
||||
wait:= Wait(signal OR SIGBREAKF_CTRL_C)
|
||||
|
||||
IF (wait AND SIGBREAKF_CTRL_C)
|
||||
done := TRUE
|
||||
ELSE
|
||||
|
||||
WHILE (result := domethod(win_object, [WM_HANDLEINPUT,{code}])) <> WMHI_LASTMSG
|
||||
tmpres := (result AND WMHI_CLASSMASK)
|
||||
SELECT tmpres
|
||||
|
||||
CASE WMHI_CLOSEWINDOW
|
||||
done := TRUE
|
||||
|
||||
CASE WMHI_GADGETUP
|
||||
tmpres2 := (result AND WMHI_GADGETMASK)
|
||||
|
||||
SELECT tmpres2
|
||||
CASE ID_CLICKTAB ; NOP
|
||||
NOP
|
||||
ENDSELECT
|
||||
|
||||
ENDSELECT
|
||||
ENDWHILE
|
||||
ENDIF
|
||||
ENDWHILE
|
||||
ENDIF
|
||||
|
||||
/* Disposing of the window object will
|
||||
* also close the window if it is
|
||||
* already opened and it will dispose of
|
||||
* all objects attached to it.
|
||||
*/
|
||||
DisposeObject(win_object)
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
freeClickTabNodes(listitems)
|
||||
|
||||
/* Close the classes. */
|
||||
|
||||
IF clicktabbase THEN CloseLibrary(clicktabbase)
|
||||
IF layoutbase THEN CloseLibrary(layoutbase)
|
||||
IF windowbase THEN CloseLibrary(windowbase)
|
||||
|
||||
ENDPROC
|
||||
|
||||
BIN
AmigaE/ClickTabExample.info
Normal file
BIN
AmigaE/ClickTabExample.info
Normal file
Binary file not shown.
BIN
AmigaE/ConnectExample
Normal file
BIN
AmigaE/ConnectExample
Normal file
Binary file not shown.
166
AmigaE/ConnectExample.e
Normal file
166
AmigaE/ConnectExample.e
Normal file
@@ -0,0 +1,166 @@
|
||||
/* ClassAct Inter-Connection Notification Example
|
||||
Ported to E by Eric Sauvageau.
|
||||
*/
|
||||
|
||||
OPT PREPROCESS
|
||||
|
||||
MODULE 'tools/boopsi'
|
||||
|
||||
MODULE 'exec/nodes','intuition','graphics','intuition/intuition',
|
||||
'intuition/gadgetclass','intuition/imageclass',
|
||||
'intuition/intuitionbase','intuition/classusr',
|
||||
'intuition/gadgetclass','intuition/cghooks','intuition/icclass',
|
||||
'intuition/classes'
|
||||
|
||||
MODULE 'libraries/gadtools','intuition/icclass','dos','dos/dos',
|
||||
'graphics','intuition','intuition/intuition','utility/tagitem'
|
||||
|
||||
|
||||
MODULE 'window','classes/window','layout','gadgets/layout','gadgets/palette',
|
||||
'gadgets/button','images/bevel','palette','images/label','label',
|
||||
'classes/window','other/classact_macros','button'
|
||||
|
||||
|
||||
CONST ID_BUTTON = 1
|
||||
CONST ID_FOREGROUND = 2
|
||||
CONST ID_BACKGROUND = 3
|
||||
|
||||
|
||||
PROC main()
|
||||
|
||||
DEF window:PTR TO window,
|
||||
but_object:PTR TO object,
|
||||
win_object:PTR TO object,
|
||||
mapfg2button, mapbg2button,
|
||||
tmpres1,tmpres2
|
||||
|
||||
DEF wait, signal, result, done=FALSE, code
|
||||
|
||||
|
||||
mapfg2button := [PALETTE_COLOR, BUTTON_TEXTPEN, TAG_END]
|
||||
mapbg2button := [PALETTE_COLOR, BUTTON_BACKGROUNDPEN, TAG_END]
|
||||
|
||||
windowbase := OpenLibrary('window.class',0)
|
||||
layoutbase := OpenLibrary('gadgets/layout.gadget',0)
|
||||
buttonbase := OpenLibrary('gadgets/button.gadget',0)
|
||||
palettebase := OpenLibrary('gadgets/palette.gadget',0)
|
||||
labelbase := OpenLibrary('images/label.image',0)
|
||||
|
||||
IF (windowbase AND layoutbase AND buttonbase AND palettebase AND labelbase)
|
||||
|
||||
-> Create the window object.
|
||||
|
||||
win_object := WindowObject,
|
||||
WA_SCREENTITLE, 'ClassAct Copyright 1995, Phantom Development LLC.',
|
||||
WA_TITLE, 'ClassAct Example',
|
||||
WA_SIZEGADGET, TRUE,
|
||||
WA_LEFT, 40,
|
||||
WA_TOP, 30,
|
||||
WA_DEPTHGADGET, TRUE,
|
||||
WA_DRAGBAR, TRUE,
|
||||
WA_CLOSEGADGET, TRUE,
|
||||
WA_ACTIVATE, TRUE,
|
||||
WA_SMARTREFRESH, TRUE,
|
||||
|
||||
WINDOW_PARENTGROUP, VLayoutObject,
|
||||
LAYOUT_SPACEOUTER, TRUE,
|
||||
LAYOUT_DEFERLAYOUT, TRUE,
|
||||
LAYOUT_BEVELSTYLE, GroupFrame,
|
||||
LAYOUT_LABEL, 'InterConnection',
|
||||
|
||||
StartMember, but_object := ButtonObject,
|
||||
GA_TEXT, '_Inter-Connection Example',
|
||||
GA_ID, ID_BUTTON,
|
||||
EndMember,
|
||||
CHILD_WEIGHTEDHEIGHT, 0,
|
||||
|
||||
StartMember, HLayoutObject,
|
||||
LAYOUT_SPACEOUTER, FALSE,
|
||||
|
||||
StartMember, PaletteObject,
|
||||
GA_ID, ID_FOREGROUND,
|
||||
PALETTE_NUMCOLORS, 8,
|
||||
PALETTE_COLOR, 1,
|
||||
ICA_TARGET, but_object, /* object to connect to */
|
||||
ICA_MAP, mapfg2button, /* tag mapping array */
|
||||
EndMember,
|
||||
CHILD_LABEL, LabelObject, LABEL_TEXT, '_ForeGround', LabelEnd,
|
||||
CHILD_MINWIDTH, 90,
|
||||
CHILD_MINHEIGHT, 20,
|
||||
|
||||
StartMember, PaletteObject,
|
||||
GA_ID, ID_BACKGROUND,
|
||||
PALETTE_NUMCOLORS, 8,
|
||||
PALETTE_COLOR, 0,
|
||||
ICA_TARGET, but_object, /* object to connect to */
|
||||
ICA_MAP, mapbg2button, /* tag mapping array */
|
||||
EndMember,
|
||||
CHILD_LABEL, LabelObject, LABEL_TEXT, '_BackGround', LabelEnd,
|
||||
CHILD_MINWIDTH, 90,
|
||||
CHILD_MINHEIGHT, 20,
|
||||
EndMember,
|
||||
EndMember,
|
||||
EndWindow
|
||||
|
||||
-> Object creation sucessful?
|
||||
|
||||
IF win_object
|
||||
|
||||
-> Open the window.
|
||||
|
||||
IF (window := CA_OpenWindow(win_object))
|
||||
|
||||
-> Obtain the window wait signal mask.
|
||||
|
||||
GetAttr(WINDOW_SIGMASK, win_object, {signal})
|
||||
|
||||
-> Input Event Loop
|
||||
|
||||
WHILE (done = FALSE)
|
||||
wait := Wait(signal OR SIGBREAKF_CTRL_C)
|
||||
|
||||
IF (wait AND SIGBREAKF_CTRL_C)
|
||||
done := TRUE
|
||||
|
||||
ELSE
|
||||
|
||||
WHILE ((result := CA_HandleInput(win_object,{code})) <> WMHI_LASTMSG)
|
||||
|
||||
tmpres1 := (result AND WMHI_CLASSMASK)
|
||||
|
||||
SELECT tmpres1
|
||||
|
||||
CASE WMHI_CLOSEWINDOW ; done := TRUE
|
||||
|
||||
CASE WMHI_GADGETUP
|
||||
tmpres2 := (result AND WMHI_GADGETMASK)
|
||||
|
||||
SELECT tmpres2
|
||||
CASE ID_BUTTON ; NOP
|
||||
ENDSELECT
|
||||
|
||||
ENDSELECT
|
||||
|
||||
ENDWHILE
|
||||
ENDIF
|
||||
ENDWHILE
|
||||
ENDIF
|
||||
|
||||
/* Disposing of the window object will
|
||||
* also close the window if it is
|
||||
* already opened and it will dispose of
|
||||
* all objects attached to it.
|
||||
*/
|
||||
DisposeObject(win_object )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
-> Close the classes.
|
||||
|
||||
IF labelbase THEN CloseLibrary(labelbase)
|
||||
IF palettebase THEN CloseLibrary(palettebase)
|
||||
IF buttonbase THEN CloseLibrary(buttonbase)
|
||||
IF layoutbase THEN CloseLibrary(layoutbase)
|
||||
IF windowbase THEN CloseLibrary(windowbase)
|
||||
|
||||
ENDPROC
|
||||
BIN
AmigaE/ConnectExample.info
Normal file
BIN
AmigaE/ConnectExample.info
Normal file
Binary file not shown.
25
AmigaE/E_Examples.doc
Normal file
25
AmigaE/E_Examples.doc
Normal file
@@ -0,0 +1,25 @@
|
||||
Notes for the Amiga E API for ClassAct
|
||||
--------------------------------------
|
||||
|
||||
o Remember that in E, an external function name must have the first letter
|
||||
in uppercase, and the second one in lowercase. For this reason, some
|
||||
function call have slightly different names than the ones used in
|
||||
the Autodocs:
|
||||
|
||||
LAYOUT_GetClass() is Layout_GetClass()
|
||||
CLICKTAB_GetClass() is ClickTab_GetClass()
|
||||
etc...
|
||||
|
||||
Check the modules when uncertain about the name to use.
|
||||
|
||||
|
||||
o Don't forget to put OPT PREPROCESS at the top of your source to be able
|
||||
to use the macros.
|
||||
|
||||
|
||||
|
||||
Other/Classact_lib.m
|
||||
----------------------
|
||||
This module holds a few goodies for ClassAct, ported from the linked
|
||||
library. Note that some functions in it are still untested.
|
||||
|
||||
BIN
AmigaE/E_Examples.doc.info
Normal file
BIN
AmigaE/E_Examples.doc.info
Normal file
Binary file not shown.
BIN
AmigaE/LayoutExample
Normal file
BIN
AmigaE/LayoutExample
Normal file
Binary file not shown.
531
AmigaE/LayoutExample.e
Normal file
531
AmigaE/LayoutExample.e
Normal file
@@ -0,0 +1,531 @@
|
||||
/*************************************************************************
|
||||
* ClassAct Comprehensive Demo Program
|
||||
* Copyright © 1995 Phantom Development Co.
|
||||
*
|
||||
* Translated from C to E by Eric Sauvageau.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
Supply inithook.m with ClassAct? Or at least its source? Might be added
|
||||
to classact_lib.m?
|
||||
|
||||
*/
|
||||
|
||||
OPT PREPROCESS
|
||||
|
||||
MODULE 'tools/constructors'
|
||||
MODULE 'tools/boopsi','tools/installhook','tools/inithook'
|
||||
|
||||
MODULE 'exec/types','exec/memory','intuition/intuition','exec/ports',
|
||||
'intuition/gadgetclass','intuition/icclass','libraries/gadtools',
|
||||
'graphics/gfxbase','graphics/text','graphics/gfxmacros',
|
||||
'utility/tagitem','workbench/startup','workbench/workbench',
|
||||
'intuition','graphics','exec','dos','diskfont','utility','wb','icon',
|
||||
'utility/hooks','intuition/classes','intuition/classusr',
|
||||
'exec/lists','exec/nodes','dos/rdargs','dos/dos'
|
||||
|
||||
|
||||
MODULE 'classes/window','gadgets/listbrowser','listbrowser',
|
||||
'other/classact_macros','layout','gadgets/layout','images/bevel',
|
||||
'gadgets/chooser','chooser','images/label','label','window',
|
||||
'button'
|
||||
|
||||
MODULE 'tools/classact_lib'
|
||||
|
||||
/* a simple button */
|
||||
#define Button(a) ButtonObject, GA_TEXT, a, ButtonEnd
|
||||
#define DButton(a) ButtonObject, GA_TEXT, a, GA_DISABLED, TRUE, ButtonEnd
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* Some label arrays for the gadgets in this demo.
|
||||
*/
|
||||
|
||||
DEF objtypes:PTR TO LONG,
|
||||
objnames:PTR TO LONG
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* ReadArgs
|
||||
*/
|
||||
|
||||
#define TEMPLATE 'S=SIMPLEREFRESH/S,NC=NOCAREREFRESH/S,ND=NDEFER/S'
|
||||
|
||||
ENUM A_SIMPLE, A_NOCARE, A_NODEFER
|
||||
|
||||
DEF arguments:PTR TO LONG
|
||||
|
||||
|
||||
-> Must use separate vars because for some reason, EC chokes when you try
|
||||
-> to assign a value to an indexed array in the middle of a list... Will
|
||||
-> have to notify Wouter about that bugger.
|
||||
-> We will manualy build the list later.
|
||||
|
||||
ENUM G_OBJTYPE=1, G_OBJLIST, G_TOP, G_UP, G_DOWN, G_BOTTOM, G_SORT,
|
||||
G_NEW, G_EDIT, G_COPY, G_REMOVE, G_HELP, G_SAVE, G_USE, G_TEST,
|
||||
G_CANCEL,G_END
|
||||
|
||||
DEF gl[18]: ARRAY OF LONG
|
||||
|
||||
DEF g_objtype,
|
||||
g_objlist,
|
||||
g_top,
|
||||
g_up,
|
||||
g_down,
|
||||
g_bottom,
|
||||
g_sort,
|
||||
g_new,
|
||||
g_edit,
|
||||
g_copy,
|
||||
g_remove,
|
||||
g_help,
|
||||
g_save,
|
||||
g_use,
|
||||
g_test,
|
||||
g_cancel
|
||||
|
||||
|
||||
PROC init()
|
||||
objtypes:=['Exec','Image','Sound','Menu','Icon','Dock','Access',NIL]
|
||||
objnames:=['ToolManager','ScreenMode','WBPattern',NIL]
|
||||
|
||||
buttonbase :=openClass('gadgets/button.gadget',0)
|
||||
listbrowserbase :=openClass('gadgets/listbrowser.gadget',0)
|
||||
chooserbase :=openClass('gadgets/chooser.gadget',0)
|
||||
windowbase :=openClass('window.class',0)
|
||||
layoutbase :=openClass('gadgets/layout.gadget',0)
|
||||
labelbase := openClass('images/label.image',0)
|
||||
|
||||
iconbase := OpenLibrary('icon.library',36)
|
||||
|
||||
ENDPROC
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* App message hook.
|
||||
* Workbench App messages can be caught with a callback hook such as this.
|
||||
* We'll not worry about the app message type in this hook. Objects dropped
|
||||
* on the window or on the icon (while iconified) will be added to the
|
||||
* listview.
|
||||
*/
|
||||
|
||||
|
||||
PROC appMsgFunc(hook:PTR TO hook, window:PTR TO object, msg:PTR TO appmessage)
|
||||
DEF win: PTR TO window, i, arg:PTR TO wbarg, l: PTR TO lh, n:PTR TO ln,
|
||||
name[256]:STRING
|
||||
|
||||
i := msg.numargs
|
||||
arg := msg.arglist
|
||||
l := hook.data
|
||||
|
||||
GetAttr(WINDOW_WINDOW, window, {win} )
|
||||
|
||||
|
||||
-> Detach the list for modifications.
|
||||
|
||||
SetGadgetAttrsA(g_objlist, win, NIL,[LISTBROWSER_LABELS, Not(0), TAG_END])
|
||||
|
||||
WHILE i
|
||||
/* Add the name of the icon to the listview. ListBrowser can copy the
|
||||
* text into an internal buffer and thus let us not worry about the
|
||||
* pointer validity.
|
||||
*/
|
||||
|
||||
DEC i
|
||||
|
||||
NameFromLock(arg.lock, name, 256)
|
||||
AddPart(name,arg.name, 256)
|
||||
|
||||
IF (n := AllocListBrowserNodeA(1, [LBNCA_COPYTEXT, TRUE, LBNCA_TEXT, name, TAG_END])) THEN AddTail(l, n)
|
||||
|
||||
arg++
|
||||
|
||||
ENDWHILE
|
||||
|
||||
-> Reattach the list
|
||||
|
||||
SetGadgetAttrsA(g_objlist, win, NIL, [LISTBROWSER_LABELS, l, TAG_END])
|
||||
ENDPROC
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* Main Program
|
||||
*/
|
||||
|
||||
PROC main() HANDLE
|
||||
DEF objlist=NIL:PTR TO lh,
|
||||
typelist:PTR TO lh,
|
||||
args=NIL:PTR TO rdargs,
|
||||
appport: PTR TO mp,
|
||||
window=NIL:PTR TO object,
|
||||
mainlayout:PTR TO window,
|
||||
apphook:hook,
|
||||
win:PTR TO window,
|
||||
wsig, asig,done=FALSE,
|
||||
sig,result,code,
|
||||
tmp,tmp2,tmp3,
|
||||
ids:PTR TO LONG,
|
||||
dis=FALSE,i,
|
||||
helptext[40]:STRING
|
||||
|
||||
|
||||
-> Init some lists, and open the required gadgets/libraries.
|
||||
|
||||
init()
|
||||
|
||||
ids := [G_TOP, G_UP, G_DOWN, G_BOTTOM, G_EDIT, G_COPY, G_REMOVE, G_END ]
|
||||
|
||||
arguments:=[0,0,0]
|
||||
IF (args := ReadArgs(TEMPLATE, arguments, NIL))=NIL THEN Raise(20)
|
||||
|
||||
|
||||
IF ((iconbase<>NIL) AND (buttonbase<>NIL) AND (listbrowserbase<>NIL) AND (chooserbase<>NIL) AND (windowbase<>NIL) AND (layoutbase<>NIL) AND (labelbase<>NIL))
|
||||
|
||||
WriteF('\seferred \s refresh \s\n', (IF arguments[A_NODEFER] THEN 'Non-d' ELSE 'D'), (IF arguments[A_SIMPLE] THEN 'Simple' ELSE 'Smart'), (IF arguments[A_NOCARE] THEN '(NoCare)' ELSE ''))
|
||||
|
||||
objlist := browserNodesA(objnames)
|
||||
typelist := chooserLabelsA(objtypes)
|
||||
|
||||
/* By providing a message port you enable windowclass to handle iconification
|
||||
* and appwindows. This port can shared by all the windows of your application.
|
||||
*/
|
||||
|
||||
appport := CreateMsgPort()
|
||||
|
||||
IF (objlist AND typelist AND appport)
|
||||
inithook(apphook,{appMsgFunc},objlist)
|
||||
|
||||
/* Create a Window object with a Layout. When Window is asked to open itself,
|
||||
* it will calculate how much space the Layout needs and size itself accordingly.
|
||||
*/
|
||||
|
||||
|
||||
window := WindowObject,
|
||||
WA_IDCMP, IDCMP_RAWKEY,
|
||||
WA_TOP, 20,
|
||||
WA_LEFT, 20,
|
||||
WA_SIZEGADGET, TRUE,
|
||||
WA_DEPTHGADGET, TRUE,
|
||||
WA_DRAGBAR, TRUE,
|
||||
WA_CLOSEGADGET, TRUE,
|
||||
WA_ACTIVATE, TRUE,
|
||||
|
||||
/* About window refreshes:
|
||||
* Because WindowClass and LayoutClass can, when used together, change the
|
||||
* normal Intuition practise of refreshing gadgets in the input.device context,
|
||||
* some rules about the refresh system change.
|
||||
* Deferred refresh works in both smart and simple refresh windows, but
|
||||
* if nocarerefresh is used, Intuition does not retain the damage regions
|
||||
* and any window damage will force the whole window to be refreshed.
|
||||
* This demo allows you to try combinations of refresh types.
|
||||
* In the normal case you can ignore this and let WindowClass and the user
|
||||
* decide what kind of refreshes they want. Nocare refresh can be
|
||||
* combined with smart refresh to provide a fast, but somewhat more memory
|
||||
* hungry refresh method. Simple refresh can save some memory but it's
|
||||
* slower.
|
||||
*/
|
||||
|
||||
WA_SIMPLEREFRESH, arguments[A_SIMPLE],
|
||||
WA_NOCAREREFRESH, arguments[A_NOCARE],
|
||||
WA_SMARTREFRESH, Not(arguments[A_SIMPLE]),
|
||||
|
||||
WA_TITLE, 'ClassAct layout.gadget Example (ToolManager preferences mockup)',
|
||||
WA_SCREENTITLE, 'ClassAct Copyright 1995 Phantom Development LLC.',
|
||||
|
||||
/* Turn on gadget help in the window
|
||||
*/
|
||||
|
||||
WINDOW_GADGETHELP, TRUE,
|
||||
|
||||
/* Add an iconification gadget. If you have this, you must listen to
|
||||
* WMHI_ICONIFY.
|
||||
*/
|
||||
|
||||
WINDOW_ICONIFYGADGET, TRUE,
|
||||
|
||||
/* This message port lets windowclass handle the icon and appwindow.
|
||||
*/
|
||||
|
||||
WINDOW_APPPORT, appport,
|
||||
WINDOW_APPWINDOW, TRUE,
|
||||
WINDOW_APPMSGHOOK, apphook,
|
||||
|
||||
/* The windowclass will automatically free the DiskObject used when
|
||||
* iconifying the window. If you do not provide a valid DiskObject,
|
||||
* windowclass will try to use env:sys/def_window.info or the default
|
||||
* project icon.
|
||||
*/
|
||||
|
||||
WINDOW_ICON, GetDiskObject( 'LayoutExample' ),
|
||||
WINDOW_ICONTITLE, 'ClassAct Example',
|
||||
|
||||
/* Below is the layout of the window
|
||||
*/
|
||||
|
||||
WINDOW_PARENTGROUP, mainlayout := VGroupObject,
|
||||
LAYOUT_SPACEOUTER, TRUE,
|
||||
LAYOUT_BEVELSTYLE, BVS_THIN,
|
||||
|
||||
/* this tag instructs layout.gadget to defer GM_LAYOUT and GM_RENDER and ask
|
||||
* the windowclass to do them. This lessens the load on input.device
|
||||
*/
|
||||
|
||||
LAYOUT_DEFERLAYOUT, Not(arguments[A_NODEFER]),
|
||||
|
||||
/* A 1-of-n chooser using the labels list we made from the label array earlier
|
||||
*/
|
||||
|
||||
StartMember, g_objtype := ChooserObject,
|
||||
CHOOSER_LABELS, typelist,
|
||||
EndMember,
|
||||
MemberLabel('_Object Type'),
|
||||
|
||||
/* Objects can be given arbitary weights within groups, and layout.gadget
|
||||
* will distribute space relative to the total weight of the group.
|
||||
* Here we set the button column to 0 weight which means minimum space.
|
||||
* Thus the listview gets all available extra space.
|
||||
*/
|
||||
|
||||
StartHGroup, BAligned,
|
||||
|
||||
StartMember, g_objlist := ListBrowserObject,
|
||||
LISTBROWSER_LABELS, objlist,
|
||||
LISTBROWSER_SHOWSELECTED, TRUE,
|
||||
EndMember,
|
||||
|
||||
StartVGroup,
|
||||
StartMember, g_top := DButton('Top'),
|
||||
StartMember, g_up := DButton('Up'),
|
||||
StartMember, g_down := DButton('Down'),
|
||||
StartMember, g_bottom := DButton('Bottom'),
|
||||
StartMember, g_sort := Button('So_rt'),
|
||||
EndGroup,
|
||||
CHILD_WEIGHTEDWIDTH, 0,
|
||||
|
||||
/* One way to keep the buttons constant size is to set the
|
||||
* group to stay at minimum size with a weight of 0. We could
|
||||
* also set the weight of each of the buttons to 0. That way
|
||||
* extra space would be distributed between the buttons
|
||||
* instead of all below. This looks better.
|
||||
*/
|
||||
|
||||
CHILD_WEIGHTEDHEIGHT, 0,
|
||||
EndGroup,
|
||||
|
||||
/* two rows of buttons. EvenSized instructs layout.gadget that it
|
||||
* should make sure the minimum size of each matches, so that we
|
||||
* get four neat columns.
|
||||
* Again the weight is set to 0. When the window is resized, all
|
||||
* space is given to the listview.
|
||||
*/
|
||||
|
||||
|
||||
StartHGroup, EvenSized,
|
||||
StartMember, g_new := Button('_New...'),
|
||||
StartMember, g_edit := DButton('_Edit...'),
|
||||
StartMember, g_copy := DButton('Co_py'),
|
||||
StartMember, g_remove := DButton('Remove'),
|
||||
EndGroup,
|
||||
CHILD_WEIGHTEDHEIGHT, 0,
|
||||
|
||||
StartHGroup, EvenSized,
|
||||
StartMember, g_save := Button('_Save'),
|
||||
StartMember, g_use := Button('_Use'),
|
||||
StartMember, g_test := Button('_Test'),
|
||||
StartMember, g_cancel := Button('_Cancel'),
|
||||
EndGroup,
|
||||
CHILD_WEIGHTEDHEIGHT, 0,
|
||||
|
||||
|
||||
StartMember, g_help := ButtonObject,
|
||||
GA_READONLY, TRUE,
|
||||
GA_TEXT, 'Welcome to ClassAct demo!',
|
||||
EndMember,
|
||||
CHILD_WEIGHTEDHEIGHT, 0,
|
||||
|
||||
EndGroup,
|
||||
EndWindow
|
||||
|
||||
IF window
|
||||
|
||||
/* Finish the gadgetarray initialisation. Set gadget IDs and release verify.
|
||||
* This is one way of avoiding boring repetition in the layout description
|
||||
* taglist itself.
|
||||
*/
|
||||
|
||||
-> Let's also generate the array of gadget pointers. We couldn't generate it
|
||||
-> while we created gadgets because some bug (?) in EC prevents the use of
|
||||
-> an array in the middle of a list.
|
||||
-> Fortunately, it's a breeze to do using E lists.
|
||||
|
||||
gl:=[NIL,
|
||||
g_objtype,
|
||||
g_objlist,
|
||||
g_top,
|
||||
g_up,
|
||||
g_down,
|
||||
g_bottom,
|
||||
g_sort,
|
||||
g_new,
|
||||
g_edit,
|
||||
g_copy,
|
||||
g_remove,
|
||||
g_help,
|
||||
g_save,
|
||||
g_use,
|
||||
g_test,
|
||||
g_cancel,
|
||||
NIL]
|
||||
|
||||
i:=1
|
||||
|
||||
REPEAT
|
||||
SetAttrsA(gl[i], [GA_ID, i, GA_RELVERIFY, TRUE, TAG_END])
|
||||
INC i
|
||||
UNTIL (i = G_END)
|
||||
|
||||
IF (win := CA_OpenWindow(window))
|
||||
asig := Shl(1,appport.sigbit)
|
||||
|
||||
/* Now that the window has been opened, we can get the signal mask
|
||||
* of its user port. If the program supported iconification and didn't
|
||||
* use a shared IDCMP port between all windows, this signal bit
|
||||
* would have to be re-queried before each Wait().
|
||||
*/
|
||||
|
||||
GetAttr( WINDOW_SIGMASK, window, {wsig} )
|
||||
|
||||
WHILE (done = FALSE)
|
||||
sig := Wait(wsig OR asig OR SIGBREAKF_CTRL_C)
|
||||
|
||||
IF (sig AND (wsig OR asig))
|
||||
|
||||
/* Messages waiting at the window's IDCMP port. Loop at WM_HANDLEINPUT
|
||||
* until all have been processed.
|
||||
*/
|
||||
|
||||
WHILE ((result := CA_HandleInput(window,{code})) <> WMHI_LASTMSG)
|
||||
|
||||
/* The return code of this method is two-part. The upper word describes the
|
||||
* class of the message (gadgetup, menupick, closewindow, iconify, etc),
|
||||
* and the lower word is a class-defined ID, currently in use in the
|
||||
* gadgetup and menupick return codes.
|
||||
* Switch on the class, then on the ID.
|
||||
*/
|
||||
|
||||
tmp := (result AND WMHI_CLASSMASK)
|
||||
|
||||
SELECT tmp
|
||||
|
||||
CASE WMHI_GADGETUP
|
||||
/* OK, got a gadgetup from something. Lets find out what the something is.
|
||||
* The code WORD to which a pointer was passed to WM_HANDLEINPUT has been
|
||||
* set to the Code value from the IDCMP_GADGETUP, in case we need it.
|
||||
*/
|
||||
|
||||
tmp2 := (result AND WMHI_GADGETMASK)
|
||||
SELECT tmp2
|
||||
|
||||
CASE G_OBJLIST
|
||||
/* User clicked on the listview
|
||||
*/
|
||||
IF (code = Not(0)) THEN dis := TRUE /* no node was selected */
|
||||
|
||||
i := 0
|
||||
REPEAT
|
||||
SetGadgetAttrsA( gl[ids[i]], win, NIL, [GA_DISABLED, dis, TAG_END])
|
||||
RefreshGList( gl[ids[i]], win, NIL, 1 )
|
||||
INC i
|
||||
UNTIL (ids[i] = G_END)
|
||||
ENDSELECT
|
||||
|
||||
CASE WMHI_GADGETHELP
|
||||
|
||||
/* A gadget help message informs the application about the gadget
|
||||
* under the mouse pointer. The code WORD is set to the value the
|
||||
* gadget returned. Result code contains the ID of the gadget,
|
||||
* or NULL (not in the window) or WMHI_GADGETMASK (not over a gadget).
|
||||
*/
|
||||
|
||||
tmp3 := (result AND WMHI_GADGETMASK)
|
||||
SELECT tmp3
|
||||
|
||||
CASE G_OBJTYPE ; StrCopy(helptext,'Choose object type')
|
||||
CASE G_OBJLIST ; StrCopy(helptext,'Choose object to modify')
|
||||
CASE G_TOP ; StrCopy(helptext,'Move object to top')
|
||||
CASE G_UP ; StrCopy(helptext,'Move object upwards')
|
||||
CASE G_DOWN ; StrCopy(helptext,'Move object downwards')
|
||||
CASE G_BOTTOM ; StrCopy(helptext,'Move object to bottom')
|
||||
CASE G_SORT ; StrCopy(helptext,'Sort object list')
|
||||
CASE G_NEW ; StrCopy(helptext,'Create new object')
|
||||
CASE G_EDIT ; StrCopy(helptext,'Edit object')
|
||||
CASE G_COPY ; StrCopy(helptext,'Make a new copy of object')
|
||||
CASE G_REMOVE ; StrCopy(helptext,'Delete the object')
|
||||
CASE G_HELP ; StrCopy(helptext,'Hey there ;)')
|
||||
CASE G_SAVE ; StrCopy(helptext,'Save settings')
|
||||
CASE G_USE ; StrCopy(helptext,'Use these settings')
|
||||
CASE G_TEST ; StrCopy(helptext,'Test these settings')
|
||||
CASE G_CANCEL ; StrCopy(helptext,'Cancel changes')
|
||||
DEFAULT ; StrCopy(helptext,'')
|
||||
ENDSELECT
|
||||
|
||||
IF (SetGadgetAttrsA(gl[G_HELP], win, NIL, [GA_TEXT, helptext, TAG_END] )) THEN RefreshGList(gl[G_HELP], win, NIL, 1)
|
||||
|
||||
CASE WMHI_CLOSEWINDOW
|
||||
/* The window close gadget was hit. Time to die...
|
||||
*/
|
||||
done := TRUE
|
||||
|
||||
CASE WMHI_ICONIFY
|
||||
/* Window requests that it be iconified. Handle this event as
|
||||
* soon as possible. The window is not iconified automatically to
|
||||
* give you a chance to make note that the window pointer will be
|
||||
* invalid before the window closes. It also allows you to free
|
||||
* resources only needed when the window is open, if you wish to.
|
||||
*/
|
||||
IF (CA_Iconify( window )) THEN win := NIL
|
||||
|
||||
CASE WMHI_UNICONIFY
|
||||
/* The window should be reopened. If you had free'd something
|
||||
* on iconify, now is the time to re-allocate it, before calling
|
||||
* CA_OpenWindow.
|
||||
*/
|
||||
win := CA_OpenWindow( window )
|
||||
|
||||
ENDSELECT
|
||||
ENDWHILE
|
||||
|
||||
ELSEIF (sig AND SIGBREAKF_CTRL_C)
|
||||
done := TRUE
|
||||
ENDIF
|
||||
|
||||
ENDWHILE
|
||||
|
||||
/* Close the window and dispose of all attached gadgets
|
||||
*/
|
||||
DisposeObject( window )
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF appport THEN DeleteMsgPort(appport)
|
||||
|
||||
/* NIL is valid input for these helper functions, so no need to check.
|
||||
*/
|
||||
freeChooserLabels( typelist )
|
||||
freeBrowserNodes( objlist )
|
||||
|
||||
FreeArgs(args)
|
||||
ENDIF
|
||||
|
||||
EXCEPT DO
|
||||
|
||||
IF buttonbase THEN CloseLibrary(buttonbase)
|
||||
IF listbrowserbase THEN CloseLibrary(listbrowserbase)
|
||||
IF chooserbase THEN CloseLibrary(chooserbase)
|
||||
IF windowbase THEN CloseLibrary(windowbase)
|
||||
IF layoutbase THEN CloseLibrary(layoutbase)
|
||||
IF labelbase THEN CloseLibrary(labelbase)
|
||||
IF iconbase THEN CloseLibrary(iconbase)
|
||||
ENDPROC
|
||||
BIN
AmigaE/LayoutExample.info
Normal file
BIN
AmigaE/LayoutExample.info
Normal file
Binary file not shown.
BIN
AmigaE/PenMapExample
Normal file
BIN
AmigaE/PenMapExample
Normal file
Binary file not shown.
1773
AmigaE/PenMapExample.e
Normal file
1773
AmigaE/PenMapExample.e
Normal file
File diff suppressed because it is too large
Load Diff
BIN
AmigaE/PenMapExample.info
Normal file
BIN
AmigaE/PenMapExample.info
Normal file
Binary file not shown.
261
ClassActDemo.doc
Normal file
261
ClassActDemo.doc
Normal file
@@ -0,0 +1,261 @@
|
||||
ClassAct 2.0 Demo
|
||||
-----------------
|
||||
-------
|
||||
---
|
||||
|
||||
ClassAct is a set of over 30 BOOPSI classes co-authored by Christopher
|
||||
Aldi, Timothy Aston, Osma Ahvenlampi, and Petter Nilsen. Its now being
|
||||
published by Finale Development, Inc.
|
||||
|
||||
ClassAct provides object-oriented building blocks for your application in
|
||||
the form of Intuition BOOPSI classes available as either shared run-time or
|
||||
link-time libraries. As they are standard classes, they may be used with
|
||||
any application environment supporting BOOPSI. ClassAct is a complete GUI
|
||||
system in its own right, supporting everything from simple buttons to an
|
||||
advanced list management class, and includes a complete window GUI layout
|
||||
system classes that lets you create font-sensitive and resizable interfaces
|
||||
quickly and easily, including any preferenced window backfill pattern
|
||||
loadable via the system DataTypes.
|
||||
|
||||
Programs that use ClassAct can be made freely distributable, shareware,
|
||||
commercial, etc. and there is NO FEE for users. When you purchase
|
||||
ClassAct, users of your software get to use all the preferences functions
|
||||
of our system. ClassAct a powerful and time-saving choice for software
|
||||
developers, and an affordable and convenient one as well.
|
||||
|
||||
Since ClassAct classes are BOOPSI, they automatically support all kinds of
|
||||
great features such as window relatively (resizability), 3.x help,
|
||||
notification, and interconnections with other BOOPSI classes (which do not
|
||||
necessarily have to be ClassAct classes). ClassAct classes are "standard"
|
||||
AmigaOS BOOPSI class libraries, much like the colorwheel and gradient
|
||||
sliders that come with release 3.x of the Amiga's operating system.
|
||||
ClassAct classes are built for speed, power, efficiency and stability.
|
||||
|
||||
ClassAct is compatible with 2.04 (V37) thru 3.1 (V40) releases of the Amiga
|
||||
operating system and take advantage of performance increases available in
|
||||
release 3.x (V39+). ClassAct has been tested with ECS, AGA, CyberGraphics,
|
||||
Retina, Picasso II and EGS Spectrum.
|
||||
|
||||
ClassAct is an expanding project, providing you with the graphical user
|
||||
interface tools you need to write your application. ClassAct is currently
|
||||
over 30 different classes, and the list is growing all the time!
|
||||
|
||||
Installation:
|
||||
-------------
|
||||
|
||||
You must first run the Install_Classes Installer script to install the
|
||||
ClassAct classes and prefs tool on your Amiga. You will not be able to run
|
||||
any of the examples without the classes installed. If you already have
|
||||
some ClassAct classes on your system, the Installer will only copy NEWER
|
||||
versions. Note that the Installer does not copy the examples or demo
|
||||
documentation. You may run the demos right out of the extracted archive
|
||||
one installing the classes. Class updates dated newer than this demo
|
||||
archive may, or may not be available for FTP from ftp.warped.com or
|
||||
ftp.finale-dev.com user support sites.
|
||||
|
||||
Support Classes:
|
||||
----------------
|
||||
|
||||
* ARexx class
|
||||
- Powerful ARexx class which can be used to create and manage
|
||||
arexxports. Supports many arexx abilities such as stems, etc.
|
||||
|
||||
* Window class
|
||||
- creates intuition window objects. Windows maybe opened, closed
|
||||
or iconified at will. Many window attributes may be set while
|
||||
the window is open. Automatically handles keyboard control,
|
||||
task defered display rendering, and many other issues to
|
||||
simplify IDCMP processing and programming overhead. Preference
|
||||
user backfill hooks are also supported.
|
||||
|
||||
Gadget Classes:
|
||||
---------------
|
||||
* Button gadget class
|
||||
- powerful button class with many of options including built-in
|
||||
arrow glyphs, tab-cycle support, custom images and more.
|
||||
|
||||
* CheckBox gadget class
|
||||
- for checkbox gadgets, very much like GadTools CHECKBOX_KIND.
|
||||
|
||||
* Chooser gadget class
|
||||
- for pop-up and drop-down menus simular in purpose to CycleGadgets.
|
||||
|
||||
* Clicktab gadget class
|
||||
- for file folder like click tab pages
|
||||
|
||||
* Fuel Gauge gadget class
|
||||
- for progress indication, several features including optional
|
||||
tick marks, and orientation settings.
|
||||
|
||||
* GetFile gadget class
|
||||
- Allows the user the option of typing in a file name or popping up a
|
||||
file requester to choose a file.
|
||||
|
||||
* GetFont gadget class
|
||||
- Lets the user pop up a font requester to choose a font.
|
||||
|
||||
* GetScreenMode gadget class
|
||||
- Lets the user pop up a screen mode requester to choose a screen mode.
|
||||
|
||||
* Integer gadget class
|
||||
- an integer gadget with optional arrows.
|
||||
|
||||
* ListBrowser gadget class
|
||||
- a listview supporting multiple columns, images, multi-select, etc.
|
||||
|
||||
* Layout gadget class -
|
||||
- for laying out gadgets and images in a font-sensitive and resizable
|
||||
hierarchical group fashion.
|
||||
|
||||
* Page gadget class -
|
||||
- may be used in conjuntion with clicktab or other classes
|
||||
to provided paged gui displays.
|
||||
|
||||
* RadioButton gadget class
|
||||
- for radio button gadgets, like GadTools MX_KIND.
|
||||
|
||||
* Scroller gadget class
|
||||
- a proportional scrollbar with arrows, and slider mode.
|
||||
|
||||
* SpeedBar gadget class
|
||||
- for button tool bars (horizontal or vertical orientations) with
|
||||
optional window title bar help messages.
|
||||
|
||||
* String gadget class
|
||||
- a simple string gadget with bevel frame.
|
||||
|
||||
|
||||
Image Classes:
|
||||
--------------
|
||||
* Bevel image class
|
||||
- for drawing bevel grouping boxes
|
||||
- supports all kinds of standard bevels, including titled grouping.
|
||||
bevels, drop-box bevels, optional inner fill color and text, etc.
|
||||
|
||||
* Bitmap image class
|
||||
- A contributed class, by Yvon Rozijn (Author of A-Web Amiga WWW
|
||||
Browser)
|
||||
- easily create images for Bitmap structures.
|
||||
- loads images seamlessly through datatypes.library.
|
||||
- resultant bitmap image can be embedded within a GUI Layout, Button,
|
||||
Speedbar, etc.
|
||||
|
||||
* Draw List image class
|
||||
- for designing custom colorized and scaled vector/areafill images.
|
||||
|
||||
* Glyph image class
|
||||
- for standard scalable system images
|
||||
- includes many images: arrows, get file, get font, etc.
|
||||
|
||||
* Label image class
|
||||
- makes multi-line labels mixing text, colors, images, styles, etc.
|
||||
|
||||
* Penmap image class
|
||||
- for pen-remapped images.
|
||||
|
||||
|
||||
Future classes in development include requester class, balance groups,
|
||||
virtual groups, application class, external tracker, printer class,
|
||||
and more!
|
||||
|
||||
Should You Use ClassAct?:
|
||||
-------------------------
|
||||
Have you written or are you currently in the process of developing Amiga
|
||||
applications? If so, the answer is a very definite YES, you should be
|
||||
using ClassAct.
|
||||
|
||||
The graphic user interfaces of many Amiga applications fit atleast one or
|
||||
more of the following descriptions:
|
||||
|
||||
- Non-existant (i.e. command line only)
|
||||
- Not font sensitive
|
||||
- Not Locale sensitive
|
||||
- Slow
|
||||
- Memory Intensive
|
||||
- Unattractive
|
||||
- Lacking in intuitiveness and originality
|
||||
- Non-standard
|
||||
- Poor or limited keyboard control
|
||||
|
||||
The reasons for this are simple. Many of the existing systems for creating
|
||||
a GUI are either limited in features, slow, hard to use, and/or violate
|
||||
system standards. ClassAct makes every attempt to combine compability,
|
||||
flexiblity, usablility and some originality while following Amiga style
|
||||
guide.
|
||||
|
||||
This is why you should use ClassAct. The Amiga is a graphic system and
|
||||
applications should have a attractive and responsive graphic user
|
||||
interface. The ClassAct toolkit allows you to easily create an attractive
|
||||
GUI that doesn't suffer from the deficiencies listed above.
|
||||
|
||||
If you want your application to be easy to use, fast and professional
|
||||
looking then you should consider ClassAct.
|
||||
|
||||
|
||||
Purchasing ClassAct:
|
||||
--------------------
|
||||
|
||||
ClassAct is availble NOW only from for just $39.95 USD for public domain
|
||||
and sharware authors, and $69.95 USD for commercial developers. It can be
|
||||
ordered directly from Finale Development, Inc:
|
||||
|
||||
|
||||
Finale Development, Inc.
|
||||
P.O. Box 6905
|
||||
West Palm Beach, FL. 33405
|
||||
USA
|
||||
|
||||
Phone: 1 (203) 235-7518
|
||||
Fax: 1 (203) 237-8459
|
||||
|
||||
E-Mail: caldi@ct1.nai.net
|
||||
E-Mail: caldi@finale-dev.com
|
||||
|
||||
If you are an author of an exising application using a competitive GUI
|
||||
product such as MUI, BGUI, StormWizard, GadLayout, GTLayout, Triton,
|
||||
GadOutline, or GUIEnv, you may take an advantage of a $10 USD discount
|
||||
off the purchase price.
|
||||
|
||||
|
||||
The ClassAct web site url is:
|
||||
|
||||
WWW: http://www.warped.com/~timmer/classact/
|
||||
|
||||
|
||||
Here is some of what is included with ClassAct:
|
||||
|
||||
- The complete set of ClassAct BOOPSI classes.
|
||||
|
||||
- Documentation how to use each class in C= AutoDoc format.
|
||||
|
||||
- Examples programs in C and AmigaE for using each of the classes.
|
||||
|
||||
- C, AmigaE, Cyclone Module II, includes that you will need for writing
|
||||
programs that use ClassAct. Assember support available, ask for details.
|
||||
We offer FREE copies of ClassAct to anyone who wishes to create the
|
||||
support modules and includes for other compilers. Please email us for
|
||||
more details.
|
||||
|
||||
- classact.lib which includes SAS/C or DICE auto-open support for
|
||||
ClassAct classes easing use. Source included.
|
||||
|
||||
- SBGen which allows you to quickly generate SpeedBar gadget source
|
||||
code and image data from a collection of 100+ pre-designed images.
|
||||
|
||||
- Free bug fixes via ftp/email.
|
||||
|
||||
- Free minor updates via ftp/email.
|
||||
|
||||
- Technical support directly from the ClassAct Development Team
|
||||
and via the ClassAct Mailing list. (See our FAQ for more info).
|
||||
|
||||
We hope you enjoy the ClassAct demo. Be sure you experiment with the
|
||||
included preferences program to configure various GUI styles. If you
|
||||
have any questions or comments, suggestions or problems, please do not
|
||||
hesitate to contact us.
|
||||
|
||||
We want your comments and suggestions so we can improve ClassAct. If you
|
||||
should find a bug, or shortcoming in the system, we encorage you to contact
|
||||
us immediatly with as much related information as possible - an unreported
|
||||
bug may never get fixed if it is not discovered and reported.
|
||||
|
||||
BIN
ClassActDemo.doc.info
Normal file
BIN
ClassActDemo.doc.info
Normal file
Binary file not shown.
444
ClassActFAQ.doc
Normal file
444
ClassActFAQ.doc
Normal file
@@ -0,0 +1,444 @@
|
||||
CLASSACT FAQ
|
||||
|
||||
|
||||
THIS DOCUMENT
|
||||
|
||||
This document was written to answer to frequently asked questions
|
||||
about the ClassAct GUI toolkit. It addresses both user and developer
|
||||
questions. Sorry, some information is not quite up-to-date for
|
||||
ClassAct 2.0 yet.
|
||||
|
||||
|
||||
MAINTAINER
|
||||
|
||||
This FAQ is maintained by Osma Ahvenlampi <Osma.Ahvenlampi@hut.fi>
|
||||
|
||||
|
||||
CONTENTS
|
||||
|
||||
1.1 What is ClassAct?
|
||||
1.2 What's the availability?
|
||||
1.3 Why is it better than the other GUI toolkits?
|
||||
1.4 Where can I get ClassAct?
|
||||
1.5 Is there a mailing list?
|
||||
1.6 What uses ClassAct?
|
||||
|
||||
2.1 What is in ClassAct?
|
||||
2.2 How about the developer support stuff?
|
||||
2.3 How does writing ClassAct applications differ from GadTools?
|
||||
2.4 From other toolkits?
|
||||
|
||||
3.1 Can I change the way ClassAct looks?
|
||||
3.2 Is there a preferences editor?
|
||||
3.3 Can ClassAct use background patterns?
|
||||
|
||||
4.1 What is this deferred refresh thing?
|
||||
4.2 How does it work?
|
||||
4.3 How do the gadgets interconnect?
|
||||
4.4 How does ClassAct support keyboard control?
|
||||
|
||||
THE FAQ
|
||||
|
||||
1.1 What is ClassAct?
|
||||
|
||||
ClassAct is a GUI toolkit for the Amiga, implemented as a set of
|
||||
easy to use shared BOOPSI class libraries.
|
||||
|
||||
ClassAct provides object-oriented building blocks for your
|
||||
application in the form of Intuition BOOPSI classes available as
|
||||
either shared run-time libraries. As they are standard classes,
|
||||
they may be used with any application environment supporting
|
||||
BOOPSI. However, ClassAct is a complete GUI system in its own right,
|
||||
supporting everything from simple buttons to an advanced listview
|
||||
class supporting multi-select, images, multi-column and more.
|
||||
In addition, a complete GUI fast window and layout system class that
|
||||
lets you create font-sensitive and resizable interfaces quickly
|
||||
and easily.
|
||||
|
||||
1.2 What's the availability?
|
||||
|
||||
Programs that use ClassAct can be made freely distributable,
|
||||
shareware, commercial, etc. as there is no fee for users! When you
|
||||
purchase ClassAct, users of your software get to use all the
|
||||
functions/preferences of our classes. This not only makes ClassAct
|
||||
a powerful and time-saving choice for software developers, but an
|
||||
affordable and convenient one as well.
|
||||
|
||||
ClassAct is a commercial toolkit with a developer kit available for
|
||||
$69.95. This kit contains the latest ClassAct libraries, the C
|
||||
headers, and the programmer documentation, plus many example programs
|
||||
with source. The kit also includes a distribution license for the
|
||||
class libraries, which means that they can be distributed free of
|
||||
charge with the applications using them. For inclusion with software
|
||||
to be bundled and/or distributed with the AmigaOS, a special license
|
||||
is available.
|
||||
|
||||
For freeware and shareware developers there is a special deal of the
|
||||
toolkit for only $39.95. The package is exactly the same and entitles
|
||||
the buyer to the same support, but the distribution license restricts
|
||||
the use of the toolkit to non-commercial programs. That means public
|
||||
domain, freeware, shareware and similar applications.
|
||||
|
||||
1.3 Why is it better than other GUI toolkits?
|
||||
|
||||
Since ClassAct all classes are BOOPSI, they automatically support all
|
||||
sorts of great features, such as window relativity (resizability),
|
||||
3.x gadgethelp, notification, and interconnections with other BOOPSI
|
||||
classes (which do not necessarily have to be ClassAct classes).
|
||||
ClassAct classes are totally standard BOOPSI objects, just like the
|
||||
colorwheel and gradient sliders that come with release 3.x of the
|
||||
Amiga's operating system. ClassAct classes are built for speed,
|
||||
power and efficiency. Many systems are cumbersome or limited in
|
||||
ability, and user preference, often the result of trying to build
|
||||
on top of the limited GadTools system. Many people think BOOPSI and
|
||||
get scared off, this is only because until now, there have not been
|
||||
many BOOPSI objects to work with. Making a BOOPSI interface often
|
||||
requiers writing your own gadget classes since AmigaOS does not
|
||||
provide anything beyond the basic button, string and scroller.
|
||||
|
||||
ClassAct provides all of the ground work, over 25 font adaptive
|
||||
feature rich classes, letting you concentrate on your application,
|
||||
and its GUI, not how to implement it or work around short comings
|
||||
of lesser systems.
|
||||
|
||||
All ClassAct classes are compatible with 2.04 (V37) thru 3.1 (V40)
|
||||
releases of the Amiga operating system and take advantage of
|
||||
performance increases available in release 3.x.
|
||||
|
||||
1.4 Where can I get ClassAct?
|
||||
|
||||
ClassAct is availble NOW only from for just $39.95 USD for public
|
||||
domain and sharware authors, and $69.95 USD for commercial
|
||||
developers. It can be ordered directly from Finale Development, Inc:
|
||||
|
||||
Finale Development, Inc.
|
||||
P.O. Box 6905
|
||||
West Palm Beach, FL. 33405
|
||||
USA
|
||||
|
||||
Phone: 1 203 235 7518
|
||||
Fax: 1 203 237 8459
|
||||
|
||||
E-Mail: caldi@ct1.nai.net
|
||||
|
||||
Demos and maintenance updates are available via FTP from:
|
||||
|
||||
FTP: ftp.warped.com
|
||||
/pub/amiga/classact/ClassActDemo.lha
|
||||
/pub/amiga/classact/Classes-##-XXX-##.lha
|
||||
|
||||
Where ##-XXX-## prepresents the date of the update release,
|
||||
for example: Classes-8-May-97.lha
|
||||
|
||||
The ClassAct web site is at:
|
||||
WWW: http://www.warped.com/~timmer/classact/
|
||||
|
||||
1.5 Is there a mailing list?
|
||||
|
||||
Yes. To subscribe, send a message to;
|
||||
|
||||
majordomo@warped.com
|
||||
|
||||
with the line,
|
||||
|
||||
subscribe classact <your-email-address>
|
||||
|
||||
in the BODY of the message. For example,
|
||||
|
||||
subscribe classact joe@bob.com
|
||||
|
||||
This mailing list is the primary form of support for the toolkit.
|
||||
All of the developers read it and answer questions.
|
||||
|
||||
1.6 What uses ClassAct?
|
||||
|
||||
Several ClassAct applications are being developed. A few
|
||||
have already been, or are very near release;
|
||||
|
||||
Excelsior BBS - The lastest version of E! BBS now usess ClassAct.
|
||||
|
||||
SysInspector - System Inspector, simular in purpose to Xoper
|
||||
with a very attractive ClassAct GUI.
|
||||
|
||||
EnPrint - Epson Stylus printer driver/control software
|
||||
Available from Endicor Technologies.
|
||||
|
||||
IW225 Pro - IW225 Professional TCP/IP Stack is now using
|
||||
ClassAct for point & click GUI QuickPrefs
|
||||
configuration as well as bundled with the
|
||||
new DaFTP. Available from InterWorks.
|
||||
|
||||
NewYork - An NNTP News Reader, styled after Voodoo. In
|
||||
beta stages of development, and like Voodoo,
|
||||
this is being written by one one of the ClassAct
|
||||
co-authors. Email caldi@ct1.nai.net for more info.
|
||||
|
||||
NewIcons 3.0 - Recently release version of NewIcons, uses
|
||||
ClassAct for NI3 prefs.
|
||||
|
||||
AmiFTP - AmiFTP, another popular GUI FTP client has been
|
||||
re-implemented with ClassAct. More info at:
|
||||
|
||||
http://www.lysator.liu.se/~lilja/AmiFTP.html
|
||||
|
||||
DaFTP'96 - The popular DaFTP has been re-implemented
|
||||
using ClassAct.
|
||||
|
||||
Voodoo - A multithreaded mail reader with MIME support,
|
||||
Rexx interface for OS 3.x, and included
|
||||
in the Amiga Technologies Surfer bundle.
|
||||
|
||||
http://www.niksula.cs.hut.fi/~oahvenla/voodoo/
|
||||
|
||||
Thor 2.5 - The popular THOR news/email offline/tcp reader
|
||||
is being ported to ClassAct. Available Soon!
|
||||
|
||||
Note, V2.5 beta/preview is available now for
|
||||
registered users.
|
||||
|
||||
Grapevine2 - A greatly enhanced version of the original GUI IRC
|
||||
client is in the hands of a small group of
|
||||
testers now - and a year later now, it still is. <g>
|
||||
|
||||
CompactPlayer - A SCSI-2 audio CD player implemented as an early
|
||||
demo of using ClassAct is available with source
|
||||
from:
|
||||
|
||||
Aminet: /disk/cdrom/CompactPlayer.lha
|
||||
|
||||
Asokoban3 - Amiga version xsokoban, a very impressive game.
|
||||
|
||||
AmiLights - A puzzel game, playable on the Workbench screen,
|
||||
from Doug Dyer - author of the popular AmiCheck.
|
||||
|
||||
A list with links to respective software is also on the ClassAct
|
||||
web page. And there is much more to come!
|
||||
|
||||
|
||||
2.1 What is in ClassAct?
|
||||
|
||||
ClassAct is an expanding project. Currently over 30 different classes,
|
||||
and the number is expanding all the time. ClassAct also has some tools
|
||||
to aid in building user interfaces. And here is a list of classes;
|
||||
|
||||
Gadget Classes:
|
||||
* Button gadget class
|
||||
- powerful button class with many of options including built-in
|
||||
arrow glyphs, tab-cycle support, custom images and more.
|
||||
|
||||
* CheckBox gadget class
|
||||
- for checkbox gadgets, very much like GadTools CHECKBOX_KIND.
|
||||
|
||||
* Chooser gadget class
|
||||
- for pop-up and drop-down menus similar in purpose to GadTools
|
||||
CYCLE_KIND.
|
||||
|
||||
* Clicktab gadget class
|
||||
- for file-folder tabs gadgets. May used in conjunction with
|
||||
the Page gadget to "flip" the virtual pages.
|
||||
|
||||
* Fuel Gauge gadget class
|
||||
- for progress indication, several features including optional
|
||||
tick marks, and orientation settings.
|
||||
|
||||
* Integer gadget class
|
||||
- an integer gadget with optional arrows.
|
||||
|
||||
* Layout gadget class
|
||||
- for laying out gadgets and images in a font-sensitive and
|
||||
resizable hierarchical group fashion.
|
||||
|
||||
* ListBrowser gadget class
|
||||
- a listview supporting multiple columns, images, multi-select,
|
||||
hierarchical lists, etc.
|
||||
|
||||
* Page gadget class
|
||||
- a virtual page class for hiding groups of gadgets from view.
|
||||
|
||||
* Palette gadget class
|
||||
- for color selection, like GadTools PALETTE_KIND.
|
||||
|
||||
* RadioButton gadget class
|
||||
- for radio button gadgets, like GadTools MX_KIND.
|
||||
|
||||
* Scroller gadget class
|
||||
- a proportional scrollbar with arrows, and slider mode.
|
||||
|
||||
* SpeedBar gadget class
|
||||
- for button tool bars (horizontal or vertical orientations) with
|
||||
optional window title bar help messages.
|
||||
|
||||
* String gadget class
|
||||
- a simple string gadget with bevel frame, compatible with
|
||||
strgclass.
|
||||
|
||||
Image Classes:
|
||||
* Bevel image class
|
||||
- for drawing bevel grouping boxes
|
||||
- supports all kinds of standard bevels, including titled grouping.
|
||||
bevels, drop-box bevels, optional inner fill color and text, etc.
|
||||
|
||||
* Draw List image class
|
||||
- for designing custom colorized and scaled vector/areafill images.
|
||||
|
||||
* Glyph image class
|
||||
- for standard scalable system images
|
||||
- includes many images: arrows, get file, get font, etc.
|
||||
|
||||
* Label image class
|
||||
- makes multi-line labels mixing text, colors, images, styles, etc.
|
||||
|
||||
* Penmap image class
|
||||
- for pen-remapped images.
|
||||
|
||||
Other Support Classes:
|
||||
* Window class
|
||||
- deferred layout & gadget refresh support.
|
||||
- automatic gadget keyboard control support with visual feedback.
|
||||
- iconification.
|
||||
- greatly simplified IDCMP processing.
|
||||
|
||||
* ARexx class
|
||||
- simplifies creation and handling of ARexx ports.
|
||||
|
||||
|
||||
2.2 How about the developer support stuff?
|
||||
|
||||
Here is some of what is included with ClassAct:
|
||||
|
||||
- The complete set of ClassAct BOOPSI classes.
|
||||
- Autodocs in text and AmigaGuide format telling you how to use each
|
||||
class.
|
||||
- classact.lib (with source) which includes SAS/C and DICE autoopen
|
||||
support for ClassAct classes, plus useful support routines.
|
||||
- SBGen which allows you to quickly generate SpeedBar gadget source
|
||||
code and image data.
|
||||
- PMGen for creating penmap.image source data from pictures.
|
||||
- Examples programs in C for using each of the classes.
|
||||
- C includes that you will need for writing programs that use ClassAct.
|
||||
- Technical support from Phantom Development.
|
||||
|
||||
2.3 How does writing ClassAct applications differ from GadTools?
|
||||
|
||||
The first and foremost difference is that designing a GUI is much
|
||||
easier. Even with GUI builders such as GadToolsBox, making a GadTools
|
||||
GUI includes a lot of pixel-level tweaking to make it look right
|
||||
for font sensitivity, notably with various locales, and prop fonts.
|
||||
|
||||
With ClassAct the GUI is described as a layout hierarchy, and the
|
||||
layout engine will take care of sizing and positioning gadgets. The
|
||||
developer need not, and should not, try to place objects in absolute
|
||||
positions. Resizability needs no extra work, because layout.gadget
|
||||
will scale the hierarchy to fit any size.
|
||||
|
||||
Second, of course, is that the GadTools counterparts of ClassAct
|
||||
gadgets are much more restricted, if they in fact even exist at all.
|
||||
|
||||
GadTools may be harder to use because many operations require that
|
||||
the gadgets be destroyed and recreated in some instances, eg resize,
|
||||
changing fonts/screens, etc. With ClassAct they don't even have to be
|
||||
detached from the window before modifying - they are BOOPSI objects.
|
||||
|
||||
2.4 From other toolkits?
|
||||
|
||||
Many available GUI toolkits are based on GadTools. While they make
|
||||
creating a GUI easier, they can not fix some deficiencies of
|
||||
GadTools. Because ClassAct is BOOPSI, these deficiencies often do
|
||||
not exist. In addition, ClassAct provides many gadgets and abilities
|
||||
absent from some other packages.
|
||||
|
||||
In some ways, ClassAct resembles MUI. However, there are many big
|
||||
differences. ClassAct can be used at many levels. The simplest
|
||||
applications might only need a single gadget, such as the fuelgauge
|
||||
progress indicator. ClassAct allows putting single gadgets such as
|
||||
this into existing GadTools interfaces, because the gadgets are
|
||||
as useful independantly as they are when part of the whole. The
|
||||
gadgets send normal IDCMP messages back to the application, and do
|
||||
not require special front end event handlers. Exec and Intuition
|
||||
functions are enough to deal with ClassAct. On the other hand, the
|
||||
whole GUI can be quickly created using ClassAct gadgets, the
|
||||
ClassAct Window Class can even provide completely transparent
|
||||
keyboard shortcuts with no additional effort by the programmer.
|
||||
This is the prefered and recommended usage.
|
||||
|
||||
|
||||
3.1 Can I change the way ClassAct looks?
|
||||
|
||||
ClassAct has a number of system-wide default settings. While we
|
||||
accept that some GUI features have to be user configurable, the
|
||||
common methods of providing this configurability have until now been
|
||||
sub-optimal. We are working on giving application-level
|
||||
configurability to ClassAct with a method that differs from the
|
||||
usual approaches to the problem. Suggestions welcome!
|
||||
|
||||
3.2 Is there a preferences editor?
|
||||
|
||||
Yes. An editor for setting global GUI preferences for things such as
|
||||
bevel styles, default window backfill patterns, fallback font label
|
||||
pen settings and built-in gadget imagery and so on is constantly
|
||||
being worked on. The current version is available in the demo and
|
||||
update archives and is provided free to all ClassAct users.
|
||||
|
||||
3.3 Can ClassAct use background patterns?
|
||||
|
||||
The layout system accepts both a simple RectFill pattern and a
|
||||
backfill hook for more complicated patterns (such as a background
|
||||
picture). It is very simple to use a generic backfill hook with
|
||||
ClassAct. Examples are provided on how to override the default hook.
|
||||
|
||||
|
||||
4.1 What is this deferred refresh thing?
|
||||
|
||||
Normally, when a window requires refreshing, Intuition will
|
||||
automatically refresh the "damaged" regions in the window's borders
|
||||
and gadgets. However, with complex gadgets, this can take time, and
|
||||
that time is taken by input.device. Unfortunately input.device is
|
||||
responsible for other things too, such as moving the mouse pointer.
|
||||
A refresh of a window filled with complex BOOPSI gadgets can make the
|
||||
mouse pointer "freeze" for a second. Not only that, but since
|
||||
input.device runs at a high priority, the whole machine appears to
|
||||
stop for a fraction of a second while the refresh is taking place.
|
||||
|
||||
This is even worse when the window is resized. Not only do the
|
||||
gadgets have to be redrawn, but also their size has to be
|
||||
recalculated. Resizing a window can stop input.device for even a
|
||||
couple of seconds at worst.
|
||||
|
||||
ClassAct's window and layout classes work together to eliminate this
|
||||
problem. When using the deferred refresh feature of these classes,
|
||||
input.device can continue while the relayout and refresh are done by
|
||||
the application task.
|
||||
|
||||
4.2 How does it work?
|
||||
|
||||
The concept is quite simple. When a layout gadget receives a command
|
||||
to refresh itself and notices that it was dispatched by input.device,
|
||||
it will check whether it had been instructed to defer refreshes. If
|
||||
that is the case, it will, instead of refreshing itself, notify the
|
||||
window class that it should restart the refresh in the application
|
||||
context. Windowclass will then decide on the exact method of refresh
|
||||
based on the refresh type (smart or simple, possibly nocare) and send
|
||||
another refresh command to the layout gadget. Meanwhile, input.device
|
||||
can do something else.
|
||||
|
||||
4.3 How do the gadgets interconnect?
|
||||
|
||||
You can use the normal BOOPSI ICA_MAP and ICA_TARGET tags and the
|
||||
ic and model classes built in the OS. All of the ClassAct classes
|
||||
provide state information through the OM_NOTIFY method. In addition,
|
||||
the layout.gadget automatically connects objects to their labels,
|
||||
groups to each other, etc.
|
||||
|
||||
4.4 How does ClassAct support keyboard control?
|
||||
|
||||
The ClassAct window class, together with the layout class, will make
|
||||
keyboard control completely transparent to applications. As long as
|
||||
the gadget label contains a shortcut character (normally the
|
||||
character after a '_' character), the gadget will have a keyboard
|
||||
shortcut. Gadgets provide visual feedback through two custom gadget
|
||||
methods (documented in case you want to make your own custom gadget),
|
||||
ie. a button will "depress" when you press the shortcut key, and
|
||||
release when you release the key. The message you get afterwards is
|
||||
identical to a normal mouse button triggered gadget event. Window
|
||||
class can deal with several keys pressed down and other such special
|
||||
case events.
|
||||
BIN
ClassActFAQ.doc.info
Normal file
BIN
ClassActFAQ.doc.info
Normal file
Binary file not shown.
BIN
Classes.info
Normal file
BIN
Classes.info
Normal file
Binary file not shown.
BIN
Classes/arexx.class
Normal file
BIN
Classes/arexx.class
Normal file
Binary file not shown.
BIN
Classes/gadgets/button.gadget
Normal file
BIN
Classes/gadgets/button.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/checkbox.gadget
Normal file
BIN
Classes/gadgets/checkbox.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/chooser.gadget
Normal file
BIN
Classes/gadgets/chooser.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/clicktab.gadget
Normal file
BIN
Classes/gadgets/clicktab.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/fuelgauge.gadget
Normal file
BIN
Classes/gadgets/fuelgauge.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/getfile.gadget
Normal file
BIN
Classes/gadgets/getfile.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/getfont.gadget
Normal file
BIN
Classes/gadgets/getfont.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/getscreenmode.gadget
Normal file
BIN
Classes/gadgets/getscreenmode.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/integer.gadget
Normal file
BIN
Classes/gadgets/integer.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/layout.gadget
Normal file
BIN
Classes/gadgets/layout.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/layout.gadget.020
Normal file
BIN
Classes/gadgets/layout.gadget.020
Normal file
Binary file not shown.
BIN
Classes/gadgets/listbrowser.gadget
Normal file
BIN
Classes/gadgets/listbrowser.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/palette.gadget
Normal file
BIN
Classes/gadgets/palette.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/radiobutton.gadget
Normal file
BIN
Classes/gadgets/radiobutton.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/scroller.gadget
Normal file
BIN
Classes/gadgets/scroller.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/slider.gadget
Normal file
BIN
Classes/gadgets/slider.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/space.gadget
Normal file
BIN
Classes/gadgets/space.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/speedbar.gadget
Normal file
BIN
Classes/gadgets/speedbar.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/string.gadget
Normal file
BIN
Classes/gadgets/string.gadget
Normal file
Binary file not shown.
BIN
Classes/gadgets/textfield.gadget
Normal file
BIN
Classes/gadgets/textfield.gadget
Normal file
Binary file not shown.
BIN
Classes/images/bevel.image
Normal file
BIN
Classes/images/bevel.image
Normal file
Binary file not shown.
BIN
Classes/images/bitmap.image
Normal file
BIN
Classes/images/bitmap.image
Normal file
Binary file not shown.
BIN
Classes/images/drawlist.image
Normal file
BIN
Classes/images/drawlist.image
Normal file
Binary file not shown.
BIN
Classes/images/glyph.image
Normal file
BIN
Classes/images/glyph.image
Normal file
Binary file not shown.
BIN
Classes/images/label.image
Normal file
BIN
Classes/images/label.image
Normal file
Binary file not shown.
BIN
Classes/images/penmap.image
Normal file
BIN
Classes/images/penmap.image
Normal file
Binary file not shown.
BIN
Classes/window.class
Normal file
BIN
Classes/window.class
Normal file
Binary file not shown.
BIN
Demo/ClassActDemo
Normal file
BIN
Demo/ClassActDemo
Normal file
Binary file not shown.
1447
Demo/ClassActDemo.c
Normal file
1447
Demo/ClassActDemo.c
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Demo/ClassActDemo.c.info
Normal file
BIN
Demo/ClassActDemo.c.info
Normal file
Binary file not shown.
BIN
Demo/ClassActDemo.info
Normal file
BIN
Demo/ClassActDemo.info
Normal file
Binary file not shown.
6
Demo/ClassActDemo.lnk
Normal file
6
Demo/ClassActDemo.lnk
Normal file
@@ -0,0 +1,6 @@
|
||||
FROM LIB:c.o "ClassActDemo.o"+"Images.o"
|
||||
TO "ClassActDemo"
|
||||
LIB lib:classact.lib lib:debug.lib LIB:sc.lib LIB:amiga.lib
|
||||
SMALLCODE
|
||||
SMALLDATA
|
||||
|
||||
BIN
Demo/ClassActDemo.o
Normal file
BIN
Demo/ClassActDemo.o
Normal file
Binary file not shown.
949
Demo/Images.c
Normal file
949
Demo/Images.c
Normal file
@@ -0,0 +1,949 @@
|
||||
#include <exec/types.h>
|
||||
#include <intuition/intuition.h>
|
||||
|
||||
__chip UWORD picture_data[2205] =
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x0001, 0x8000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0003, 0x8000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0007, 0xF000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0xF800, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0x3400, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x003D, 0x9E00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0078, 0xDF00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x00F0, 0x6F80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x01E0, 0x37C0, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x03C0, 0x1FE0, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0780, 0x8DF0, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0F01, 0x06F8, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x1E02, 0x037C, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x3C04, 0x01BE, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x7808, 0x08DF, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0xF010, 0x106F, 0x8000, 0x0000, 0x0000,
|
||||
0x0000, 0x0001, 0xE020, 0x207F, 0xC000, 0x0000, 0x0000,
|
||||
0x0000, 0x0003, 0xC040, 0x407F, 0xE000, 0x0000, 0x0000,
|
||||
0x0000, 0x0007, 0x8080, 0x80FF, 0xF000, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0x0101, 0x01FF, 0xF800, 0x0000, 0x0000,
|
||||
0x0000, 0x001E, 0x0202, 0x03FF, 0xFC00, 0x0000, 0x0000,
|
||||
0x0000, 0x001C, 0x0404, 0x07FF, 0xFE00, 0x0000, 0x0000,
|
||||
0x0000, 0x007C, 0x0808, 0x0FF2, 0xFF00, 0x0000, 0x0000,
|
||||
0x0000, 0x007E, 0x1010, 0x1FEF, 0x7F80, 0x0000, 0x0000,
|
||||
0x0000, 0x003F, 0x0020, 0x3FFF, 0xBF80, 0x0000, 0x0000,
|
||||
0x0000, 0x001F, 0x8040, 0x7E7F, 0xDF00, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0xC080, 0xFC1F, 0xE600, 0x0000, 0x0000,
|
||||
0x0000, 0x0007, 0xE101, 0xF97F, 0xF400, 0x0000, 0x0000,
|
||||
0x0000, 0x0003, 0xF003, 0xF303, 0xF800, 0x0000, 0x0000,
|
||||
0x0000, 0x0001, 0xF807, 0xE7C1, 0xF000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0xFC0F, 0xCFC1, 0xE000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x7E1F, 0x9FC1, 0xC000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x3F3F, 0x25E0, 0xC000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x1FFE, 0x6EF1, 0x8000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0FBC, 0x7F63, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x07FE, 0x7FA6, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x03FF, 0x1FAC, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x01FF, 0x9FF8, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x00FF, 0xC630, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x007F, 0xE660, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x003F, 0xF0C0, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xF980, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0xFF00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xFF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x3FFF, 0xFF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x001F, 0xFFFF, 0xFFFF, 0x8000, 0x0000, 0x0000,
|
||||
0x0000, 0x007F, 0xFFEF, 0xFF7F, 0xFF00, 0x0000, 0x0000,
|
||||
0x0000, 0x01FF, 0xFFEF, 0xFF7F, 0xFFC0, 0x0000, 0x0000,
|
||||
0x0000, 0x03FF, 0xFFEF, 0x9F7F, 0xFFF0, 0x0000, 0x0000,
|
||||
0x0000, 0x07FF, 0xEFEF, 0x2F7F, 0x7FF8, 0x0000, 0x0000,
|
||||
0x0000, 0x07FF, 0xEFE0, 0x207F, 0x7FFC, 0x0000, 0x0000,
|
||||
0x0000, 0x0FFF, 0xEFE0, 0x207F, 0x7FFC, 0x0000, 0x0000,
|
||||
0x0000, 0x0FFF, 0xF7E0, 0x207E, 0xFFFE, 0x0000, 0x0000,
|
||||
0x0000, 0x1FFF, 0xF7F0, 0x20FE, 0xFFFE, 0x0000, 0x0000,
|
||||
0x0000, 0x1FFF, 0xF7F0, 0x20FE, 0xFFFF, 0x0000, 0x0000,
|
||||
0x0000, 0x3FFF, 0xF1F0, 0x20F8, 0xFFFF, 0x0000, 0x0000,
|
||||
0x0000, 0x3FFF, 0xFEF0, 0x20F7, 0xFFFF, 0x8000, 0x0000,
|
||||
0x0000, 0x7FFF, 0xFDF8, 0x21FB, 0xFFFF, 0x8000, 0x0000,
|
||||
0x0000, 0x7FFF, 0xFBF8, 0x21FD, 0xFFFF, 0xC000, 0x0000,
|
||||
0x0000, 0xFFFF, 0xFBF8, 0x21FD, 0xFFFF, 0xC000, 0x0000,
|
||||
0x0000, 0xFFFF, 0xFDF8, 0x21FB, 0xFFFF, 0xE000, 0x0000,
|
||||
0x0001, 0xFFFF, 0xFDFC, 0x23FB, 0xFFFF, 0xE000, 0x0000,
|
||||
0x0001, 0xFFFF, 0xFDFC, 0x23FB, 0xFFFF, 0xF000, 0x0000,
|
||||
0x0003, 0xFFFF, 0xFEFC, 0x23F7, 0xFFFF, 0xF000, 0x0000,
|
||||
0x0003, 0xFFFF, 0xFEFE, 0x27F7, 0xFFFF, 0xF800, 0x0000,
|
||||
0x0007, 0xFFFF, 0xFEFE, 0x27F7, 0xFFFF, 0xF800, 0x0000,
|
||||
0x0007, 0xFFFF, 0xFF7E, 0x27EF, 0xFFFF, 0xFC00, 0x0000,
|
||||
0x000F, 0xFFFF, 0xFF7F, 0x2FEF, 0xFFFF, 0xFC00, 0x0000,
|
||||
0x000F, 0xFFFF, 0xFFBF, 0x2FDF, 0xFFFF, 0xFE00, 0x0000,
|
||||
0x001F, 0xFFFF, 0xFFBF, 0x2FDF, 0xFFFF, 0xFE00, 0x0000,
|
||||
0x001F, 0xFFFF, 0xFFDF, 0xBFBF, 0xFFFF, 0xFF00, 0x0000,
|
||||
0x003F, 0xFFFF, 0xFFDF, 0xBFBF, 0xFFFF, 0xFF00, 0x0000,
|
||||
0x003F, 0xFFFF, 0xFFEF, 0xBF7F, 0xFEFF, 0xFF80, 0x0000,
|
||||
0x007F, 0xFFFF, 0xFFEF, 0xBF7F, 0xFEFF, 0xFF80, 0x0000,
|
||||
0x007F, 0xFFEF, 0xFFF7, 0xDEFF, 0xFEFF, 0xFFC0, 0x0000,
|
||||
0x00FF, 0xFFEF, 0xFFF7, 0xDEFF, 0xFEFF, 0xFFC0, 0x0000,
|
||||
0x00FF, 0xFFCF, 0xFFFB, 0xDDFF, 0xFEFF, 0xFFE0, 0x0000,
|
||||
0x01FF, 0xFFCF, 0xFFFB, 0xDDFF, 0xFE7F, 0xFFE0, 0x0000,
|
||||
0x01FF, 0xFF8F, 0xFFFD, 0xEBFF, 0xFE7F, 0xFFF0, 0x0000,
|
||||
0x03FF, 0xFF8F, 0xFFFD, 0xEBFF, 0xFE3F, 0xFFF0, 0x0000,
|
||||
0x03FF, 0xFF0F, 0xFFFE, 0xE7FF, 0xFE3F, 0xFFF8, 0x0000,
|
||||
0x07FF, 0xFF0F, 0xFFFE, 0xE7FF, 0xFE1F, 0xFFF8, 0x0000,
|
||||
0x07FF, 0xFE0F, 0xFFFF, 0x6FFF, 0xFE1F, 0xFFFC, 0x0000,
|
||||
0x0FFF, 0xFE0F, 0xFFFF, 0x6FFF, 0xFE0F, 0xFFFC, 0x0000,
|
||||
0x0FFF, 0xFC0F, 0xFFFF, 0xAFFF, 0xFE0F, 0xFFFE, 0x0000,
|
||||
0x1FFF, 0xFC0F, 0xFFFF, 0xAFFF, 0xFE07, 0xFFFE, 0x0000,
|
||||
0x1FFF, 0xF80F, 0xFFFF, 0xCFFF, 0xFE07, 0xFFFF, 0x0000,
|
||||
0x3FFF, 0xF80F, 0xFFFF, 0xCFFF, 0xFE03, 0xFFFF, 0x0000,
|
||||
0x3FFF, 0xF00F, 0xFFFF, 0xEFFF, 0xFE03, 0xFFFF, 0x8000,
|
||||
0x7FFF, 0xF00F, 0xFFFF, 0xEFFF, 0xFE01, 0xFFFF, 0x8000,
|
||||
0xFFFF, 0xE00F, 0xFFFF, 0xC7FF, 0xFE01, 0xFFFF, 0xC000,
|
||||
0xFFFF, 0xE00F, 0xFFFF, 0xEFFF, 0xFE00, 0xFFFF, 0xE000,
|
||||
0xFFFF, 0xC00F, 0xFFFF, 0xEFFF, 0xFE00, 0xFFFF, 0xE000,
|
||||
0xFFFF, 0xC00F, 0xFFFF, 0xEFFF, 0xFE00, 0x7FFF, 0xE000,
|
||||
0xEFFF, 0x800F, 0xFFFF, 0xEFFF, 0xFE00, 0x7FFF, 0x0000,
|
||||
0x03FF, 0x800F, 0xFFFF, 0xEFFF, 0xFE00, 0x3FFC, 0x0000,
|
||||
0x007F, 0x000F, 0xFFFF, 0xC7FF, 0xFE00, 0x3FE0, 0x0000,
|
||||
0x001F, 0x000F, 0xFFFF, 0xEFFF, 0xFE00, 0x1F80, 0x0000,
|
||||
0x0000, 0x000F, 0xFFFF, 0xEFFF, 0xFE00, 0x1E00, 0x0000,
|
||||
0x0000, 0x000F, 0xFFFF, 0xEFFF, 0xFE00, 0x0300, 0x0000,
|
||||
0x0000, 0x000F, 0xFFFF, 0xEFFF, 0xFE00, 0x0200, 0x0000,
|
||||
0x0000, 0x000F, 0xFFFF, 0xEFFF, 0xFE00, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0xFFFF, 0xEFFF, 0xFE00, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0xFFFF, 0xC7FF, 0xFE00, 0x0000, 0x0000,
|
||||
0x0000, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0007, 0x8000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0xE000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xF000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x003E, 0x2000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x007E, 0x0400, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x00FF, 0x1E00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x01FF, 0x8F00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x03FD, 0xC780, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x07FB, 0xE7C0, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0FF7, 0x71E0, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x1FEE, 0xF8F0, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x3FDD, 0xDC78, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x7FBB, 0xBE3C, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0xFF77, 0x771E, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0001, 0xFEEE, 0xEF8F, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0003, 0xFDDD, 0xDD8F, 0x8000, 0x0000, 0x0000,
|
||||
0x0000, 0x0007, 0xFBBB, 0xBB9F, 0xC000, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0xF777, 0x773F, 0xE000, 0x0000, 0x0000,
|
||||
0x0000, 0x001F, 0xEEEE, 0xEE7F, 0xF000, 0x0000, 0x0000,
|
||||
0x0000, 0x003F, 0xDDDD, 0xDCFF, 0xF800, 0x0000, 0x0000,
|
||||
0x0000, 0x0077, 0xBBBB, 0xB9FF, 0xFC00, 0x0000, 0x0000,
|
||||
0x0000, 0x007B, 0xF777, 0x73F2, 0xFE00, 0x0000, 0x0000,
|
||||
0x0000, 0x007D, 0xEEEE, 0xE7EF, 0x7E00, 0x0000, 0x0000,
|
||||
0x0000, 0x007E, 0xFDDD, 0xCE1F, 0xBE00, 0x0000, 0x0000,
|
||||
0x0000, 0x003F, 0x7BBB, 0x9D87, 0xDE00, 0x0000, 0x0000,
|
||||
0x0000, 0x001F, 0xBF77, 0x3BE3, 0xE000, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0xDEEE, 0x7601, 0xF000, 0x0000, 0x0000,
|
||||
0x0000, 0x0007, 0xEFDC, 0xEC0C, 0xE000, 0x0000, 0x0000,
|
||||
0x0000, 0x0003, 0xF7B9, 0xD806, 0x6000, 0x0000, 0x0000,
|
||||
0x0000, 0x0001, 0xFBF3, 0xB002, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0xFDE7, 0x6000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x7ECE, 0xC200, 0x4000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x3F1D, 0x8700, 0x8000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x1FBD, 0x8781, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0FFD, 0x83C2, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x07FE, 0xE1C4, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x03FF, 0x6088, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x01FF, 0xB810, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x00FF, 0xD820, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x007F, 0xE840, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x003F, 0xF080, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xF900, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x6000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0x0F00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0x9F00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xFF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xFF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xFF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xFF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xDF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xDF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xDF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0xFF00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0xDF00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0xDF00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0xDF00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0007, 0xFE00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0007, 0xDE00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0007, 0xDE00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0007, 0xDE00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0003, 0xFC00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0003, 0xDC00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0003, 0xDC00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0001, 0xD800, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0001, 0xF800, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0001, 0xD800, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0xD000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0xD000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0xF000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x4000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x4000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x4000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x4000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000,
|
||||
0x3C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0003, 0xC000,
|
||||
0x1F80, 0x0000, 0x0000, 0x0000, 0x0000, 0x001F, 0x8000,
|
||||
0x01E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0078, 0x0000,
|
||||
0x0078, 0x0000, 0x0000, 0x0000, 0x0000, 0x01E0, 0x0000,
|
||||
0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* Plane 2 */
|
||||
0x0000, 0x0000, 0x0001, 0xC000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x6000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001E, 0x4000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x003D, 0x2000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0078, 0x8000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x00F0, 0x4000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x01E2, 0x2000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x03C4, 0x1000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0788, 0x8800, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0F11, 0x0400, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x1E22, 0x2200, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x3C44, 0x4100, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x7888, 0x8880, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0xF111, 0x1040, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0001, 0xE222, 0x2250, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0003, 0xC444, 0x4420, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0007, 0x8888, 0x8840, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0x1111, 0x1080, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x000E, 0x2222, 0x2100, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0004, 0x4444, 0x4200, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0888, 0x840C, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x1111, 0x0810, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0222, 0x1000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0444, 0x2060, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0088, 0x4018, 0x1800, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0110, 0x817C, 0x0800, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0021, 0x0302, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0042, 0x07D1, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0004, 0x0FD9, 0x8000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0008, 0x1FDF, 0x8000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0010, 0x39FE, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0020, 0x70FE, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0042, 0x7060, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x7820, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x1C20, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x1E60, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0x9F80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x3FFF, 0xFFFF, 0xC000, 0x0000, 0x0000,
|
||||
0x0000, 0x001F, 0xE01F, 0xFF80, 0x7F80, 0x0000, 0x0000,
|
||||
0x0000, 0x0070, 0x000F, 0xFF00, 0x00E0, 0x0000, 0x0000,
|
||||
0x0000, 0x01C0, 0x000F, 0xFF00, 0x0038, 0x0000, 0x0000,
|
||||
0x0000, 0x0300, 0x000F, 0x9F00, 0x000C, 0x0000, 0x0000,
|
||||
0x0000, 0x0600, 0x100F, 0x0F00, 0x8006, 0x0000, 0x0000,
|
||||
0x0000, 0x0400, 0x1000, 0x2000, 0x8002, 0x0000, 0x0000,
|
||||
0x0000, 0x0C00, 0x1000, 0x2000, 0x8003, 0x0000, 0x0000,
|
||||
0x0000, 0x0800, 0x0800, 0x2001, 0x0001, 0x0000, 0x0000,
|
||||
0x0000, 0x1800, 0x0800, 0x0001, 0x0001, 0x8000, 0x0000,
|
||||
0x0000, 0x1000, 0x0800, 0x2001, 0x0000, 0x8000, 0x0000,
|
||||
0x0000, 0x3000, 0x0E00, 0x2007, 0x0000, 0xC000, 0x0000,
|
||||
0x0000, 0x2000, 0x0100, 0x2008, 0x0000, 0x4000, 0x0000,
|
||||
0x0000, 0x6000, 0x0200, 0x0004, 0x0000, 0x6000, 0x0000,
|
||||
0x0000, 0x4000, 0x0400, 0x2002, 0x0000, 0x2000, 0x0000,
|
||||
0x0000, 0xC000, 0x0400, 0x2002, 0x0000, 0x3000, 0x0000,
|
||||
0x0000, 0x8000, 0x0200, 0x2004, 0x0000, 0x1000, 0x0000,
|
||||
0x0001, 0x8000, 0x0200, 0x0004, 0x0000, 0x1800, 0x0000,
|
||||
0x0001, 0x0000, 0x0200, 0x2004, 0x0000, 0x0800, 0x0000,
|
||||
0x0003, 0x0000, 0x0100, 0x2008, 0x0000, 0x0C00, 0x0000,
|
||||
0x0002, 0x0000, 0x0100, 0x2008, 0x0000, 0x0400, 0x0000,
|
||||
0x0006, 0x0000, 0x0100, 0x0008, 0x0000, 0x0600, 0x0000,
|
||||
0x0004, 0x0000, 0x0080, 0x2010, 0x0000, 0x0200, 0x0000,
|
||||
0x000C, 0x0000, 0x0080, 0x2010, 0x0000, 0x0300, 0x0000,
|
||||
0x0008, 0x0000, 0x0040, 0x2020, 0x0000, 0x0100, 0x0000,
|
||||
0x0018, 0x0000, 0x0040, 0x0020, 0x0000, 0x0180, 0x0000,
|
||||
0x0010, 0x0000, 0x0020, 0x2040, 0x0000, 0x0080, 0x0000,
|
||||
0x0030, 0x0000, 0x0020, 0x2040, 0x0000, 0x00C0, 0x0000,
|
||||
0x0020, 0x0008, 0x0010, 0x2080, 0x0100, 0x0040, 0x0000,
|
||||
0x0060, 0x0008, 0x0010, 0x0080, 0x0100, 0x0060, 0x0000,
|
||||
0x0040, 0x0018, 0x0008, 0x2100, 0x0180, 0x0020, 0x0000,
|
||||
0x00C0, 0x0018, 0x0008, 0x2100, 0x0180, 0x0030, 0x0000,
|
||||
0x0080, 0x0038, 0x0004, 0x2200, 0x01C0, 0x0010, 0x0000,
|
||||
0x0180, 0x0028, 0x0004, 0x2200, 0x0140, 0x0018, 0x0000,
|
||||
0x0100, 0x0068, 0x0002, 0x1400, 0x0160, 0x0008, 0x0000,
|
||||
0x0300, 0x0048, 0x0002, 0x1400, 0x0120, 0x000C, 0x0000,
|
||||
0x0200, 0x00C8, 0x0001, 0x1800, 0x0130, 0x0004, 0x0000,
|
||||
0x0600, 0x0088, 0x0001, 0x1800, 0x0110, 0x0006, 0x0000,
|
||||
0x0400, 0x0188, 0x0000, 0x9000, 0x0118, 0x0002, 0x0000,
|
||||
0x0C00, 0x0108, 0x0000, 0x9000, 0x0108, 0x0003, 0x0000,
|
||||
0x0800, 0x0308, 0x0000, 0x5000, 0x010C, 0x0001, 0x0000,
|
||||
0x1800, 0x0208, 0x0000, 0x5000, 0x0104, 0x0001, 0x8000,
|
||||
0x1000, 0x0608, 0x0000, 0x3000, 0x0106, 0x0000, 0x8000,
|
||||
0x3000, 0x0408, 0x0000, 0x3000, 0x0102, 0x0000, 0xC000,
|
||||
0x2000, 0x0C08, 0x0000, 0x1000, 0x0103, 0x0000, 0x4000,
|
||||
0x6000, 0x0808, 0x0000, 0x1000, 0x0101, 0x0000, 0x6000,
|
||||
0xC000, 0x1808, 0x0000, 0x3800, 0x0101, 0x8000, 0x3000,
|
||||
0x8000, 0x1008, 0x0000, 0x1000, 0x0100, 0x8000, 0x1000,
|
||||
0x8000, 0x3008, 0x0000, 0x1000, 0x0100, 0xC000, 0x1000,
|
||||
0x8000, 0x2008, 0x0000, 0x1000, 0x0100, 0x4000, 0x1000,
|
||||
0xE000, 0x6008, 0x0000, 0x1000, 0x0100, 0x6000, 0x7000,
|
||||
0x4000, 0x4008, 0x0000, 0x1000, 0x0100, 0x2000, 0x2000,
|
||||
0x6000, 0xC008, 0x0000, 0x3800, 0x0100, 0x3000, 0x6000,
|
||||
0x3E00, 0x8008, 0x0000, 0x1000, 0x0100, 0x1007, 0xC000,
|
||||
0x0387, 0x8008, 0x0000, 0x1000, 0x0100, 0x1E1C, 0x0000,
|
||||
0x00F4, 0x0008, 0x0000, 0x1000, 0x0100, 0x03F0, 0x0000,
|
||||
0x001C, 0x0008, 0x0000, 0x1000, 0x0100, 0x0380, 0x0000,
|
||||
0x0000, 0x0008, 0x0000, 0x1000, 0x0100, 0x0000, 0x0000,
|
||||
0x0000, 0x0008, 0x0000, 0x1000, 0x0100, 0x0000, 0x0000,
|
||||
0x0000, 0x0008, 0x0000, 0x3800, 0x0100, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0xFFFF, 0xFFFF, 0xFF00, 0x0000, 0x0000
|
||||
};
|
||||
|
||||
struct Image picture_image =
|
||||
{
|
||||
0, 0, 100, 105, 3, &picture_data[0], 0x7, 0x0, NULL
|
||||
};
|
||||
|
||||
|
||||
|
||||
__chip UWORD classact_data[5814] =
|
||||
{
|
||||
/* Plane 0 */
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF80,
|
||||
0xC226, 0x0F04, 0xE2BB, 0xD1A6, 0xE113, 0x0784, 0xE2BB, 0xD1A6, 0xE113, 0x0782, 0x715D, 0xE8D3, 0x7089, 0x83C2, 0x715D, 0xE8D3, 0x7089, 0x83C1, 0x3800,
|
||||
0xE092, 0x6ACD, 0x91EB, 0x9993, 0x5049, 0x354D, 0x91EB, 0x9993, 0x5049, 0x3566, 0xC8F5, 0xCCC9, 0xA824, 0x9AA6, 0xC8F5, 0xCCC9, 0xA824, 0x9AB3, 0x6400,
|
||||
0xC70B, 0xED09, 0x0AD2, 0x1314, 0x2385, 0xF689, 0x0AD2, 0x1314, 0x2385, 0xF684, 0x8569, 0x098A, 0x11C2, 0xFB44, 0x8569, 0x098A, 0x11C2, 0xFB42, 0x4200,
|
||||
0xD667, 0x73C2, 0x4A49, 0x461F, 0xAB33, 0xB9C2, 0x4A49, 0x461F, 0xAB33, 0xB9E1, 0x2524, 0xA30F, 0xD599, 0xDCE1, 0x2524, 0xA30F, 0xD599, 0xDCF0, 0x9200,
|
||||
0xC6E8, 0x0A1A, 0x8556, 0x087E, 0x0374, 0x051A, 0x8556, 0x087E, 0x0374, 0x050D, 0x42AB, 0x043F, 0x01BA, 0x028D, 0x42AB, 0x043F, 0x01BA, 0x0286, 0xA100,
|
||||
0xD25A, 0x470A, 0xD394, 0xF4C1, 0xC92D, 0x238A, 0xD394, 0xF4C1, 0xC92D, 0x2385, 0x69CA, 0x7A60, 0xE496, 0x91C5, 0x69CA, 0x7A60, 0xE496, 0x91C2, 0xB400,
|
||||
0xD2ED, 0xF50B, 0x7F7D, 0x987C, 0xC976, 0xFA8B, 0x7F7D, 0x987C, 0xC976, 0xFA85, 0xBFBE, 0xCC3E, 0x64BB, 0x7D45, 0xBFBE, 0xCC3E, 0x64BB, 0x7D42, 0xDF00,
|
||||
0xC864, 0xFB2D, 0x1B42, 0x38FC, 0xC432, 0x7DAD, 0x1B42, 0x38FC, 0xC432, 0x7D96, 0x8DA1, 0x1C7E, 0x6219, 0x3ED6, 0x8DA1, 0x1C7E, 0x6219, 0x3ECB, 0x4600,
|
||||
0xF461, 0x7EC8, 0x6714, 0x5B95, 0xDA30, 0xBF48, 0x6714, 0x5B95, 0xDA30, 0xBF64, 0x338A, 0x2DCA, 0xED18, 0x5FA4, 0x338A, 0x2DCA, 0xED18, 0x5FB2, 0x1900,
|
||||
0xF4EA, 0x902C, 0x5D80, 0xB355, 0xBA75, 0x4824, 0x5D80, 0xB355, 0xBA75, 0x4816, 0x2EC0, 0x59AA, 0xDD3A, 0xA412, 0x2EC0, 0x59AA, 0xDD3A, 0xA40B, 0x1700,
|
||||
0xDCFE, 0x38F0, 0x4F33, 0x765F, 0x8E7F, 0x1C70, 0x4F33, 0x765F, 0x8E7F, 0x1C78, 0x2799, 0xBB2F, 0xC73F, 0x8E38, 0x2799, 0xBB2F, 0xC73F, 0x8E3C, 0x1300,
|
||||
0xECB1, 0xE217, 0x3E31, 0x8A02, 0xD658, 0xF117, 0x3E31, 0x8A02, 0xD658, 0xF10B, 0x9F18, 0xC501, 0x6B2C, 0x788B, 0x9F18, 0xC501, 0x6B2C, 0x7885, 0xCF00,
|
||||
0xCAD5, 0xFC1D, 0x7981, 0x5A67, 0xA56F, 0xFE1D, 0x7981, 0x5A67, 0xA56A, 0xFE0E, 0xBCC0, 0xAD33, 0xD2B5, 0x7F0E, 0xBCC0, 0xAD33, 0xD2B5, 0x7F07, 0x5E00,
|
||||
0xE0C3, 0x5316, 0x3FD1, 0xCF27, 0x30FF, 0xFF96, 0x3FD1, 0xCF27, 0x3061, 0xA98B, 0x1FE8, 0xE793, 0x9830, 0xD4CB, 0x1FE8, 0xE793, 0x9830, 0xD4C5, 0x8F00,
|
||||
0xD4C7, 0x2E12, 0x73F3, 0x5E4F, 0x0BFF, 0xFFF2, 0x73F3, 0x5E4F, 0x0A63, 0x9709, 0x39F9, 0xAFF7, 0x8531, 0xCB89, 0x39F9, 0xAF27, 0x8531, 0xCB84, 0x9C00,
|
||||
0xC00F, 0xAE24, 0xFD5A, 0xE719, 0xA7FF, 0xFFFC, 0x7D5A, 0xE719, 0xA007, 0xD712, 0x7EAD, 0x7FFC, 0xD003, 0xEB92, 0x3EAD, 0x738C, 0xD003, 0xEB89, 0x3F00,
|
||||
0xE8A6, 0xCA11, 0x7221, 0xF161, 0x7FFF, 0xFFFD, 0x7221, 0xF161, 0x7453, 0x6508, 0xB910, 0xFFF8, 0xBA29, 0xB288, 0xB910, 0xF8B0, 0xBA29, 0xB284, 0x5C00,
|
||||
0xF86A, 0x1E23, 0x20AA, 0x9900, 0x7FFF, 0xFFFF, 0x20AA, 0x9900, 0x7C35, 0x0F11, 0x9055, 0x4FF8, 0x3E1A, 0x8791, 0x9055, 0x4C80, 0x3E1A, 0x8788, 0xC800,
|
||||
0xF141, 0x2C04, 0x37DE, 0x5809, 0x7FFA, 0x8FFF, 0x37DE, 0x5809, 0x78A0, 0x9602, 0x1BEF, 0x3FFC, 0xBC50, 0x4B02, 0x1BEF, 0x2C04, 0xBC50, 0x4B01, 0x0D00,
|
||||
0xF9EE, 0xE8CA, 0xAEBE, 0x5A70, 0xFFC0, 0x23FF, 0xAEBE, 0x5A70, 0xBCF7, 0x7465, 0x575F, 0x3FFC, 0x5E7B, 0xBA25, 0x575F, 0x2D38, 0x5E7B, 0xBA32, 0xAB00,
|
||||
0xE954, 0xE81C, 0x0E66, 0xDAAC, 0xFF30, 0x777F, 0x8E66, 0xDAAC, 0x94AA, 0x740E, 0x0733, 0x7FFD, 0x4A55, 0x3A0E, 0x0733, 0x6D56, 0x4A55, 0x3A07, 0x0300,
|
||||
0xD8A7, 0x8029, 0x074A, 0x8BA6, 0xFE43, 0xC83F, 0xC74A, 0x8BA6, 0x8C53, 0xC014, 0x83A5, 0x7F7E, 0x4629, 0xE414, 0x83A5, 0x45D3, 0x4629, 0xE00A, 0x4100,
|
||||
0xDA1F, 0xDFE3, 0x27C4, 0xA98F, 0xFC0F, 0xEFFF, 0xE7C4, 0xA98F, 0x8D0F, 0xEFF1, 0x93E2, 0x7F7E, 0xC687, 0xF7F1, 0x93E2, 0x54C7, 0xC687, 0xF7F8, 0xC900,
|
||||
0xE635, 0x34FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x4D35, 0x9D00,
|
||||
0xD7F8, 0x64FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x1932, 0xFC00,
|
||||
0xC90A, 0xF77F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xBDCF, 0xB200,
|
||||
0xC768, 0x777F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x1DCC, 0xE200,
|
||||
0xE65D, 0xD77F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x75C0, 0xEF00,
|
||||
0xDEC7, 0xE4FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF93B, 0x3F00,
|
||||
0xDDFE, 0x56FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x95BB, 0xB900,
|
||||
0xEE61, 0x667F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x5983, 0xFB00,
|
||||
0xE667, 0x74FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xDD36, 0x5400,
|
||||
0xE06D, 0xF97F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x7E49, 0xFD00,
|
||||
0xC11F, 0xA87F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEA03, 0xFB00,
|
||||
0xF7F5, 0x41FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xC89F, 0x3A00,
|
||||
0xFD5C, 0x37FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x9001, 0xD400,
|
||||
0xCFD8, 0x8B7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x9806, 0x3800,
|
||||
0xEF5F, 0x31FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x221A, 0x7400,
|
||||
0xE5EC, 0xCBFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8C07, 0xF400,
|
||||
0xD71D, 0xF4FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x000E, 0x7600,
|
||||
0xFC9E, 0xF97F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x402F, 0xBD00,
|
||||
0xFF49, 0xF3FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x000C, 0xE000,
|
||||
0xC48E, 0xFBFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0011, 0x5900,
|
||||
0xF3F8, 0x7BFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0002, 0x8700,
|
||||
0xFBFD, 0xF57F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0082, 0x6E00,
|
||||
0xFEB3, 0x277F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0400, 0x7100,
|
||||
0xC7C6, 0x5B7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0800, 0x6F00,
|
||||
0xD0AB, 0x537F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x080C, 0x3F00,
|
||||
0xE29A, 0xE37F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0025, 0x7F00,
|
||||
0xDB19, 0x777F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0038, 0x8800,
|
||||
0xCF22, 0xF37F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0135, 0xA000,
|
||||
0xDA35, 0xF5FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x001C, 0x3B00,
|
||||
0xD915, 0xF27F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x007A, 0x7B00,
|
||||
0xDEF0, 0xA2FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x5046, 0xBF00,
|
||||
0xCDF4, 0x48FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x60D6, 0x0F00,
|
||||
0xF772, 0x90FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x40D0, 0x0D00,
|
||||
0xC763, 0x307F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x20F9, 0xEB00,
|
||||
0xE6CD, 0xD07F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0074, 0xA900,
|
||||
0xD699, 0xF2FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x004A, 0x9F00,
|
||||
0xE669, 0x2B7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x3022, 0x1200,
|
||||
0xCC23, 0x417F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x20BF, 0x4F00,
|
||||
0xD11A, 0x1A7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x6072, 0x8B00,
|
||||
0xFBAF, 0xF07F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x01BB, 0xEF00,
|
||||
0xC2C5, 0x11FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x211A, 0xEE00,
|
||||
0xC226, 0x0F7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x6821, 0x3800,
|
||||
0xE092, 0x6AFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x4053, 0x6400,
|
||||
0xC70B, 0xED7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0082, 0x4200,
|
||||
0xD667, 0x73FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0100, 0x9200,
|
||||
0xC6E8, 0x0A7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xB146, 0xA100,
|
||||
0xD25A, 0x477F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x2202, 0xB400,
|
||||
0xD2ED, 0xF57F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0282, 0xDF00,
|
||||
0xC864, 0xFB7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x410B, 0x4600,
|
||||
0xF461, 0x7EFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8052, 0x1900,
|
||||
0xF4EA, 0x907F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x118B, 0x1700,
|
||||
0xDCFE, 0x38FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x219C, 0x1300,
|
||||
0xECB1, 0xE27F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0505, 0xCF00,
|
||||
0xCAD5, 0xFC7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0027, 0x5E00,
|
||||
0xE0C3, 0x5316, 0x3820, 0x0080, 0x4202, 0x4060, 0x0020, 0x0080, 0x4202, 0x4070, 0x0010, 0x0040, 0x2101, 0x2030, 0x0010, 0x0040, 0x2101, 0x2025, 0x8F00,
|
||||
0xD4C7, 0x2E12, 0x7400, 0x0180, 0x4404, 0x40E4, 0x0400, 0x0180, 0x4404, 0x40F2, 0x0200, 0x00C0, 0x2202, 0x2072, 0x0200, 0x00C0, 0x2202, 0x2074, 0x9C00,
|
||||
0xC00F, 0xAE24, 0xF880, 0x0882, 0x0A20, 0x00C0, 0x8080, 0x0882, 0x0A20, 0x00E0, 0x0040, 0x0441, 0x0510, 0x0060, 0x4040, 0x0441, 0x0510, 0x0079, 0x3F00,
|
||||
0xE8A6, 0xCA11, 0x7110, 0x0892, 0x0824, 0x82C0, 0x8110, 0x0892, 0x0824, 0x82E0, 0x4088, 0x0449, 0x0412, 0x4160, 0x4088, 0x0449, 0x0412, 0x4164, 0x5C00,
|
||||
0xF86A, 0x1E23, 0x2240, 0x20E2, 0x0042, 0x80C0, 0xC240, 0x20E2, 0x0042, 0x80E0, 0x6120, 0x1071, 0x0021, 0x4060, 0x6120, 0x1071, 0x0021, 0x4068, 0xC800,
|
||||
0xF141, 0x2C04, 0x3000, 0x21C2, 0x0457, 0x01C3, 0x8000, 0x21C2, 0x0457, 0x01E1, 0xC000, 0x10E1, 0x022B, 0x80E1, 0xC000, 0x10E1, 0x022B, 0x80F1, 0x0D00,
|
||||
0xF9EE, 0xE8CA, 0xA900, 0x2182, 0x0000, 0x0385, 0x0100, 0x2182, 0x0000, 0x0382, 0x8080, 0x10C1, 0x0000, 0x01C2, 0x8080, 0x10C1, 0x0000, 0x01D2, 0xAB00,
|
||||
0xE954, 0xE81C, 0x0910, 0x2142, 0x0815, 0x0303, 0x0110, 0x2142, 0x0815, 0x0301, 0x8088, 0x10A1, 0x040A, 0x8181, 0x8088, 0x10A1, 0x040A, 0x8187, 0x0300,
|
||||
0xD8A7, 0x8029, 0x0424, 0x6040, 0x1028, 0x2606, 0x0824, 0x6040, 0x1028, 0x2603, 0x0412, 0x3020, 0x0814, 0x1303, 0x0412, 0x3020, 0x0814, 0x130A, 0x4100,
|
||||
0xDA1F, 0xDFE3, 0x2008, 0x5040, 0x1070, 0x000C, 0x1008, 0x5040, 0x1070, 0x0006, 0x0804, 0x2820, 0x0838, 0x0006, 0x0804, 0x2820, 0x0838, 0x0008, 0xC900,
|
||||
0xE635, 0x34D6, 0x7538, 0x4080, 0x0043, 0x190C, 0x7121, 0xA204, 0x0209, 0x0106, 0x0850, 0x1040, 0x0030, 0xC084, 0x1A90, 0x68C1, 0x48A8, 0x8895, 0x9D00,
|
||||
0xE635, 0x34AC, 0xED33, 0xA6ED, 0x2635, 0x34AC, 0xED33, 0xA6ED, 0x2635, 0x34D6, 0x7699, 0xD376, 0x931A, 0x9A56, 0x7699, 0xD376, 0x931A, 0x9A6B, 0x3B00,
|
||||
0xD7F8, 0x6497, 0xE2E3, 0x6FF7, 0x97F8, 0x6497, 0xE2E3, 0x6FF7, 0x97F8, 0x64CB, 0xF171, 0xB7FB, 0xCBFC, 0x324B, 0xF171, 0xB7FB, 0xCBFC, 0x3265, 0xF800,
|
||||
0xC90A, 0xF77D, 0x94FA, 0x057D, 0x090A, 0xF77D, 0x94FA, 0x057D, 0x090A, 0xF73E, 0xCA7D, 0x02BE, 0x8485, 0x7BBE, 0xCA7D, 0x02BE, 0x8485, 0x7B9F, 0x6500,
|
||||
0xC768, 0x7767, 0x117E, 0x37DA, 0x8768, 0x7767, 0x117E, 0x37DA, 0x8768, 0x7733, 0x88BF, 0x1BED, 0x43B4, 0x3BB3, 0x88BF, 0x1BED, 0x43B4, 0x3B99, 0xC400,
|
||||
0xE65D, 0xD707, 0x79F2, 0x71F6, 0xA65D, 0xD707, 0x79F2, 0x71F6, 0xA65D, 0xD703, 0xBCF9, 0x38FB, 0x532E, 0xEB83, 0xBCF9, 0x38FB, 0x532E, 0xEB81, 0xDE00,
|
||||
0xDEC7, 0xE4D9, 0xF965, 0x3BFF, 0x5EC7, 0xE4D9, 0xF965, 0x3BFF, 0x5EC7, 0xE4EC, 0xFCB2, 0x9DFF, 0xAF63, 0xF26C, 0xFCB2, 0x9DFF, 0xAF63, 0xF276, 0x7E00,
|
||||
0xDDFE, 0x56DD, 0xCBC2, 0xFD5A, 0xDDFE, 0x56DD, 0xCBC2, 0xFD5A, 0xDDFE, 0x56EE, 0xE5E1, 0x7EAD, 0x6EFF, 0x2B6E, 0xE5E1, 0x7EAD, 0x6EFF, 0x2B77, 0x7200,
|
||||
0xEE61, 0x661F, 0xDBEE, 0x9B7E, 0x2E61, 0x661F, 0xDBEE, 0x9B7E, 0x2E61, 0x660F, 0xEDF7, 0x4DBF, 0x1730, 0xB30F, 0xEDF7, 0x4DBF, 0x1730, 0xB307, 0xF600,
|
||||
0xE667, 0x74B2, 0xA31D, 0xF96A, 0xA667, 0x74B2, 0xA31D, 0xF96A, 0xA667, 0x74D9, 0x518E, 0xFCB5, 0x5333, 0xBA59, 0x518E, 0xFCB5, 0x5333, 0xBA6C, 0xA800,
|
||||
0xE06D, 0xF94F, 0xEBBD, 0xABC0, 0x606D, 0xF94F, 0xEBBD, 0xABC0, 0x606D, 0xF927, 0xF5DE, 0xD5E0, 0x3036, 0xFCA7, 0xF5DE, 0xD5E0, 0x3036, 0xFC93, 0xFA00,
|
||||
0xC11F, 0xA81F, 0xD9FB, 0xFB99, 0x811F, 0xA81F, 0xD9FB, 0xFB99, 0x811F, 0xA80F, 0xECFD, 0xFDCC, 0xC08F, 0xD40F, 0xECFD, 0xFDCC, 0xC08F, 0xD407, 0xF600,
|
||||
0xF7F5, 0x41F9, 0xD34F, 0x83BD, 0xB7F5, 0x41F9, 0xD34F, 0x83BD, 0xB7F5, 0x41FC, 0xE9A7, 0xC1DE, 0xDBFA, 0xA0FC, 0xE9A7, 0xC1DE, 0xDBFA, 0xA0FE, 0x7400,
|
||||
0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0040,
|
||||
0x2881, 0xA0C3, 0x1100, 0x0611, 0x1440, 0xD043, 0x1100, 0x0611, 0x1440, 0xD061, 0x8880, 0x0308, 0x8A20, 0x6821, 0x8880, 0x0308, 0x8A20, 0x6830, 0xC4C0,
|
||||
0x1105, 0x0102, 0x0400, 0x0608, 0x8882, 0x8082, 0x0400, 0x0608, 0x8882, 0x8081, 0x0200, 0x0304, 0x4441, 0x4041, 0x0200, 0x0304, 0x4441, 0x4040, 0x81C0,
|
||||
0x2014, 0x0206, 0x3101, 0x0C03, 0x500A, 0x0106, 0x3101, 0x0C03, 0x500A, 0x0103, 0x1880, 0x8601, 0xA805, 0x0083, 0x1880, 0x8601, 0xA805, 0x0081, 0x8CC0,
|
||||
0x0010, 0x040C, 0x3082, 0x1800, 0x4008, 0x020C, 0x3082, 0x1800, 0x4008, 0x0206, 0x1841, 0x0C00, 0x2004, 0x0106, 0x1841, 0x0C00, 0x2004, 0x0103, 0x0CC0,
|
||||
0x1002, 0xC504, 0x7080, 0x7401, 0xC801, 0x6284, 0x7080, 0x7401, 0xC801, 0x6282, 0x3840, 0x3A00, 0xE400, 0xB142, 0x3840, 0x3A00, 0xE400, 0xB141, 0x1CC0,
|
||||
0x0400, 0x8804, 0x2000, 0x080A, 0x0200, 0x4404, 0x2000, 0x080A, 0x0200, 0x4402, 0x1000, 0x0405, 0x0100, 0x2202, 0x1000, 0x0405, 0x0100, 0x2201, 0x08C0,
|
||||
0x0C00, 0x0A04, 0x8000, 0x6102, 0x0600, 0x0504, 0x8000, 0x6102, 0x0600, 0x0502, 0x4000, 0x3081, 0x0300, 0x0282, 0x4000, 0x3081, 0x0300, 0x0281, 0x20C0,
|
||||
0x1409, 0x0402, 0xA030, 0xC200, 0x0A04, 0x8202, 0xA030, 0xC200, 0x0A04, 0x8201, 0x5018, 0x6100, 0x0502, 0x4101, 0x5018, 0x6100, 0x0502, 0x4100, 0xA8C0,
|
||||
0x080A, 0x0107, 0x0061, 0x8040, 0x0405, 0x0087, 0x0061, 0x8040, 0x0405, 0x0083, 0x8030, 0xC020, 0x0202, 0x8043, 0x8030, 0xC020, 0x0202, 0x8041, 0xC0C0,
|
||||
0x0804, 0x4603, 0x0061, 0x0080, 0x0402, 0x230B, 0x0061, 0x0080, 0x0402, 0x2301, 0x8030, 0x8040, 0x0201, 0x1185, 0x8030, 0x8040, 0x0201, 0x1180, 0xC0C0,
|
||||
0x2000, 0x860F, 0x1040, 0x0180, 0x3000, 0x430F, 0x1040, 0x0180, 0x3000, 0x4307, 0x8820, 0x00C0, 0x1800, 0x2187, 0x8820, 0x00C0, 0x1800, 0x2183, 0xC4C0,
|
||||
0x0044, 0x1428, 0x0080, 0x4190, 0x2022, 0x0A28, 0x0080, 0x4190, 0x2022, 0x0A14, 0x0040, 0x20C8, 0x1011, 0x0514, 0x0040, 0x20C8, 0x1011, 0x050A, 0x00C0,
|
||||
0x2000, 0x00E2, 0x0430, 0x8190, 0x5000, 0x0062, 0x0430, 0x8190, 0x5000, 0x0071, 0x0218, 0x40C8, 0x2800, 0x0031, 0x0218, 0x40C8, 0x2800, 0x0038, 0x81C0,
|
||||
0x0404, 0x80E0, 0x0020, 0x0080, 0x4200, 0x0060, 0x0020, 0x0080, 0x4202, 0x4070, 0x0010, 0x0040, 0x2101, 0x2030, 0x0010, 0x0040, 0x2101, 0x2038, 0x00C0,
|
||||
0x0808, 0x81E4, 0x0400, 0x0180, 0x4400, 0x0004, 0x0400, 0x0180, 0x4404, 0x40F2, 0x0200, 0x0000, 0x2202, 0x2072, 0x0200, 0x00C0, 0x2202, 0x2079, 0x01C0,
|
||||
0x1440, 0x01C0, 0x0080, 0x0882, 0x0800, 0x0000, 0x8080, 0x0882, 0x0A20, 0x00E0, 0x0040, 0x0001, 0x0510, 0x0060, 0x4040, 0x0441, 0x0510, 0x0070, 0x00C0,
|
||||
0x1049, 0x05C0, 0x8110, 0x0892, 0x0000, 0x0000, 0x8110, 0x0892, 0x0824, 0x82E0, 0x4088, 0x0001, 0x0412, 0x4160, 0x4088, 0x0449, 0x0412, 0x4170, 0x20C0,
|
||||
0x0085, 0x01C0, 0xC240, 0x20E2, 0x0000, 0x0000, 0xC240, 0x20E2, 0x0042, 0x80E0, 0x6120, 0x1001, 0x0021, 0x4060, 0x6120, 0x1071, 0x0021, 0x4070, 0x30C0,
|
||||
0x08AE, 0x03C3, 0x8000, 0x21C2, 0x0000, 0x0000, 0x8000, 0x21C2, 0x0457, 0x01E1, 0xC000, 0x0001, 0x022B, 0x80E1, 0xC000, 0x10E1, 0x022B, 0x80F0, 0xE0C0,
|
||||
0x0000, 0x0705, 0x0100, 0x2182, 0x0000, 0x0000, 0x0100, 0x2182, 0x0000, 0x0382, 0x8080, 0x0001, 0x0000, 0x01C2, 0x8080, 0x10C1, 0x0000, 0x01C1, 0x40C0,
|
||||
0x102A, 0x0603, 0x0110, 0x2142, 0x0001, 0x0000, 0x0110, 0x2142, 0x0815, 0x0301, 0x8088, 0x0000, 0x040A, 0x8181, 0x8088, 0x10A1, 0x040A, 0x8180, 0xC0C0,
|
||||
0x2050, 0x4C06, 0x0824, 0x6040, 0x0008, 0x2600, 0x0824, 0x6040, 0x1028, 0x2603, 0x0412, 0x0000, 0x0814, 0x1303, 0x0412, 0x3020, 0x0814, 0x1301, 0x82C0,
|
||||
0x20E0, 0x000C, 0x1008, 0x5040, 0x0030, 0x0000, 0x1008, 0x5040, 0x1070, 0x0006, 0x0804, 0x0000, 0x0838, 0x0006, 0x0804, 0x2820, 0x0838, 0x0003, 0x04C0,
|
||||
0x00C2, 0x027F, 0xFFFF, 0xFFFC, 0x02FF, 0xFFF0, 0x2FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xC080, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8082, 0x00C0,
|
||||
0x0006, 0x027F, 0xFFFF, 0xFFFC, 0x05FF, 0xFFF0, 0x1FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8140, 0x7FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8085, 0x01C0,
|
||||
0x1454, 0x007F, 0xFFFF, 0xFFFC, 0x0BFF, 0xFFF8, 0x0FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8080, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x01C0,
|
||||
0x1814, 0x807F, 0xFFFF, 0xFFF8, 0x05FF, 0xFFF8, 0x17FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8140, 0x7FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x2003, 0x05C0,
|
||||
0x1020, 0x207F, 0xFFFF, 0xFFF8, 0x0BFF, 0xFFFE, 0xAFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x02E0, 0x3FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0806, 0x00C0,
|
||||
0x0028, 0x027F, 0xFFFF, 0xFFF8, 0x17FF, 0xFFFF, 0x57FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0160, 0x7FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0084, 0x80C0,
|
||||
0x0001, 0x007F, 0xFFFF, 0xFFF8, 0x0FFF, 0xFFFF, 0xFFFF, 0xE3FF, 0xFFFF, 0xFFFF, 0xFFFF, 0x02E0, 0x3FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x4004, 0x02C0,
|
||||
0x0106, 0x107F, 0xFFFF, 0xFFF0, 0x17FF, 0xFFFF, 0xFFFF, 0x03FF, 0xFFFF, 0xFFFF, 0xFFFE, 0x05F0, 0x1FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x840C, 0x04C0,
|
||||
0x0100, 0x007F, 0xFFFF, 0xFFF0, 0x2FFF, 0xFFFF, 0xFFF8, 0x02FF, 0xFFFF, 0xFFFF, 0xFFFE, 0x02F0, 0x2FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0008, 0x88C0,
|
||||
0x0E82, 0x00FF, 0xFFFF, 0xFFF0, 0x17FF, 0xFFFF, 0xFFFF, 0x05FF, 0xFFFF, 0xFFFF, 0xFFFC, 0x05F0, 0x1FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8030, 0x00C0,
|
||||
0x0C80, 0x11FF, 0xFFFF, 0xFFF0, 0x2FFF, 0xFFFF, 0xFFFE, 0x0BFF, 0xFFFF, 0xFFFF, 0xFFFC, 0x0BF8, 0x0FFF, 0xFFFF, 0xFFFE, 0x7FFF, 0xFFFF, 0x0470, 0x00C0,
|
||||
0x0802, 0x327F, 0xFFFF, 0xFFF0, 0x1FFF, 0xFFFF, 0xFFFE, 0x05FF, 0xFFFF, 0xFFFF, 0xFFFC, 0x05F8, 0x17FF, 0xFFFF, 0xFFFC, 0x7FFF, 0xFFFF, 0x0400, 0x44C0,
|
||||
0x0002, 0x407F, 0xFFFF, 0xFFF0, 0x2FFF, 0xFFFF, 0xFFFC, 0x0BFF, 0xFFFF, 0xFFFF, 0xFFF8, 0x0BF8, 0x0FFF, 0xFFFF, 0xFFF0, 0xBFFF, 0xFFFF, 0x0002, 0x08C0,
|
||||
0x3002, 0x607F, 0xFFFF, 0xFFF0, 0x1FFF, 0xFFFF, 0xFFFC, 0x17FF, 0xFFFF, 0xFFFF, 0xFFF8, 0x17FC, 0x07FF, 0xFFFF, 0xFFF0, 0x5FFF, 0xFFFF, 0x0000, 0x44C0,
|
||||
0x1080, 0x887F, 0xFFFF, 0xFFF0, 0x2FFF, 0xFFFF, 0xFFF8, 0x2FFF, 0xFFFF, 0xFFFF, 0xFFF8, 0x0BFC, 0x0BFF, 0xFFFF, 0xFFC0, 0xBFFF, 0xFFFF, 0x0000, 0x88C0,
|
||||
0x1202, 0x307F, 0xFFFF, 0xFFF0, 0x1FFF, 0xFFFF, 0xFFF8, 0x17FF, 0xFFFF, 0xFFFF, 0xFFF0, 0x17FC, 0x07FF, 0xFFFF, 0xFF81, 0x7FFF, 0xFFFF, 0x0000, 0x00C0,
|
||||
0x0000, 0x007F, 0xFFFF, 0xFFF0, 0x2FFF, 0xFFFF, 0xFFF0, 0x2FC0, 0x3FF0, 0x33F8, 0x19F0, 0x2FFE, 0x03FF, 0xFFE0, 0x7E00, 0x3FFF, 0xFFFF, 0x0000, 0x80C0,
|
||||
0x0221, 0x00FF, 0xFFFF, 0xFFF0, 0x1FFF, 0xFFFF, 0xFFF0, 0x5F0E, 0x1FE3, 0x83F1, 0xC1F0, 0x0000, 0x05FF, 0xFF8E, 0x1C00, 0x3FFF, 0xFFFF, 0x0000, 0x00C0,
|
||||
0x0024, 0x007F, 0xFFFF, 0xFFF0, 0x0FFF, 0xFFF8, 0x1FE0, 0xBC3A, 0x0F8E, 0x86C6, 0x82E0, 0x0000, 0x03FF, 0xFC7A, 0x1F02, 0xAFFF, 0xFFFF, 0x0000, 0x0BC0,
|
||||
0x2260, 0x007F, 0xFFFF, 0xFFF8, 0x1FFF, 0xFFF8, 0x1FE0, 0x5816, 0x070D, 0xC585, 0x6160, 0x0000, 0x01FF, 0xF876, 0x0705, 0x5FFF, 0xFFFF, 0x0008, 0x86C0,
|
||||
0x0404, 0x007F, 0xFFFF, 0xFFF8, 0x0FFF, 0xFFF0, 0x0FC0, 0xB02C, 0x0E0B, 0x8B0B, 0xC2E0, 0x0000, 0x00FF, 0xF1BC, 0x0E0B, 0xFFFF, 0xFFFF, 0x0001, 0x18C0,
|
||||
0x0400, 0x027F, 0xFFFF, 0xFFF8, 0x07FF, 0xFFF0, 0x17C1, 0x705C, 0x1617, 0xC505, 0xE5C0, 0x0000, 0x01FF, 0xE15C, 0x1605, 0xFFFF, 0xFFFF, 0x0001, 0x11C0,
|
||||
0x0100, 0x107F, 0xFFFF, 0xFFF8, 0x0FFF, 0xFFF0, 0x2F82, 0xF0B8, 0x2C0F, 0xEA0B, 0xFBC0, 0x0000, 0x00FF, 0xC6FC, 0x2C0B, 0xFFFF, 0xFFFF, 0x0003, 0x0AC0,
|
||||
0x3020, 0x207F, 0xFFFF, 0xFFFC, 0x07FF, 0xFFE0, 0x1F81, 0x7D50, 0x1407, 0xF603, 0xFD80, 0x5555, 0x007F, 0x857F, 0x5417, 0xFFFF, 0xFFFF, 0x0007, 0x10C0,
|
||||
0x2140, 0x207F, 0xFFFF, 0xFFFC, 0x03FF, 0xFFE0, 0x2F02, 0xFE00, 0x2C03, 0xFE01, 0xFF80, 0xAAAA, 0x80FF, 0x0BFF, 0xB82F, 0xFFFF, 0xFFFF, 0x0003, 0x00C0,
|
||||
0x0140, 0x00FF, 0xFFFF, 0xFFFE, 0x01FF, 0xFFC0, 0x5F05, 0xFC00, 0x5E00, 0xFF00, 0x7F81, 0x7FFF, 0x807F, 0x05FF, 0xF817, 0xFFFF, 0xFFFF, 0x001A, 0x00C0,
|
||||
0x00C0, 0x00FF, 0xFFFF, 0xFFFE, 0x01FF, 0xFF80, 0xBE0B, 0xE0E0, 0xBE00, 0x7F00, 0x3F00, 0xBFFF, 0xC03E, 0x0BFF, 0xF02F, 0xFFFF, 0xFFFF, 0x0002, 0x10C0,
|
||||
0x0088, 0x04FF, 0xFFFF, 0xFFFF, 0x00FF, 0xFF00, 0x5E05, 0xC340, 0x5F80, 0x7FC0, 0x1F01, 0x7FFF, 0xC07E, 0x17FF, 0xF05F, 0xFFFF, 0xFFFF, 0x0002, 0x11C0,
|
||||
0x0180, 0x007F, 0xFFFF, 0xFFFF, 0x003F, 0xFC00, 0xBC0B, 0x0280, 0xBF80, 0x3FE0, 0x2F00, 0xFFFF, 0xC03C, 0x0FFC, 0xE0BF, 0xFFFF, 0xFFFF, 0x0002, 0x00C0,
|
||||
0x02A0, 0x01FF, 0xFFFF, 0xFFFF, 0x800F, 0xF001, 0x7C16, 0x05C1, 0x67F0, 0x53F0, 0x1E01, 0x7FFF, 0xE01E, 0x17F9, 0xE05F, 0xFFFF, 0xFFFF, 0x0004, 0x00C0,
|
||||
0x0105, 0x417F, 0xFFFF, 0xFFFF, 0xC000, 0x0002, 0xF82C, 0x0B82, 0xCFF0, 0xA7F8, 0x2E02, 0xFFFF, 0xE03C, 0x0FF3, 0x80BF, 0xFFFF, 0xFFFF, 0x0008, 0x00C0,
|
||||
0x2201, 0x837F, 0xFFFF, 0xFFFF, 0xE000, 0x0005, 0xF814, 0x1781, 0x45F0, 0x41F8, 0x5E01, 0xFFFF, 0xE01C, 0x07E7, 0x417F, 0xFFFF, 0xFFFF, 0x0008, 0x60C0,
|
||||
0x0081, 0x037F, 0xFFFF, 0xFFFF, 0xF000, 0x000B, 0xF028, 0x0C00, 0x83E0, 0x83F0, 0xBC02, 0xFFFF, 0xF00C, 0x070E, 0x809F, 0xFFFF, 0xFFFF, 0x0008, 0x40C0,
|
||||
0x3080, 0x83FF, 0xFFFF, 0xFFFF, 0xFC00, 0x0017, 0xF058, 0x0000, 0x81E1, 0x41F1, 0x5C05, 0xFFFF, 0xF01E, 0x001D, 0x803F, 0xFFFF, 0xFFFF, 0x0000, 0x00C0,
|
||||
0x1100, 0x01FF, 0xFFFF, 0xFFFF, 0xFE00, 0x00AF, 0xC038, 0x0203, 0x038A, 0x80C6, 0xBC03, 0xFFFF, 0xF00E, 0x006B, 0x80EF, 0xFFFF, 0xFFFF, 0x0001, 0x02C0,
|
||||
0x2100, 0x017F, 0xFFFF, 0xFFFF, 0xFF50, 0x055F, 0x001C, 0x0505, 0x303D, 0x901D, 0x7805, 0xFFFF, 0xF807, 0x8157, 0xC15F, 0xFFFF, 0xFFFF, 0x0001, 0x00C0,
|
||||
0x0100, 0xC0FF, 0xFFFF, 0xFFFF, 0xFFEA, 0xAABF, 0xFABE, 0xAAAA, 0xEAEB, 0xEAFB, 0xFFAB, 0xFFFF, 0xFEAF, 0xAABF, 0xEABF, 0xFFFF, 0xFFFF, 0x0019, 0x08C0,
|
||||
0x0248, 0x82FF, 0xFFFF, 0xFFFF, 0xFFFD, 0x55FF, 0xD557, 0x57D5, 0xDD5F, 0xF757, 0xFF57, 0xFFFF, 0xFF57, 0xF57F, 0xF57F, 0xFFFF, 0xFFFF, 0x0000, 0x10C0,
|
||||
0x0841, 0x81FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0008, 0x30C0,
|
||||
0x0040, 0x06FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x10C0,
|
||||
0x2000, 0x847F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x10C0,
|
||||
0x2881, 0xA0FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0010, 0xC4C0,
|
||||
0x1105, 0x017F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x81C0,
|
||||
0x2014, 0x027F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0001, 0x8CC0,
|
||||
0x0010, 0x047F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0003, 0x0CC0,
|
||||
0x1002, 0xC57F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0001, 0x1CC0,
|
||||
0x0400, 0x887F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0001, 0x08C0,
|
||||
0x0C00, 0x0A7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0001, 0x20C0,
|
||||
0x1409, 0x047F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xA8C0,
|
||||
0x080A, 0x017F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0001, 0xC0C0,
|
||||
0x0804, 0x467F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xC0C0,
|
||||
0x2000, 0x867F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0003, 0xC4C0,
|
||||
0x0044, 0x147F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x000A, 0x00C0,
|
||||
0x2000, 0x00FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0018, 0x81C0,
|
||||
0x0404, 0x80E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0018, 0x00C0,
|
||||
0x0808, 0x81E4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x01C0,
|
||||
0x1440, 0x01C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00C0,
|
||||
0x1049, 0x05C0, 0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x20C0,
|
||||
0x0085, 0x01C0, 0xC000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x30C0,
|
||||
0x08AE, 0x03C3, 0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xE0C0,
|
||||
0x0000, 0x0705, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x40C0,
|
||||
0x102A, 0x0603, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xC0C0,
|
||||
0x2050, 0x4C06, 0x0800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x82C0,
|
||||
0x20E0, 0x000C, 0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0003, 0x04C0,
|
||||
0x00C2, 0x0208, 0x0000, 0x2000, 0x0020, 0x0000, 0x0000, 0x0080, 0x0060, 0x0000, 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x0010, 0x0002, 0x00C0,
|
||||
0x00C2, 0x0210, 0x0200, 0x4100, 0x00C2, 0x0210, 0x0200, 0x4100, 0x00C2, 0x0208, 0x0100, 0x2080, 0x0061, 0x0108, 0x0100, 0x2080, 0x0061, 0x0104, 0x00C0,
|
||||
0x0006, 0x0228, 0x0C08, 0x8008, 0x0006, 0x0228, 0x0C08, 0x8008, 0x0006, 0x0214, 0x0604, 0x4004, 0x0003, 0x0114, 0x0604, 0x4004, 0x0003, 0x010A, 0x03C0,
|
||||
0x1454, 0x0000, 0x0801, 0x8800, 0x1454, 0x0000, 0x0801, 0x8800, 0x1454, 0x0000, 0x0400, 0xC400, 0x0A2A, 0x0000, 0x0400, 0xC400, 0x0A2A, 0x0000, 0x02C0,
|
||||
0x1814, 0x8018, 0x2881, 0x8820, 0x1814, 0x8018, 0x2881, 0x8820, 0x1814, 0x800C, 0x1440, 0xC410, 0x0C0A, 0x400C, 0x1440, 0xC410, 0x0C0A, 0x4006, 0x0AC0,
|
||||
0x1020, 0x2030, 0x0001, 0x0800, 0x1020, 0x2030, 0x0001, 0x0800, 0x1020, 0x2018, 0x0000, 0x8400, 0x0810, 0x1018, 0x0000, 0x8400, 0x0810, 0x100C, 0x00C0,
|
||||
0x0028, 0x0224, 0x0082, 0x8000, 0x8028, 0x0224, 0x0082, 0x8000, 0x8028, 0x0212, 0x0041, 0x4000, 0x4014, 0x0112, 0x0041, 0x4000, 0x4014, 0x0109, 0x00C0,
|
||||
0x0001, 0x0020, 0x1005, 0x0004, 0x0001, 0x0020, 0x1005, 0x0004, 0x0001, 0x0010, 0x0802, 0x8002, 0x0000, 0x8010, 0x0802, 0x8002, 0x0000, 0x8008, 0x04C0,
|
||||
0x0106, 0x1060, 0x2001, 0x2000, 0x8106, 0x1060, 0x2001, 0x2000, 0x8106, 0x1030, 0x1000, 0x9000, 0x4083, 0x0830, 0x1000, 0x9000, 0x4083, 0x0818, 0x08C0,
|
||||
0x0100, 0x0044, 0x4042, 0x0004, 0x0100, 0x0044, 0x4042, 0x0004, 0x0100, 0x0022, 0x2021, 0x0002, 0x0080, 0x0022, 0x2021, 0x0002, 0x0080, 0x0011, 0x10C0,
|
||||
0x0E82, 0x0080, 0x0002, 0x100C, 0x8E82, 0x0080, 0x0002, 0x100C, 0x8E82, 0x00C0, 0x0001, 0x0806, 0x4741, 0x0040, 0x0001, 0x0806, 0x4741, 0x0060, 0x00C0,
|
||||
0x0C80, 0x1180, 0x0004, 0x0004, 0x0C80, 0x1180, 0x0004, 0x0004, 0x0C80, 0x11C0, 0x0002, 0x0002, 0x0640, 0x08C0, 0x0002, 0x0002, 0x0640, 0x08E0, 0x00C0,
|
||||
0x0802, 0x3202, 0x2030, 0x3000, 0x0802, 0x3202, 0x2030, 0x3000, 0x0802, 0x3201, 0x1018, 0x1800, 0x0401, 0x1901, 0x1018, 0x1800, 0x0401, 0x1900, 0x88C0,
|
||||
0x7FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFC0,
|
||||
/* Plane 2 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x1226, 0x0F04, 0xE2BB, 0xF1A6, 0xE913, 0x0784, 0xE2BB, 0xF1A6, 0xE913, 0x0782, 0x715D, 0xF8D3, 0x7489, 0x83C2, 0x715D, 0xF8D3, 0x7489, 0x83C1, 0x3800,
|
||||
0x2092, 0x6ACD, 0x91EB, 0xB993, 0x5049, 0x354D, 0x91EB, 0xB993, 0x5049, 0x3566, 0xC8F5, 0xDCC9, 0xA824, 0x9AA6, 0xC8F5, 0xDCC9, 0xA824, 0x9AB3, 0x6400,
|
||||
0x0F0B, 0xED09, 0x0AD2, 0x1314, 0x2785, 0xF689, 0x0AD2, 0x1314, 0x2785, 0xF684, 0x8569, 0x098A, 0x13C2, 0xFB44, 0x8569, 0x098A, 0x13C2, 0xFB42, 0x4200,
|
||||
0x3667, 0x73C2, 0x4A49, 0xC61F, 0xBB33, 0xB9C2, 0x4A49, 0xC61F, 0xBB33, 0xB9E1, 0x2524, 0xE30F, 0xDD99, 0xDCE1, 0x2524, 0xE30F, 0xDD99, 0xDCF0, 0x9200,
|
||||
0x26E8, 0x0A1A, 0x8556, 0x097E, 0x1374, 0x051A, 0x8556, 0x097E, 0x1374, 0x050D, 0x42AB, 0x04BF, 0x09BA, 0x028D, 0x42AB, 0x04BF, 0x09BA, 0x0286, 0xA100,
|
||||
0x125A, 0x470A, 0xD394, 0xF6C1, 0xC92D, 0x238A, 0xD394, 0xF6C1, 0xC92D, 0x2385, 0x69CA, 0x7B60, 0xE496, 0x91C5, 0x69CA, 0x7B60, 0xE496, 0x91C2, 0xB400,
|
||||
0x12ED, 0xF50B, 0x7F7D, 0x987C, 0xC976, 0xFA8B, 0x7F7D, 0x987C, 0xC976, 0xFA85, 0xBFBE, 0xCC3E, 0x64BB, 0x7D45, 0xBFBE, 0xCC3E, 0x64BB, 0x7D42, 0xDF00,
|
||||
0x0864, 0xFB2D, 0x1B46, 0x3CFC, 0xC432, 0x7DAD, 0x1B46, 0x3CFC, 0xC432, 0x7D96, 0x8DA3, 0x1E7E, 0x6219, 0x3ED6, 0x8DA3, 0x1E7E, 0x6219, 0x3ECB, 0x4600,
|
||||
0x3461, 0x7EC8, 0x671C, 0x5B95, 0xDA30, 0xBF48, 0x671C, 0x5B95, 0xDA30, 0xBF64, 0x338E, 0x2DCA, 0xED18, 0x5FA4, 0x338E, 0x2DCA, 0xED18, 0x5FB2, 0x1900,
|
||||
0x35EA, 0x902C, 0x5D84, 0xB355, 0xBAF5, 0x4824, 0x5D84, 0xB355, 0xBAF5, 0x4816, 0x2EC2, 0x59AA, 0xDD7A, 0xA412, 0x2EC2, 0x59AA, 0xDD7A, 0xA40B, 0x1700,
|
||||
0x1CFE, 0x38F0, 0x4F33, 0x765F, 0x8E7F, 0x1C70, 0x4F33, 0x765F, 0x8E7F, 0x1C78, 0x2799, 0xBB2F, 0xC73F, 0x8E38, 0x2799, 0xBB2F, 0xC73F, 0x8E3C, 0x1300,
|
||||
0x2CB9, 0xE217, 0xBE31, 0x8A02, 0xD65C, 0xF117, 0xBE31, 0x8A02, 0xD65C, 0xF10B, 0xDF18, 0xC501, 0x6B2E, 0x788B, 0xDF18, 0xC501, 0x6B2E, 0x7885, 0xEF00,
|
||||
0x0AD5, 0xFC1D, 0x7985, 0x5A67, 0xA560, 0x061D, 0x7985, 0x5A67, 0xA56A, 0xFE0E, 0xBCC2, 0xAD33, 0xD2B5, 0x7F0E, 0xBCC2, 0xAD33, 0xD2B5, 0x7F07, 0x5E00,
|
||||
0x22CB, 0x5316, 0x3FD5, 0xCF2F, 0x3100, 0x0016, 0x3FD5, 0xCF2F, 0x3165, 0xA98B, 0x1FEA, 0xE797, 0x98B2, 0xD4CB, 0x1FEA, 0xE797, 0x98B2, 0xD4C5, 0x8F00,
|
||||
0x14C7, 0x2E12, 0x73F3, 0x5E4F, 0x0800, 0x0012, 0x73F3, 0x5E4F, 0x0A63, 0x9709, 0x39F9, 0xA807, 0x8531, 0xCB89, 0x39F9, 0xAF27, 0x8531, 0xCB84, 0x9C00,
|
||||
0x000F, 0xAE25, 0xFD5A, 0xE719, 0xA000, 0x0005, 0x7D5A, 0xE719, 0xA007, 0xD712, 0xFEAD, 0x7004, 0xD003, 0xEB92, 0xBEAD, 0x738C, 0xD003, 0xEB89, 0x7F00,
|
||||
0x28A6, 0xCA11, 0x7221, 0xF161, 0x7000, 0x0001, 0x7221, 0xF161, 0x7453, 0x6508, 0xB910, 0xF004, 0xBA29, 0xB288, 0xB910, 0xF8B0, 0xBA29, 0xB284, 0x5C00,
|
||||
0x396A, 0x1E2B, 0x20AA, 0x9900, 0x6000, 0x0001, 0x20AA, 0x9900, 0x7CB5, 0x0F15, 0x9055, 0x4006, 0x3E5A, 0x8795, 0x9055, 0x4C80, 0x3E5A, 0x878A, 0xC800,
|
||||
0x3541, 0x2C0C, 0x37DE, 0x5809, 0x4002, 0xA000, 0x37DE, 0x5809, 0x7AA0, 0x9606, 0x1BEF, 0x2002, 0xBD50, 0x4B06, 0x1BEF, 0x2C04, 0xBD50, 0x4B03, 0x0D00,
|
||||
0x39EE, 0xE8EA, 0xBEBE, 0x5A70, 0x8014, 0xBA00, 0xBEBE, 0x5A70, 0xBCF7, 0x7475, 0x5F5F, 0x2002, 0x5E7B, 0xBA35, 0x5F5F, 0x2D38, 0x5E7B, 0xBA3A, 0xAF00,
|
||||
0x2954, 0xE81C, 0x0E66, 0xDAAC, 0x0032, 0x7700, 0x0E66, 0xDAAC, 0x94AA, 0x740E, 0x0733, 0x6001, 0x4A55, 0x3A0E, 0x0733, 0x6D56, 0x4A55, 0x3A07, 0x0300,
|
||||
0x18A7, 0xA029, 0x074A, 0x8BA6, 0x0053, 0xD840, 0x074A, 0x8BA6, 0x8C53, 0xD014, 0x83A5, 0x4080, 0x4629, 0xEC14, 0x83A5, 0x45D3, 0x4629, 0xE80A, 0x4100,
|
||||
0x1E1F, 0xDFE3, 0x27C4, 0xA98E, 0x024F, 0xEFE0, 0x27C4, 0xA98F, 0x8F0F, 0xEFF1, 0x93E2, 0x4080, 0xC787, 0xF7F1, 0x93E2, 0x54C7, 0xC787, 0xF7F8, 0xC900,
|
||||
0x2635, 0x3480, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4D35, 0x9D00,
|
||||
0x17F8, 0x6480, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1932, 0xFC00,
|
||||
0x090A, 0xF700, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBDCF, 0xB200,
|
||||
0x0768, 0x7700, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1DCC, 0xE200,
|
||||
0x265D, 0xDF00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x77C0, 0xEF00,
|
||||
0x1EC7, 0xE480, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF93B, 0x3F00,
|
||||
0x1DFE, 0x5680, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x95BB, 0xB900,
|
||||
0x2E61, 0x6600, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5983, 0xFB00,
|
||||
0x2667, 0x7480, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDD36, 0x5400,
|
||||
0x306D, 0xF900, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7E49, 0xFD00,
|
||||
0x011F, 0xA800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xEA03, 0xFB00,
|
||||
0x37F5, 0xC180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xEB9F, 0x3A00,
|
||||
0x3D5C, 0x3780, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF201, 0xD500,
|
||||
0x0FD8, 0x8B00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDD36, 0x3800,
|
||||
0x2F5F, 0x3180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x339A, 0x7400,
|
||||
0x25EC, 0xCB80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xCD07, 0xF400,
|
||||
0x171F, 0xF480, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x82CE, 0x7600,
|
||||
0x3C9E, 0xF900, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x41AF, 0xBD00,
|
||||
0x3F49, 0xF380, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x830C, 0xE000,
|
||||
0x048E, 0xFB80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4111, 0x5900,
|
||||
0x33F8, 0x7B80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xE106, 0xA700,
|
||||
0x3BFD, 0xF500, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x82B2, 0x6E00,
|
||||
0x3EB3, 0x2700, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3620, 0x7100,
|
||||
0x07C6, 0x5B00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6930, 0x6F00,
|
||||
0x10AB, 0x5300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2B3C, 0x3F00,
|
||||
0x229A, 0xE300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4725, 0x7F00,
|
||||
0x3B19, 0x7700, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xA238, 0x8800,
|
||||
0x0F22, 0xF300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4335, 0xA000,
|
||||
0x1A35, 0xF580, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x829C, 0x3B00,
|
||||
0x1915, 0xF200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x837A, 0x7B00,
|
||||
0x1EF2, 0xA280, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xD747, 0xBF00,
|
||||
0x0DF4, 0x4C80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xEDD6, 0x0F00,
|
||||
0x3772, 0x9080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5BD0, 0x0D00,
|
||||
0x0F63, 0x3000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x33F9, 0xEB00,
|
||||
0x2ECD, 0xD000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8BF4, 0xA900,
|
||||
0x1E99, 0xF680, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x834A, 0x9F00,
|
||||
0x2E69, 0x3B00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xB522, 0x1200,
|
||||
0x1C23, 0x4100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2FBF, 0x4F00,
|
||||
0x311A, 0x1A00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7972, 0x8B00,
|
||||
0x3BAF, 0xF000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03FB, 0xEF00,
|
||||
0x02C5, 0x1180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBB9A, 0xEE00,
|
||||
0x1226, 0x0F00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7C21, 0x3800,
|
||||
0x2092, 0x6A80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6553, 0x6400,
|
||||
0x0F0B, 0xED00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x04B2, 0x4200,
|
||||
0x3667, 0x7380, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2300, 0x9200,
|
||||
0x26E8, 0x0A00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD76, 0xA100,
|
||||
0x125A, 0x4700, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6E32, 0xB400,
|
||||
0x12ED, 0xF500, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x82B2, 0xDF00,
|
||||
0x0864, 0xFB00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xC12B, 0x4600,
|
||||
0x3461, 0x7E80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xA052, 0x1900,
|
||||
0x35EA, 0x9000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5BEB, 0x1700,
|
||||
0x1CFE, 0x3880, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x71DC, 0x1300,
|
||||
0x2CB9, 0xE200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8765, 0xEF00,
|
||||
0x0AD5, 0xFC00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x80E7, 0x5E00,
|
||||
0x22CB, 0x5316, 0x382E, 0x30D8, 0xCF9E, 0x5669, 0xC02E, 0x30D8, 0xCF9E, 0x5674, 0xE017, 0x186C, 0x67CF, 0x2B34, 0xE017, 0x186C, 0x67CF, 0x2B25, 0x8F00,
|
||||
0x14C7, 0x2E12, 0x740C, 0xA1B0, 0xF59C, 0x68ED, 0x8C0C, 0xA1B0, 0xF59C, 0x68F6, 0xC606, 0x50D8, 0x7ACE, 0x3476, 0xC606, 0x50D8, 0x7ACE, 0x3474, 0x9C00,
|
||||
0x000F, 0xAE25, 0xFAA5, 0x18E6, 0x5FF8, 0x28DB, 0x82A5, 0x18E6, 0x5FF8, 0x28ED, 0x8152, 0x8C73, 0x2FFC, 0x146D, 0xC152, 0x8C73, 0x2FFC, 0x1479, 0x7F00,
|
||||
0x28A6, 0xCA11, 0x71DE, 0x0E9E, 0x8BAC, 0x9AEE, 0x8DDE, 0x0E9E, 0x8BAC, 0x9AF7, 0x46EF, 0x074F, 0x45D6, 0x4D77, 0x46EF, 0x074F, 0x45D6, 0x4D64, 0x5C00,
|
||||
0x396A, 0x1E2B, 0x2355, 0x66FF, 0x83CA, 0xF0DC, 0xDF55, 0x66FF, 0x83CA, 0xF0EE, 0x6FAA, 0xB37F, 0xC1E5, 0x786E, 0x6FAA, 0xB37F, 0xC1E5, 0x786A, 0xC800,
|
||||
0x3541, 0x2C0C, 0x3021, 0xA7F6, 0x875F, 0x69FB, 0xC821, 0xA7F6, 0x875F, 0x69FD, 0xE410, 0xD3FB, 0x43AF, 0xB4FD, 0xE410, 0xD3FB, 0x43AF, 0xB4F3, 0x0D00,
|
||||
0x39EE, 0xE8EA, 0xB941, 0xA58F, 0x4308, 0x8BB5, 0x5141, 0xA58F, 0x4308, 0x8B9A, 0xA8A0, 0xD2C7, 0xA184, 0x45DA, 0xA8A0, 0xD2C7, 0xA184, 0x45DA, 0xAF00,
|
||||
0x2954, 0xE81C, 0x0999, 0x2553, 0x6B55, 0x8BE3, 0xF199, 0x2553, 0x6B55, 0x8BF1, 0xF8CC, 0x92A9, 0xB5AA, 0xC5F1, 0xF8CC, 0x92A9, 0xB5AA, 0xC5F7, 0x0300,
|
||||
0x18A7, 0xA029, 0x04B5, 0x7459, 0x73AC, 0x37D6, 0xF8B5, 0x7459, 0x73AC, 0x3FEB, 0x7C5A, 0xBA2C, 0xB9D6, 0x1BEB, 0x7C5A, 0xBA2C, 0xB9D6, 0x1FFA, 0x4100,
|
||||
0x1E1F, 0xDFE3, 0x203B, 0x5670, 0x72F0, 0x101C, 0xD83B, 0x5670, 0x72F0, 0x100E, 0x6C1D, 0xAB38, 0x3978, 0x080E, 0x6C1D, 0xAB38, 0x3978, 0x0808, 0xC900,
|
||||
0x2635, 0x34D6, 0x753E, 0x4C81, 0x20C7, 0x1DAD, 0x7127, 0xAE05, 0x4E0D, 0x6596, 0xCC73, 0x1444, 0xB670, 0xF2D4, 0xDA93, 0x6EC5, 0x7EE8, 0xBAD5, 0x9D00,
|
||||
0x2635, 0x34AC, 0xED33, 0xB6ED, 0x2635, 0x34AC, 0xED33, 0xB6ED, 0x2635, 0x34D6, 0x7699, 0xDB76, 0x931A, 0x9A56, 0x7699, 0xDB76, 0x931A, 0x9A6B, 0x3B00,
|
||||
0x17F8, 0x6497, 0xE2E3, 0x6FF7, 0x97F8, 0x6497, 0xE2E3, 0x6FF7, 0x97F8, 0x64CB, 0xF171, 0xB7FB, 0xCBFC, 0x324B, 0xF171, 0xB7FB, 0xCBFC, 0x3265, 0xF800,
|
||||
0x090A, 0xF77D, 0x94FA, 0x057D, 0x090A, 0xF77D, 0x94FA, 0x057D, 0x090A, 0xF73E, 0xCA7D, 0x02BE, 0x8485, 0x7BBE, 0xCA7D, 0x02BE, 0x8485, 0x7B9F, 0x6500,
|
||||
0x0768, 0x7767, 0x117E, 0x37DA, 0x8768, 0x7767, 0x117E, 0x37DA, 0x8768, 0x7733, 0x88BF, 0x1BED, 0x43B4, 0x3BB3, 0x88BF, 0x1BED, 0x43B4, 0x3B99, 0xC400,
|
||||
0x265D, 0xDF07, 0x79F2, 0x71F6, 0xA65D, 0xDF07, 0x79F2, 0x71F6, 0xA65D, 0xDF03, 0xBCF9, 0x38FB, 0x532E, 0xEF83, 0xBCF9, 0x38FB, 0x532E, 0xEF81, 0xDE00,
|
||||
0x1EC7, 0xE4D9, 0xF965, 0x3BFF, 0x5EC7, 0xE4D9, 0xF965, 0x3BFF, 0x5EC7, 0xE4EC, 0xFCB2, 0x9DFF, 0xAF63, 0xF26C, 0xFCB2, 0x9DFF, 0xAF63, 0xF276, 0x7E00,
|
||||
0x1DFE, 0x56DD, 0xCBC2, 0xFD5A, 0xDDFE, 0x56DD, 0xCBC2, 0xFD5A, 0xDDFE, 0x56EE, 0xE5E1, 0x7EAD, 0x6EFF, 0x2B6E, 0xE5E1, 0x7EAD, 0x6EFF, 0x2B77, 0x7200,
|
||||
0x2E61, 0x661F, 0xDBEE, 0x9B7E, 0x2E61, 0x661F, 0xDBEE, 0x9B7E, 0x2E61, 0x660F, 0xEDF7, 0x4DBF, 0x1730, 0xB30F, 0xEDF7, 0x4DBF, 0x1730, 0xB307, 0xF600,
|
||||
0x2667, 0x74B2, 0xA31D, 0xF96A, 0xA667, 0x74B2, 0xA31D, 0xF96A, 0xA667, 0x74D9, 0x518E, 0xFCB5, 0x5333, 0xBA59, 0x518E, 0xFCB5, 0x5333, 0xBA6C, 0xA800,
|
||||
0x306D, 0xF94F, 0xEBBD, 0xAFC0, 0x706D, 0xF94F, 0xEBBD, 0xAFC0, 0x706D, 0xF927, 0xF5DE, 0xD7E0, 0x3836, 0xFCA7, 0xF5DE, 0xD7E0, 0x3836, 0xFC93, 0xFA00,
|
||||
0x011F, 0xA81F, 0xD9FB, 0xFB99, 0x811F, 0xA81F, 0xD9FB, 0xFB99, 0x811F, 0xA80F, 0xECFD, 0xFDCC, 0xC08F, 0xD40F, 0xECFD, 0xFDCC, 0xC08F, 0xD407, 0xF600,
|
||||
0x37F5, 0xC1F9, 0xD34F, 0x83BD, 0xB7F5, 0xC1F9, 0xD34F, 0x83BD, 0xB7F5, 0xC1FC, 0xE9A7, 0xC1DE, 0xDBFA, 0xE0FC, 0xE9A7, 0xC1DE, 0xDBFA, 0xE0FE, 0x7400,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
|
||||
};
|
||||
|
||||
struct Image classact_image =
|
||||
{
|
||||
0, 0, 298, 102, 3, &classact_data[0], 0x7, 0x0, NULL
|
||||
};
|
||||
|
||||
__chip UWORD sb_data[][64] =
|
||||
{
|
||||
/* Cut
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0e01, 0xc000, 0x1107, 0x8000,
|
||||
0x191e, 0x0000, 0x0f78, 0x0000,
|
||||
0x01e0, 0x0000, 0x0f78, 0x0000,
|
||||
0x191e, 0x0000, 0x1107, 0x8000,
|
||||
0x0e01, 0xc000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Copy
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x01fe, 0x0000, 0x0186, 0x0000,
|
||||
0x01fe, 0x0000, 0x0630, 0x8000,
|
||||
0x1fff, 0xe000, 0x1f87, 0xe000,
|
||||
0x1f03, 0xe000, 0x1f03, 0xe000,
|
||||
0x1f03, 0xe000, 0x1f87, 0xe000,
|
||||
0x1fff, 0xe000, 0x1fff, 0xe000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0078, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0060, 0x0000, 0x0044, 0x0000,
|
||||
0x0004, 0x0000, 0x0018, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Paste
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x003f, 0x0000,
|
||||
0x0021, 0x0000, 0x007f, 0x8000,
|
||||
0x0080, 0x4000, 0x0081, 0xc000,
|
||||
0x0780, 0x4000, 0x0861, 0xc000,
|
||||
0x0f20, 0x4000, 0x0891, 0xc000,
|
||||
0x0950, 0x4000, 0x0251, 0xc000,
|
||||
0x05e0, 0x4000, 0x0880, 0xc000,
|
||||
0x307f, 0x8000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0006, 0x0000, 0x0000, 0x0000,
|
||||
0x0007, 0x0000, 0x0002, 0x0000,
|
||||
0x0002, 0x0000, 0x0782, 0x0000,
|
||||
0x00c2, 0x0000, 0x0062, 0x0000,
|
||||
0x0222, 0x0000, 0x0422, 0x0000,
|
||||
0x0802, 0x0000, 0x1002, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Erase
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x002e, 0xb800,
|
||||
0x005d, 0x7800, 0x00ba, 0xf800,
|
||||
0x01f5, 0xf000, 0x03eb, 0xe000,
|
||||
0x05f7, 0xc000, 0x08ff, 0x8000,
|
||||
0x107f, 0x0000, 0x103e, 0x0000,
|
||||
0x101c, 0x0000, 0x0828, 0x0000,
|
||||
0x0450, 0x0000, 0x02a0, 0x0000,
|
||||
0x01ff, 0xf800, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x001a, 0xa800,
|
||||
0x0035, 0x5000, 0x006a, 0xa000,
|
||||
0x0015, 0x4000, 0x000a, 0x8000,
|
||||
0x0205, 0x0000, 0x0502, 0x0000,
|
||||
0x0a80, 0x0000, 0x0540, 0x0000,
|
||||
0x0aa0, 0x0000, 0x0540, 0x0000,
|
||||
0x0280, 0x0000, 0x0100, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Mail
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0800, 0xd000,
|
||||
0x0094, 0xd000, 0x0000, 0x1000,
|
||||
0x0060, 0x1000, 0x0000, 0x1000,
|
||||
0x00d0, 0x1000, 0x0000, 0x1000,
|
||||
0x1fff, 0xf000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0018, 0x0000, 0x007c, 0x0000,
|
||||
0x01ca, 0x0000, 0x0515, 0x0000,
|
||||
0x3fff, 0xe000, 0x2bff, 0xe000,
|
||||
0x3e97, 0xe000, 0x3fff, 0xe000,
|
||||
0x3f6f, 0xe000, 0x3fff, 0xe000,
|
||||
0x3fd7, 0xe000, 0x3fff, 0xe000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Time
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x0070, 0x0000,
|
||||
0x0376, 0x0000, 0x06db, 0x0000,
|
||||
0x0505, 0x0000, 0x0262, 0x0000,
|
||||
0x0421, 0x0000, 0x0421, 0x0000,
|
||||
0x0439, 0x0000, 0x0401, 0x0000,
|
||||
0x0401, 0x0000, 0x0202, 0x0000,
|
||||
0x0104, 0x0000, 0x01fc, 0x0000,
|
||||
0x0306, 0x0000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0020, 0x0000,
|
||||
0x0000, 0x0000, 0x0098, 0x0000,
|
||||
0x01dc, 0x0000, 0x01dc, 0x0000,
|
||||
0x01c4, 0x0000, 0x01fc, 0x0000,
|
||||
0x01fc, 0x0000, 0x00f8, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Date
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x037b, 0x0000,
|
||||
0x0285, 0x8000, 0x0201, 0x8000,
|
||||
0x0201, 0x8000, 0x0299, 0x8000,
|
||||
0x02a7, 0x8000, 0x052b, 0x8000,
|
||||
0x0535, 0x8000, 0x080d, 0x8000,
|
||||
0x1ff5, 0x8000, 0x0205, 0x8000,
|
||||
0x0201, 0x8000, 0x03ff, 0x8000,
|
||||
0x01ff, 0x8000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x017a, 0x0000, 0x01fe, 0x0000,
|
||||
0x01fe, 0x0000, 0x0166, 0x0000,
|
||||
0x0158, 0x0000, 0x02d4, 0x0000,
|
||||
0x02c8, 0x0000, 0x07f2, 0x0000,
|
||||
0x0000, 0x0000, 0x00aa, 0x0000,
|
||||
0x0154, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Disk
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x0038, 0x0000,
|
||||
0x0054, 0x0000, 0x008e, 0x0000,
|
||||
0x0107, 0x0000, 0x0207, 0x8000,
|
||||
0x040b, 0xc000, 0x0417, 0xe000,
|
||||
0x0e29, 0xe000, 0x0750, 0xc000,
|
||||
0x03a0, 0x8000, 0x01d9, 0x8000,
|
||||
0x00eb, 0x0000, 0x0076, 0x0000,
|
||||
0x003c, 0x0000, 0x0010, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0020, 0x0000, 0x0070, 0x0000,
|
||||
0x00c0, 0x0000, 0x01a4, 0x0000,
|
||||
0x0352, 0x0000, 0x06ab, 0x0000,
|
||||
0x0d53, 0x8000, 0x12a1, 0xc000,
|
||||
0x1d46, 0xc000, 0x0e89, 0x0000,
|
||||
0x0710, 0x0000, 0x03ac, 0x8000,
|
||||
0x01d1, 0x0000, 0x00e2, 0x0000,
|
||||
0x0074, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Spray Paint
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x0186, 0xc000,
|
||||
0x01bf, 0x0000, 0x07ec, 0xc000,
|
||||
0x0423, 0x0000, 0x0ff0, 0xc000,
|
||||
0x1008, 0x0000, 0x1078, 0x0000,
|
||||
0x1078, 0x0000, 0x1078, 0x0000,
|
||||
0x1078, 0x0000, 0x1078, 0x0000,
|
||||
0x1008, 0x0000, 0x1038, 0x0000,
|
||||
0x1008, 0x0000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0006, 0xc000,
|
||||
0x003f, 0x0000, 0x000c, 0xc000,
|
||||
0x0243, 0x0000, 0x0000, 0xc000,
|
||||
0x02e0, 0x0000, 0x0440, 0x0000,
|
||||
0x0470, 0x0000, 0x0440, 0x0000,
|
||||
0x0470, 0x0000, 0x0440, 0x0000,
|
||||
0x0440, 0x0000, 0x0440, 0x0000,
|
||||
0x0440, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Print
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x03fe, 0x0000,
|
||||
0x0205, 0x0000, 0x02a7, 0x0000,
|
||||
0x0201, 0x0000, 0x02d5, 0x0000,
|
||||
0x0201, 0x0000, 0x0601, 0x8000,
|
||||
0x1fff, 0xe000, 0x2000, 0x1000,
|
||||
0x2803, 0xd000, 0x2000, 0x1000,
|
||||
0x3fff, 0xf000, 0x1fff, 0xe000,
|
||||
0x0fff, 0xc000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x01fa, 0x0000, 0x0118, 0x0000,
|
||||
0x01fe, 0x0000, 0x0102, 0x0000,
|
||||
0x01fe, 0x0000, 0x01fe, 0x0000,
|
||||
0x0000, 0x0000, 0x1555, 0x4000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
}
|
||||
};
|
||||
|
||||
/* Image structures for above data.
|
||||
*/
|
||||
struct Image sb_images[] =
|
||||
{
|
||||
{ 0, 0, 22, 16, 2, sb_data[0], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[1], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[2], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[3], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[4], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[5], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[6], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[7], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[8], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[9], 0x03, 0x00, NULL },
|
||||
};
|
||||
|
||||
/* Custom show/hide images.
|
||||
*/
|
||||
__chip UWORD hide_data[28] =
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0xC000, 0xC000, 0xC002,
|
||||
0xC203, 0xC203, 0xC203, 0xC203,
|
||||
0x6203, 0x3203, 0x1A03, 0x0FFF,
|
||||
0x0FFF, 0x0600,
|
||||
/* Plane 1 */
|
||||
0x2000, 0x7000, 0x781C, 0x6CFE,
|
||||
0x77F6, 0x7FDE, 0x6F76, 0x77DE,
|
||||
0x3F72, 0x1FCE, 0x0FBE, 0x07FE,
|
||||
0x0600, 0x0000
|
||||
};
|
||||
|
||||
struct Image hide_image =
|
||||
{
|
||||
0,0, 16,14, 2, &hide_data[0], 0x3,0x0, NULL
|
||||
};
|
||||
|
||||
__chip UWORD show_data[28] =
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0180, 0x07C0, 0x1FE0, 0x7F70,
|
||||
0xFF78, 0xBF7C, 0xDF7E, 0x6C7F,
|
||||
0x37FC, 0x1BF1, 0x0DC6, 0x0618,
|
||||
0x0260, 0x0180,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0180, 0x07C0, 0x1FE0,
|
||||
0x7F70, 0x3FF8, 0x5F7C, 0x2EFC,
|
||||
0x17F2, 0x0BCE, 0x0538, 0x02E0,
|
||||
0x0080, 0x0000
|
||||
};
|
||||
|
||||
struct Image show_image =
|
||||
{
|
||||
0,0, 16,14, 2, &show_data[0], 0x3,0x0, NULL
|
||||
};
|
||||
|
||||
__chip UWORD leaf_data[28] =
|
||||
{
|
||||
/* Plane 0 */
|
||||
0xFF00, 0x8180, 0x8140, 0x8120,
|
||||
0x81F0, 0x8030, 0x8030, 0x8030,
|
||||
0x8030, 0x8030, 0x8030, 0x8030,
|
||||
0xFFF0, 0x7FF0,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x7E00, 0x7E80, 0x7EC0,
|
||||
0x7E00, 0x7FC0, 0x7FC0, 0x7FC0,
|
||||
0x7FC0, 0x7FC0, 0x7FC0, 0x7FC0,
|
||||
0x0000, 0x0000
|
||||
};
|
||||
|
||||
struct Image leaf_image =
|
||||
{
|
||||
0,0, 12,14, 2, &leaf_data[0], 0x3,0x0, NULL
|
||||
};
|
||||
|
||||
BIN
Demo/Images.c.info
Normal file
BIN
Demo/Images.c.info
Normal file
Binary file not shown.
BIN
Demo/Images.o
Normal file
BIN
Demo/Images.o
Normal file
Binary file not shown.
11
Demo/SCOPTIONS
Normal file
11
Demo/SCOPTIONS
Normal file
@@ -0,0 +1,11 @@
|
||||
NOSTACKCHECK
|
||||
NOSTACKEXTEND
|
||||
ERRORREXX
|
||||
SAVEDS
|
||||
SMALLCODE
|
||||
SMALLDATA
|
||||
NOERRORCONSOLE
|
||||
MEMORYSIZE=HUGE
|
||||
OPTIMIZERTIME
|
||||
LIBRARY=lib:classact.lib
|
||||
LIBRARY=lib:debug.lib
|
||||
16
Demo/SMakeFile
Normal file
16
Demo/SMakeFile
Normal file
@@ -0,0 +1,16 @@
|
||||
#
|
||||
# Makefile automatically generated by MKMK V6.55
|
||||
# Sat Aug 19 12:47:39 1995
|
||||
#
|
||||
|
||||
OBJS= ClassActDemo.o Images.o
|
||||
|
||||
SBGen: $(OBJS)
|
||||
sc link to ClassActDemo with <<
|
||||
$(OBJS)
|
||||
<
|
||||
|
||||
ClassActDemo.o: ClassActDemo.c
|
||||
|
||||
Images.o: Images.c
|
||||
|
||||
BIN
Demo/SMakeFile.info
Normal file
BIN
Demo/SMakeFile.info
Normal file
Binary file not shown.
BIN
Examples.info
Normal file
BIN
Examples.info
Normal file
Binary file not shown.
BIN
Examples/ARexx.info
Normal file
BIN
Examples/ARexx.info
Normal file
Binary file not shown.
BIN
Examples/ARexx/ARexxExample
Normal file
BIN
Examples/ARexx/ARexxExample
Normal file
Binary file not shown.
292
Examples/ARexx/ARexxExample.c
Normal file
292
Examples/ARexx/ARexxExample.c
Normal file
@@ -0,0 +1,292 @@
|
||||
#include <dos/dos.h>
|
||||
#include <dos/datetime.h>
|
||||
#include <libraries/gadtools.h>
|
||||
|
||||
#include <clib/alib_protos.h>
|
||||
|
||||
#include <proto/exec.h>
|
||||
#include <proto/intuition.h>
|
||||
#include <proto/dos.h>
|
||||
#include <proto/utility.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <classact.h>
|
||||
#include <classact_macros.h>
|
||||
|
||||
#ifdef _DCC
|
||||
#define SAVEDS __geta4
|
||||
#define ASM
|
||||
#define REG_A0 __A0
|
||||
#define REG_A1 __A1
|
||||
#else
|
||||
#define SAVEDS __saveds
|
||||
#define ASM __asm
|
||||
#define REG_A0 register __a0
|
||||
#define REG_A1 register __a1
|
||||
#endif
|
||||
|
||||
#ifdef _DCC
|
||||
extern __stkargs ULONG HookEntry();
|
||||
#else
|
||||
extern __stdargs ULONG HookEntry();
|
||||
#endif
|
||||
|
||||
/* Gadget IDs.
|
||||
*/
|
||||
#define GAD_QUIT 1
|
||||
|
||||
/* ARexx command IDs.
|
||||
*/
|
||||
enum { REXX_NAME, REXX_VERSION, REXX_AUTHOR, REXX_SEND, REXX_DATE };
|
||||
|
||||
|
||||
/* Protos for the reply hook and ARexx command functions.
|
||||
*/
|
||||
VOID SAVEDS reply_callback(struct Hook *, Object *, struct RexxMsg *);
|
||||
VOID ASM rexx_Name(REG_A0 struct ARexxCmd *, REG_A1 struct RexxMsg *);
|
||||
VOID ASM rexx_Version(REG_A0 struct ARexxCmd *, REG_A1 struct RexxMsg *);
|
||||
VOID ASM rexx_Author(REG_A0 struct ARexxCmd *, REG_A1 struct RexxMsg *);
|
||||
VOID ASM rexx_Send(REG_A0 struct ARexxCmd *, REG_A1 struct RexxMsg *);
|
||||
VOID ASM rexx_Date(REG_A0 struct ARexxCmd *, REG_A1 struct RexxMsg *);
|
||||
|
||||
/* Buffer for the system date.
|
||||
*/
|
||||
UBYTE systemDate[32];
|
||||
|
||||
/* Our reply hook function.
|
||||
*/
|
||||
struct Hook reply_hook;
|
||||
|
||||
/* The following commands are valid for this demo.
|
||||
*/
|
||||
struct ARexxCmd Commands[] =
|
||||
{
|
||||
{ "NAME", REXX_NAME, rexx_Name, NULL, NULL, },
|
||||
{ "VERSION", REXX_VERSION, rexx_Version, NULL, NULL, },
|
||||
{ "AUTHOR", REXX_AUTHOR, rexx_Author, NULL, NULL, },
|
||||
{ "SEND", REXX_SEND, rexx_Send, "TEXT/F", NULL, },
|
||||
{ "DATE", REXX_DATE, rexx_Date, "SYSTEM/S", NULL, },
|
||||
{ NULL, NULL, NULL, NULL, NULL, }
|
||||
};
|
||||
|
||||
|
||||
/* Starting point.
|
||||
*/
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
Object *arexx_obj;
|
||||
|
||||
if (!ButtonBase) return(20);
|
||||
|
||||
/* Create host object.
|
||||
*/
|
||||
if (arexx_obj = ARexxObject,
|
||||
AREXX_HostName, "AREXXDEMO",
|
||||
AREXX_Commands, Commands,
|
||||
AREXX_NoSlot, TRUE,
|
||||
AREXX_ReplyHook, &reply_hook,
|
||||
End)
|
||||
{
|
||||
Object *win_obj;
|
||||
|
||||
/* Create the window object.
|
||||
*/
|
||||
if (win_obj = WindowObject,
|
||||
WA_Title, "ClassAct arexx.class Demo",
|
||||
WA_DragBar, TRUE,
|
||||
WA_CloseGadget, TRUE,
|
||||
WA_DepthGadget, TRUE,
|
||||
WINDOW_ParentGroup, LayoutObject,
|
||||
LAYOUT_AddChild, ButtonObject,
|
||||
GA_Text, "_Quit",
|
||||
GA_ID, GAD_QUIT,
|
||||
GA_RelVerify, TRUE,
|
||||
ButtonEnd,
|
||||
LayoutEnd,
|
||||
EndWindow)
|
||||
{
|
||||
struct Window *window;
|
||||
|
||||
/* try to open the window.
|
||||
*/
|
||||
if (window = (struct Window *)CA_OpenWindow(win_obj))
|
||||
{
|
||||
ULONG wnsig = 0, rxsig = 0, signal, result, Code;
|
||||
BOOL running = TRUE;
|
||||
|
||||
/* Setup the reply callback hook.
|
||||
*/
|
||||
reply_hook.h_Entry = HookEntry;
|
||||
reply_hook.h_SubEntry = reply_callback;
|
||||
reply_hook.h_Data = NULL;
|
||||
|
||||
/* Try to start the macro "Demo.rexx". Note that the
|
||||
* current directory and REXX: will be searched for this
|
||||
* macro. Our reply hook will get the results of our
|
||||
* efforts to start this macro. To be totally robust, we
|
||||
* should have also passed pointers for the various result
|
||||
* variables.
|
||||
*/
|
||||
DoMethod(arexx_obj, AM_EXECUTE, "Demo.rexx", NULL, NULL, NULL, NULL, NULL);
|
||||
|
||||
/* Obtain wait masks.
|
||||
*/
|
||||
GetAttr(WINDOW_SigMask, win_obj, &wnsig);
|
||||
GetAttr(AREXX_SigMask, arexx_obj, &rxsig);
|
||||
|
||||
/* Event loop...
|
||||
*/
|
||||
do
|
||||
{
|
||||
signal = Wait(wnsig | rxsig | SIGBREAKF_CTRL_C);
|
||||
|
||||
/* ARexx event?
|
||||
*/
|
||||
if (signal & rxsig)
|
||||
CA_HandleRexx(arexx_obj);
|
||||
|
||||
/* Window event?
|
||||
*/
|
||||
if (signal & wnsig)
|
||||
{
|
||||
while ((result = CA_HandleInput(win_obj, &Code)) != WMHI_LASTMSG)
|
||||
{
|
||||
switch (result & WMHI_CLASSMASK)
|
||||
{
|
||||
case WMHI_CLOSEWINDOW:
|
||||
running = FALSE;
|
||||
break;
|
||||
|
||||
case WMHI_GADGETUP:
|
||||
switch(result & WMHI_GADGETMASK)
|
||||
{
|
||||
case GAD_QUIT:
|
||||
running = FALSE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (signal & SIGBREAKF_CTRL_C)
|
||||
{
|
||||
running = FALSE;
|
||||
}
|
||||
}
|
||||
while (running);
|
||||
}
|
||||
else
|
||||
puts ("Could not open the window");
|
||||
DisposeObject(win_obj);
|
||||
}
|
||||
else
|
||||
puts("Could not create the window object");
|
||||
DisposeObject(arexx_obj);
|
||||
}
|
||||
else
|
||||
puts("Could not create the ARexx host.");
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
#ifdef _DCC
|
||||
int wbmain(struct WBStartup *wbs)
|
||||
{
|
||||
return(main(0, NULL));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* Note the use of SAVEDS, it is required for the callback
|
||||
* ARexx command functions if access the global data such as
|
||||
* systemData[] made in the callback.
|
||||
*/
|
||||
|
||||
/* This function gets called whenever we get an ARexx reply. In this example,
|
||||
* we will see a reply come back from the REXX server when it has finished
|
||||
* attempting to start the Demo.rexx macro.
|
||||
*/
|
||||
VOID SAVEDS reply_callback(struct Hook *hook, Object *o, struct RexxMsg *rxm)
|
||||
{
|
||||
Printf("Args[0]: %s\nResult1: %ld Result2: %ld\n",
|
||||
rxm->rm_Args[0], rxm->rm_Result1, rxm->rm_Result2);
|
||||
}
|
||||
|
||||
/* NAME
|
||||
*/
|
||||
VOID SAVEDS ASM rexx_Name(REG_A0 struct ARexxCmd *ac, REG_A1 struct RexxMsg *rxm)
|
||||
{
|
||||
/* return the program name.
|
||||
*/
|
||||
ac->ac_Result = "ARexxTest";
|
||||
}
|
||||
|
||||
/* VERSION
|
||||
*/
|
||||
VOID SAVEDS ASM rexx_Version(REG_A0 struct ARexxCmd *ac, REG_A1 struct RexxMsg *rxm)
|
||||
{
|
||||
/* return the program version.
|
||||
*/
|
||||
ac->ac_Result = "1.0";
|
||||
}
|
||||
|
||||
/* AUTHOR
|
||||
*/
|
||||
VOID SAVEDS ASM rexx_Author(REG_A0 struct ARexxCmd *ac, REG_A1 struct RexxMsg *rxm)
|
||||
{
|
||||
/* return the authors name.
|
||||
*/
|
||||
ac->ac_Result = "Phantom Development LLC";
|
||||
}
|
||||
|
||||
/* SEND
|
||||
*/
|
||||
VOID SAVEDS ASM rexx_Send(REG_A0 struct ARexxCmd *ac, REG_A1 struct RexxMsg *rxm)
|
||||
{
|
||||
/* Print some text
|
||||
*/
|
||||
if (ac->ac_ArgList[0])
|
||||
Printf("%s\n", (STRPTR)ac->ac_ArgList[0]);
|
||||
}
|
||||
|
||||
/* DATE
|
||||
*/
|
||||
VOID SAVEDS ASM rexx_Date(REG_A0 struct ARexxCmd *ac, REG_A1 struct RexxMsg *rxm)
|
||||
{
|
||||
struct DateTime dt;
|
||||
|
||||
/* SYSTEM switch specified?
|
||||
*/
|
||||
if (!ac->ac_ArgList[0])
|
||||
{
|
||||
/* return the compilation date.
|
||||
*/
|
||||
ac->ac_Result = "11-10-95";
|
||||
}
|
||||
else
|
||||
{
|
||||
/* compute system date and store in systemDate buffer
|
||||
*/
|
||||
DateStamp((struct DateStamp *)&dt);
|
||||
|
||||
dt.dat_Format = FORMAT_USA;
|
||||
dt.dat_Flags = 0;
|
||||
dt.dat_StrDay = NULL;
|
||||
dt.dat_StrDate = systemDate;
|
||||
dt.dat_StrTime = NULL;
|
||||
|
||||
DateToStr(&dt);
|
||||
|
||||
/* return system date
|
||||
*/
|
||||
ac->ac_Result = systemDate;
|
||||
}
|
||||
}
|
||||
|
||||
BIN
Examples/ARexx/ARexxExample.c.info
Normal file
BIN
Examples/ARexx/ARexxExample.c.info
Normal file
Binary file not shown.
BIN
Examples/ARexx/ARexxExample.info
Normal file
BIN
Examples/ARexx/ARexxExample.info
Normal file
Binary file not shown.
25
Examples/ARexx/rx_me_demo.rexx
Normal file
25
Examples/ARexx/rx_me_demo.rexx
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Small script for the small arexxclass demo */
|
||||
|
||||
options results
|
||||
|
||||
address AREXXDEMO
|
||||
|
||||
NAME
|
||||
|
||||
say 'Program name : ' RESULT
|
||||
|
||||
VERSION
|
||||
|
||||
say 'Program version : ' RESULT
|
||||
|
||||
AUTHOR
|
||||
|
||||
say 'Program author : ' RESULT
|
||||
|
||||
DATE
|
||||
|
||||
say 'Program compilation date: ' RESULT
|
||||
|
||||
'DATE SYSTEM'
|
||||
|
||||
say 'Current system date : ' RESULT
|
||||
BIN
Examples/ARexx/rx_me_demo.rexx.info
Normal file
BIN
Examples/ARexx/rx_me_demo.rexx.info
Normal file
Binary file not shown.
BIN
Examples/BackFill.info
Normal file
BIN
Examples/BackFill.info
Normal file
Binary file not shown.
BIN
Examples/BackFill/BackFill.Brush
Normal file
BIN
Examples/BackFill/BackFill.Brush
Normal file
Binary file not shown.
BIN
Examples/BackFill/BackFill.Brush.info
Normal file
BIN
Examples/BackFill/BackFill.Brush.info
Normal file
Binary file not shown.
BIN
Examples/BackFill/BackFillExample
Normal file
BIN
Examples/BackFill/BackFillExample
Normal file
Binary file not shown.
BIN
Examples/BackFill/BackFillExample.info
Normal file
BIN
Examples/BackFill/BackFillExample.info
Normal file
Binary file not shown.
397
Examples/BackFill/BackfillExample.c
Normal file
397
Examples/BackFill/BackfillExample.c
Normal file
@@ -0,0 +1,397 @@
|
||||
/*************************************************************************
|
||||
* ClassAct Comprehensive Demo Program
|
||||
* Copyright © 1995 Osma Ahvenlampi
|
||||
*
|
||||
*/
|
||||
|
||||
#include <exec/types.h>
|
||||
#include <exec/memory.h>
|
||||
#include <intuition/intuition.h>
|
||||
#include <intuition/gadgetclass.h>
|
||||
#include <intuition/icclass.h>
|
||||
#include <libraries/gadtools.h>
|
||||
#include <graphics/gfxbase.h>
|
||||
#include <graphics/text.h>
|
||||
#include <graphics/gfxmacros.h>
|
||||
#include <utility/tagitem.h>
|
||||
#include <workbench/startup.h>
|
||||
#include <workbench/workbench.h>
|
||||
#include <datatypes/datatypes.h>
|
||||
#include <datatypes/datatypesclass.h>
|
||||
|
||||
#include <proto/datatypes.h>
|
||||
#include <proto/intuition.h>
|
||||
#include <proto/graphics.h>
|
||||
#include <proto/exec.h>
|
||||
#include <proto/dos.h>
|
||||
#include <proto/diskfont.h>
|
||||
#include <proto/utility.h>
|
||||
#include <proto/wb.h>
|
||||
#include <proto/icon.h>
|
||||
|
||||
#include <classact.h>
|
||||
#include <classact_lib.h>
|
||||
#include <clib/classact_lib_protos.h>
|
||||
|
||||
/* get LayerHook.lha from Aminet for this */
|
||||
#include <imagebackfill.h>
|
||||
|
||||
/*************************************************************************
|
||||
* Backfill options
|
||||
* We're using the public domain LayerHook here.
|
||||
*/
|
||||
struct BackFillOptions Options =
|
||||
{
|
||||
256,256,
|
||||
// !!! 0,0,
|
||||
TRUE,FALSE,
|
||||
0,0,
|
||||
TRUE
|
||||
};
|
||||
|
||||
struct BackFillInfo BF1, BF2, *Backfill;
|
||||
|
||||
UBYTE name[256];
|
||||
|
||||
/*************************************************************************
|
||||
* Gadget list
|
||||
* This wouldn't be strictly necessary, but it's an easy way of keeping
|
||||
* the gadget pointers for when we need to access the gadgets.
|
||||
*/
|
||||
typedef enum { G_Backfill = 1, G_Datatype, G_MAX } GadgetIDs;
|
||||
|
||||
struct Gadget *GL[G_MAX+1];
|
||||
|
||||
/*************************************************************************
|
||||
* App message hook.
|
||||
* Workbench App messages can be caught with a callback hook such as this.
|
||||
* We'll not worry about the app message type in this hook. Objects dropped
|
||||
* on the window or on the icon (while iconified) will be added to the
|
||||
* listview.
|
||||
*/
|
||||
|
||||
void __asm __saveds AppMsgFunc( register __a0 struct Hook *Hook,
|
||||
register __a2 Object *Window,
|
||||
register __a1 struct AppMessage *Msg )
|
||||
{
|
||||
struct Window *Win;
|
||||
struct WBArg *arg = Msg->am_ArgList;
|
||||
Object *dt;
|
||||
|
||||
GetAttr( WINDOW_Window, Window, (ULONG *)&Win );
|
||||
|
||||
NameFromLock( arg->wa_Lock, name, sizeof(name) );
|
||||
AddPart( name, arg->wa_Name, sizeof(name) );
|
||||
|
||||
dt = NewDTObject( name,
|
||||
DTA_GroupID, GID_PICTURE,
|
||||
ICA_TARGET, ICTARGET_IDCMP,
|
||||
TAG_END );
|
||||
|
||||
if (dt)
|
||||
{
|
||||
SetGadgetAttrs( (struct Gadget *)Hook->h_Data, Win, NULL,
|
||||
LAYOUT_ModifyChild, GL[G_Datatype],
|
||||
CHILD_ReplaceObject, dt,
|
||||
TAG_END );
|
||||
GL[G_Datatype] = (struct Gadget *)dt;
|
||||
RethinkLayout( (struct Gadget *)Hook->h_Data, Win, NULL, FALSE );
|
||||
}
|
||||
}
|
||||
|
||||
struct Hook apphook;
|
||||
|
||||
/*************************************************************************
|
||||
* IDCMP hook
|
||||
*/
|
||||
|
||||
void __asm __saveds IDCMPFunc( register __a0 struct Hook *Hook,
|
||||
register __a2 Object *Window,
|
||||
register __a1 struct IntuiMessage *Msg )
|
||||
{
|
||||
struct Window *Win;
|
||||
|
||||
GetAttr( WINDOW_Window, Window, (ULONG *)&Win );
|
||||
|
||||
if (Msg->Class == IDCMP_IDCMPUPDATE)
|
||||
{
|
||||
if ( GetTagData( DTA_Sync, FALSE, Msg->IAddress ) )
|
||||
{
|
||||
RefreshGList( (struct Gadget *)Hook->h_Data, Win, NULL, 1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct Hook idcmphook;
|
||||
|
||||
/*************************************************************************
|
||||
* This function creates our gadgets for the window.
|
||||
*/
|
||||
Object *CreateLayout(void)
|
||||
{
|
||||
return VGroupObject, Offset(32,32,32,32),
|
||||
LAYOUT_BevelStyle, BVS_THIN,
|
||||
|
||||
/* this tag instructs layout.gadget to defer GM_LAYOUT and GM_RENDER and ask
|
||||
* the windowclass to do them. This lessens the load on input.device
|
||||
*/
|
||||
LAYOUT_DeferLayout, TRUE,
|
||||
|
||||
/* this gives us a backfill
|
||||
*/
|
||||
CLASSACT_BackFill, Backfill,
|
||||
|
||||
/* this dummy object will be replaced with a datatype when we have a picture
|
||||
*/
|
||||
StartMember, apphook.h_Data = idcmphook.h_Data = LayoutObject, VCentered, HCentered,
|
||||
LAYOUT_BevelStyle, BVS_THIN,
|
||||
LAYOUT_BevelState, IDS_SELECTED,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
|
||||
/* We need to install this clearing backfill hook because
|
||||
* most of the datatypes really screw up rendering if the
|
||||
* background isn't color 0.
|
||||
*/
|
||||
LAYOUT_BackFill, LAYERS_BACKFILL,
|
||||
StartImage, GL[G_Datatype] = LabelObject,
|
||||
LABEL_Text, "Please drop picture icons on this window",
|
||||
EndImage,
|
||||
CHILD_MinHeight, 128,
|
||||
EndMember,
|
||||
|
||||
StartMember, GL[G_Backfill] = ButtonObject,
|
||||
GA_Text, "Use as a backfill",
|
||||
GA_ID, G_Backfill,
|
||||
GA_RelVerify, TRUE,
|
||||
EndMember,
|
||||
CHILD_WeightedHeight, 0,
|
||||
EndGroup;
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* Main Program
|
||||
*/
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
struct MsgPort *appport;
|
||||
struct Screen *Scr;
|
||||
|
||||
if (!ButtonBase) /* force it open */
|
||||
return 30;
|
||||
|
||||
/* By providing a message port you enable windowclass to handle iconification
|
||||
* and appwindows. This port can shared by all the windows of your application.
|
||||
*/
|
||||
appport = CreateMsgPort();
|
||||
Scr = LockPubScreen(NULL);
|
||||
|
||||
if (appport && Scr)
|
||||
{
|
||||
Object *Window;
|
||||
|
||||
apphook.h_Entry = (ULONG (* )())AppMsgFunc;
|
||||
apphook.h_SubEntry = NULL;
|
||||
|
||||
idcmphook.h_Entry = (ULONG (* )())IDCMPFunc;
|
||||
idcmphook.h_SubEntry = NULL;
|
||||
|
||||
/* Create a Window object with a Layout. When Window is asked to open itself,
|
||||
* it will calculate how much space the Layout needs and size itself accordingly.
|
||||
*/
|
||||
|
||||
Window = WindowObject,
|
||||
|
||||
/* these tags describe the window
|
||||
*/
|
||||
|
||||
WA_IDCMP, IDCMP_RAWKEY,
|
||||
WA_Top, 20,
|
||||
WA_Left, 20,
|
||||
WA_SizeGadget, TRUE,
|
||||
WA_DepthGadget, TRUE,
|
||||
WA_DragBar, TRUE,
|
||||
WA_CloseGadget, TRUE,
|
||||
WA_Activate, TRUE,
|
||||
|
||||
WA_Title, "ClassAct backfill/datatype example",
|
||||
WA_ScreenTitle, "ClassAct Copyright 1995 Phantom Development LLC.",
|
||||
|
||||
/* Add an iconification gadget. If you have this, you must listen to
|
||||
* WMHI_ICONIFY.
|
||||
*/
|
||||
|
||||
WINDOW_IconifyGadget, TRUE,
|
||||
|
||||
/* This message port lets windowclass handle the icon and appwindow.
|
||||
*/
|
||||
|
||||
WINDOW_AppPort, appport,
|
||||
WINDOW_AppWindow, TRUE,
|
||||
WINDOW_AppMsgHook, &apphook,
|
||||
|
||||
/* This sets up windowclass to relay IDCMPUPDATE messages to the
|
||||
* application's hook.
|
||||
*/
|
||||
|
||||
WINDOW_IDCMPHook, &idcmphook,
|
||||
WINDOW_IDCMPHookBits, IDCMP_IDCMPUPDATE,
|
||||
|
||||
/* The windowclass will automatically free the DiskObject used when
|
||||
* iconifying the window. If you do not provide a valid DiskObject,
|
||||
* windowclass will try to use env:sys/def_window.info or the default
|
||||
* project icon.
|
||||
*/
|
||||
|
||||
WINDOW_Icon, GetDiskObject( "BackfillExample" ),
|
||||
WINDOW_IconTitle, "ClassAct Example",
|
||||
|
||||
/* Below is the layout of the window
|
||||
*/
|
||||
|
||||
WINDOW_Layout, CreateLayout(),
|
||||
EndWindow;
|
||||
|
||||
if (Window)
|
||||
{
|
||||
/* Window pointer cache.
|
||||
*/
|
||||
|
||||
struct Window *Win;
|
||||
BOOL changebackfill = FALSE;
|
||||
|
||||
if (Win = CA_OpenWindow( Window ))
|
||||
{
|
||||
ULONG wsig, asig = 1L << appport->mp_SigBit;
|
||||
BOOL done = FALSE;
|
||||
|
||||
/* Now that the window has been opened, we can get the signal mask
|
||||
* of its user port. If the program supported iconification and didn't
|
||||
* use a shared IDCMP port between all windows, this signal bit
|
||||
* would have to be re-queried before each Wait().
|
||||
*/
|
||||
|
||||
GetAttr( WINDOW_SigMask, Window, &wsig );
|
||||
|
||||
while (done == FALSE)
|
||||
{
|
||||
ULONG sig = Wait(wsig | asig | SIGBREAKF_CTRL_C);
|
||||
ULONG result;
|
||||
UWORD code;
|
||||
|
||||
if (sig & (wsig | asig))
|
||||
{
|
||||
/* Messages waiting at the window's IDCMP port. Loop at WM_HANDLEINPUT
|
||||
* until all have been processed.
|
||||
*/
|
||||
|
||||
while ((result = CA_HandleInput(Window,&code)) != WMHI_LASTMSG)
|
||||
{
|
||||
/* The return code of this method is two-part. The upper word describes the
|
||||
* class of the message (gadgetup, menupick, closewindow, iconify, etc),
|
||||
* and the lower word is a class-defined ID, currently in use in the
|
||||
* gadgetup and menupick return codes.
|
||||
* Switch on the class, then on the ID.
|
||||
*/
|
||||
|
||||
switch(result & WMHI_CLASSMASK)
|
||||
{
|
||||
case WMHI_GADGETUP:
|
||||
|
||||
/* OK, got a gadgetup from something. Lets find out what the something is.
|
||||
* The code WORD to which a pointer was passed to WM_HANDLEINPUT has been
|
||||
* set to the Code value from the IDCMP_GADGETUP, in case we need it.
|
||||
*/
|
||||
|
||||
switch(result & WMHI_GADGETMASK)
|
||||
{
|
||||
case G_Backfill:
|
||||
changebackfill = TRUE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WMHI_CLOSEWINDOW:
|
||||
/* The window close gadget was hit. Time to die...
|
||||
*/
|
||||
done = TRUE;
|
||||
break;
|
||||
|
||||
case WMHI_ICONIFY:
|
||||
/* Window requests that it be iconified. Handle this event as
|
||||
* soon as possible. The window is not iconified automatically to
|
||||
* give you a chance to make note that the window pointer will be
|
||||
* invalid before the window closes. It also allows you to free
|
||||
* resources only needed when the window is open, if you wish to.
|
||||
*/
|
||||
if (CA_Iconify( Window ))
|
||||
Win = NULL;
|
||||
break;
|
||||
|
||||
case WMHI_UNICONIFY:
|
||||
/* The window should be reopened. If you had free'd something
|
||||
* on iconify, now is the time to re-allocate it, before calling
|
||||
* CA_OpenWindow.
|
||||
*/
|
||||
Win = CA_OpenWindow( Window );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (sig & SIGBREAKF_CTRL_C)
|
||||
{
|
||||
done = TRUE;
|
||||
}
|
||||
|
||||
if (changebackfill)
|
||||
{
|
||||
Object *layout;
|
||||
|
||||
/* This is a quick&dirty demo using an unmodified LayerHook (on Aminet).
|
||||
* This hook can not change its source bitmap on the fly.
|
||||
* Becaue of this, we have to do a bit of a juggling act to
|
||||
* replace the current backfill.
|
||||
*/
|
||||
if (Backfill == &BF1)
|
||||
{
|
||||
Backfill = NULL;
|
||||
if (LoadBackgroundImage( &BF2, name, Scr, &Options ))
|
||||
{
|
||||
Backfill = &BF2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Backfill = NULL;
|
||||
if (LoadBackgroundImage( &BF1, name, Scr, &Options ))
|
||||
{
|
||||
Backfill = &BF1;
|
||||
}
|
||||
}
|
||||
if (layout = CreateLayout())
|
||||
{
|
||||
SetAttrs(Window, WINDOW_Layout, layout, TAG_END);
|
||||
/* backfill changed, it's not safe to dispose the old
|
||||
* one. */
|
||||
UnloadBackgroundImage((Backfill == &BF1) ? &BF2 : &BF1);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* layout failed */
|
||||
UnloadBackgroundImage(Backfill);
|
||||
}
|
||||
changebackfill = FALSE;
|
||||
}
|
||||
}
|
||||
/* Close the window and dispose of all attached gadgets
|
||||
*/
|
||||
DisposeObject( Window );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (appport)
|
||||
DeleteMsgPort(appport);
|
||||
if (Scr)
|
||||
UnlockPubScreen(NULL,Scr);
|
||||
}
|
||||
BIN
Examples/BackFill/BackfillExample.c.info
Normal file
BIN
Examples/BackFill/BackfillExample.c.info
Normal file
Binary file not shown.
BIN
Examples/BitMap.info
Normal file
BIN
Examples/BitMap.info
Normal file
Binary file not shown.
BIN
Examples/BitMap/BitMapExample
Normal file
BIN
Examples/BitMap/BitMapExample
Normal file
Binary file not shown.
171
Examples/BitMap/BitMapExample.c
Normal file
171
Examples/BitMap/BitMapExample.c
Normal file
@@ -0,0 +1,171 @@
|
||||
/* ClassAct Example
|
||||
* Copyright 1995 Phantom Development LLC.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* This Example Shows ClassAct's bitmap.image
|
||||
*/
|
||||
|
||||
#include <proto/intuition.h>
|
||||
|
||||
#include <classact.h>
|
||||
|
||||
#include <clib/exec_protos.h>
|
||||
#include <clib/alib_protos.h>
|
||||
#include <clib/intuition_protos.h>
|
||||
|
||||
struct ClassLibrary *WindowBase;
|
||||
struct ClassLibrary *LayoutBase;
|
||||
struct ClassLibrary *ButtonBase;
|
||||
struct ClassLibrary *BitMapBase;
|
||||
|
||||
static struct Image *image;
|
||||
static struct Screen *screen;
|
||||
static struct Gadget *gadget;
|
||||
|
||||
int main( void )
|
||||
{ Object *Win_Object;
|
||||
Object *But_Object;
|
||||
struct Window *window;
|
||||
struct Image *image1=NULL,*image2=NULL,*image3=NULL;
|
||||
struct BitMap *bitmap;
|
||||
ULONG result,signal;
|
||||
BOOL done=FALSE;
|
||||
|
||||
/* Open the classes we will use. Note, classlib.lib SAS/C or DICE autoinit
|
||||
* can do this for you automatically.
|
||||
*/
|
||||
if( (WindowBase = (struct ClassLibrary *)OpenLibrary("window.class",0L) )
|
||||
&& (LayoutBase = (struct ClassLibrary *)OpenLibrary("gadgets/layout.gadget",0L) )
|
||||
&& (ButtonBase = (struct ClassLibrary *)OpenLibrary("gadgets/button.gadget",0L) )
|
||||
&& (BitMapBase = (struct ClassLibrary *)OpenLibrary("images/bitmap.image",0L) )
|
||||
)
|
||||
{
|
||||
if(screen=LockPubScreen(NULL))
|
||||
{
|
||||
/* Make an image out of an IFF file.
|
||||
* The image will be included in the window layout, and is
|
||||
* used to clip two other images from
|
||||
*/
|
||||
image1=BitMapObject,
|
||||
BITMAP_SourceFile,"PROGDIR:buttons.iff",
|
||||
BITMAP_OffsetX, 0,
|
||||
BITMAP_OffsetY, 0,
|
||||
BITMAP_Width, 577,
|
||||
BITMAP_Height, 30,
|
||||
BITMAP_Screen,screen,
|
||||
EndImage;
|
||||
|
||||
if(image1)
|
||||
{
|
||||
/* Get the bitmap of the image
|
||||
*/
|
||||
GetAttr(BITMAP_BitMap,image1,(ULONG *)&bitmap);
|
||||
|
||||
Win_Object = WindowObject,
|
||||
WA_ScreenTitle, "ClassAct Copyright 1995,1996 ClassAct Development Team..",
|
||||
WA_Title, "BitMap Example",
|
||||
WA_SizeGadget, TRUE,
|
||||
WA_Left, 40,
|
||||
WA_Top, 30,
|
||||
WA_InnerWidth,100,
|
||||
WA_DepthGadget, TRUE,
|
||||
WA_DragBar, TRUE,
|
||||
WA_CloseGadget, TRUE,
|
||||
WA_Activate, TRUE,
|
||||
WA_PubScreen,screen,
|
||||
WINDOW_ParentGroup, VGroupObject,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
LAYOUT_HorizAlignment,LALIGN_CENTER,
|
||||
|
||||
StartImage,image1,
|
||||
CHILD_NoDispose,TRUE,
|
||||
|
||||
/* Add a button with its imagery read from two
|
||||
* transparent GIF files. BITMAP_Masking,TRUE will
|
||||
* make the imagery appear transparent.
|
||||
*/
|
||||
StartMember, But_Object = ButtonObject,
|
||||
GA_ReadOnly, TRUE,
|
||||
GA_Image,image2=BitMapObject,
|
||||
BITMAP_BitMap,bitmap,
|
||||
BITMAP_OffsetX,0,
|
||||
BITMAP_OffsetY,0,
|
||||
BITMAP_Width,120,
|
||||
BITMAP_Height,30,
|
||||
BITMAP_SelectBitMap,bitmap,
|
||||
BITMAP_SelectOffsetX,30,
|
||||
BITMAP_SelectOffsetY,0,
|
||||
BITMAP_SelectWidth,120,
|
||||
BITMAP_SelectHeight,30,
|
||||
BITMAP_Masking,TRUE,
|
||||
EndImage,
|
||||
EndMember,
|
||||
CHILD_WeightedWidth, 0,
|
||||
CHILD_WeightedHeight, 0,
|
||||
|
||||
EndMember,
|
||||
EndWindow;
|
||||
/* Object creation sucessful?
|
||||
*/
|
||||
if( Win_Object )
|
||||
{
|
||||
/* Open the window.
|
||||
*/
|
||||
if( window = (struct Window *) CA_OpenWindow(Win_Object) )
|
||||
{
|
||||
ULONG wait;
|
||||
|
||||
/* Obtain the window wait signal mask.
|
||||
*/
|
||||
GetAttr( WINDOW_SigMask, Win_Object, &signal );
|
||||
/* Input Event Loop
|
||||
*/
|
||||
while( !done )
|
||||
{
|
||||
SetAttrs(image2, BITMAP_OffsetX, 32, TAG_END);
|
||||
|
||||
wait = Wait(signal|SIGBREAKF_CTRL_C);
|
||||
|
||||
if (wait & SIGBREAKF_CTRL_C) done = TRUE;
|
||||
else
|
||||
while ((result = CA_HandleInput(Win_Object,NULL)) != WMHI_LASTMSG)
|
||||
{
|
||||
switch(result)
|
||||
{
|
||||
case WMHI_CLOSEWINDOW:
|
||||
done = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Disposing of the window object will
|
||||
* also close the window if it is
|
||||
* already opened and it will dispose of
|
||||
* all objects attached to it.
|
||||
*/
|
||||
DisposeObject( Win_Object );
|
||||
}
|
||||
|
||||
/* Dispose the images ourselves as button.gadget doesn't
|
||||
* do this for its GA_Image...
|
||||
*/
|
||||
if(image2) DisposeObject(image2);
|
||||
if(image3) DisposeObject(image3);
|
||||
if(image1) DisposeObject(image1);
|
||||
|
||||
}
|
||||
|
||||
UnlockPubScreen(NULL,screen);
|
||||
}
|
||||
}
|
||||
|
||||
/* Close the classes.
|
||||
*/
|
||||
if (BitMapBase) CloseLibrary( (struct Library *)BitMapBase );
|
||||
if (ButtonBase) CloseLibrary( (struct Library *)ButtonBase );
|
||||
if (LayoutBase) CloseLibrary( (struct Library *)LayoutBase );
|
||||
if (WindowBase) CloseLibrary( (struct Library *)WindowBase );
|
||||
|
||||
}
|
||||
|
||||
BIN
Examples/BitMap/BitMapExample.c.info
Normal file
BIN
Examples/BitMap/BitMapExample.c.info
Normal file
Binary file not shown.
BIN
Examples/BitMap/BitMapExample.info
Normal file
BIN
Examples/BitMap/BitMapExample.info
Normal file
Binary file not shown.
BIN
Examples/BitMap/buttons.iff
Normal file
BIN
Examples/BitMap/buttons.iff
Normal file
Binary file not shown.
BIN
Examples/CheckBox.info
Normal file
BIN
Examples/CheckBox.info
Normal file
Binary file not shown.
BIN
Examples/CheckBox/CheckBoxExample.info
Normal file
BIN
Examples/CheckBox/CheckBoxExample.info
Normal file
Binary file not shown.
BIN
Examples/CheckBox/checkboxexample
Normal file
BIN
Examples/CheckBox/checkboxexample
Normal file
Binary file not shown.
233
Examples/CheckBox/checkboxexample.c
Normal file
233
Examples/CheckBox/checkboxexample.c
Normal file
@@ -0,0 +1,233 @@
|
||||
;/* CheckBox Example
|
||||
sc link checkboxexample.c lib lib:classact.lib
|
||||
quit
|
||||
*/
|
||||
|
||||
/**
|
||||
** CheckBoxExample.c -- CheckBox class Example.
|
||||
**
|
||||
** This is a simple example testing some of the capabilities of the
|
||||
** CheckBox gadget class.
|
||||
**
|
||||
** This code opens a window and then creates 2 CheckBox gadgets which
|
||||
** are subsequently attached to the window's gadget list. One uses
|
||||
** arrows, one does not. Notice that you can tab cycle between them.
|
||||
**/
|
||||
|
||||
/* system includes
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <exec/types.h>
|
||||
#include <exec/memory.h>
|
||||
#include <intuition/intuition.h>
|
||||
#include <intuition/gadgetclass.h>
|
||||
#include <libraries/gadtools.h>
|
||||
#include <graphics/gfxbase.h>
|
||||
#include <graphics/text.h>
|
||||
#include <graphics/gfxmacros.h>
|
||||
#include <utility/tagitem.h>
|
||||
#include <workbench/startup.h>
|
||||
#include <workbench/workbench.h>
|
||||
|
||||
#include <proto/intuition.h>
|
||||
#include <proto/graphics.h>
|
||||
#include <proto/exec.h>
|
||||
#include <proto/dos.h>
|
||||
#include <proto/utility.h>
|
||||
#include <proto/wb.h>
|
||||
#include <proto/icon.h>
|
||||
|
||||
/* ClassAct includes
|
||||
*/
|
||||
#include <classact.h>
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
GID_MAIN=0,
|
||||
GID_CHECKBOX1,
|
||||
GID_CHECKBOX2,
|
||||
GID_DOWN,
|
||||
GID_UP,
|
||||
GID_QUIT,
|
||||
GID_LAST
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
WID_MAIN=0,
|
||||
WID_LAST
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
OID_MAIN=0,
|
||||
OID_LAST
|
||||
};
|
||||
|
||||
int main(void)
|
||||
{
|
||||
struct MsgPort *AppPort;
|
||||
|
||||
struct Window *windows[WID_LAST];
|
||||
|
||||
struct Gadget *gadgets[GID_LAST];
|
||||
|
||||
Object *objects[OID_LAST];
|
||||
|
||||
/* make sure our classes opened... */
|
||||
if (!ButtonBase || !CheckBoxBase || !WindowBase || !LayoutBase)
|
||||
return(30);
|
||||
else if ( AppPort = CreateMsgPort() )
|
||||
{
|
||||
/* Create the window object.
|
||||
*/
|
||||
objects[OID_MAIN] = WindowObject,
|
||||
WA_ScreenTitle, "ClassAct Release 2.0",
|
||||
WA_Title, "ClassAct CheckBox Example",
|
||||
WA_Activate, TRUE,
|
||||
WA_DepthGadget, TRUE,
|
||||
WA_DragBar, TRUE,
|
||||
WA_CloseGadget, TRUE,
|
||||
WA_SizeGadget, TRUE,
|
||||
WINDOW_IconifyGadget, TRUE,
|
||||
WINDOW_IconTitle, "CheckBox",
|
||||
WINDOW_AppPort, AppPort,
|
||||
WINDOW_Position, WPOS_CENTERMOUSE,
|
||||
WINDOW_ParentGroup, gadgets[GID_MAIN] = VGroupObject,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
LAYOUT_DeferLayout, TRUE,
|
||||
|
||||
LAYOUT_AddChild, gadgets[GID_CHECKBOX1] = CheckBoxObject,
|
||||
GA_ID, GID_CHECKBOX1,
|
||||
GA_RelVerify, TRUE,
|
||||
GA_Text, "CheckBox _1",
|
||||
CHECKBOX_TextPlace, PLACETEXT_RIGHT,
|
||||
CheckBoxEnd,
|
||||
CHILD_NominalSize, TRUE,
|
||||
|
||||
LAYOUT_AddChild, gadgets[GID_CHECKBOX2] = CheckBoxObject,
|
||||
GA_ID, GID_CHECKBOX2,
|
||||
GA_RelVerify, TRUE,
|
||||
GA_Text, "CheckBox _2",
|
||||
CHECKBOX_TextPlace, PLACETEXT_LEFT,
|
||||
CheckBoxEnd,
|
||||
|
||||
LAYOUT_AddChild, VGroupObject,
|
||||
CLASSACT_BackFill, NULL,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
LAYOUT_VertAlignment, LALIGN_CENTER,
|
||||
LAYOUT_HorizAlignment, LALIGN_CENTER,
|
||||
LAYOUT_BevelStyle, BVS_FIELD,
|
||||
|
||||
LAYOUT_AddImage, LabelObject,
|
||||
LABEL_Text, "The checkbox may have its label placed\n",
|
||||
LABEL_Text, "either on the left or right side.\n",
|
||||
LABEL_Text, " \n",
|
||||
LABEL_Text, "You may click the label text as well\n",
|
||||
LABEL_Text, "as the check box itself.\n",
|
||||
LabelEnd,
|
||||
LayoutEnd,
|
||||
|
||||
LAYOUT_AddChild, ButtonObject,
|
||||
GA_ID, GID_QUIT,
|
||||
GA_RelVerify, TRUE,
|
||||
GA_Text,"_Quit",
|
||||
ButtonEnd,
|
||||
CHILD_WeightedHeight, 0,
|
||||
|
||||
EndGroup,
|
||||
EndWindow;
|
||||
|
||||
/* Object creation sucessful?
|
||||
*/
|
||||
if (objects[OID_MAIN])
|
||||
{
|
||||
/* Open the window.
|
||||
*/
|
||||
if (windows[WID_MAIN] = (struct Window *) CA_OpenWindow(objects[OID_MAIN]))
|
||||
{
|
||||
ULONG wait, signal, app = (1L << AppPort->mp_SigBit);
|
||||
ULONG done = FALSE;
|
||||
ULONG result;
|
||||
UWORD code;
|
||||
|
||||
/* Obtain the window wait signal mask.
|
||||
*/
|
||||
GetAttr(WINDOW_SigMask, objects[OID_MAIN], &signal);
|
||||
|
||||
/* Input Event Loop
|
||||
*/
|
||||
while (!done)
|
||||
{
|
||||
wait = Wait( signal | SIGBREAKF_CTRL_C | app );
|
||||
|
||||
if ( wait & SIGBREAKF_CTRL_C )
|
||||
{
|
||||
done = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
while ( (result = CA_HandleInput(objects[OID_MAIN], &code) ) != WMHI_LASTMSG )
|
||||
{
|
||||
switch (result & WMHI_CLASSMASK)
|
||||
{
|
||||
case WMHI_CLOSEWINDOW:
|
||||
windows[WID_MAIN] = NULL;
|
||||
done = TRUE;
|
||||
break;
|
||||
|
||||
case WMHI_GADGETUP:
|
||||
switch (result & WMHI_GADGETMASK)
|
||||
{
|
||||
case GID_CHECKBOX1:
|
||||
/* code is TRUE or FALSE depending on check state */
|
||||
break;
|
||||
|
||||
case GID_CHECKBOX2:
|
||||
/* code is TRUE or FALSE depending on check state */
|
||||
break;
|
||||
|
||||
case GID_QUIT:
|
||||
done = TRUE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WMHI_ICONIFY:
|
||||
CA_Iconify(objects[OID_MAIN]);
|
||||
windows[WID_MAIN] = NULL;
|
||||
break;
|
||||
|
||||
case WMHI_UNICONIFY:
|
||||
windows[WID_MAIN] = (struct Window *) CA_OpenWindow(objects[OID_MAIN]);
|
||||
|
||||
if (windows[WID_MAIN])
|
||||
{
|
||||
GetAttr(WINDOW_SigMask, objects[OID_MAIN], &signal);
|
||||
}
|
||||
else
|
||||
{
|
||||
done = TRUE; // error re-opening window!
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Disposing of the window object will also close the window if it is
|
||||
* already opened, and it will dispose of the layout object attached to it.
|
||||
*/
|
||||
DisposeObject(objects[OID_MAIN]);
|
||||
}
|
||||
|
||||
DeleteMsgPort(AppPort);
|
||||
}
|
||||
|
||||
return(0);
|
||||
}
|
||||
BIN
Examples/CheckBox/checkboxexample.c.info
Normal file
BIN
Examples/CheckBox/checkboxexample.c.info
Normal file
Binary file not shown.
BIN
Examples/Chooser.info
Normal file
BIN
Examples/Chooser.info
Normal file
Binary file not shown.
BIN
Examples/Chooser/ChooserExample.info
Normal file
BIN
Examples/Chooser/ChooserExample.info
Normal file
Binary file not shown.
BIN
Examples/Chooser/HiddenChooser.info
Normal file
BIN
Examples/Chooser/HiddenChooser.info
Normal file
Binary file not shown.
BIN
Examples/Chooser/chooserexample
Normal file
BIN
Examples/Chooser/chooserexample
Normal file
Binary file not shown.
228
Examples/Chooser/chooserexample.c
Normal file
228
Examples/Chooser/chooserexample.c
Normal file
@@ -0,0 +1,228 @@
|
||||
;/* Chooser Example
|
||||
sc link chooserexample.c lib lib:classact.lib
|
||||
quit
|
||||
*/
|
||||
|
||||
/**
|
||||
** ChoosserExample.c -- chooser class example.
|
||||
**
|
||||
** This is a simple example testing some of the capabilities of the
|
||||
** chooser gadget class.
|
||||
**
|
||||
** This opens a window with chooser gadget. We will usse ClassAct.lib's
|
||||
** ChooserLables() and FreeChooserLabels() utility functions to create the
|
||||
** item labels.
|
||||
**
|
||||
**/
|
||||
|
||||
/* system includes
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <exec/types.h>
|
||||
#include <exec/memory.h>
|
||||
#include <intuition/intuition.h>
|
||||
#include <intuition/gadgetclass.h>
|
||||
#include <graphics/gfxbase.h>
|
||||
#include <graphics/text.h>
|
||||
#include <graphics/gfxmacros.h>
|
||||
#include <utility/tagitem.h>
|
||||
#include <workbench/startup.h>
|
||||
#include <workbench/workbench.h>
|
||||
|
||||
#include <proto/intuition.h>
|
||||
#include <proto/graphics.h>
|
||||
#include <proto/exec.h>
|
||||
#include <proto/dos.h>
|
||||
#include <proto/utility.h>
|
||||
#include <proto/wb.h>
|
||||
#include <proto/icon.h>
|
||||
|
||||
/* ClassAct includes
|
||||
*/
|
||||
#include <classact.h>
|
||||
|
||||
/* button option texts
|
||||
*/
|
||||
UBYTE *chooser[] =
|
||||
{
|
||||
"1200",
|
||||
"2400",
|
||||
"4800",
|
||||
"9600",
|
||||
"19200",
|
||||
"38400",
|
||||
"57600",
|
||||
"115200",
|
||||
"230400",
|
||||
NULL
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
GID_MAIN=0,
|
||||
GID_CHOOSER1,
|
||||
GID_QUIT,
|
||||
GID_LAST
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
WID_MAIN=0,
|
||||
WID_LAST
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
OID_MAIN=0,
|
||||
OID_LAST
|
||||
};
|
||||
|
||||
int main(void)
|
||||
{
|
||||
struct MsgPort *AppPort;
|
||||
|
||||
struct Window *windows[WID_LAST];
|
||||
|
||||
struct Gadget *gadgets[GID_LAST];
|
||||
|
||||
Object *objects[OID_LAST];
|
||||
|
||||
struct List *chooserlist1;
|
||||
|
||||
/* make sure our classes opened... */
|
||||
if (!ButtonBase || !ChooserBase || !WindowBase || !LayoutBase)
|
||||
return(30);
|
||||
else if ( AppPort = CreateMsgPort() )
|
||||
{
|
||||
/* Create chooser label list.
|
||||
*/
|
||||
chooserlist1 = ChooserLabels( "1200","2400","4800","9600","19200","38400","57600", NULL );
|
||||
|
||||
if (chooserlist1)
|
||||
{
|
||||
/* Create the window object.
|
||||
*/
|
||||
objects[OID_MAIN] = WindowObject,
|
||||
WA_ScreenTitle, "ClassAct Release 2.0",
|
||||
WA_Title, "ClassAct Chooser Example",
|
||||
WA_Activate, TRUE,
|
||||
WA_DepthGadget, TRUE,
|
||||
WA_DragBar, TRUE,
|
||||
WA_CloseGadget, TRUE,
|
||||
WA_SizeGadget, TRUE,
|
||||
WINDOW_IconifyGadget, TRUE,
|
||||
WINDOW_IconTitle, "Chooser",
|
||||
WINDOW_AppPort, AppPort,
|
||||
WINDOW_Position, WPOS_CENTERMOUSE,
|
||||
WINDOW_ParentGroup, gadgets[GID_MAIN] = VGroupObject,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
LAYOUT_DeferLayout, TRUE,
|
||||
|
||||
LAYOUT_AddChild, gadgets[GID_CHOOSER1] = ChooserObject,
|
||||
GA_ID, GID_CHOOSER1,
|
||||
GA_RelVerify, TRUE,
|
||||
CHOOSER_Labels, chooserlist1,
|
||||
CHOOSER_Selected, 0,
|
||||
ChooserEnd,
|
||||
CHILD_NominalSize, TRUE,
|
||||
CHILD_Label, LabelObject, LABEL_Text, "_Baud Rate", LabelEnd,
|
||||
|
||||
LAYOUT_AddChild, ButtonObject,
|
||||
GA_ID, GID_QUIT,
|
||||
GA_RelVerify, TRUE,
|
||||
GA_Text,"_Quit",
|
||||
ButtonEnd,
|
||||
CHILD_WeightedHeight, 0,
|
||||
|
||||
EndGroup,
|
||||
EndWindow;
|
||||
|
||||
/* Object creation sucessful?
|
||||
*/
|
||||
if (objects[OID_MAIN])
|
||||
{
|
||||
/* Open the window.
|
||||
*/
|
||||
if (windows[WID_MAIN] = (struct Window *) CA_OpenWindow(objects[OID_MAIN]))
|
||||
{
|
||||
ULONG wait, signal, app = (1L << AppPort->mp_SigBit);
|
||||
ULONG done = FALSE;
|
||||
ULONG result;
|
||||
UWORD code;
|
||||
|
||||
/* Obtain the window wait signal mask.
|
||||
*/
|
||||
GetAttr(WINDOW_SigMask, objects[OID_MAIN], &signal);
|
||||
|
||||
/* Input Event Loop
|
||||
*/
|
||||
while (!done)
|
||||
{
|
||||
wait = Wait( signal | SIGBREAKF_CTRL_C | app );
|
||||
|
||||
if ( wait & SIGBREAKF_CTRL_C )
|
||||
{
|
||||
done = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
while ( (result = CA_HandleInput(objects[OID_MAIN], &code) ) != WMHI_LASTMSG )
|
||||
{
|
||||
switch (result & WMHI_CLASSMASK)
|
||||
{
|
||||
case WMHI_CLOSEWINDOW:
|
||||
windows[WID_MAIN] = NULL;
|
||||
done = TRUE;
|
||||
break;
|
||||
|
||||
case WMHI_GADGETUP:
|
||||
switch (result & WMHI_GADGETMASK)
|
||||
{
|
||||
case GID_QUIT:
|
||||
done = TRUE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WMHI_ICONIFY:
|
||||
CA_Iconify(objects[OID_MAIN]);
|
||||
windows[WID_MAIN] = NULL;
|
||||
break;
|
||||
|
||||
case WMHI_UNICONIFY:
|
||||
windows[WID_MAIN] = (struct Window *) CA_OpenWindow(objects[OID_MAIN]);
|
||||
|
||||
if (windows[WID_MAIN])
|
||||
{
|
||||
GetAttr(WINDOW_SigMask, objects[OID_MAIN], &signal);
|
||||
}
|
||||
else
|
||||
{
|
||||
done = TRUE; // error re-opening window!
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Disposing of the window object will also close the window if it is
|
||||
* already opened, and it will dispose of the layout object attached to it.
|
||||
*/
|
||||
DisposeObject(objects[OID_MAIN]);
|
||||
}
|
||||
|
||||
/* free the chooser list
|
||||
*/
|
||||
FreeChooserLabels(chooserlist1);
|
||||
}
|
||||
|
||||
DeleteMsgPort(AppPort);
|
||||
}
|
||||
|
||||
return(0);
|
||||
}
|
||||
BIN
Examples/Chooser/chooserexample.c.info
Normal file
BIN
Examples/Chooser/chooserexample.c.info
Normal file
Binary file not shown.
BIN
Examples/Chooser/hiddenchooser
Normal file
BIN
Examples/Chooser/hiddenchooser
Normal file
Binary file not shown.
225
Examples/Chooser/hiddenchooser.c
Normal file
225
Examples/Chooser/hiddenchooser.c
Normal file
@@ -0,0 +1,225 @@
|
||||
;/* Hidden Chooser Example
|
||||
sc link hiddenchooser.c lib lib:classact.lib
|
||||
quit
|
||||
*/
|
||||
|
||||
/** This example demonstrates the "hidden mode" mode of the chooser gadget.
|
||||
**
|
||||
** It is a NEW mode added recently to ClassAct release 2.0 - you *must*
|
||||
** have atleast V41.101 or later installed. Officially, this is a V42
|
||||
** ClassAct 2.1 feature, but made available now due to developer demand.
|
||||
**
|
||||
** Hidden choosers currently need to be handled differently than visible
|
||||
** gadget objects. Since they are NOT added to the window, or layout group,
|
||||
** they do not trigger a GADGETUP. So, you must use an IDCMPUPDATE hook
|
||||
** and use the CHOOSER_Active notifications to get the selection.
|
||||
**/
|
||||
|
||||
#define USE_BUILTIN_MATH
|
||||
#define USE_SYSBASE
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
|
||||
#define INTUI_V36_NAMES_ONLY
|
||||
|
||||
#include <exec/types.h>
|
||||
#include <exec/memory.h>
|
||||
#include <dos/dos.h>
|
||||
#include <dos/dosextens.h>
|
||||
#include <intuition/intuition.h>
|
||||
#include <intuition/gadgetclass.h>
|
||||
#include <intuition/intuitionbase.h>
|
||||
#include <intuition/classusr.h>
|
||||
#include <intuition/imageclass.h>
|
||||
#include <intuition/gadgetclass.h>
|
||||
#include <intuition/icclass.h>
|
||||
#include <intuition/cghooks.h>
|
||||
#include <intuition/classes.h>
|
||||
#include <graphics/gfxbase.h>
|
||||
#include <graphics/text.h>
|
||||
#include <graphics/gfxmacros.h>
|
||||
#include <utility/tagitem.h>
|
||||
#include <utility/hooks.h>
|
||||
|
||||
#include <clib/macros.h>
|
||||
|
||||
#include <proto/intuition.h>
|
||||
#include <proto/graphics.h>
|
||||
#include <proto/dos.h>
|
||||
#include <proto/exec.h>
|
||||
#include <proto/utility.h>
|
||||
|
||||
#include <classact.h>
|
||||
|
||||
#define ID_BUTTON 1
|
||||
#define ID_HIDDEN 2
|
||||
|
||||
/* Labels for the popup.
|
||||
*/
|
||||
UBYTE *chooser_strs[] =
|
||||
{
|
||||
"Save Image",
|
||||
"Load Image",
|
||||
"Follow URL",
|
||||
"Save to HotList",
|
||||
NULL
|
||||
};
|
||||
|
||||
/*************************************************************************
|
||||
* IDCMP hook
|
||||
*/
|
||||
|
||||
void __asm __saveds IDCMPFunc( register __a0 struct Hook *Hook,
|
||||
register __a2 Object *Window,
|
||||
register __a1 struct IntuiMessage *Msg )
|
||||
{
|
||||
ULONG active;
|
||||
|
||||
if (Msg->Class == IDCMP_IDCMPUPDATE)
|
||||
{
|
||||
/* The notification might include one of the tags we want to look at...
|
||||
*/
|
||||
if (GetTagData(GA_ID, 0, Msg->IAddress) == ID_HIDDEN)
|
||||
{
|
||||
active = GetTagData(CHOOSER_Active, -1, Msg->IAddress);
|
||||
printf("active: %ld\n", active);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
if (ButtonBase)
|
||||
{
|
||||
Object *Chooser_Object_Hidden;
|
||||
Object *Window_Object;
|
||||
struct Window *window;
|
||||
struct List *chooserlist;
|
||||
struct Hook idcmphook;
|
||||
|
||||
idcmphook.h_Entry = (ULONG (* )())IDCMPFunc;
|
||||
idcmphook.h_SubEntry = NULL;
|
||||
|
||||
chooserlist = ChooserLabelsA(chooser_strs);
|
||||
|
||||
if (chooserlist)
|
||||
{
|
||||
/* Create an instance of the chooser class that will remain hidden.
|
||||
*/
|
||||
Chooser_Object_Hidden = ChooserObject,
|
||||
GA_RelVerify, TRUE,
|
||||
GA_ID, ID_HIDDEN,
|
||||
CHOOSER_Labels, chooserlist,
|
||||
CHOOSER_DropDown, TRUE,
|
||||
CHOOSER_AutoFit, TRUE,
|
||||
CHOOSER_Hidden, TRUE,
|
||||
ICA_TARGET, ICTARGET_IDCMP,
|
||||
ChooserEnd;
|
||||
|
||||
/* Create the window object. */
|
||||
Window_Object = WindowObject,
|
||||
WA_ScreenTitle, "ClassAct Release 2.0",
|
||||
WA_Title, "Another ClassAct chooser.gadget Example",
|
||||
WA_SizeGadget, TRUE,
|
||||
WA_Left, 40,
|
||||
WA_Top, 30,
|
||||
WA_DepthGadget, TRUE,
|
||||
WA_DragBar, TRUE,
|
||||
WA_CloseGadget, TRUE,
|
||||
WA_Activate, TRUE,
|
||||
WA_SmartRefresh, TRUE,
|
||||
WA_IDCMP, IDCMP_GADGETUP|IDCMP_GADGETDOWN|IDCMP_IDCMPUPDATE,
|
||||
WINDOW_IDCMPHook, &idcmphook, /* For BOOPSI notification */
|
||||
WINDOW_IDCMPHookBits, IDCMP_IDCMPUPDATE,
|
||||
WINDOW_ParentGroup, VGroupObject,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
LAYOUT_DeferLayout, TRUE,
|
||||
|
||||
LAYOUT_AddChild, ButtonObject,
|
||||
GA_RelVerify, TRUE,
|
||||
GA_ID, ID_BUTTON,
|
||||
GA_Text, "Press me to show the hidden chooser!",
|
||||
ButtonEnd,
|
||||
CHILD_WeightedHeight, 0,
|
||||
|
||||
LAYOUT_AddChild, VGroupObject,
|
||||
CLASSACT_BackFill, NULL,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
LAYOUT_VertAlignment, LALIGN_CENTER,
|
||||
LAYOUT_HorizAlignment, LALIGN_CENTER,
|
||||
LAYOUT_BevelStyle, BVS_FIELD,
|
||||
|
||||
LAYOUT_AddImage, LabelObject,
|
||||
LABEL_Text, "Selecting the button above will\n",
|
||||
LABEL_Text, "reveal the hidden popup chooser!\n\n",
|
||||
LABEL_Text, "Hidden choosers are useful for\n",
|
||||
LABEL_Text, "context sensitive quick menus.\n",
|
||||
LabelEnd,
|
||||
|
||||
LayoutEnd,
|
||||
LayoutEnd,
|
||||
WindowEnd;
|
||||
|
||||
/* Object creation sucessful?
|
||||
*/
|
||||
if( Window_Object )
|
||||
{
|
||||
/* Open the window.
|
||||
*/
|
||||
if( window = (struct Window *) CA_OpenWindow(Window_Object) )
|
||||
{
|
||||
ULONG wait, signal, result, done = FALSE;
|
||||
WORD Code;
|
||||
|
||||
/* Obtain the window wait signal mask.
|
||||
*/
|
||||
GetAttr( WINDOW_SigMask, Window_Object, &signal );
|
||||
|
||||
/* Input Event Loop
|
||||
*/
|
||||
while( !done )
|
||||
{
|
||||
wait = Wait(signal|SIGBREAKF_CTRL_C);
|
||||
|
||||
if (wait & SIGBREAKF_CTRL_C) done = TRUE;
|
||||
else
|
||||
|
||||
while ((result = CA_HandleInput(Window_Object,&Code)) != WMHI_LASTMSG)
|
||||
{
|
||||
switch (result & WMHI_CLASSMASK)
|
||||
{
|
||||
case WMHI_CLOSEWINDOW:
|
||||
done = TRUE;
|
||||
break;
|
||||
|
||||
case WMHI_GADGETUP:
|
||||
switch(result & WMHI_GADGETMASK)
|
||||
{
|
||||
case ID_BUTTON:
|
||||
ActivateGadget((struct Gadget *)Chooser_Object_Hidden, window, NULL);
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Disposing of the window object will also close the window if it is
|
||||
* already opened and it will dispose of all objects attached to it.
|
||||
*/
|
||||
DisposeObject( Window_Object );
|
||||
|
||||
/* The hidden chooser isn't attached to anything, so we must dispose
|
||||
* it ourselves...
|
||||
*/
|
||||
DisposeObject( Chooser_Object_Hidden );
|
||||
}
|
||||
}
|
||||
FreeChooserLabels(chooserlist);
|
||||
}
|
||||
}
|
||||
BIN
Examples/Chooser/hiddenchooser.c.info
Normal file
BIN
Examples/Chooser/hiddenchooser.c.info
Normal file
Binary file not shown.
BIN
Examples/ClickTab.info
Normal file
BIN
Examples/ClickTab.info
Normal file
Binary file not shown.
BIN
Examples/ClickTab/ClickTabExample
Normal file
BIN
Examples/ClickTab/ClickTabExample
Normal file
Binary file not shown.
207
Examples/ClickTab/ClickTabExample.c
Normal file
207
Examples/ClickTab/ClickTabExample.c
Normal file
@@ -0,0 +1,207 @@
|
||||
#define USE_BUILTIN_MATH
|
||||
#define USE_SYSBASE
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
|
||||
#define INTUI_V36_NAMES_ONLY
|
||||
|
||||
#include <exec/types.h>
|
||||
#include <exec/memory.h>
|
||||
#include <dos/dos.h>
|
||||
#include <dos/dosextens.h>
|
||||
#include <intuition/intuition.h>
|
||||
#include <intuition/gadgetclass.h>
|
||||
#include <intuition/intuitionbase.h>
|
||||
#include <intuition/classusr.h>
|
||||
#include <intuition/imageclass.h>
|
||||
#include <intuition/gadgetclass.h>
|
||||
#include <intuition/cghooks.h>
|
||||
#include <intuition/icclass.h>
|
||||
#include <intuition/classes.h>
|
||||
#include <intuition/sghooks.h>
|
||||
#include <graphics/gfxbase.h>
|
||||
#include <graphics/text.h>
|
||||
#include <graphics/gfxmacros.h>
|
||||
#include <utility/tagitem.h>
|
||||
#include <utility/hooks.h>
|
||||
|
||||
#include <clib/macros.h>
|
||||
|
||||
#include <proto/intuition.h>
|
||||
#include <proto/graphics.h>
|
||||
#include <proto/dos.h>
|
||||
#include <proto/exec.h>
|
||||
#include <proto/gadtools.h>
|
||||
#include <proto/utility.h>
|
||||
|
||||
#include <classact.h>
|
||||
#include <classact_author.h>
|
||||
|
||||
#include <proto/clicktab.h>
|
||||
#include <gadgets/clicktab.h>
|
||||
|
||||
struct ClassLibrary *WindowBase;
|
||||
struct ClassLibrary *LayoutBase;
|
||||
struct ClassLibrary *ClickTabBase;
|
||||
|
||||
#define ID_CLICKTAB 1
|
||||
|
||||
struct List listitems;
|
||||
UBYTE *names[] =
|
||||
{
|
||||
"Tab_1",
|
||||
"Tab_2",
|
||||
"Tab_3",
|
||||
"Tab_4",
|
||||
NULL
|
||||
};
|
||||
|
||||
BOOL ClickTabNodes(struct List *list, UBYTE **labels)
|
||||
{
|
||||
struct Node *node;
|
||||
WORD i = 0;
|
||||
|
||||
NewList(list);
|
||||
|
||||
while (*labels)
|
||||
{
|
||||
if (node = (struct Node *)AllocClickTabNode(
|
||||
TNA_Text, *labels,
|
||||
TNA_Number, i,
|
||||
TNA_Enabled, TRUE,
|
||||
TNA_Spacing, 6,
|
||||
TAG_DONE))
|
||||
{
|
||||
AddTail(list, node);
|
||||
}
|
||||
labels++;
|
||||
i++;
|
||||
}
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
VOID FreeClickTabNodes(struct List *list)
|
||||
{
|
||||
struct Node *node, *nextnode;
|
||||
|
||||
node = list->lh_Head;
|
||||
while (nextnode = node->ln_Succ)
|
||||
{
|
||||
FreeClickTabNode(node);
|
||||
node = nextnode;
|
||||
}
|
||||
NewList(list);
|
||||
}
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
struct Window *window;
|
||||
Object *Tab_Object;
|
||||
Object *Win_Object;
|
||||
|
||||
/* Open the classes - typically not required to be done manually.
|
||||
* SAS/C or DICE AutoInit can do this for you if linked with the
|
||||
* supplied classact.lib
|
||||
*/
|
||||
WindowBase = (struct ClassLibrary *)OpenLibrary("window.class",0L);
|
||||
LayoutBase = (struct ClassLibrary *)OpenLibrary("gadgets/layout.gadget",0L);
|
||||
ClickTabBase = (struct ClassLibrary *)OpenLibrary("gadgets/clicktab.gadget",0L);
|
||||
|
||||
if(WindowBase && LayoutBase && ClickTabBase)
|
||||
{
|
||||
ClickTabNodes(&listitems, names);
|
||||
|
||||
/* Create the window object.
|
||||
*/
|
||||
Win_Object = WindowObject,
|
||||
WA_ScreenTitle, "ClassAct Copyright 1995, Phantom Development LLC.",
|
||||
WA_Title, "ClassAct clicktab.gadget Example",
|
||||
WA_SizeGadget, TRUE,
|
||||
WA_Left, 40,
|
||||
WA_Top, 30,
|
||||
WA_DepthGadget, TRUE,
|
||||
WA_DragBar, TRUE,
|
||||
WA_CloseGadget, TRUE,
|
||||
WA_Activate, TRUE,
|
||||
WA_SmartRefresh, TRUE,
|
||||
WINDOW_ParentGroup, VLayoutObject,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
LAYOUT_DeferLayout, TRUE,
|
||||
StartMember, Tab_Object = ClickTabObject,
|
||||
GA_ID, ID_CLICKTAB,
|
||||
CLICKTAB_Labels, &listitems,
|
||||
CLICKTAB_Current, 0L,
|
||||
EndMember,
|
||||
EndMember,
|
||||
EndWindow;
|
||||
|
||||
/* Object creation sucessful?
|
||||
*/
|
||||
if( Win_Object )
|
||||
{
|
||||
/* Open the window.
|
||||
*/
|
||||
if( window = (struct Window *) CA_OpenWindow(Win_Object) )
|
||||
{
|
||||
ULONG wait, signal, result, done = FALSE;
|
||||
WORD Code;
|
||||
|
||||
/* Obtain the window wait signal mask.
|
||||
*/
|
||||
GetAttr( WINDOW_SigMask, Win_Object, &signal );
|
||||
|
||||
/* Input Event Loop
|
||||
*/
|
||||
while( !done )
|
||||
{
|
||||
wait = Wait(signal|SIGBREAKF_CTRL_C);
|
||||
|
||||
if (wait & SIGBREAKF_CTRL_C) done = TRUE;
|
||||
else
|
||||
|
||||
while ((result = CA_HandleInput(Win_Object,&Code)) != WMHI_LASTMSG)
|
||||
{
|
||||
switch (result & WMHI_CLASSMASK)
|
||||
{
|
||||
case WMHI_CLOSEWINDOW:
|
||||
done = TRUE;
|
||||
break;
|
||||
|
||||
case WMHI_GADGETUP:
|
||||
switch(result & WMHI_GADGETMASK)
|
||||
{
|
||||
case ID_CLICKTAB:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Disposing of the window object will
|
||||
* also close the window if it is
|
||||
* already opened and it will dispose of
|
||||
* all objects attached to it.
|
||||
*/
|
||||
DisposeObject( Win_Object );
|
||||
}
|
||||
}
|
||||
|
||||
FreeClickTabNodes(&listitems);
|
||||
|
||||
/* Close the classes.
|
||||
*/
|
||||
if (ClickTabBase) CloseLibrary( (struct Library *)ClickTabBase );
|
||||
if (LayoutBase) CloseLibrary( (struct Library *)LayoutBase );
|
||||
if (WindowBase) CloseLibrary( (struct Library *)WindowBase );
|
||||
}
|
||||
|
||||
#ifdef _DCC
|
||||
int wbmain( struct WBStartup *wbs )
|
||||
{
|
||||
return( main( 0, NULL ));
|
||||
}
|
||||
#endif
|
||||
BIN
Examples/ClickTab/ClickTabExample.c.info
Normal file
BIN
Examples/ClickTab/ClickTabExample.c.info
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user