summaryrefslogtreecommitdiff
path: root/support/qfig/src/qfig.bi
blob: bb8c49e2a92af533b54bfccb6be7c75948d8df00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
' include file for qfig.bas

DECLARE FUNCTION Angle! (x0!, y0!, x1!, y1!)
DECLARE FUNCTION KeyIsTouched$ ()
DECLARE FUNCTION KeyIsTyped% ()
DECLARE FUNCTION Usetdata$ ()
DECLARE FUNCTION yesno$ ()
DECLARE SUB CL.R.edraw (simple%, show%)
DECLARE SUB Chr.Input (a$)
DECLARE SUB CopySymm ()
DECLARE SUB CursorDisplay (ppxx%, ppyy%)
DECLARE SUB CursorMotion (keyin%)
DECLARE SUB D.Circles (cx%, cy%, rad!, ratio!, sang!, eang!, clr%, thickness%, simple%, wpatt%)
DECLARE SUB D.Lines (sx%, sy%, ex%, ey%, clr%, box%, thickness%, linetype%, filltype%, simple%)
DECLARE SUB D.Strings (n%, clr%, simple%)
DECLARE SUB D.Str1 (n%, clr%, simple%)
DECLARE SUB Disp.C (sobj%, snode%)
DECLARE SUB Disp.D (sobj%, snode%)
DECLARE SUB DispCut ()
DECLARE SUB EditObject ()
DECLARE SUB FillPattern ()
DECLARE SUB G.Addnode (o%, n%, editcc%)
DECLARE SUB G.Arc ()
DECLARE SUB G.ArrowDirec (sobj%, snode%, n%)
DECLARE SUB G.Arrows ()
DECLARE SUB G.Arrowset (sobj%, snode%, already%)
DECLARE SUB G.Box ()
DECLARE SUB G.Char ()
DECLARE SUB G.CharDisp ()
DECLARE SUB G.Charset (ams$, n%)
DECLARE SUB G.Crcl ()
DECLARE SUB G.Crcl.Ellps ()
DECLARE SUB G.Curve (curve%, closed%)
DECLARE SUB G.Ellps ()
DECLARE SUB G.Group ()
DECLARE SUB G.Group1 (i%)
DECLARE SUB G.XYparam (x0%, y0%, x1%, y1%, x2%, y2%, ax!, bx!, cx!, ay!, by!, cy!)
DECLARE SUB Help.Me ()
DECLARE SUB IO.Eepic ()
DECLARE SUB IO.Export ()
DECLARE SUB IO.File ()
DECLARE SUB IO.Load (ifile%)
DECLARE SUB IO.Save (ifile%)
DECLARE SUB KeyDisplay ()
DECLARE SUB KeySwitch (ksw%)
DECLARE SUB Killer (i%, s%)
DECLARE SUB KillObject ()
DECLARE SUB L.Text (ipx%, ipy%)
DECLARE SUB MarkEnds (c%)
DECLARE SUB Marking (c%, n%)
DECLARE SUB Marking.Chk (m%, sobj%, snode%)
DECLARE SUB Marking.One (c%, i%)
DECLARE SUB Marking.Reg (sx%, sy%, ex%, ey%, total%)
DECLARE SUB MaxMin (ppxx%, ppyy%)
DECLARE SUB MoveObj (c%)
DECLARE SUB MoveObject (total%, c%)
DECLARE SUB Object.Max.Check ()
DECLARE SUB PPUT (xp, yp, markp%())
DECLARE SUB Preparation ()
DECLARE SUB Rotate ()
DECLARE SUB SetInst (ninstr%)
DECLARE SUB SetObject (n%, clr%, simple%)
DECLARE SUB TeX.Characters (i%, j%, ams$, kanji%, special%, script%)
DECLARE SUB ptext (x%, y%, s$, c%, m%)
DECLARE SUB whelp ()
DECLARE SUB QUIT0 ()

TYPE Instruction
  L AS STRING * 15
  R AS STRING * 15
  D AS STRING * 6
END TYPE

COMMON SHARED /Objects/ xx(), yy(), obj%(), mobj%()
COMMON SHARED /Settings/ ltp%(), ltp$(), lth$(), tlp$(), dpattern$()
COMMON SHARED /Settings/ chartype$(), chartex$(), charjtex$(), chattr%()
COMMON SHARED /Settings/ epitch%(), eheight(), jheight(), scrpt()
COMMON SHARED /Settings/ Ins() AS Instruction
COMMON SHARED /Settings/ curs%(), curs1%(), curs2%()
COMMON SHARED /Settings/ mark%(), markg%(), markx%(), marky%(), kky$()
COMMON SHARED /Settings/ windowx%(), windowy%(), wndwxy()
COMMON SHARED /Settings/ iomessages$()

COMMON SHARED pxmin%, pxmax%, pymin%, pymax%
COMMON SHARED charpt%, chartype%, jpitch%
COMMON SHARED px%, py%, s%, s1%, mouswitch%, func%, func1%, job%, seljob%
COMMON SHARED pxo%, pyo%, hscroll%, vscroll%, margin%, help%, linesel%, wkill%
COMMON SHARED xmin%, xmax%, ymin%, ymax%, row%, col%, lbut%, rbut%, woldrad%
COMMON SHARED nobj%, ltype%, thick%, fill%, kswitch%, altpitch$, pi, wtext%
COMMON SHARED group%, emulation%, wndwfctr%, wnode%, wspec%, wrong%, selh%
COMMON SHARED scrtype%, ega%, line1%, line2%, line3%, texth%, pymax2%
COMMON SHARED winpy%, inbox%, sxg%, syg%

COMMON SHARED arrowhead, darrowhead, arrowdirect, arcarrowd, filler%()
COMMON SHARED eepicpattern$(), tpicshade$(), tpicshade%, nocheat%
COMMON SHARED interpolcurve%, interpolang%

COMMON SHARED wxx1!, wxx2!

CONST nobjmax% = 300    '(maximum # of objects)-1 =300
CONST nodemax% = 64     '(maximum # of nodes)-1  =64
CONST UP = &H48, LEFT = &H4B, RIGHT = &H4D, DOWN = &H50
CONST CR = &HD, SP = &H20, DEL = &H53, ESC = &H0, CLRHM = &H3E, HMCLR = &HAE
CONST FILE.CHECK$ = "% Output of qfig.bas"
CONST ptmm = .3515
CONST REGIONXMAX = 840, REGIONYMAX = 880
CONST msgload$ = "  Now loading.... "
CONST msgsave$ = "  Now saving..... "
CONST msgrdrw$ = " Now redrawing... "

DIM xx(nobjmax%, nodemax%), yy(nobjmax%, nodemax%), obj%(nobjmax%, 6)
DIM mobj%(nobjmax% / 2)
DIM ltp%(3), ltp$(3), lth$(2), tlp$(1 TO 3), dpattern$(3)
DIM chartype$(3), chartex$(1, 3), charjtex$(1, 1), chattr%(3, 1)
DIM epitch%(3, 94), jheight(1), eheight(3), scrpt(2)
DIM Ins(13) AS Instruction
DIM curs%(92), curs1%(92), curs2%(92)
DIM mark%(32), markg%(32), markx%(24), marky%(24)
DIM kky$(1 TO 25)
DIM filler%(3), eepicpattern$(1 TO 3), tpicshade$(1 TO 3)
DIM windowx%(3), windowy%(3), wndwxy(3)
DIM iomessages$(1 TO 7)

DEF fno$ (a, b) = LTRIM$(STR$(INT(a * b)))
DEF fnor$ (a, b) = LTRIM$(STR$(INT(a * b * 1000! + .5) / 1000!))
'DEF fnor$ (a, b) = LTRIM$(STR$(INT(a * b * 1000! + .5) / 1000!))
DEF fnoo% (ob%) = obj%(ob%, 0) - INT(obj%(ob%, 0) / 100) * 100

' end of qfig.bi