This repository has been archived by the owner on Apr 25, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathBindings.idl
2332 lines (1907 loc) · 91.6 KB
/
Bindings.idl
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/*
* GDevelop.js
* Copyright 2015 Florian Rival ([email protected]). All rights reserved.
* This project is released under the MIT License.
*/
/**
* IDL file for GDevelop classes bindings.
*
* Notes:
*
* WRAPPED_* and STATIC_* functions are declared as such
* to allow the Wrapper.cpp file to use a macro to do special work on it.
* These functions are renamed in the final .js file (so that
* `WRAPPED_set` become `set` for example).
*/
//Interfaces for some types from
//the C++ Standard Library:
interface VectorString {
void VectorString();
void push_back([Const] DOMString str);
void resize(unsigned long size);
unsigned long size();
[Const, Ref] DOMString at(unsigned long index);
void WRAPPED_set(unsigned long index, [Const] DOMString str);
void clear();
};
interface VectorPlatformExtension {
unsigned long size();
[Const] PlatformExtension WRAPPED_at(unsigned long index);
};
interface MapStringString {
[Const, Ref] DOMString MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, [Const] DOMString str);
boolean MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface MapStringBoolean {
void MapStringBoolean();
boolean MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, boolean value);
boolean MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface MapStringVariable {
[Ref] Variable MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, [Const, Ref] Variable prop);
boolean MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface MapStringExpressionMetadata {
[Ref] ExpressionMetadata MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, [Const, Ref] ExpressionMetadata prop);
boolean MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface MapStringInstructionMetadata {
[Ref] InstructionMetadata MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, [Const, Ref] InstructionMetadata prop);
boolean MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface MapStringEventMetadata {
[Ref] EventMetadata MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, [Const, Ref] EventMetadata prop);
boolean MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface SetString {
void SetString();
[Value] VectorString FREE_toNewVectorString();
};
interface ProjectHelper {
[Ref] Project STATIC_CreateNewGDJSProject();
void STATIC_InitializePlatforms();
[Const, Value] DOMString STATIC_SanityCheckBehaviorProperty(Behavior behavior, [Const] DOMString propertyName, [Const] DOMString newValue);
[Const, Value] DOMString STATIC_SanityCheckBehaviorsSharedDataProperty(BehaviorsSharedData behavior, [Const] DOMString propertyName, [Const] DOMString newValue);
[Const, Value] DOMString STATIC_SanityCheckObjectProperty(gdObject obj, [Const] DOMString propertyName, [Const] DOMString newValue);
[Const, Value] DOMString STATIC_SanityCheckObjectInitialInstanceProperty(gdObject obj, [Const] DOMString propertyName, [Const] DOMString newValue);
};
interface VersionWrapper {
long STATIC_Major();
long STATIC_Minor();
long STATIC_Build();
long STATIC_Revision();
[Const, Value] DOMString STATIC_FullString();
[Const, Value] DOMString STATIC_Status();
[Const, Value] DOMString STATIC_Year();
[Const, Value] DOMString STATIC_Month();
[Const, Value] DOMString STATIC_Date();
};
interface Platform {
[Const, Value] DOMString GetName();
[Const, Value] DOMString GetFullName();
[Const, Value] DOMString GetSubtitle();
[Const, Value] DOMString GetDescription();
boolean IsExtensionLoaded([Const] DOMString name);
void RemoveExtension([Const] DOMString name);
void ReloadBuiltinExtensions();
[Const, Ref] VectorPlatformExtension GetAllPlatformExtensions();
};
interface JsPlatform {
[Ref] JsPlatform STATIC_Get();
void AddNewExtension([Const, Ref] PlatformExtension extension);
// Inherited from Platform:
[Const, Value] DOMString GetName();
[Const, Value] DOMString GetFullName();
[Const, Value] DOMString GetSubtitle();
[Const, Value] DOMString GetDescription();
boolean IsExtensionLoaded([Const] DOMString name);
void RemoveExtension([Const] DOMString name);
void ReloadBuiltinExtensions();
[Const, Ref] VectorPlatformExtension GetAllPlatformExtensions();
};
interface PairStringVariable {
void PairStringVariable();
[Const, Ref] DOMString WRAPPED_GetName();
[Ref] Variable WRAPPED_GetVariable();
};
interface Variable {
void Variable();
void SetString([Const] DOMString str);
[Const, Ref] DOMString GetString();
void SetValue([Const] double val);
double GetValue();
boolean HasChild([Const] DOMString str);
[Ref] Variable GetChild([Const] DOMString str);
void RemoveChild([Const] DOMString name);
boolean RenameChild([Const] DOMString oldName, [Const] DOMString newName);
[Value] VectorString GetAllChildrenNames();
unsigned long GetChildrenCount();
boolean IsNumber();
boolean IsStructure();
boolean Contains([Const, Ref] Variable variableToSearch, boolean recursive);
void RemoveRecursively([Const, Ref] Variable variableToRemove);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface VariablesContainer {
void VariablesContainer();
boolean Has([Const] DOMString name);
[Ref] Variable Get([Const] DOMString name);
[Ref] Variable GetAt(unsigned long index);
[Const, Ref] DOMString GetNameAt(unsigned long index);
[Ref] Variable Insert([Const] DOMString name, [Const, Ref] Variable var, unsigned long index);
[Ref] Variable InsertNew([Const] DOMString name, unsigned long index);
void Remove([Const] DOMString name);
boolean Rename([Const] DOMString oldName, [Const] DOMString newName);
void Swap(unsigned long firstIndex, unsigned long secondIndex);
void Move(unsigned long oldIndex, unsigned long newIndex);
unsigned long GetPosition([Const] DOMString name);
unsigned long Count();
void Clear();
void RemoveRecursively([Const, Ref] Variable variableToRemove);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface ObjectGroup {
void ObjectGroup();
[Const, Ref] DOMString GetName();
void SetName([Const] DOMString name);
void AddObject([Const] DOMString obj);
void RemoveObject([Const] DOMString obj);
boolean Find([Const] DOMString obj);
[Const, Ref] VectorString GetAllObjectsNames();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface ObjectGroupsContainer {
void ObjectGroupsContainer();
boolean Has([Const] DOMString name);
[Ref] ObjectGroup Insert([Const, Ref] ObjectGroup objectGroup, unsigned long position);
[Ref] ObjectGroup InsertNew([Const] DOMString name, unsigned long position);
unsigned long Count();
[Ref] ObjectGroup Get([Const] DOMString name);
[Ref] ObjectGroup GetAt(unsigned long index);
void Clear();
void Remove([Const] DOMString name);
unsigned long GetPosition([Const] DOMString name);
boolean Rename([Const] DOMString oldName, [Const] DOMString newName);
void Move(unsigned long oldIndex, unsigned long newIndex);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface PlatformSpecificAssets {
void PlatformSpecificAssets();
boolean Has([Const] DOMString platform, [Const] DOMString name);
[Const, Ref] DOMString Get([Const] DOMString platform, [Const] DOMString name);
void Remove([Const] DOMString platform, [Const] DOMString name);
void Set([Const] DOMString platform, [Const] DOMString name, [Const] DOMString resourceName);
void ExposeResources([Ref] ArbitraryResourceWorker worker);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface LoadingScreen {
void LoadingScreen();
void ShowGDevelopSplash(boolean show);
boolean IsGDevelopSplashShown();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface ObjectsContainer {
void ObjectsContainer();
[Ref] gdObject InsertNewObject([Ref] Project project, [Const] DOMString type, [Const] DOMString name, unsigned long pos);
[Ref] gdObject InsertObject([Const, Ref] gdObject obj, unsigned long pos);
boolean HasObjectNamed([Const] DOMString name);
[Ref] gdObject GetObject([Const] DOMString name);
[Ref] gdObject GetObjectAt(unsigned long pos);
unsigned long GetObjectPosition([Const] DOMString name);
void RemoveObject([Const] DOMString name);
void SwapObjects(unsigned long first, unsigned long second);
void MoveObject(unsigned long oldIndex, unsigned long newIndex);
unsigned long GetObjectsCount();
[Ref] ObjectGroupsContainer GetObjectGroups();
};
interface Project {
void Project();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
void SetVersion([Const] DOMString authorName);
[Const, Ref] DOMString GetVersion();
void SetAuthor([Const] DOMString authorName);
[Const, Ref] DOMString GetAuthor();
void SetPackageName([Const] DOMString packageName);
[Const, Ref] DOMString GetPackageName();
void SetOrientation([Const] DOMString orientation);
[Const, Ref] DOMString GetOrientation();
void SetAdMobAppId([Const] DOMString adMobAppId);
[Const, Ref] DOMString GetAdMobAppId();
void SetProjectFile([Const] DOMString file);
[Const, Ref] DOMString GetProjectFile();
void SetDefaultWidth(long width);
long GetMainWindowDefaultWidth();
void SetDefaultHeight(long height);
long GetMainWindowDefaultHeight();
void SetScaleMode([Const] DOMString scaleMode);
[Const, Ref] DOMString GetScaleMode();
void SetSizeOnStartupMode([Const] DOMString orientation);
[Const, Ref] DOMString GetSizeOnStartupMode();
long GetMaximumFPS();
void SetMaximumFPS(long fps);
long GetMinimumFPS();
void SetMinimumFPS(long fps);
void SetLastCompilationDirectory([Const] DOMString path);
[Const, Ref] DOMString GetLastCompilationDirectory();
[Const, Ref] VectorString GetUsedExtensions();
void AddPlatform([Ref] Platform platform);
[Ref] Platform GetCurrentPlatform();
[Ref] PlatformSpecificAssets GetPlatformSpecificAssets();
[Ref] LoadingScreen GetLoadingScreen();
//createObject
//createEvent
boolean HasLayoutNamed([Const] DOMString name);
[Ref] Layout GetLayout([Const] DOMString name);
[Ref] Layout GetLayoutAt(unsigned long index);
void SwapLayouts(unsigned long first, unsigned long second);
unsigned long GetLayoutsCount();
[Ref] Layout InsertNewLayout([Const] DOMString name, unsigned long position);
void RemoveLayout([Const] DOMString name);
void SetFirstLayout([Const] DOMString name);
[Const, Ref] DOMString GetFirstLayout();
boolean HasExternalEventsNamed([Const] DOMString name);
[Ref] ExternalEvents GetExternalEvents([Const] DOMString name);
[Ref] ExternalEvents GetExternalEventsAt(unsigned long index);
void SwapExternalEvents(unsigned long first, unsigned long second);
unsigned long GetExternalEventsCount();
[Ref] ExternalEvents InsertNewExternalEvents([Const] DOMString name, unsigned long position);
void RemoveExternalEvents([Const] DOMString name);
boolean HasExternalLayoutNamed([Const] DOMString name);
[Ref] ExternalLayout GetExternalLayout([Const] DOMString name);
[Ref] ExternalLayout GetExternalLayoutAt(unsigned long index);
void SwapExternalLayouts(unsigned long first, unsigned long second);
unsigned long GetExternalLayoutsCount();
[Ref] ExternalLayout InsertNewExternalLayout([Const] DOMString name, unsigned long position);
void RemoveExternalLayout([Const] DOMString name);
boolean HasEventsFunctionsExtensionNamed([Const] DOMString name);
[Ref] EventsFunctionsExtension GetEventsFunctionsExtension([Const] DOMString name);
[Ref] EventsFunctionsExtension GetEventsFunctionsExtensionAt(unsigned long index);
void SwapEventsFunctionsExtensions(unsigned long first, unsigned long second);
unsigned long GetEventsFunctionsExtensionsCount();
[Ref] EventsFunctionsExtension InsertNewEventsFunctionsExtension([Const] DOMString name, unsigned long position);
void RemoveEventsFunctionsExtension([Const] DOMString name);
[Ref] VariablesContainer GetVariables();
[Ref] ResourcesManager GetResourcesManager();
void ExposeResources([Ref] ArbitraryResourceWorker worker);
boolean STATIC_ValidateObjectName([Const] DOMString name);
boolean IsDirty();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
[Const, Value] DOMString FREE_GetTypeOfBehavior([Const, Ref] Layout layout, [Const] DOMString name, boolean searchInGroups);
[Const, Value] DOMString FREE_GetTypeOfObject([Const, Ref] Layout layout, [Const] DOMString name, boolean searchInGroups);
[Value] VectorString FREE_GetBehaviorsOfObject([Const, Ref] Layout layout, [Const] DOMString name, boolean searchInGroups);
//Inherited from gd::ObjectsContainer
[Ref] gdObject InsertNewObject([Ref] Project project, [Const] DOMString type, [Const] DOMString name, unsigned long pos);
[Ref] gdObject InsertObject([Const, Ref] gdObject obj, unsigned long pos);
boolean HasObjectNamed([Const] DOMString name);
[Ref] gdObject GetObject([Const] DOMString name);
[Ref] gdObject GetObjectAt(unsigned long pos);
unsigned long GetObjectPosition([Const] DOMString name);
void RemoveObject([Const] DOMString name);
void SwapObjects(unsigned long first, unsigned long second);
void MoveObject(unsigned long oldIndex, unsigned long newIndex);
unsigned long GetObjectsCount();
[Ref] ObjectGroupsContainer GetObjectGroups();
};
interface Behavior {
void Behavior();
Behavior Clone();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
[Const, Ref] DOMString GetTypeName();
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value, [Ref] Project project);
[Value] MapStringPropertyDescriptor GetProperties([Ref] Project project);
};
[JSImplementation="Behavior"]
interface BehaviorJsImplementation {
void BehaviorJsImplementation();
// BehaviorJsImplementation Clone(); Not exposed
[Value] MapStringPropertyDescriptor GetProperties([Ref] Project project);
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value, [Ref] Project project);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
[Const, Ref] DOMString GetRawJSONContent();
[Ref] BehaviorJsImplementation SetRawJSONContent([Const] DOMString newContent);
};
interface BehaviorsSharedData {
void BehaviorsSharedData();
[Const, Ref] DOMString GetName();
[Const, Ref] DOMString GetTypeName();
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value, [Ref] Project project);
[Value] MapStringPropertyDescriptor GetProperties([Ref] Project project);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
[JSImplementation="BehaviorsSharedData"]
interface BehaviorSharedDataJsImplementation {
void BehaviorSharedDataJsImplementation();
// BehaviorSharedDataJsImplementation Clone(); Not exposed
[Value] MapStringPropertyDescriptor GetProperties([Ref] Project project);
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value, [Ref] Project project);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
[Const, Ref] DOMString GetRawJSONContent();
[Ref] BehaviorSharedDataJsImplementation SetRawJSONContent([Const] DOMString newContent);
};
interface gdObject {
// /!\ We need to call it gdObject to avoid messing up with javascript Object
// global in glue.js!
void gdObject([Const] DOMString name);
// [Value] UniquePtrObject Clone(); Not exposed
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
void SetType([Const] DOMString type);
[Const, Ref] DOMString GetType();
[Value] MapStringPropertyDescriptor GetProperties([Ref] Project project);
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value, [Ref] Project project);
[Value] MapStringPropertyDescriptor GetInitialInstanceProperties([Const, Ref] InitialInstance instance, [Ref] Project project, [Ref] Layout scene);
boolean UpdateInitialInstanceProperty([Ref] InitialInstance instance, [Const] DOMString name, [Const] DOMString value, [Ref] Project project, [Ref] Layout scene);
void ExposeResources([Ref] ArbitraryResourceWorker worker);
[Ref] VariablesContainer GetVariables();
[Value] VectorString GetAllBehaviorNames();
boolean HasBehaviorNamed([Const] DOMString name);
Behavior AddNewBehavior([Ref] Project project, [Const] DOMString type, [Const] DOMString name);
[Ref] Behavior GetBehavior([Const] DOMString name);
void RemoveBehavior([Const] DOMString name);
boolean RenameBehavior([Const] DOMString oldBame, [Const] DOMString name);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Ref] Project project, [Const, Ref] SerializerElement element);
};
interface UniquePtrObject {
gdObject get();
gdObject release();
};
[JSImplementation="gdObject"]
interface ObjectJsImplementation {
void ObjectJsImplementation([Const] DOMString name);
[Value] UniquePtrObject Clone();
[Value] MapStringPropertyDescriptor GetProperties([Ref] Project project);
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value, [Ref] Project project);
[Value] MapStringPropertyDescriptor GetInitialInstanceProperties([Const, Ref] InitialInstance instance, [Ref] Project project, [Ref] Layout scene);
boolean UpdateInitialInstanceProperty([Ref] InitialInstance instance, [Const] DOMString name, [Const] DOMString value, [Ref] Project project, [Ref] Layout scene);
[Const, Ref] DOMString GetRawJSONContent();
[Ref] ObjectJsImplementation SetRawJSONContent([Const] DOMString newContent);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Ref] Project project, [Const, Ref] SerializerElement element);
// Not exposed as protected:
// void DoSerializeTo([Ref] SerializerElement element);
// void DoUnserializeFrom([Ref] Project project, [Const, Ref] SerializerElement element);
};
interface Layout {
void Layout();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
void SetBackgroundColor(unsigned long r, unsigned long g, unsigned long b);
unsigned long GetBackgroundColorRed();
unsigned long GetBackgroundColorGreen();
unsigned long GetBackgroundColorBlue();
void SetWindowDefaultTitle([Const] DOMString name);
[Const, Ref] DOMString GetWindowDefaultTitle();
[Ref] InitialInstancesContainer GetInitialInstances();
[Ref] VariablesContainer GetVariables();
[Ref] EventsList GetEvents();
void UpdateBehaviorsSharedData([Ref] Project project);
[Value] VectorString GetAllBehaviorSharedDataNames();
boolean HasBehaviorSharedData([Const] DOMString behaviorName);
[Ref] BehaviorsSharedData GetBehaviorSharedData([Const] DOMString behaviorName);
void InsertNewLayer([Const] DOMString name, unsigned long position);
void InsertLayer([Const, Ref] Layer layer, unsigned long position);
[Ref] Layer GetLayer([Const] DOMString name);
[Ref] Layer GetLayerAt(unsigned long pos);
boolean HasLayerNamed([Const] DOMString name);
void RemoveLayer([Const] DOMString name);
unsigned long GetLayersCount();
void SwapLayers(unsigned long firstLayerIndex, unsigned long secondLayerIndex);
void MoveLayer(unsigned long oldIndex, unsigned long newIndex);
void SerializeLayersTo([Ref] SerializerElement element);
void UnserializeLayersFrom([Const, Ref] SerializerElement element);
[Ref] LayoutEditorCanvasOptions GetAssociatedSettings();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Ref] Project project, [Const, Ref] SerializerElement element);
void SetStopSoundsOnStartup(boolean enable);
boolean StopSoundsOnStartup();
//Inherited from gd::ObjectsContainer
[Ref] gdObject InsertNewObject([Ref] Project project, [Const] DOMString type, [Const] DOMString name, unsigned long pos);
[Ref] gdObject InsertObject([Const, Ref] gdObject obj, unsigned long pos);
boolean HasObjectNamed([Const] DOMString name);
[Ref] gdObject GetObject([Const] DOMString name);
[Ref] gdObject GetObjectAt(unsigned long pos);
unsigned long GetObjectPosition([Const] DOMString name);
void RemoveObject([Const] DOMString name);
void SwapObjects(unsigned long first, unsigned long second);
void MoveObject(unsigned long oldIndex, unsigned long newIndex);
unsigned long GetObjectsCount();
[Ref] ObjectGroupsContainer GetObjectGroups();
};
interface ExternalEvents {
void ExternalEvents();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
[Const, Ref] DOMString GetAssociatedLayout();
void SetAssociatedLayout([Const] DOMString name);
[Ref] EventsList GetEvents();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Ref] Project project, [Const, Ref] SerializerElement element);
};
interface ExternalLayout {
void ExternalLayout();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
void SetAssociatedLayout([Const] DOMString name);
[Const, Ref] DOMString GetAssociatedLayout();
[Ref] InitialInstancesContainer GetInitialInstances();
[Ref] LayoutEditorCanvasOptions GetAssociatedSettings();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface Layer {
void Layer();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
void SetVisibility(boolean visible);
boolean GetVisibility();
};
interface PropertyDescriptor {
void PropertyDescriptor([Const] DOMString propValue);
[Ref] PropertyDescriptor SetValue([Const] DOMString value);
[Const, Ref] DOMString GetValue();
[Ref] PropertyDescriptor SetType([Const] DOMString type);
[Const, Ref] DOMString GetType();
[Ref] PropertyDescriptor SetLabel([Const] DOMString label);
[Const, Ref] DOMString GetLabel();
[Ref] PropertyDescriptor AddExtraInfo([Const] DOMString type);
[Value] VectorString GetExtraInfo();
};
interface MapStringPropertyDescriptor {
void MapStringPropertyDescriptor();
[Ref] PropertyDescriptor MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, [Const, Ref] PropertyDescriptor prop);
boolean MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface Resource {
void Resource();
Resource Clone();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
void SetKind([Const] DOMString kind);
[Const, Ref] DOMString GetKind();
boolean IsUserAdded();
void SetUserAdded(boolean yes);
boolean UseFile();
void SetFile([Const] DOMString file);
[Const, Ref] DOMString GetFile();
[Const, Value] DOMString GetAbsoluteFile([Const, Ref] Project project);
void SetMetadata([Const] DOMString metadata);
[Const, Ref] DOMString GetMetadata();
[Value] MapStringPropertyDescriptor GetProperties([Ref] Project project);
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value, [Ref] Project project);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface ResourcesManager {
void ResourcesManager();
[Value] VectorString GetAllResourceNames();
boolean HasResource([Const] DOMString name);
[Const, Ref] Resource GetResource([Const] DOMString name);
boolean AddResource([Const, Ref] Resource res);
void RemoveResource([Const] DOMString name);
void RenameResource([Const] DOMString oldName, [Const] DOMString name);
unsigned long GetResourcePosition([Const] DOMString name);
boolean MoveResourceUpInList([Const] DOMString oldName);
boolean MoveResourceDownInList([Const] DOMString oldName);
void MoveResource(unsigned long oldIndex, unsigned long newIndex);
};
interface ImageResource {
void ImageResource();
boolean IsSmooth();
void SetSmooth(boolean enable);
//Inherited from Resource:
Resource Clone();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
void SetKind([Const] DOMString kind);
[Const, Ref] DOMString GetKind();
boolean IsUserAdded();
void SetUserAdded(boolean yes);
boolean UseFile();
void SetFile([Const] DOMString file);
[Const, Ref] DOMString GetFile();
[Const, Value] DOMString GetAbsoluteFile([Const, Ref] Project project);
void SetMetadata([Const] DOMString metadata);
[Const, Ref] DOMString GetMetadata();
[Value] MapStringPropertyDescriptor GetProperties([Ref] Project project);
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value, [Ref] Project project);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface AudioResource {
void AudioResource();
//Inherited from Resource:
Resource Clone();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
void SetKind([Const] DOMString kind);
[Const, Ref] DOMString GetKind();
boolean IsUserAdded();
void SetUserAdded(boolean yes);
boolean UseFile();
void SetFile([Const] DOMString file);
[Const, Ref] DOMString GetFile();
[Const, Value] DOMString GetAbsoluteFile([Const, Ref] Project project);
void SetMetadata([Const] DOMString metadata);
[Const, Ref] DOMString GetMetadata();
[Value] MapStringPropertyDescriptor GetProperties([Ref] Project project);
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value, [Ref] Project project);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface FontResource {
void FontResource();
//Inherited from Resource:
Resource Clone();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
void SetKind([Const] DOMString kind);
[Const, Ref] DOMString GetKind();
boolean IsUserAdded();
void SetUserAdded(boolean yes);
boolean UseFile();
void SetFile([Const] DOMString file);
[Const, Ref] DOMString GetFile();
[Const, Value] DOMString GetAbsoluteFile([Const, Ref] Project project);
void SetMetadata([Const] DOMString metadata);
[Const, Ref] DOMString GetMetadata();
[Value] MapStringPropertyDescriptor GetProperties([Ref] Project project);
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value, [Ref] Project project);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface VideoResource {
void VideoResource();
//Inherited from Resource:
Resource Clone();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
void SetKind([Const] DOMString kind);
[Const, Ref] DOMString GetKind();
boolean IsUserAdded();
void SetUserAdded(boolean yes);
boolean UseFile();
void SetFile([Const] DOMString file);
[Const, Ref] DOMString GetFile();
[Const, Value] DOMString GetAbsoluteFile([Const, Ref] Project project);
void SetMetadata([Const] DOMString metadata);
[Const, Ref] DOMString GetMetadata();
[Value] MapStringPropertyDescriptor GetProperties([Ref] Project project);
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value, [Ref] Project project);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface InitialInstance {
void InitialInstance();
void SetObjectName([Const] DOMString name);
[Const, Ref] DOMString GetObjectName();
float GetX();
void SetX(float x);
float GetY();
void SetY(float y);
float GetAngle();
void SetAngle(float angle);
boolean IsLocked();
void SetLocked(boolean lock);
long GetZOrder();
void SetZOrder(long zOrder);
[Const, Ref] DOMString GetLayer();
void SetLayer([Const] DOMString layer);
void SetHasCustomSize(boolean enable);
boolean HasCustomSize();
void SetCustomWidth(float width);
float GetCustomWidth();
void SetCustomHeight(float height);
float GetCustomHeight();
void UpdateCustomProperty([Const] DOMString name, [Const] DOMString value, [Ref] Project project, [Ref] Layout layout);
[Value] MapStringPropertyDescriptor GetCustomProperties([Ref] Project project, [Ref] Layout layout);
float GetRawFloatProperty([Const] DOMString name);
[Const, Ref] DOMString GetRawStringProperty([Const] DOMString name);
void SetRawFloatProperty([Const] DOMString name, float value);
void SetRawStringProperty([Const] DOMString name, [Const] DOMString value);
[Ref] VariablesContainer GetVariables();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface InitialInstancesContainer {
void InitialInstancesContainer();
InitialInstancesContainer Clone();
unsigned long GetInstancesCount();
void IterateOverInstances([Ref] InitialInstanceFunctor func);
void IterateOverInstancesWithZOrdering([Ref] InitialInstanceFunctor func, [Const] DOMString layer);
void MoveInstancesToLayer([Const] DOMString fromLayer, [Const] DOMString toLayer);
void RemoveAllInstancesOnLayer([Const] DOMString layer);
void RemoveInitialInstancesOfObject([Const] DOMString obj);
boolean HasInstancesOfObject([Const] DOMString objectName);
boolean SomeInstancesAreOnLayer([Const] DOMString layer);
void RenameInstancesOfObject([Const] DOMString oldName, [Const] DOMString newName);
void RemoveInstance([Const, Ref] InitialInstance inst);
[Ref] InitialInstance InsertNewInitialInstance();
[Ref] InitialInstance InsertInitialInstance([Const, Ref] InitialInstance inst);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface HighestZOrderFinder {
void HighestZOrderFinder();
void RestrictSearchToLayer([Const] DOMString layer);
long GetHighestZOrder();
long GetLowestZOrder();
};
interface InitialInstanceFunctor {};
interface InitialInstanceJSFunctorWrapper {};
[JSImplementation="InitialInstanceJSFunctorWrapper"]
interface InitialInstanceJSFunctor {
void InitialInstanceJSFunctor();
void invoke(InitialInstance instance);
};
interface SerializerValue {
boolean GetBool();
[Const, Value] DOMString GetString();
long GetInt();
float GetDouble();
};
interface SerializerElement {
void SerializerElement();
[Const, Ref] SerializerValue GetValue();
void WRAPPED_SetBool(boolean value);
void WRAPPED_SetString([Const] DOMString value);
void WRAPPED_SetInt(long value);
void WRAPPED_SetDouble(float value);
void ConsiderAsArray();
boolean ConsideredAsArray();
[Ref] SerializerElement AddChild([Const] DOMString str);
[Ref] SerializerElement GetChild([Const] DOMString str);
void WRAPPED_SetChild([Const] DOMString str, [Const, Ref] SerializerElement element);
boolean HasChild([Const] DOMString str);
};
interface Serializer {
[Const, Value] DOMString STATIC_ToJSON([Const, Ref] SerializerElement element);
[Value] SerializerElement STATIC_FromJSON([Const] DOMString json);
};
interface ObjectListDialogsHelper {
void ObjectListDialogsHelper([Const, Ref] Project p, [Const, Ref] Layout l);
void SetSearchText([Const] DOMString search);
void SetAllowedObjectType([Const] DOMString type);
void SetGroupsAllowed(boolean enable);
[Value] VectorString GetMatchingObjects();
};
interface InstructionsList {
void InstructionsList();
[Ref] Instruction Insert([Const, Ref] Instruction instr, unsigned long pos);
void InsertInstructions([Const, Ref] InstructionsList list, unsigned long begin, unsigned long end, unsigned long pos);
unsigned long size();
void WRAPPED_set(unsigned long index, [Const, Ref] Instruction instr);
boolean Contains([Const, Ref] Instruction instr/*, boolean recursive*/); //TODO
[Ref] Instruction Get(unsigned long index);
void Remove([Const, Ref] Instruction instr);
void RemoveAt(unsigned long index);
void Clear();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Ref] Project project, [Const, Ref] SerializerElement element);
};
interface Instruction {
void Instruction();
Instruction CLONE_Instruction();
void SetType([Const] DOMString type);
[Const, Ref] DOMString GetType();
void SetInverted(boolean inverted);
boolean IsInverted();
void SetParameter(unsigned long id, [Const] DOMString value);
[Const, Ref] DOMString GetParameter(unsigned long id);
void SetParametersCount(unsigned long count);
unsigned long GetParametersCount();
[Ref] InstructionsList GetSubInstructions();
};
interface VectorPairStringTextFormatting {
unsigned long size();
[Const, Ref] DOMString WRAPPED_GetString(unsigned long id);
[Ref] TextFormatting WRAPPED_GetTextFormatting(unsigned long id);
};
interface TextFormatting {
boolean IsBold();
boolean IsItalic();
unsigned long GetColorRed();
unsigned long GetColorGreen();
unsigned long GetColorBlue();
unsigned long GetUserData();
};
interface InstructionSentenceFormatter {
InstructionSentenceFormatter STATIC_Get();
[Const, Value] DOMString Translate([Const, Ref] Instruction instr, [Const, Ref] InstructionMetadata metadat);
[Value] VectorPairStringTextFormatting GetAsFormattedText([Const, Ref] Instruction instr, [Const, Ref] InstructionMetadata metadat);
[Value] TextFormatting GetFormattingFromType([Const] DOMString type);
[Const, Value] DOMString LabelFromType([Const] DOMString type);
void LoadTypesFormattingFromConfig();
};
//TODO: This should be renamed to InstructionCodeGenerationInformation
[Prefix="gd::InstructionMetadata::"]
interface ExtraInformation {
[Ref] ExtraInformation SetFunctionName([Const] DOMString functionName_);
[Ref] ExtraInformation SetManipulatedType([Const] DOMString type_);
[Ref] ExtraInformation SetGetter([Const] DOMString getter);
[Ref] ExtraInformation SetMutators([Const, Ref] MapStringString mutators);
[Ref] ExtraInformation SetIncludeFile([Const] DOMString includeFile);
[Ref] ExtraInformation AddIncludeFile([Const] DOMString includeFile);
};
interface ExpressionCodeGenerationInformation {
[Ref] ExpressionCodeGenerationInformation SetFunctionName([Const] DOMString functionName);
[Ref] ExpressionCodeGenerationInformation SetStatic();
[Ref] ExpressionCodeGenerationInformation SetIncludeFile([Const] DOMString includeFile);
[Ref] ExpressionCodeGenerationInformation AddIncludeFile([Const] DOMString includeFile);
};
interface InstructionMetadata {
[Const, Ref] DOMString GetFullName();
[Const, Ref] DOMString GetDescription();
[Const, Ref] DOMString GetSentence();
[Const, Ref] DOMString GetGroup();
[Const, Ref] DOMString GetIconFilename();
[Const, Ref] DOMString GetSmallIconFilename();
[Const, Ref] DOMString GetHelpPath();
boolean CanHaveSubInstructions();
[Ref] ParameterMetadata GetParameter(unsigned long index);
unsigned long GetParametersCount();
[Const, Ref] VectorParameterMetadata GetParameters();
long GetUsageComplexity();
boolean IsHidden();
[Ref] InstructionMetadata SetCanHaveSubInstructions();
[Ref] InstructionMetadata SetHelpPath([Const] DOMString helpPath);
[Ref] InstructionMetadata SetHidden();
[Ref] InstructionMetadata SetGroup([Const] DOMString group); //TODO: check if useful
[Ref] InstructionMetadata AddParameter([Const] DOMString type,
[Const] DOMString description,
[Const] DOMString optionalObjectType,
boolean parameterIsOptional);
[Ref] InstructionMetadata AddCodeOnlyParameter(
[Const] DOMString type, [Const] DOMString supplementaryInformation);
[Ref] InstructionMetadata SetDefaultValue([Const] DOMString defaultValue);
[Ref] InstructionMetadata MarkAsSimple();
[Ref] InstructionMetadata MarkAsAdvanced();
[Ref] InstructionMetadata MarkAsComplex();
[Ref] ExtraInformation GetCodeExtraInformation();
};
interface ExpressionMetadata {
[Const, Ref] DOMString GetFullName();
[Const, Ref] DOMString GetDescription();
[Const, Ref] DOMString GetGroup();
[Const, Ref] DOMString GetSmallIconFilename();
boolean IsShown();
[Ref] ParameterMetadata GetParameter(unsigned long id);
unsigned long GetParametersCount();
[Const, Ref] VectorParameterMetadata GetParameters();
[Ref] ExpressionMetadata SetHidden();
[Ref] ExpressionMetadata SetGroup([Const] DOMString str); //TODO: check if useful
[Ref] ExpressionMetadata AddParameter(
[Const] DOMString type,
[Const] DOMString description,
[Const] DOMString optionalObjectType,
boolean parameterIsOptional);
[Ref] ExpressionMetadata AddCodeOnlyParameter(
[Const] DOMString type, [Const] DOMString supplementaryInformation);
[Ref] ExpressionMetadata SetDefaultValue([Const] DOMString defaultValue);
[Ref] ExpressionCodeGenerationInformation GetCodeExtraInformation();
};
interface ParameterMetadata {
void ParameterMetadata();
[Const, Ref] DOMString GetType();
[Ref] ParameterMetadata SetType([Const] DOMString type_);
[Const, Ref] DOMString GetName();
[Ref] ParameterMetadata SetName([Const] DOMString name_);
[Const, Ref] DOMString GetExtraInfo();
[Ref] ParameterMetadata SetExtraInfo([Const] DOMString extraInfo_);
boolean IsOptional();
[Ref] ParameterMetadata SetOptional(boolean optional_);
[Const, Ref] DOMString GetDescription();
[Ref] ParameterMetadata SetDescription([Const] DOMString description_);