mwseMCMTemplate⚓︎
A Template is the top level component in MCM. It determines the overall layout of the menu. Can be created with a table or a string (name).
This type inherits the following: mwseMCMComponent
Properties⚓︎
childIndent
⚓︎
The left padding size in pixels. Used on all the child components.
Returns:
result
(integer, nil)
childSpacing
⚓︎
The bottom border size in pixels. Used on all the child components.
Returns:
result
(integer, nil)
class
⚓︎
Every MCM component has a unique string indentifier specific to that component. These strings are the filename of the file implementing a component. These are found in core\\mcm\\components
.
Returns:
result
(string)
componentType
⚓︎
The type of this component.
Returns:
result
("Template")
config
⚓︎
Stores a config that should be used by this mod's Setting
s. Sub-configs can be accessed by passing a configKey
to any Page
s nested inside this template. If provided, this config will be used to generate mwseMCMTableVariable
s for any mwseMCMSetting
s made inside this template.
Returns:
result
(table, nil)
createContentsContainer
⚓︎
This method creates the contents of a component. Not every component implements this method.
Returns:
result
(nil, fun(self: mwseMCMComponent, outerContainer: tes3uiElement))
currentPage
⚓︎
The currently displayed page in this Template.
Returns:
result
(mwseMCMPage)
defaultConfig
⚓︎
Stores a default config that should be used by this mod's Setting
s. This will initialize the defaultSetting
field of any mwseMCMTableVariable
s created for this mod.
Returns:
result
(table, nil)
description
⚓︎
If in a Sidebar Page, the description will be shown on mouseover.
Returns:
result
(string, nil)
elements
⚓︎
This dictionary-style table holds all the UI elements of the Template, for easy access.
Returns:
result
(mwseMCMTemplateElements)
headerImagePath
⚓︎
The path to the header image. It's relative to Data Files/
. The image must have power-of-2 dimensions (i.e. 16, 32, 64, 128, 256, 512, 1024, etc.).
Returns:
result
(string, nil)
indent
⚓︎
The left padding size in pixels. Only used if the childIndent
isn't set on the parent component.
Returns:
result
(integer)
inGameOnly
⚓︎
If true, then this component will be disabled when on the main menu.
Returns:
result
(boolean)
label
⚓︎
The text of the component. Not all component types have a label.
Returns:
result
(string)
mouseOvers
⚓︎
This array of UI elements will have an event handler registered to trigger "MCM:MouseOver" event. For more info, see registerMouseOverElements method.
Returns:
result
(tes3uiElement[], nil)
name
⚓︎
The name field is the mod name, used to register the MCM, and is displayed in the mod list on the lefthand pane.
Returns:
result
(string)
onClose
⚓︎
A function which will be called when the menu is closed. Useful for saving your config after exiting the MCM.
Use template:saveOnClose(configFilename, configTable)
to assign a simple save function to onClose. If you want to do more on closing, assign a custom function to onClose
and call mwse.saveConfig(configFilename, configTable)
when you want to save.
Returns:
result
(nil, fun(modConfigContainer: tes3uiElement))
onSearch
⚓︎
A custom search handler function. This function should return true if this mod Template should show up in search results for given searchText
.
Returns:
result
(nil, fun(searchText: string): boolean)
paddingBottom
⚓︎
The bottom border size in pixels. Only used if the childSpacing
is unset on the parent component.
Returns:
result
(integer)
pages
⚓︎
Pages in this Template.
Returns:
result
(mwseMCMPage[])
parentComponent
⚓︎
Returns:
result
(mwseMCMComponent, nil)
postCreate
⚓︎
Custom formatting function to make adjustments to any element saved in self.elements
.
Returns:
result
(nil, fun(self: mwseMCMComponent))
sCancel
⚓︎
Set to the value of sCancel
GMST.
Returns:
result
(string)
searchChildDescriptions
⚓︎
If true, when the user searches the MCM list, all the pages and settings in this MCM template will be searched over. The matching will be performed on setting description
fields.
Returns:
result
(boolean)
searchChildLabels
⚓︎
If true, when the user searches the MCM list, all the pages and settings in this MCM template will be searched over. The matching will be performed on setting label
and text
fields.
Returns:
result
(boolean)
showDefaultSetting
⚓︎
If true
, then each Page
created inside this Template
will have showDefaultSetting = true
. \z
This is equivalent to manually writing showDefaultSetting = true
in the constructor of each Page
created in this Template
.
Returns:
result
(boolean)
sNo
⚓︎
Set to the value of sNo
GMST.
Returns:
result
(string)
sOff
⚓︎
Set to the value of sOff
GMST.
Returns:
result
(string)
sOK
⚓︎
Set to the value of sOK
GMST.
Returns:
result
(string)
sOn
⚓︎
Set to the value of sOn
GMST.
Returns:
result
(string)
sYes
⚓︎
Set to the value of sYes
GMST.
Returns:
result
(string)
Methods⚓︎
checkDisabled
⚓︎
Returns true if the component should be disabled.
Componets with a variable:
- True if the Component's variable has
inGameOnly
field set to true, and the game is on the main menu. For components with multiple subcomponent (Category), the check is done for each subcomponent.
Components without a variable:
- True if the Component's
inGameOnly
field is set to true, and the game is on the main menu.
local result = myObject:checkDisabled()
Returns:
result
(boolean)
clickTab
⚓︎
Destroys the currently display page and creates the given page as the new current page.
myObject:clickTab(thisPage)
Parameters:
thisPage
(mwseMCMPage)
create
⚓︎
This method creates the UI elements that comprise a component. To call this method, the mwseMCMComponent-derived type needs to have createContentsContainer
method implemented.
myObject:create(parentBlock)
Parameters:
parentBlock
(tes3uiElement)
createContentsContainer
⚓︎
This method creates the UI elements specific to a Template.
myObject:createContentsContainer(parentBlock)
Parameters:
parentBlock
(tes3uiElement)
createExclusionsPage
⚓︎
Creates a new Exclusions Page in this Template.
local page = myObject:createExclusionsPage({ showHeader = ..., showReset = ..., label = ..., variable = ..., config = ..., defaultConfig = ..., configKey = ..., defaultSetting = ..., filters = ..., description = ..., toggleText = ..., leftListLabel = ..., rightListLabel = ..., showAllBlocked = ..., indent = ..., childIndent = ..., paddingBottom = ..., childSpacing = ..., inGameOnly = ... })
Parameters:
data
(table)showHeader
(boolean): Default:false
. The page's label will only be created if set to true.showReset
(boolean): Default:false
. When set to true, the ExclusionsPage will have a Reset button. Clicking on it will set thevariable.value
to thevariable.defaultSetting
value.label
(string): The label field is displayed in the tab for that page at the top of the menu. Defaults to: "Page {number}".variable
(mwseMCMVariable, mwseMCMSettingNewVariable): Optional. The Variable used to store blocked list entries.config
(table): Default:parentComponent.config
. The config to use when creating amwseMCMTableVariable
for thisExclusionsPage
. If provided, it will override the config stored inparentComponent
. Otherwise, the value inparentComponent
will be used.defaultConfig
(table): Default:parentComponent.defaultConfig
. ThedefaultConfig
to use when creating amwseMCMTableVariable
for thisExclusionsPage
. If provided, it will override thedefaultConfig
stored inparentComponent
. Otherwise, the value inparentComponent
will be used.configKey
(string, number): Optional. TheconfigKey
used to create a newmwseMCMTableVariable
. If this is provided, along with aconfig
(which may be inherited from theparentComponent
), then a newmwseMCMTableVariable
variable will be created for thisExclusionsPage
.defaultSetting
(table<string, boolean>): Optional. IfdefaultSetting
wasn't passed in thevariable
table, can be passed here. The new variable will be initialized to this value. If not provided, then the value indefaultConfig
will be used, if possible.filters
(mwseMCMExclusionsPageFilter[]): A list of filters. Filters control which items will appear in the lists of the Exclusions Page. At least one filter is required. See the filter page for description.description
(string): Optional. Displayed at the top of the page above the lists.toggleText
(string): Optional. The text for the button that toggles filtered items from one list to another. The default is a localised version of "Toggle Filtered".leftListLabel
(string): Optional. The label on the left list. The default is a localised version of "Blocked".rightListLabel
(string): Optional. The label on the right list. The default is a localised version of "Allowed".showAllBlocked
(boolean): Default:false
. When set to true, the left list shows all items in the blocked table, regardless of the filter being used.indent
(integer): Default:6
. The left padding size in pixels. Only used if thechildIndent
isn't set on the parent component.childIndent
(integer): Optional. The left padding size in pixels. Used on all the child components.paddingBottom
(integer): Default:4
. The bottom border size in pixels. Only used if thechildSpacing
is unset on the parent component.childSpacing
(integer): Optional. The bottom border size in pixels. Used on all the child components.inGameOnly
(boolean): Default:false
.
Returns:
page
(mwseMCMExclusionsPage)
createFilterPage
⚓︎
Creates a new Filter Page in this Template.
local page = myObject:createFilterPage({ showHeader = ..., label = ..., noScroll = ..., showReset = ..., config = ..., defaultConfig = ..., configKey = ..., description = ..., placeholderSearchText = ..., components = ..., indent = ..., childIndent = ..., paddingBottom = ..., childSpacing = ..., inGameOnly = ..., postCreate = ... })
Parameters:
data
(table, string): Optional. If passing only a string, it will be used as the Filter Page's label.showHeader
(boolean): Default:false
. The page's label will only be created if set to true.label
(string): Optional. The label field is displayed in the tab for that page at the top of the menu. Defaults to: "Page {number}".noScroll
(boolean): Default:false
. When set to true, the page will not have a scrollbar. Particularly useful if you want to use a ParagraphField, which is not compatible with scroll panes.showReset
(boolean): Default:false
. When set to true, the Page will have a Reset button. Clicking on it will set thevariable.value
of all the setting on the page to their respectivedefaultSetting
values.config
(table): Optional. If provided, thisconfig
will be used to generatemwseMCMTableVariable
s for anymwseMCMSetting
s made inside thisCategory
/Page
. i.e., this parameter provides an alternative to explicitly constructing new variables. Subtables of thisconfig
can be accessed by passing aconfigKey
to anyCategory
that is nested inside this one.defaultConfig
(table): Optional. Stores a default config that should be used by this mod'sSetting
s. This will initialize thedefaultSetting
field of anymwseMCMTableVariable
s created for this mod. Sub-configs can be accessed by passing aconfigKey
to anyCategory
that is nested inside this one.configKey
(string, number): Optional. This can be used to access subtables of theconfig
anddefaultConfig
stored in this component'sparentComponent
. This ensures that theconfig
anddefaultConfig
stay synchronized.description
(string): Optional. Default sidebar text shown when the mouse isn't hovering over a component inside this Sidebar Page. It will be added to right column as a mwseMCMInfo.placeholderSearchText
(string): Default:Search...
. The text shown in the search bar when no text is entered.components
(mwseMCMComponent.new.data[]): Optional. Use this if you want to directly create all the nested components in this Page. This table is described at each Component'snew
method.indent
(integer): Default:6
. The left padding size in pixels. Only used if thechildIndent
isn't set on the parent component.childIndent
(integer): Optional. The left padding size in pixels. Used on all the child components.paddingBottom
(integer): Default:4
. The bottom border size in pixels. Only used if thechildSpacing
is unset on the parent component.childSpacing
(integer): Optional. The bottom border size in pixels. Used on all the child components.inGameOnly
(boolean): Default:false
.postCreate
(fun(self: mwseMCMFilterPage)): Optional. Can define a custom formatting function to make adjustments to any element saved inself.elements
.
Returns:
page
(mwseMCMFilterPage)
createInnerContainer
⚓︎
Creates component's innerContainer UI element inside given parentBlock
, and stores it in the self.elements.innerContainer
. The innerContainer will add self.indent
additional padding on the left if the component has a label.
myObject:createInnerContainer(parentBlock)
Parameters:
parentBlock
(tes3uiElement)
createLabel
⚓︎
If a Template has headerImagePath defined, this method creates an image UI element from image at given path. If not, creates a label UI block with self.label
text.
myObject:createLabel(parentBlock)
Parameters:
parentBlock
(tes3uiElement)
createLabelBlock
⚓︎
Creates component's labelBlock UI element inside given parentBlock
, and stores it in the self.elements.labelBlock
and self.mouseOvers
.
myObject:createLabelBlock(parentBlock)
Parameters:
parentBlock
(tes3uiElement)
createMouseOverPage
⚓︎
Creates a new MouseOverPage in this Template.
local page = myObject:createMouseOverPage({ showHeader = ..., label = ..., noScroll = ..., config = ..., defaultConfig = ..., configKey = ..., components = ..., indent = ..., childIndent = ..., paddingBottom = ..., childSpacing = ..., inGameOnly = ..., postCreate = ... })
Parameters:
data
(table): Optional.showHeader
(boolean): Default:false
. The page's label will only be created if set to true.label
(string): Optional. The page label.noScroll
(boolean): Default:true
. When set to true, the page will not have a scrollbar. Particularly useful if you want to use a ParagraphField, which is not compatible with scroll panes.config
(table): Optional. If provided, thisconfig
will be used to generatemwseMCMTableVariable
s for anymwseMCMSetting
s made inside thisCategory
/Page
. i.e., this parameter provides an alternative to explicitly constructing new variables. Subtables of thisconfig
can be accessed by passing aconfigKey
to anyCategory
that is nested inside this one.defaultConfig
(table): Optional. Stores a default config that should be used by this mod'sSetting
s. This will initialize thedefaultSetting
field of anymwseMCMTableVariable
s created for this mod. Sub-configs can be accessed by passing aconfigKey
to anyCategory
that is nested inside this one.configKey
(string, number): Optional. This can be used to access subtables of theconfig
anddefaultConfig
stored in this component'sparentComponent
. This ensures that theconfig
anddefaultConfig
stay synchronized.components
(mwseMCMComponent.new.data[]): Optional. Use this if you want to directly create all the nested components in this Page. This table is described at each Component'snew
method.indent
(integer): Default:6
. The left padding size in pixels. Only used if thechildIndent
isn't set on the parent component.childIndent
(integer): Optional. The left padding size in pixels. Used on all the child components.paddingBottom
(integer): Default:4
. The bottom border size in pixels. Only used if thechildSpacing
is unset on the parent component.childSpacing
(integer): Optional. The bottom border size in pixels. Used on all the child components.inGameOnly
(boolean): Default:false
.postCreate
(fun(self: mwseMCMMouseOverPage)): Optional. Can define a custom formatting function to make adjustments to any element saved inself.elements
.
Returns:
page
(mwseMCMMouseOverPage)
createOuterContainer
⚓︎
Creates component's outerContainer UI element inside given parentBlock
, and stores it in the self.elements.outerContainer
and self.mouseOvers
. The outerContainer holds all the other UI elements that comprise a component.
myObject:createOuterContainer(parentBlock)
Parameters:
parentBlock
(tes3uiElement)
createPage
⚓︎
Creates a new Page in this Template.
local page = myObject:createPage({ showHeader = ..., label = ..., noScroll = ..., showReset = ..., config = ..., defaultConfig = ..., configKey = ..., showDefaultSetting = ..., components = ..., indent = ..., childIndent = ..., paddingBottom = ..., childSpacing = ..., inGameOnly = ..., postCreate = ... })
Parameters:
data
(table, string): Optional. If passing only a string, it will be used as the Page's label.showHeader
(boolean): Default:false
. The page's label will only be created if set to true.label
(string): Optional. The label field is displayed in the tab for that page at the top of the menu. Defaults to: "Page {number}".noScroll
(boolean): Default:false
. When set to true, the page will not have a scrollbar. Particularly useful if you want to use a ParagraphField, which is not compatible with scroll panes.showReset
(boolean): Default:false
. When set to true, the Page will have a Reset button. Clicking on it will set thevariable.value
of all the setting on the page to their respectivedefaultSetting
values.config
(table): Optional. If provided, thisconfig
will be used to generatemwseMCMTableVariable
s for anymwseMCMSetting
s made inside thisCategory
/Page
. i.e., this parameter provides an alternative to explicitly constructing new variables. Subtables of thisconfig
can be accessed by passing aconfigKey
to anyCategory
that is nested inside this one.defaultConfig
(table): Optional. Stores a default config that should be used by this mod'sSetting
s. This will initialize thedefaultSetting
field of anymwseMCMTableVariable
s created for this mod. Sub-configs can be accessed by passing aconfigKey
to anyCategory
that is nested inside this one.configKey
(string, number): Optional. This can be used to access subtables of theconfig
anddefaultConfig
stored in this component'sparentComponent
. This ensures that theconfig
anddefaultConfig
stay synchronized.showDefaultSetting
(boolean): Default:parentComponent.showDefaultSetting
. Iftrue
, then eachSetting
created inside thisPage
/Category
will haveshowDefaultSetting = true
. This is equivalent to manually writingshowDefaultSetting = true
in the constructor of eachSetting
created in thisPage
/Category
.components
(mwseMCMComponent.new.data[]): Optional. Use this if you want to directly create all the nested components in this Page. This table is described at each Component'snew
method.indent
(integer): Default:6
. The left padding size in pixels. Only used if thechildIndent
isn't set on the parent component.childIndent
(integer): Optional. The left padding size in pixels. Used on all the child components.paddingBottom
(integer): Default:4
. The bottom border size in pixels. Only used if thechildSpacing
is unset on the parent component.childSpacing
(integer): Optional. The bottom border size in pixels. Used on all the child components.inGameOnly
(boolean): Default:false
.postCreate
(fun(self: mwseMCMPage)): Optional. Can define a custom formatting function to make adjustments to any element saved inself.elements
.
Returns:
page
(mwseMCMPage)
createSideBarPage
⚓︎
Creates a new Sidebar Page in this Template.
local page = myObject:createSideBarPage({ showHeader = ..., label = ..., noScroll = ..., showReset = ..., config = ..., defaultConfig = ..., configKey = ..., showDefaultSetting = ..., description = ..., components = ..., indent = ..., childIndent = ..., paddingBottom = ..., childSpacing = ..., inGameOnly = ..., postCreate = ... })
Parameters:
data
(table, string): Optional. If passing only a string, it will be used as the Sidebar Page's label.showHeader
(boolean): Default:false
. The page's label will only be created if set to true.label
(string): Optional. The label field is displayed in the tab for that page at the top of the menu. Defaults to: "Page {number}".noScroll
(boolean): Default:false
. When set to true, the page will not have a scrollbar. Particularly useful if you want to use a ParagraphField, which is not compatible with scroll panes.showReset
(boolean): Default:false
. When set to true, the Page will have a Reset button. Clicking on it will set thevariable.value
of all the setting on the page to their respectivedefaultSetting
values.config
(table): Optional. If provided, thisconfig
will be used to generatemwseMCMTableVariable
s for anymwseMCMSetting
s made inside thisCategory
/Page
. i.e., this parameter provides an alternative to explicitly constructing new variables. Subtables of thisconfig
can be accessed by passing aconfigKey
to anyCategory
that is nested inside this one.defaultConfig
(table): Optional. Stores a default config that should be used by this mod'sSetting
s. This will initialize thedefaultSetting
field of anymwseMCMTableVariable
s created for this mod. Sub-configs can be accessed by passing aconfigKey
to anyCategory
that is nested inside this one.configKey
(string, number): Optional. This can be used to access subtables of theconfig
anddefaultConfig
stored in this component'sparentComponent
. This ensures that theconfig
anddefaultConfig
stay synchronized.showDefaultSetting
(boolean): Default:parentComponent.showDefaultSetting
. Iftrue
, then eachSetting
created inside thisPage
/Category
will haveshowDefaultSetting = true
. This is equivalent to manually writingshowDefaultSetting = true
in the constructor of eachSetting
created in thisPage
/Category
.description
(string): Optional. Default sidebar text shown when the mouse isn't hovering over a component inside this Sidebar Page. It will be added to right column as a mwseMCMInfo.components
(mwseMCMComponent.new.data[]): Optional. Use this if you want to directly create all the nested components in this Page. This table is described at each Component'snew
method.indent
(integer): Default:6
. The left padding size in pixels. Only used if thechildIndent
isn't set on the parent component.childIndent
(integer): Optional. The left padding size in pixels. Used on all the child components.paddingBottom
(integer): Default:4
. The bottom border size in pixels. Only used if thechildSpacing
is unset on the parent component.childSpacing
(integer): Optional. The bottom border size in pixels. Used on all the child components.inGameOnly
(boolean): Default:false
.postCreate
(fun(self: mwseMCMSideBarPage)): Optional. Can define a custom formatting function to make adjustments to any element saved inself.elements
.
Returns:
page
(mwseMCMSideBarPage)
createSubcomponentsContainer
⚓︎
This method creates the pageBlock UI element and the first page of the Template.
myObject:createSubcomponentsContainer(parentBlock)
Parameters:
parentBlock
(tes3uiElement)
createTab
⚓︎
This method creates a button for given page in the tabsBlock UI elements of the Template. The button has an event handler registered on tes3.uiEvent.mouseClick that calls self:clickTab(page)
.
myObject:createTab(page)
Parameters:
page
(mwseMCMPage)
createTabsBlock
⚓︎
This method creates the outerTabsBlock, previousTabButton, tabsBlock and nextTabButton UI elements of the Template. The page tabs aren't created if the Template contains only one page.
myObject:createTabsBlock(parentBlock)
Parameters:
parentBlock
(tes3uiElement)
disable
⚓︎
This method disables the component's UI elements. That includes: changing the color of the UI elements to the tes3.palette.disabledColor
and setting button widget state to tes3.uiState.disabled
.
myObject:disable()
enable
⚓︎
Enables the component's UI elements. That includes: changing the color of the UI elements to the tes3.palette.normalColor
and registering handlers for tes3.uiEvent.mouseClick
for buttons.
myObject:enable()
getMouseOverText
⚓︎
Retrieves the text that this component should display in any related mouseOverInfo
s. This method currently utilized to display this component's description whenever the component is in a SideBarPage
.
Primarily intended for internal use.
local text = myObject:getMouseOverText()
Returns:
text
(string, nil): The text to display. Returningnil
means that themouseOverInfo
should display text from a different source. e.g. from thedescription
of the relevantSideBarPage
.
new
⚓︎
Creates a new Template.
local template = myObject:new({ name = ..., label = ..., config = ..., defaultConfig = ..., showDefaultSetting = ..., headerImagePath = ..., onClose = ..., searchChildLabels = ..., searchChildDescriptions = ..., onSearch = ..., pages = ..., indent = ..., childIndent = ..., paddingBottom = ..., childSpacing = ..., inGameOnly = ..., postCreate = ..., class = ..., parentComponent = ... })
Parameters:
data
(table)name
(string): Optional. The name field is the mod name, used to register the MCM, and is displayed in the mod list on the lefthand pane.label
(string): Optional. Used in place ofname
if that argument isn't passed. You need to pass at least one of thename
andlabel
arguments. IfheaderImagePath
is not passed, a UI element will be created withlabel
as text.config
(table): Optional. Stores a config that should be used by this mod'sSetting
s. Sub-configs can be accessed by passing aconfigKey
to anyPage
s nested inside this template. If provided, this config will be used to generatemwseMCMTableVariable
s for anymwseMCMSetting
s made inside this template.defaultConfig
(table): Optional. Stores a default config that should be used by this mod'sSetting
s. This will initialize thedefaultSetting
field of anymwseMCMTableVariable
s created for this mod.showDefaultSetting
(boolean): Default:parentComponent.showDefaultSetting
. Iftrue
, then eachPage
created inside thisTemplate
will haveshowDefaultSetting = true
. This is equivalent to manually writingshowDefaultSetting = true
in the constructor of eachPage
created in thisTemplate
.headerImagePath
(string): Optional. Set it to display an image at the top of your menu. Path is relative toData Files/
. The image must have power-of-2 dimensions (i.e. 16, 32, 64, 128, 256, 512, 1024, etc.).onClose
(fun(modConfigContainer: tes3uiElement)): Optional. Set this to a function which will be called when the menu is closed. Useful for saving variables, such as TableVariable.searchChildLabels
(boolean): Default:true
. If true, default search handler will search through all the page and settinglabel
andtext
fields in this MCM template.searchChildDescriptions
(boolean): Default:true
. If true, default search handler will search through all the page and settingdescription
fields in this MCM template.onSearch
(fun(searchText: string): boolean): Optional. A custom search handler function. This function should return true if this mod Template should show up in search results for givensearchText
.pages
(mwseMCMPage.new.data[]): Optional. You can create pages for the template directly here. The entries in the array must specify the class of the page.indent
(integer): Default:12
. The left padding size in pixels. Only used if thechildIndent
isn't set on the parent component.childIndent
(integer): Optional. The left padding size in pixels. Used on all the child components.paddingBottom
(integer): Default:4
. The bottom border size in pixels. Only used if thechildSpacing
is unset on the parent component.childSpacing
(integer): Optional. The bottom border size in pixels. Used on all the child components.inGameOnly
(boolean): Default:false
.postCreate
(fun(self: mwseMCMTemplate)): Optional. Can define a custom formatting function to make adjustments to any element saved inself.elements
.class
(string): Optional.parentComponent
(mwseMCMComponent): Optional.
Returns:
template
(mwseMCMTemplate)
onSearchInternal
⚓︎
Performs searching routine for given searchText
.
local result = myObject:onSearchInternal(searchText)
Parameters:
searchText
(string)
Returns:
result
(boolean): True if givensearchText
matches this MCM template.
printComponent
⚓︎
Prints the component table to the mwse.log
. If a component is passed, it will be printed. If called without arguments, the component it was called on will be printed.
myObject:printComponent(component)
Parameters:
component
(table): Default:self
.
register
⚓︎
A convenience function that registers the mod's configuration menu using its Template. In addition, sets self:onSearchInternal
as the onSearch
handler.
You don't need to call mwse.registerModConfig
or mwse.mcm.register
if calling this function.
myObject:register()
registerMouseOverElements
⚓︎
Registers an event handler on each given UI element for the tes3.uiEvent.mouseOver
and tes3.uiEvent.mouseLeave
that will trigger "MCM:MouseOver" event. That event is used by the MCM to update the sidebar on the mwseMCMSideBarPage.
myObject:registerMouseOverElements(mouseOverList)
Parameters:
mouseOverList
(tes3uiElement[]): Optional. If this argument isn't passed, does nothing.
saveOnClose
⚓︎
This method assigns a new function to onClose
field that calls mwse.saveConfig
with given parameters.
myObject:saveOnClose(fileName, config)
Parameters:
fileName
(string)config
(unknown)
setCustomSearchHandler
⚓︎
This method assigns a custom search handler for the Template. This function should return true if this mod should show up in search results for given searchText
.
myObject:setCustomSearchHandler(callback)
Parameters:
callback
(nil, fun(searchText: string): boolean)