DGS OOP Class: Difference between revisions
Jump to navigation
Jump to search
(→Memo) |
|||
(31 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<div style="background:#FBFDFF;border-radius:5px;padding:5px;"> | |||
DGS provides not only POP ( Procedure Oriented Programming ) but also [[OOP]] ( Object Oriented Programming ). This page introduces [[OOP]] of dgs. | DGS provides not only POP ( Procedure Oriented Programming ) but also [[OOP]] ( Object Oriented Programming ). This page introduces [[OOP]] of dgs. | ||
Line 5: | Line 6: | ||
Here is the structure of DGS OOP Object: | Here is the structure of DGS OOP Object: | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
DGSObject = { | |||
DGSElement = DGSElement -- The actual dgs element | DGSElement = DGSElement -- The actual dgs element | ||
function1, | function1, | ||
Line 33: | Line 34: | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
loadstring(exports.dgs:dgsImportOOPClass())()-- load OOP class | loadstring(exports.dgs:dgsImportOOPClass())()-- load OOP class | ||
window = | window = dgsWindow(0,0,0.5,0.1,"test",true) --create a window with oop | ||
label = window: | label = window:dgsLabel(0,0,1,1,"label",true) --create a label inside the window | ||
label.text = "DGS OOP Test" --set text | label.text = "DGS OOP Test" --set text | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<div style="background:#C0D0FF;border-radius:5px;padding:5px;"> | <div style="background:#C0D0FF;border-radius:5px;padding:5px;"> | ||
'''Notice:'''When you are | '''Notice:''' When you are going to create a child element, there is no need to pass '''parent''' as an argument into the function, because the parent dgs element is the function caller. | ||
<div style="background:#EE6666;border-radius:5px;padding:10px;"> | <div style="background:#EE6666;border-radius:5px;padding:10px;"> | ||
<div style="color:#FFFFFF;font-size:18px;line-height:35px;text-shadow:black 0.1em 0.1em 0.2em">This is the '''Wrong''' | <div style="color:#FFFFFF;font-size:18px;line-height:35px;text-shadow:black 0.1em 0.1em 0.2em">This is the '''Wrong''' Usage:</div> | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
loadstring(exports.dgs:dgsImportOOPClass())()-- load OOP class | loadstring(exports.dgs:dgsImportOOPClass())()-- load OOP class | ||
window = | window = dgsWindow(0,0,0.5,0.1,"test",true) --create a window with oop | ||
label = | label = dgsLabel(0,0,1,1,"label",true,window) --create a label inside the window ( Wrong ) | ||
label.text = "DGS OOP Test" --set text | label.text = "DGS OOP Test" --set text | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</div> | </div> | ||
<div style="background:#33AA33;border-radius:5px;padding:10px;"> | <div style="background:#33AA33;border-radius:5px;padding:10px;"> | ||
<div style="color:#FFFFFF;font-size:18px;line-height:35px;text-shadow:black 0.1em 0.1em 0.2em">This is the '''Correct''' | <div style="color:#FFFFFF;font-size:18px;line-height:35px;text-shadow:black 0.1em 0.1em 0.2em">This is the '''Correct''' Usage:</div> | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
loadstring(exports.dgs:dgsImportOOPClass())()-- load OOP class | loadstring(exports.dgs:dgsImportOOPClass())()-- load OOP class | ||
window = | window = dgsWindow(0,0,0.5,0.1,"test",true) --create a window with oop | ||
label = window: | label = window:dgsLabel(0,0,1,1,"label",true) --create a label inside the window ( Correct ) | ||
label.text = "DGS OOP Test" --set text | label.text = "DGS OOP Test" --set text | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</div> | </div> | ||
</div> | |||
==Special== | |||
For Position and Size, we have a more convenient method to do. | |||
<div style="background:#33AA33;border-radius:5px;padding:10px;"> | |||
<syntaxhighlight lang="lua"> | |||
loadstring(exports.dgs:dgsImportOOPClass())()-- load OOP class | |||
window = dgsWindow(0,0,0.5,0.1,"test",true) --create a window with oop | |||
window.position.x = 0.2 -- For relative position | |||
window.position.relative = false -- Change to absolute position | |||
window.position.x = 10 -- For absolute position | |||
window.size.relative = false | |||
window.size.w = 400 | |||
</syntaxhighlight> | |||
</div> | </div> | ||
==Functions== | ==Functions== | ||
===Creation Functions=== | |||
<div style="background:#E8F2FF;border-radius:20px;padding:20px; width:800px;"> | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Creation Functions</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 67: | Line 86: | ||
!POP Functions | !POP Functions | ||
|- | |- | ||
| | |dgs3DInterface | ||
|[[dgsCreate3DInterface]] | |[[dgsCreate3DInterface]] | ||
|- | |- | ||
| | |dgs3DText | ||
|[[ | |[[dgsCreate3DText]] | ||
|- | |- | ||
| | |dgsBrowser | ||
|[[dgsCreateBrowser]] | |[[dgsCreateBrowser]] | ||
|- | |- | ||
| | |dgsButton | ||
|[[dgsCreateButton]] | |||
|- | |||
|dgsCheckBox | |||
|[[dgsCreateCheckBox]] | |[[dgsCreateCheckBox]] | ||
|- | |- | ||
| | |dgsComboBox | ||
|[[ | |[[dgsCreateComboBox]] | ||
|- | |- | ||
| | |dgsDetectArea | ||
|[[ | |[[dgsCreateDetectArea]] | ||
|- | |- | ||
| | |dgsEdit | ||
|[[dgsCreateEdit]] | |[[dgsCreateEdit]] | ||
|- | |- | ||
| | |dgsGridList | ||
|[[dgsCreateGridList]] | |[[dgsCreateGridList]] | ||
|- | |- | ||
| | |dgsImage | ||
|[[dgsCreateImage]] | |[[dgsCreateImage]] | ||
|- | |- | ||
| | |dgsLabel | ||
|[[dgsCreateLabel]] | |||
|- | |||
|dgsMemo | |||
|[[dgsCreateMemo]] | |[[dgsCreateMemo]] | ||
|- | |- | ||
| | |dgsProgressBar | ||
|[[ | |[[dgsCreateProgressBar]] | ||
|- | |- | ||
| | |dgsRadioButton | ||
|[[ | |[[dgsCreateRadioButton]] | ||
|- | |- | ||
| | |dgsScrollBar | ||
|[[dgsCreateScrollBar]] | |[[dgsCreateScrollBar]] | ||
|- | |- | ||
| | |dgsScrollPane | ||
|[[dgsCreateScrollPane]] | |[[dgsCreateScrollPane]] | ||
|- | |- | ||
| | |dgsSwitchButton | ||
|[[dgsCreateSwitchButton]] | |||
|- | |||
|dgsTabPanel | |||
|[[dgsCreateTabPanel]] | |[[dgsCreateTabPanel]] | ||
|- | |- | ||
| | |dgsWindow | ||
|[[ | |[[dgsCreateWindow]] | ||
|- | |- | ||
|} | |} | ||
===Non Object Functions=== | <div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | ||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Non Object Functions</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 187: | Line 209: | ||
|- | |- | ||
|} | |} | ||
===General Functions=== | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">General Functions</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 335: | Line 360: | ||
|- | |- | ||
|setPostGUI | |setPostGUI | ||
|[[ | |[[dgsSetPostGUI]] | ||
|- | |- | ||
|destroy | |destroy | ||
Line 381: | Line 406: | ||
|} | |} | ||
===Window=== | <div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | ||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Window</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 407: | Line 434: | ||
|} | |} | ||
===3D Interface=== | <div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | ||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">3D Interface</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 433: | Line 462: | ||
|getResolution | |getResolution | ||
|[[dgs3DInterfaceGetResolution]] | |[[dgs3DInterfaceGetResolution]] | ||
|- | |||
|setFaceTo | |||
|[[dgs3DInterfaceSetFaceTo]] | |||
|- | |||
|getFaceTo | |||
|[[dgs3DInterfaceGetFaceTo]] | |||
|- | |- | ||
|setResolution | |setResolution | ||
Line 459: | Line 494: | ||
|- | |- | ||
|} | |} | ||
=== | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">3D Text</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 465: | Line 504: | ||
!POP Functions | !POP Functions | ||
|- | |- | ||
| | |getDimension | ||
|[[ | |[[dgs3DTextGetDimension]] | ||
|- | |- | ||
| | |setDimension | ||
|[[ | |[[dgs3DTextSetDimension]] | ||
|- | |- | ||
| | |getInterior | ||
|[[ | |[[dgs3DTextGetInterior]] | ||
|- | |- | ||
| | |setInterior | ||
|[[ | |[[dgs3DTextSetInterior]] | ||
|- | |- | ||
| | |attachToElement | ||
|[[ | |[[dgs3DTextAttachToElement]] | ||
|- | |- | ||
| | |detachFromElement | ||
|[[ | |[[dgs3DTextDetachFromElement]] | ||
|- | |- | ||
| | |isAttached | ||
|[[ | |[[dgs3DTextIsAttached]] | ||
|- | |- | ||
| | |setAttachedOffsets | ||
|[[ | |[[dgs3DTextSetAttachedOffsets]] | ||
|- | |- | ||
| | |getAttachedOffsets | ||
|[[ | |[[dgs3DTextGetAttachedOffsets]] | ||
|- | |- | ||
| | |getPosition | ||
|[[ | |[[dgs3DTextGetPosition]] | ||
|- | |- | ||
| | |setPosition | ||
|[[ | |[[dgs3DTextSetPosition]] | ||
|- | |- | ||
|} | |} | ||
===Check Box=== | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Check Box</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 521: | Line 555: | ||
|- | |- | ||
|} | |} | ||
=== | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Combo Box</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 551: | Line 575: | ||
|getItemText | |getItemText | ||
|[[dgsComboBoxGetItemText]] | |[[dgsComboBoxGetItemText]] | ||
|- | |||
|getItemCount | |||
|[[dgsComboBoxGetItemCount]] | |||
|- | |||
|getText | |||
|[[dgsComboBoxGetText]] | |||
|- | |- | ||
|clear | |clear | ||
Line 593: | Line 623: | ||
|getCaptionText | |getCaptionText | ||
|[[dgsComboBoxGetCaptionText]] | |[[dgsComboBoxGetCaptionText]] | ||
|- | |||
|setEditEnabled | |||
|[[dgsComboBoxSetEditEnabled]] | |||
|- | |||
|getEditEnabled | |||
|[[dgsComboBoxGetEditEnabled]] | |||
|- | |||
|} | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Custom Renderer</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | |||
|- | |||
!OOP Functions | |||
!POP Functions | |||
|- | |||
|setFunction | |||
|[[dgsCustomRendererSetFunction]] | |||
|- | |||
|} | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Detect Area</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | |||
|- | |||
!OOP Functions | |||
!POP Functions | |||
|- | |||
|setFunction | |||
|[[dgsDetectAreaSetFunction]] | |||
|- | |- | ||
|} | |} | ||
===Edit=== | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Edit</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 657: | Line 722: | ||
|setAlignment | |setAlignment | ||
|[[dgsEditSetAlignment]] | |[[dgsEditSetAlignment]] | ||
|- | |- | ||
|getAlignment | |getAlignment | ||
Line 691: | Line 755: | ||
|} | |} | ||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Grid List</span>=== | |||
</div> | |||
=== | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 857: | Line 900: | ||
|setSelectedItems | |setSelectedItems | ||
|[[dgsGridListSetSelectedItems]] | |[[dgsGridListSetSelectedItems]] | ||
|- | |||
|getSelectedCount | |||
|[[dgsGridListGetSelectedCount]] | |||
|- | |- | ||
|setSortFunction | |setSortFunction | ||
Line 893: | Line 939: | ||
|} | |} | ||
===Image=== | <div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | ||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Image</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 918: | Line 966: | ||
|- | |- | ||
|} | |} | ||
===Memo=== | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Label</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | |||
|- | |||
!OOP Functions | |||
!POP Functions | |||
|- | |||
|setColor | |||
|[[dgsLabelSetColor]] | |||
|- | |||
|getColor | |||
|[[dgsLabelGetColor]] | |||
|- | |||
|setHorizontalAlign | |||
|[[dgsLabelSetHorizontalAlign]] | |||
|- | |||
|getHorizontalAlign | |||
|[[dgsLabelGetHorizontalAlign]] | |||
|- | |||
|setVerticalAlign | |||
|[[dgsLabelSetVerticalAlign]] | |||
|- | |||
|getVerticalAlign | |||
|[[dgsLabelGetVerticalAlign]] | |||
|- | |||
|getTextExtent | |||
|[[dgsLabelGetTextExtent]] | |||
|- | |||
|getFontHeight | |||
|[[dgsLabelGetFontHeight]] | |||
|- | |||
|} | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Memo</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 984: | Line 1,069: | ||
|[[dgsMemoGetLineCount]] | |[[dgsMemoGetLineCount]] | ||
|- | |- | ||
| | |setWordWrapState | ||
|[[ | |[[dgsMemoSetWordWrapState]] | ||
|- | |- | ||
| | |getWordWrapState | ||
|[[ | |[[dgsMemoGetWordWrapState]] | ||
|- | |- | ||
|} | |} | ||
== | <div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | ||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Progress Bar</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 1,048: | Line 1,110: | ||
|- | |- | ||
|} | |} | ||
===Scroll Bar=== | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Radio Button</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | |||
|- | |||
!OOP Functions | |||
!POP Functions | |||
|- | |||
|getSelected | |||
|[[dgsRadioButtonGetSelected]] | |||
|- | |||
|setSelected | |||
|[[dgsRadioButtonSetSelected]] | |||
|- | |||
|} | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Scroll Bar</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 1,073: | Line 1,154: | ||
|- | |- | ||
|} | |} | ||
===Scroll Pane=== | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Switch Button</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | |||
|- | |||
!OOP Functions | |||
!POP Functions | |||
|- | |||
|getState | |||
|[[dgsSwitchButtonGetState]] | |||
|- | |||
|setState | |||
|[[dgsSwitchButtonSetState]] | |||
|- | |||
|setText | |||
|[[dgsSwitchButtonSetText]] | |||
|- | |||
|getText | |||
|[[dgsSwitchButtonGetText]] | |||
|- | |||
|} | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Scroll Pane</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 1,093: | Line 1,199: | ||
|getScrollBarState | |getScrollBarState | ||
|[[dgsScrollPaneGetScrollBarState]] | |[[dgsScrollPaneGetScrollBarState]] | ||
|- | |- | ||
|} | |} | ||
===Tab Panel=== | <div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | ||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Tab Panel</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 1,136: | Line 1,225: | ||
|[[dgsTabPanelGetTabID]] | |[[dgsTabPanelGetTabID]] | ||
|- | |- | ||
| | |dgsTab | ||
|[[dgsCreateTab]] | |[[dgsCreateTab]] | ||
|- | |- | ||
|} | |} | ||
===Tab=== | |||
<div style="background:#66A7FF;border-radius:10px;padding:5px; width:800px;"> | |||
===<span style="color:#FFFFFF;font-size:18px;display:block;text-align:center;text-shadow:0.05em 0.05em 0.2em #00000099;">Tab</span>=== | |||
</div> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 1,150: | Line 1,242: | ||
|- | |- | ||
|} | |} | ||
</div> | |||
==Events== | ==Events== | ||
<div style="background:#E8F2FF;border-radius:20px;padding:20px; width:800px;"> | |||
{| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | {| class="wikitable" style="width: 800px; text-align: center; table-layout: fixed;" | ||
|- | |- | ||
Line 1,267: | Line 1,362: | ||
|dgsStopAniming | |dgsStopAniming | ||
|[[onDgsStopAniming]] | |[[onDgsStopAniming]] | ||
|- | |- | ||
|dgsCursorDrag | |dgsCursorDrag | ||
Line 1,275: | Line 1,367: | ||
|- | |- | ||
|} | |} | ||
</div> | |||
</div> |
Latest revision as of 02:25, 20 March 2024
DGS provides not only POP ( Procedure Oriented Programming ) but also OOP ( Object Oriented Programming ). This page introduces OOP of dgs.
Structure
When using DGS OOP, DGS objects to be operated are no longer elements, instead, they will be tables ( table is the only type whose call methods can be defined in lua ) . Here is the structure of DGS OOP Object:
DGSObject = { DGSElement = DGSElement -- The actual dgs element function1, function2, ... }
- The built-in functions are non-modifiable
- Any variable of the table are get/set via dgsSetProperty/dgsGetProperty ( Exclude DGSElement )
- After importing DGS OOP Class, there is a table called : DGSClass
Get Started
Instead of using
label = exports.dgs:dgsCreateLabel(0, 0, 0.5, 0.1, "text", true)
DGS = exports.dgs label = DGS:dgsCreateLabel(0,0,0.5,0.1,"text",true)
loadstring(exports.dgs:dgsImportFunction())()-- load functions label = dgsCreateLabel(0,0,0.5,0.1,"text",true) --create a label
We provides Object Oriented Programming
loadstring(exports.dgs:dgsImportOOPClass())()-- load OOP class window = dgsWindow(0,0,0.5,0.1,"test",true) --create a window with oop label = window:dgsLabel(0,0,1,1,"label",true) --create a label inside the window label.text = "DGS OOP Test" --set text
Notice: When you are going to create a child element, there is no need to pass parent as an argument into the function, because the parent dgs element is the function caller.
This is the Wrong Usage:
loadstring(exports.dgs:dgsImportOOPClass())()-- load OOP class window = dgsWindow(0,0,0.5,0.1,"test",true) --create a window with oop label = dgsLabel(0,0,1,1,"label",true,window) --create a label inside the window ( Wrong ) label.text = "DGS OOP Test" --set text
This is the Correct Usage:
loadstring(exports.dgs:dgsImportOOPClass())()-- load OOP class window = dgsWindow(0,0,0.5,0.1,"test",true) --create a window with oop label = window:dgsLabel(0,0,1,1,"label",true) --create a label inside the window ( Correct ) label.text = "DGS OOP Test" --set text
Special
For Position and Size, we have a more convenient method to do.
loadstring(exports.dgs:dgsImportOOPClass())()-- load OOP class window = dgsWindow(0,0,0.5,0.1,"test",true) --create a window with oop window.position.x = 0.2 -- For relative position window.position.relative = false -- Change to absolute position window.position.x = 10 -- For absolute position window.size.relative = false window.size.w = 400
Functions
Creation Functions
OOP Functions | POP Functions |
---|---|
dgs3DInterface | dgsCreate3DInterface |
dgs3DText | dgsCreate3DText |
dgsBrowser | dgsCreateBrowser |
dgsButton | dgsCreateButton |
dgsCheckBox | dgsCreateCheckBox |
dgsComboBox | dgsCreateComboBox |
dgsDetectArea | dgsCreateDetectArea |
dgsEdit | dgsCreateEdit |
dgsGridList | dgsCreateGridList |
dgsImage | dgsCreateImage |
dgsLabel | dgsCreateLabel |
dgsMemo | dgsCreateMemo |
dgsProgressBar | dgsCreateProgressBar |
dgsRadioButton | dgsCreateRadioButton |
dgsScrollBar | dgsCreateScrollBar |
dgsScrollPane | dgsCreateScrollPane |
dgsSwitchButton | dgsCreateSwitchButton |
dgsTabPanel | dgsCreateTabPanel |
dgsWindow | dgsCreateWindow |
Non Object Functions
OOP Functions | POP Functions |
---|---|
isStyleAvailable | dgsIsStyleAvailable |
getLoadedStyleList | dgsGetLoadedStyleList |
setCurrentStyle | dgsSetCurrentStyle |
getCurrentStyle | dgsGetCurrentStyle |
getScreenSize | guiGetScreenSize |
setInputEnabled | guiSetInputEnabled |
getInputEnabled | guiGetInputEnabled |
setRenderSetting | dgsSetRenderSetting |
getRenderSetting | dgsGetRenderSetting |
getLayerElements | dgsGetLayerElements |
addEasingFunction | dgsAddEasingFunction |
easingFunctionExists | dgsEasingFunctionExists |
removeEasingFunction | dgsRemoveEasingFunction |
getSystemFont | dgsGetSystemFont |
setSystemFont | dgsSetSystemFont |
translationTableExists | dgsTranslationTableExists |
setTranslationTable | dgsSetTranslationTable |
setAttachTranslation | dgsSetAttachTranslation |
General Functions
OOP Functions | POP Functions |
---|---|
getPosition | dgsGetPosition |
setPosition | dgsSetPosition |
getParent | dgsGetParent |
setParent | dgsSetParent |
getChild | dgsGetChild |
getChildren | dgsGetChildren |
getSize | dgsGetSize |
setSize | dgsSetSize |
getType | dgsGetType |
setLayer | dgsSetLayer |
getLayer | dgsSetLayer |
setCurrentLayerIndex | dgsSetCurrentLayerIndex |
getCurrentLayerIndex | dgsGetCurrentLayerIndex |
getProperty | dgsGetProperty |
setProperty | dgsSetProperty |
getProperties | dgsGetProperties |
setProperties | dgsSetProperties |
getVisible | dgsGetVisible |
setVisible | dgsGetVisible |
getEnabled | dgsGetEnabled |
setEnabled | dgsSetEnabled |
getSide | dgsGetSide |
setSide | dgsSetSide |
getAlpha | dgsGetAlpha |
setAlpha | dgsSetAlpha |
getFont | dgsGetFont |
setFont | dgsSetFont |
getText | dgsGetText |
setText | dgsSetText |
bringToFront | dgsBringToFront |
moveToBack | dgsMoveToBack |
focus | dgsFocus |
blur | dgsBlur |
simulateClick | dgsSimulateClick |
animTo | dgsAnimTo |
isAniming | dgsIsAniming |
stopAniming | dgsStopAniming |
moveTo | dgsMoveTo |
isMoving | dgsIsMoving |
stopMoving | dgsStopMoving |
sizeTo | dgsSizeTo |
isSizing | dgsIsSizing |
stopSizing | dgsStopSizing |
alphaTo | dgsAlphaTo |
isAlphaing | dgsIsAlphaing |
stopAlphaing | dgsStopAlphaing |
getPostGUI | dgsGetPostGUI |
setPostGUI | dgsSetPostGUI |
destroy | destroyElement |
isElement | isElement |
getElement | self.dgsElement |
addMoveHandler | dgsAddMoveHandler |
removeMoveHandler | dgsRemoveMoveHandler |
isMoveHandled | dgsIsMoveHandled |
addSizeHandler | dgsAddSizeHandler |
removeSizeHandler | dgsRemoveSizeHandler |
isSizeHandled | dgsIsSizeHandled |
attachToTranslation | dgsAttachToTranslation |
detachFromTranslation | dgsDetachFromTranslation |
getTranslationName | dgsGetTranslationName |
on | addEventHandler(Handled By DGS) |
removeOn | removeEventHandler(Handled By DGS) |
Window
OOP Functions | POP Functions |
---|---|
setSizable | dgsWindowSetSizable |
setMovable | dgsWindowSetMovable |
close | dgsCloseWindow |
setCloseButtonEnabled | dgsWindowSetCloseButtonEnabled |
getCloseButtonEnabled | dgsWindowGetCloseButtonEnabled |
getCloseButton | dgsWindowGetCloseButton |
3D Interface
OOP Functions | POP Functions |
---|---|
getBlendMode | dgs3DInterfaceGetBlendMode |
setBlendMode | dgs3DInterfaceSetBlendMode |
getPosition | dgs3DInterfaceGetPosition |
setPosition | dgs3DInterfaceSetPosition |
getSize | dgs3DInterfaceGetSize |
setSize | dgs3DInterfaceSetSize |
getResolution | dgs3DInterfaceGetResolution |
setFaceTo | dgs3DInterfaceSetFaceTo |
getFaceTo | dgs3DInterfaceGetFaceTo |
setResolution | dgs3DInterfaceSetResolution |
attachToElement | dgs3DInterfaceAttachToElement |
isAttached | dgs3DInterfaceIsAttached |
detachFromElement | dgs3DInterfaceDetachFromElement |
setAttachedOffsets | dgs3DInterfaceSetAttachedOffsets |
getAttachedOffsets | dgs3DInterfaceGetAttachedOffsets |
setRotation | dgs3DInterfaceSetRotation |
getRotation | dgs3DInterfaceGetRotation |
3D Text
OOP Functions | POP Functions |
---|---|
getDimension | dgs3DTextGetDimension |
setDimension | dgs3DTextSetDimension |
getInterior | dgs3DTextGetInterior |
setInterior | dgs3DTextSetInterior |
attachToElement | dgs3DTextAttachToElement |
detachFromElement | dgs3DTextDetachFromElement |
isAttached | dgs3DTextIsAttached |
setAttachedOffsets | dgs3DTextSetAttachedOffsets |
getAttachedOffsets | dgs3DTextGetAttachedOffsets |
getPosition | dgs3DTextGetPosition |
setPosition | dgs3DTextSetPosition |
Check Box
OOP Functions | POP Functions |
---|---|
getSelected | dgsCheckBoxGetSelected |
setSelected | dgsCheckBoxSetSelected |
Combo Box
OOP Functions | POP Functions |
---|---|
addItem | dgsComboBoxAddItem |
removeItem | dgsComboBoxRemoveItem |
setItemText | dgsComboBoxSetItemText |
getItemText | dgsComboBoxGetItemText |
getItemCount | dgsComboBoxGetItemCount |
getText | dgsComboBoxGetText |
clear | dgsComboBoxClear |
setSelectedItem | dgsComboBoxSetSelectedItem |
getSelectedItem | dgsComboBoxGetSelectedItem |
setItemColor | dgsComboBoxSetItemColor |
getItemColor | dgsComboBoxGetItemColor |
getState | dgsComboBoxGetState |
setState | dgsComboBoxSetState |
getBoxHeight | dgsComboBoxGetBoxHeight |
setBoxHeight | dgsComboBoxSetBoxHeight |
getScrollBar | dgsComboBoxGetScrollBar |
setScrollPosition | dgsComboBoxSetScrollPosition |
getScrollPosition | dgsComboBoxGetScrollPosition |
setCaptionText | dgsComboBoxSetCaptionText |
getCaptionText | dgsComboBoxGetCaptionText |
setEditEnabled | dgsComboBoxSetEditEnabled |
getEditEnabled | dgsComboBoxGetEditEnabled |
Custom Renderer
OOP Functions | POP Functions |
---|---|
setFunction | dgsCustomRendererSetFunction |
Detect Area
OOP Functions | POP Functions |
---|---|
setFunction | dgsDetectAreaSetFunction |
Edit
Grid List
Image
OOP Functions | POP Functions |
---|---|
setImage | dgsImageSetImage |
getImage | dgsImageGetImage |
setUVSize | dgsImageSetUVSize |
getUVSize | dgsImageGetUVSize |
setUVPosition | dgsImageSetUVPosition |
getUVPosition | dgsImageGetUVPosition |
Label
OOP Functions | POP Functions |
---|---|
setColor | dgsLabelSetColor |
getColor | dgsLabelGetColor |
setHorizontalAlign | dgsLabelSetHorizontalAlign |
getHorizontalAlign | dgsLabelGetHorizontalAlign |
setVerticalAlign | dgsLabelSetVerticalAlign |
getVerticalAlign | dgsLabelGetVerticalAlign |
getTextExtent | dgsLabelGetTextExtent |
getFontHeight | dgsLabelGetFontHeight |
Memo
OOP Functions | POP Functions |
---|---|
moveCaret | dgsMemoMoveCaret |
seekPosition | dgsMemoSeekPosition |
getScrollBar | dgsMemoGetScrollBar |
setScrollPosition | dgsMemoSetScrollPosition |
getScrollPosition | dgsMemoGetScrollPosition |
setCaretPosition | dgsMemoSetCaretPosition |
getCaretPosition | dgsMemoGetCaretPosition |
setCaretStyle | dgsMemoSetCaretStyle |
getCaretStyle | dgsMemoGetCaretStyle |
setReadOnly | dgsMemoSetReadOnly |
getReadOnly | dgsMemoGetReadOnly |
getPartOfText | dgsMemoGetPartOfText |
deleteText | dgsMemoDeleteText |
insertText | dgsMemoInsertText |
clearText | dgsMemoClearText |
clearText | dgsMemoClearText |
setScrollBarState | dgsMemoSetScrollBarState |
getScrollBarState | dgsMemoGetScrollBarState |
setTypingSound | dgsMemoSetTypingSound |
getLineCount | dgsMemoGetLineCount |
setWordWrapState | dgsMemoSetWordWrapState |
getWordWrapState | dgsMemoGetWordWrapState |
Progress Bar
OOP Functions | POP Functions |
---|---|
getProgress | dgsProgressBarGetProgress |
setProgress | dgsProgressBarSetProgress |
getMode | dgsProgressBarGetMode |
setMode | dgsProgressBarSetMode |
getVerticalSide | dgsProgressBarGetVerticalSide |
setVerticalSide | dgsProgressBarSetVerticalSide |
getHorizontalSide | dgsProgressBarGetHorizontalSide |
setHorizontalSide | dgsProgressBarSetHorizontalSide |
Radio Button
OOP Functions | POP Functions |
---|---|
getSelected | dgsRadioButtonGetSelected |
setSelected | dgsRadioButtonSetSelected |
Scroll Bar
OOP Functions | POP Functions |
---|---|
setScrollPosition | dgsScrollBarSetScrollPosition |
getScrollPosition | dgsScrollBarGetScrollPosition |
setScrollSize | dgsScrollBarSetScrollSize |
getScrollSize | dgsScrollBarGetScrollSize |
setLocked | dgsScrollBarSetLocked |
getLocked | dgsScrollBarGetLocked |
Switch Button
OOP Functions | POP Functions |
---|---|
getState | dgsSwitchButtonGetState |
setState | dgsSwitchButtonSetState |
setText | dgsSwitchButtonSetText |
getText | dgsSwitchButtonGetText |
Scroll Pane
OOP Functions | POP Functions |
---|---|
getScrollBar | dgsScrollPaneGetScrollBar |
setScrollPosition | dgsScrollPaneSetScrollPosition |
getScrollPosition | dgsScrollPaneGetScrollPosition |
setScrollBarState | dgsScrollPaneSetScrollBarState |
getScrollBarState | dgsScrollPaneGetScrollBarState |
Tab Panel
OOP Functions | POP Functions |
---|---|
getSelectedTab | dgsGetSelectedTab |
setSelectedTab | dgsSetSelectedTab |
getTabFromID | dgsTabPanelGetTabFromID |
moveTab | dgsTabPanelMoveTab |
getTabID | dgsTabPanelGetTabID |
dgsTab | dgsCreateTab |
Tab
OOP Functions | POP Functions |
---|---|
deleteTab | dgsDeleteTab |
Events
OOP Events | POP Events |
---|---|
dgsMouseLeave | onDgsMouseLeave |
dgsMouseEnter | onDgsMouseEnter |
dgsMouseClick | onDgsMouseClick |
dgsMouseWheel | onDgsMouseWheel |
dgsMouseDoubleClick | onDgsMouseDoubleClick |
dgsWindowClose | onDgsWindowClose |
dgsPositionChange | onDgsPositionChange |
dgsSizeChange | onDgsSizeChange |
dgsTextChange | onDgsTextChange |
dgsScrollBarScrollPositionChange | onDgsScrollBarScrollPositionChange |
dgsScrollPaneScroll | onDgsScrollPaneScroll |
dgsDestroy | onDgsDestroy |
dgsSwitchButtonStateChange | onDgsSwitchButtonStateChange |
dgsGridListSelect | onDgsGridListSelect |
dgsGridListItemDoubleClick | onDgsGridListItemDoubleClick |
dgsProgressBarChange | onDgsProgressBarChange |
dgsCreate | onDgsCreate |
dgsPreRender | onDgsPreRender |
dgsRender | onDgsRender |
dgsElementRender | onDgsElementRender |
dgsFocus | onDgsFocus |
dgsBlur | onDgsBlur |
dgsCursorMove | onDgsCursorMove |
dgsTabSelect | onDgsTabSelect |
dgsTabPanelTabSelect | onDgsTabPanelTabSelect |
dgsRadioButtonChange | onDgsRadioButtonChange |
dgsCheckBoxChange | onDgsCheckBoxChange |
dgsComboBoxSelect | onDgsComboBoxSelect |
dgsComboBoxStateChange | onDgsComboBoxStateChange |
dgsEditPreSwitch | onDgsEditPreSwitch |
dgsEditSwitched | onDgsEditSwitched |
dgsEditAccepted | onDgsEditAccepted |
dgsComboBoxAccepted | onDgsComboBoxAccepted |
dgsStopMoving | onDgsStopMoving |
dgsStopSizing | onDgsStopSizing |
dgsStopAlphaing | onDgsStopAlphaing |
dgsStopAniming | onDgsStopAniming |
dgsCursorDrag | onDgsCursorDrag |