Script v1.7.1.0
- AI
- Animals
- Contracts
- Debug
- Economy
- Effects
- Events
- Farms
- GUI
- AnimalScreen
- AnimationElement
- BitmapElement
- BoxLayoutElement
- BreadcrumbsElement
- ButtonElement
- ButtonOverlay
- ChatWindow
- CheckedOptionElement
- ClearElement
- ContextActionDisplay
- DialogElement
- FieldInfoDisplay
- FillLevelsDisplay
- FlowLayoutElement
- FocusManager
- FrameElement
- FrameReferenceElement
- GameInfoDisplay
- GamePausedDisplay
- Gui
- GuiDataSource
- GuiElement
- GuiMixin
- GuiOverlay
- GuiProfile
- GuiSoundPlayer
- GuiTopDownCamera
- GuiUtils
- HUDDisplayElement
- HUDElement
- HUDFrameElement
- HUDPopupMessage
- HUDTextDisplay
- IndexChangeSubjectMixin
- IndexStateElement
- InGameIcon
- IngameMap
- IngameMapElement
- InputGlyphElement
- InputHelpDisplay
- ListElement
- ListItemElement
- MapHotspot
- MapOverlayGenerator
- MixerWagonHUDExtension
- MultiTextOptionElement
- MultiValueTween
- Overlay
- PagingElement
- PlaySampleMixin
- RenderElement
- RoundStatusBar
- ScreenElement
- SettingsModel
- SideNotification
- SliderElement
- SpeakerDisplay
- SpeedMeterDisplay
- StableListElement
- StatusBar
- TabbedMenu
- TabbedMenuFrameElement
- TabbedMenuWithDetails
- TableElement
- TableHeaderElement
- TextElement
- TextInputElement
- TimerElement
- ToggleButtonElement
- TopNotification
- Tween
- TweenSequence
- VehicleHUDExtension
- VehicleSchemaDisplay
- VideoElement
- Handtools
- I3d
- Materials
- Misc
- Objects
- Placeables
- Player
- Shop
- Sounds
- Specializations
- Triggers
- Utils
- Vehicles
- Weather
Engine v1.7.1.0
- AI
- Animation
- Camera
- Entity
- Fillplanes
- General
- I3D
- Input
- Lighting
- Math
- Network
- Node
- Overlays
- Particle System
- Physics
- Rendering
- Scenegraph
- Shape
- Sound
- Spline
- String
- Terrain Detail
- Text Rendering
- Tire Track
- XML
- general
Foundation Reference
IndexChangeSubjectMixin
DescriptionAdd this mixin to a GuiElement to implement an observer pattern for index changes (e.g. paging, options, lists).Functions
addIndexChangeObserver
DescriptionAdd an index change observer with a callback.Definition
addIndexChangeObserver(guiElement Decorated, observer Observer, indexChangeCallback Function(observer,)Arguments
guiElement | Decorated | GuiElement instance which has received this method |
observer | Observer | object instance |
indexChangeCallback | Function(observer, | index, count), where index is the new index and count the current number of indexable items |
48 | function IndexChangeSubjectMixin.addIndexChangeObserver(guiElement, observer, indexChangeCallback) |
49 | guiElement[IndexChangeSubjectMixin].callbacks[observer] = indexChangeCallback |
50 | end |
addTo
DescriptionSee GuiMixin:addTo()Definition
addTo()Code
32 | function IndexChangeSubjectMixin:addTo(guiElement) |
33 | if IndexChangeSubjectMixin:superClass().addTo(self, guiElement) then |
34 | guiElement.addIndexChangeObserver = IndexChangeSubjectMixin.addIndexChangeObserver |
35 | guiElement.notifyIndexChange = IndexChangeSubjectMixin.notifyIndexChange |
36 | |
37 | return true |
38 | else |
39 | return false |
40 | end |
41 | end |
clone
DescriptionClone this mixin's state from a source to a destination GuiElement instance.Definition
clone()Code
67 | function IndexChangeSubjectMixin:clone(srcGuiElement, dstGuiElement) |
68 | dstGuiElement[IndexChangeSubjectMixin].callbacks = {unpack(srcGuiElement[IndexChangeSubjectMixin])} |
69 | end |
new
DescriptionDefinitionnew()Code
23 | function IndexChangeSubjectMixin:new() |
24 | local self = GuiMixin.new(IndexableElementMixin_mt, IndexChangeSubjectMixin) |
25 | self.callbacks = {} -- {observer=callback} |
26 | |
27 | return self |
28 | end |
notifyIndexChange
DescriptionNotify observers of an index change.Definition
notifyIndexChange(guiElement Decorated, index New, count Indexable)Arguments
guiElement | Decorated | GuiElement instance which has received this method |
index | New | index |
count | Indexable | item count |
57 | function IndexChangeSubjectMixin.notifyIndexChange(guiElement, index, count) |
58 | local callbacks = guiElement[IndexChangeSubjectMixin].callbacks |
59 | |
60 | for observer, callback in pairs(callbacks) do |
61 | callback(observer, index, count) |
62 | end |
63 | end |