DGS OOP Class

From Multi Theft Auto: Wiki

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:

DGSDxObject = {
	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 = DGSClass:createWindow(0,0,0.5,0.1,"test",true) --create a window with oop
 label = window:createLabel(0,0,1,1,"label",true) --create a label inside the window
 label.text = "DGS OOP Test" --set text

Notice:When you are ready to create child DGS element, the parent dgs element is the function caller. So there is no need to pass "parent" into the function.

This is the Wrong Operation:
 loadstring(exports.dgs:dgsImportOOPClass())()-- load OOP class
 window = DGSClass:createWindow(0,0,0.5,0.1,"test",true) --create a window with oop
 label = DGSClass:createLabel(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 Operation:
 loadstring(exports.dgs:dgsImportOOPClass())()-- load OOP class
 window = DGSClass:createWindow(0,0,0.5,0.1,"test",true) --create a window with oop
 label = window:createLabel(0,0,1,1,"label",true) --create a label inside the window ( Correct )
 label.text = "DGS OOP Test" --set text

Functions

Creation Functions

OOP Functions POP Functions
createWindow dgsCreateWindow
create3DInterface dgsCreate3DInterface
createButton dgsCreateButton
createBrowser dgsCreateBrowser
createCheckBox dgsCreateCheckBox
createRadioButton dgsCreateRadioButton
createComboBox dgsCreateComboBox
createEdit dgsCreateEdit
createDetectArea dgsCreateDetectArea
createGridList dgsCreateGridList
createImage dgsCreateImage
createMemo dgsCreateMemo
createLabel dgsCreateLabel
createProgressBar dgsCreateProgressBar
createScrollBar dgsCreateScrollBar
createScrollPane dgsCreateScrollPane
createTabPanel dgsCreateTabPanel
createArrowList dgsCreateArrowList
createSwitchButton dgsCreateSwitchButton

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
setResolution dgs3DInterfaceSetResolution
attachToElement dgs3DInterfaceAttachToElement
isAttached dgs3DInterfaceIsAttached
detachFromElement dgs3DInterfaceDetachFromElement
setAttachedOffsets dgs3DInterfaceSetAttachedOffsets
getAttachedOffsets dgs3DInterfaceGetAttachedOffsets
setRotation dgs3DInterfaceSetRotation
getRotation dgs3DInterfaceGetRotation

Arrow List

OOP Functions POP Functions
addItem dgsArrowListAddItem
removeItem dgsArrowListRemoveItem
setItemText dgsArrowListSetItemText
getItemText dgsArrowListGetItemText
setItemValue dgsArrowListSetItemValue
getItemValue dgsArrowListGetItemValue
setItemRange dgsArrowListSetItemRange
getItemRange dgsArrowListGetItemRange
setItemTranslationTable dgsArrowListSetItemTranslationTable
getItemTranslationTable dgsArrowListGetItemTranslationTable
setItemStep dgsArrowListSetItemStep
getItemStep dgsArrowListGetItemStep
getItemTranslatedValue dgsArrowListGetItemTranslatedValue
clear dgsArrowListClear

Check Box

OOP Functions POP Functions
getSelected dgsCheckBoxGetSelected
setSelected dgsCheckBoxSetSelected

Radio Button

OOP Functions POP Functions
getSelected dgsRadioButtonGetSelected
setSelected dgsRadioButtonSetSelected

Combo Box

OOP Functions POP Functions
addItem dgsComboBoxAddItem
removeItem dgsComboBoxRemoveItem
setItemText dgsComboBoxSetItemText
getItemText dgsComboBoxGetItemText
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

Edit

OOP Functions POP Functions
moveCaret dgsEditMoveCaret
getCaretPosition dgsEditGetCaretPosition
setCaretPosition dgsEditSetCaretPosition
setCaretStyle dgsEditSetCaretStyle
getCaretStyle dgsEditGetCaretStyle
setWhiteList dgsEditSetWhiteList
getMaxLength dgsEditGetMaxLength
setMaxLength dgsEditSetMaxLength
setReadOnly dgsEditSetReadOnly
getReadOnly dgsEditGetReadOnly
setMasked dgsEditSetMasked
getMasked dgsEditGetMasked
setUnderlined dgsEditSetUnderlined
getUnderlined dgsEditGetUnderlined
setHorizontalAlign dgsEditSetHorizontalAlign
getHorizontalAlign dgsEditGetHorizontalAlign
setVerticalAlign dgsEditSetVerticalAlign
getVerticalAlign dgsEditGetVerticalAlign
setAlignment dgsEditSetAlignment
getAlignment dgsEditGetAlignment
insertText dgsEditInsertText
deleteText dgsEditDeleteText
getPartOfText dgsEditGetPartOfText
clearText dgsEditClearText
replaceText dgsEditReplaceText
setTypingSound dgsEditSetTypingSound
getTypingSound dgsEditGetTypingSound
setPlaceHolder dgsEditSetPlaceHolder
getPlaceHolder dgsEditGetPlaceHolder

Ellipse Detect Area

OOP Functions POP Functions
setDebugModeEnabled dgsEDASetDebugModeEnabled
getDebugModeEnabled dgsEDAGetDebugModeEnabled

Detect Area

OOP Functions POP Functions
setFunction dgsDetectAreaSetFunction

Grid List

OOP Functions POP Functions
getScrollBar dgsGridListGetScrollBar
setScrollPosition dgsGridListSetScrollPosition
getScrollPosition dgsGridListGetScrollPosition
resetScrollBarPosition dgsGridListResetScrollBarPosition
setColumnRelative dgsGridListSetColumnRelative
getColumnRelative dgsGridListGetColumnRelative
addColumn dgsGridListAddColumn
getColumnCount dgsGridListGetColumnCount
removeColumn dgsGridListRemoveColumn
getColumnAllWidth dgsGridListGetColumnAllWidth
getColumnWidth dgsGridListGetColumnWidth
setColumnWidth dgsGridListSetColumnWidth
getColumnTitle dgsGridListGetColumnTitle
setColumnTitle dgsGridListSetColumnTitle
getColumnFont dgsGridListGetColumnFont
setColumnFont dgsGridListSetColumnFont
addRow dgsGridListAddRow
removeRow dgsGridListRemoveRow
clearRow dgsGridListClearRow
clearColumn dgsGridListClearColumn
clear dgsGridListClear
getRowCount dgsGridListGetRowCount
setItemText dgsGridListSetItemText
getItemText dgsGridListGetItemText
getSelectedItem dgsGridListGetSelectedItem
setSelectedItem dgsGridListSetSelectedItem
setItemColor dgsGridListSetItemColor
getItemColor dgsGridListGetItemColor
setItemData dgsGridListSetItemData
getItemData dgsGridListGetItemData
setItemImage dgsGridListSetItemImage
getItemImage dgsGridListGetItemImage
removeItemImage dgsGridListRemoveItemImage
getRowBackGroundImage dgsGridListGetRowBackGroundImage
setRowBackGroundImage dgsGridListSetRowBackGroundImage
setRowBackGroundColor dgsGridListSetRowBackGroundColor
getRowBackGroundColor dgsGridListGetRowBackGroundColor
setRowAsSection dgsGridListSetRowAsSection
selectItem dgsGridListSelectItem
itemIsSelected dgsGridListItemIsSelected
setMultiSelectionEnabled dgsGridListSetMultiSelectionEnabled
getMultiSelectionEnabled dgsGridListGetMultiSelectionEnabled
setSelectionMode dgsGridListSetSelectionMode
getSelectionMode dgsGridListGetSelectionMode
getSelectedItems dgsGridListGetSelectedItems
setSelectedItems dgsGridListSetSelectedItems
getSelectedCount dgsGridListGetSelectedCount
setSortFunction dgsGridListSetSortFunction
setAutoSortEnabled dgsGridListSetAutoSortEnabled
getAutoSortEnabled dgsGridListGetAutoSortEnabled
setSortEnabled dgsGridListSetSortEnabled
getSortEnabled dgsGridListGetSortEnabled
setSortColumn dgsGridListSetSortColumn
getSortColumn dgsGridListGetSortColumn
getEnterColumn dgsGridListGetEnterColumn
sort dgsGridListSort
setNavigationEnabled dgsGridListSetNavigationEnabled
getNavigationEnabled dgsGridListGetNavigationEnabled

Image

OOP Functions POP Functions
setImage dgsImageSetImage
getImage dgsImageGetImage
setUVSize dgsImageSetUVSize
getUVSize dgsImageGetUVSize
setUVPosition dgsImageSetUVPosition
getUVPosition dgsImageGetUVPosition

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
setWordWarpState dgsMemoSetWordWarpState
getWordWarpState dgsMemoGetWordWarpState

Label

OOP Functions POP Functions
setColor dgsLabelSetColor
getColor dgsLabelGetColor
setHorizontalAlign dgsLabelSetHorizontalAlign
getHorizontalAlign dgsLabelGetHorizontalAlign
setVerticalAlign dgsLabelSetVerticalAlign
getVerticalAlign dgsLabelGetVerticalAlign
getTextExtent dgsLabelGetTextExtent
getFontHeight dgsLabelGetFontHeight

Progress Bar

OOP Functions POP Functions
getProgress dgsProgressBarGetProgress
setProgress dgsProgressBarSetProgress
getMode dgsProgressBarGetMode
setMode dgsProgressBarSetMode
getVerticalSide dgsProgressBarGetVerticalSide
setVerticalSide dgsProgressBarSetVerticalSide
getHorizontalSide dgsProgressBarGetHorizontalSide
setHorizontalSide dgsProgressBarSetHorizontalSide

Scroll Bar

OOP Functions POP Functions
setScrollPosition dgsScrollBarSetScrollPosition
getScrollPosition dgsScrollBarGetScrollPosition
setScrollSize dgsScrollBarSetScrollSize
getScrollSize dgsScrollBarGetScrollSize
setLocked dgsScrollBarSetLocked
getLocked dgsScrollBarGetLocked

Scroll Pane

OOP Functions POP Functions
getScrollBar dgsScrollPaneGetScrollBar
setScrollPosition dgsScrollPaneSetScrollPosition
getScrollPosition dgsScrollPaneGetScrollPosition
setScrollBarState dgsScrollPaneSetScrollBarState
getScrollBarState dgsScrollPaneGetScrollBarState

Switch Button

OOP Functions POP Functions
getState dgsSwitchButtonGetState
setState dgsSwitchButtonSetState
setText dgsSwitchButtonSetText
getText dgsSwitchButtonGetText

Tab Panel

OOP Functions POP Functions
getSelectedTab dgsGetSelectedTab
setSelectedTab dgsSetSelectedTab
getTabFromID dgsTabPanelGetTabFromID
moveTab dgsTabPanelMoveTab
getTabID dgsTabPanelGetTabID
createTab 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
dgsArrowListValueChange onDgsArrowListValueChange
dgsCursorDrag onDgsCursorDrag