Skip to content

Commit b787db1

Browse files
committed
Added a simple graphics subsystem API module
1 parent 1f0b468 commit b787db1

17 files changed

+420
-61
lines changed

RhodusIDE/Win32/Debug/examples.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,15 @@ println (a.len())
103103
println (b.len())
104104
println (b)
105105
"
106+
},
107+
{
108+
"name": "Graphics_1",
109+
"src":
110+
"import graphics
111+
112+
graphics.moveto(10,10)
113+
graphics.lineto(123,140)
114+
"
106115
}
107116
]
108117
}

RhodusIDE/rhodusIDE.dproj

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<ProjectVersion>19.3</ProjectVersion>
55
<FrameworkType>VCL</FrameworkType>
66
<Base>True</Base>
7-
<Config Condition="'$(Config)'==''">Debug</Config>
7+
<Config Condition="'$(Config)'==''">Release</Config>
88
<Platform Condition="'$(Platform)'==''">Win32</Platform>
99
<TargetedPlatforms>1</TargetedPlatforms>
1010
<AppType>Application</AppType>
@@ -102,6 +102,8 @@
102102
<DCC_DcuOutput>.\$(Platform)\$(Config)\dcu</DCC_DcuOutput>
103103
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
104104
<VerInfo_Locale>1033</VerInfo_Locale>
105+
<VerInfo_Build>1</VerInfo_Build>
106+
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.1;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
105107
</PropertyGroup>
106108
<ItemGroup>
107109
<DelphiCompile Include="$(MainSource)">
@@ -952,9 +954,9 @@
952954
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
953955
<ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
954956
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
955-
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
956-
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
957957
<ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
958+
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
959+
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
958960
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
959961
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
960962
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>

RhodusIDE/rhodusIDE.res

0 Bytes
Binary file not shown.

RhodusIDE/ufMain.dfm

Lines changed: 158 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ object frmMain: TfrmMain
22
Left = 0
33
Top = 0
44
Caption = 'Rhodus IDE'
5-
ClientHeight = 864
6-
ClientWidth = 1397
5+
ClientHeight = 957
6+
ClientWidth = 1575
77
Color = clBtnFace
88
Font.Charset = DEFAULT_CHARSET
99
Font.Color = clWindowText
@@ -15,23 +15,35 @@ object frmMain: TfrmMain
1515
OnCreate = FormCreate
1616
PixelsPerInch = 144
1717
TextHeight = 25
18+
object Splitter2: TSplitter
19+
Left = 1099
20+
Top = 86
21+
Width = 5
22+
Height = 871
23+
Margins.Left = 5
24+
Margins.Top = 5
25+
Margins.Right = 5
26+
Margins.Bottom = 5
27+
Align = alRight
28+
ExplicitLeft = 1179
29+
end
1830
object Panel1: TPanel
1931
Left = 0
2032
Top = 0
21-
Width = 1397
33+
Width = 1575
2234
Height = 86
2335
Margins.Left = 5
2436
Margins.Top = 5
2537
Margins.Right = 5
2638
Margins.Bottom = 5
2739
Align = alTop
2840
TabOrder = 0
29-
ExplicitWidth = 1383
41+
ExplicitWidth = 1561
3042
DesignSize = (
31-
1397
43+
1575
3244
86)
3345
object lblVersion: TLabel
34-
Left = 1181
46+
Left = 1359
3547
Top = 18
3648
Width = 77
3749
Height = 25
@@ -41,10 +53,9 @@ object frmMain: TfrmMain
4153
Margins.Bottom = 5
4254
Anchors = [akTop, akRight]
4355
Caption = 'lblVersion'
44-
ExplicitLeft = 1026
4556
end
4657
object Label1: TLabel
47-
Left = 345
58+
Left = 454
4859
Top = 12
4960
Width = 121
5061
Height = 25
@@ -55,7 +66,7 @@ object frmMain: TfrmMain
5566
Caption = 'Sample Scripts:'
5667
end
5768
object btnRun: TButton
58-
Left = 125
69+
Left = 234
5970
Top = 15
6071
Width = 97
6172
Height = 54
@@ -68,7 +79,7 @@ object frmMain: TfrmMain
6879
OnClick = btnRunClick
6980
end
7081
object btnLoad: TButton
71-
Left = 12
82+
Left = 121
7283
Top = 15
7384
Width = 98
7485
Height = 54
@@ -81,7 +92,7 @@ object frmMain: TfrmMain
8192
OnClick = btnLoadClick
8293
end
8394
object btnClear: TButton
84-
Left = 236
95+
Left = 345
8596
Top = 15
8697
Width = 97
8798
Height = 54
@@ -94,7 +105,7 @@ object frmMain: TfrmMain
94105
OnClick = btnClearClick
95106
end
96107
object cboExamples: TComboBox
97-
Left = 344
108+
Left = 453
98109
Top = 39
99110
Width = 217
100111
Height = 33
@@ -107,19 +118,32 @@ object frmMain: TfrmMain
107118
Text = 'Examples'
108119
OnChange = cboExamplesChange
109120
end
121+
object btnNew: TButton
122+
Left = 8
123+
Top = 18
124+
Width = 97
125+
Height = 54
126+
Margins.Left = 8
127+
Margins.Top = 8
128+
Margins.Right = 8
129+
Margins.Bottom = 8
130+
Caption = 'New'
131+
TabOrder = 4
132+
OnClick = mnuNewClick
133+
end
110134
end
111135
object Panel2: TPanel
112136
Left = 0
113137
Top = 86
114138
Width = 278
115-
Height = 778
139+
Height = 871
116140
Margins.Left = 5
117141
Margins.Top = 5
118142
Margins.Right = 5
119143
Margins.Bottom = 5
120144
Align = alLeft
121145
TabOrder = 1
122-
ExplicitHeight = 771
146+
ExplicitHeight = 864
123147
object DirectoryListBox1: TDirectoryListBox
124148
Left = 1
125149
Top = 1
@@ -138,7 +162,7 @@ object frmMain: TfrmMain
138162
Left = 1
139163
Top = 349
140164
Width = 276
141-
Height = 428
165+
Height = 521
142166
Margins.Left = 5
143167
Margins.Top = 5
144168
Margins.Right = 5
@@ -147,26 +171,25 @@ object frmMain: TfrmMain
147171
ItemHeight = 25
148172
TabOrder = 1
149173
OnClick = FileListBox1Click
150-
ExplicitHeight = 421
174+
ExplicitHeight = 514
151175
end
152176
end
153177
object Panel3: TPanel
154178
Left = 278
155179
Top = 86
156-
Width = 1119
157-
Height = 778
180+
Width = 821
181+
Height = 871
158182
Margins.Left = 5
159183
Margins.Top = 5
160184
Margins.Right = 5
161185
Margins.Bottom = 5
162186
Align = alClient
163187
TabOrder = 2
164-
ExplicitWidth = 1105
165-
ExplicitHeight = 771
188+
ExplicitWidth = 901
166189
object Splitter1: TSplitter
167190
Left = 1
168-
Top = 413
169-
Width = 1117
191+
Top = 506
192+
Width = 819
170193
Height = 4
171194
Cursor = crVSplit
172195
Margins.Left = 5
@@ -175,13 +198,12 @@ object frmMain: TfrmMain
175198
Margins.Bottom = 5
176199
Align = alBottom
177200
ExplicitLeft = 2
178-
ExplicitTop = 290
179-
ExplicitWidth = 1582
201+
ExplicitWidth = 898
180202
end
181203
object moutput: TMemo
182204
Left = 1
183-
Top = 417
184-
Width = 1117
205+
Top = 510
206+
Width = 819
185207
Height = 360
186208
Margins.Left = 5
187209
Margins.Top = 5
@@ -197,14 +219,14 @@ object frmMain: TfrmMain
197219
ScrollBars = ssBoth
198220
TabOrder = 0
199221
StyleElements = [seClient, seBorder]
200-
ExplicitTop = 410
201-
ExplicitWidth = 1103
222+
ExplicitTop = 503
223+
ExplicitWidth = 885
202224
end
203225
object editor: TMemo
204226
Left = 1
205227
Top = 1
206-
Width = 1117
207-
Height = 412
228+
Width = 819
229+
Height = 505
208230
Margins.Left = 5
209231
Margins.Top = 5
210232
Margins.Right = 5
@@ -217,18 +239,113 @@ object frmMain: TfrmMain
217239
Font.Name = 'Fira Code Medium'
218240
Font.Style = []
219241
Lines.Strings = (
220-
'a = 3; b = 6; println ("sum = ", a + b)'
221-
'print (1)'
222-
'for x = 1 to 10 do'
223-
' print (", ", x * x)'
242+
'import graphics'
243+
'import math'
244+
''
245+
'p = graphics.size()'
246+
'x = p[0]/2-50; y = p[1]/2-50;'
247+
'heading = 45'
248+
''
249+
'function forward (distance)'
250+
' global x, y'
251+
''
252+
' graphics.moveto(x,y)'
253+
' radians = heading*math.pi/180'
254+
' dx = math.cos (radians) * distance'
255+
' dy = math.sin (radians) * distance'
256+
' x = x + dx'
257+
' y = y + dy'
258+
' graphics.lineto(x,y)'
224259
'end'
225-
'println()')
260+
''
261+
'graphics.clear()'
262+
'graphics.moveto(x,y)'
263+
'graphics.lineto(x,y)'
264+
'for i = 1 to 12 do'
265+
' forward (200)'
266+
' heading = heading + 150 '
267+
'end')
226268
ParentFont = False
227269
ScrollBars = ssBoth
228270
TabOrder = 1
229271
StyleElements = [seClient, seBorder]
230-
ExplicitWidth = 1103
231-
ExplicitHeight = 405
272+
ExplicitWidth = 885
273+
ExplicitHeight = 498
274+
end
275+
end
276+
object pnlRight: TPanel
277+
Left = 1104
278+
Top = 86
279+
Width = 471
280+
Height = 871
281+
Margins.Left = 5
282+
Margins.Top = 5
283+
Margins.Right = 5
284+
Margins.Bottom = 5
285+
Align = alRight
286+
TabOrder = 3
287+
OnResize = pnlRightResize
288+
object Splitter3: TSplitter
289+
Left = 1
290+
Top = 411
291+
Width = 469
292+
Height = 3
293+
Cursor = crVSplit
294+
Margins.Left = 5
295+
Margins.Top = 5
296+
Margins.Right = 5
297+
Margins.Bottom = 5
298+
Align = alBottom
299+
ExplicitLeft = 4
300+
ExplicitWidth = 389
301+
end
302+
object pnlInfo: TPanel
303+
Left = 1
304+
Top = 414
305+
Width = 469
306+
Height = 456
307+
Margins.Left = 5
308+
Margins.Top = 5
309+
Margins.Right = 5
310+
Margins.Bottom = 5
311+
Align = alBottom
312+
TabOrder = 0
313+
ExplicitLeft = -15
314+
ExplicitTop = 139
315+
ExplicitWidth = 389
316+
end
317+
object pnlImage: TPanel
318+
Left = 1
319+
Top = 1
320+
Width = 469
321+
Height = 410
322+
Margins.Left = 5
323+
Margins.Top = 5
324+
Margins.Right = 5
325+
Margins.Bottom = 5
326+
Align = alClient
327+
Caption = 'pnlImage'
328+
TabOrder = 1
329+
OnResize = pnlRightResize
330+
ExplicitLeft = 108
331+
ExplicitTop = 156
332+
ExplicitWidth = 278
333+
ExplicitHeight = 62
334+
object pnlDrawing: TImage
335+
Left = 1
336+
Top = 1
337+
Width = 467
338+
Height = 408
339+
Margins.Left = 5
340+
Margins.Top = 5
341+
Margins.Right = 5
342+
Margins.Bottom = 5
343+
Align = alClient
344+
ExplicitLeft = 144
345+
ExplicitTop = 168
346+
ExplicitWidth = 158
347+
ExplicitHeight = 158
348+
end
232349
end
233350
end
234351
object OpenDialog: TOpenDialog
@@ -244,6 +361,10 @@ object frmMain: TfrmMain
244361
Top = 24
245362
object File1: TMenuItem
246363
Caption = 'File'
364+
object mnuNew: TMenuItem
365+
Caption = 'New'
366+
OnClick = mnuNewClick
367+
end
247368
object Quit1: TMenuItem
248369
Caption = 'Open'
249370
OnClick = Quit1Click

0 commit comments

Comments
 (0)