diff --git a/docs/objects/Menubar.md b/docs/objects/Menubar.md index 6d3f665..cf35304 100644 --- a/docs/objects/Menubar.md +++ b/docs/objects/Menubar.md @@ -1 +1,296 @@ -WIP \ No newline at end of file +Menubars are like lists but instead of being vertical, they are horizontal. Imagine you are creating a Operating System and you would like to add a taskbar, menubars would be exactly what you need, because they are also scrollable, which means they have endless entries. + +If you want to access values inside items this is how the table for single items is made (just a example): + +```lua +item = { + text="1. Entry", + bgCol=colors.black, + fgCol=colors.white + args = {} +} +``` + +Here are all possible functions available for menubars. Remember menubar inherits from [Object](objects/Object.md) + +## addItem +Adds a item into the menubar + +#### Parameters: +1. `string` The entry name +2. `number|color` unique default background color +3. `number|color` unique default text color +4. `any` any value - you could access this later in a :onChange() event (you need to use :getValue()). + +#### Returns: +1. `object` The object in use + +#### Usage: +* Creates a default menubar with 3 entries +```lua +local mainFrame = basalt.createFrame("myFirstFrame"):show() +local aMenubar = mainFrame:addMenubar("myFirstMenubar"):show() +aMenubar:addItem("1. Entry") +aMenubar:addItem("2. Entry",colors.yellow) +aMenubar:addItem("3. Entry",colors.yellow,colors.green) +``` + +## removeItem +Removes a item from the menubar + +#### Parameters: +1. `number` The index which should get removed + +#### Returns: +1. `object` The object in use + +#### Usage: +* Creates a default menubar with 3 entries and removes the second one. +```lua +local mainFrame = basalt.createFrame("myFirstFrame"):show() +local aMenubar = mainFrame:addMenubar("myFirstMenubar"):show() +aMenubar:addItem("1. Entry") +aMenubar:addItem("2. Entry",colors.yellow) +aMenubar:addItem("3. Entry",colors.yellow,colors.green) +aMenubar:removeItem(2) +``` + +## editItem +Edits item from the menubar + +#### Parameters: +1. `number` The index which should be edited +2. `string` The new item name +3. `number` the new item background color +4. `number` The new item text color +5. `any` New additional information + +#### Returns: +1. `object` The object in use + +#### Usage: +* Creates a default menubar with 3 entries and edits the second one. +```lua +local mainFrame = basalt.createFrame("myFirstFrame"):show() +local aMenubar = mainFrame:addMenubar("myFirstMenubar"):show() +aMenubar:addItem("1. Entry") +aMenubar:addItem("2. Entry",colors.yellow) +aMenubar:addItem("3. Entry",colors.yellow,colors.green) +aMenubar:editItem(2, "Still 2. Entry", colors.red) +``` + +## getItem +Returns a item by index + +#### Parameters: +1. `number` The index which should be returned + +#### Returns: +1. `table` The item table example: {text="1. Entry", bgCol=colors.black, fgCol=colors.white} + +#### Usage: +* Creates a default menubar with 3 entries and edits the second one. +```lua +local mainFrame = basalt.createFrame("myFirstFrame"):show() +local aMenubar = mainFrame:addMenubar("myFirstMenubar"):show() +aMenubar:addItem("1. Entry") +aMenubar:addItem("2. Entry",colors.yellow) +aMenubar:addItem("3. Entry",colors.yellow,colors.green) +aMenubar:editItem(2, "Still 2. Entry", colors.red) +``` + +## getItemCount +Returns the current item count + +#### Returns: +1. `number` The item list count + +#### Usage: +* Creates a default menubar with 3 entries and prints the current item count. +```lua +local mainFrame = basalt.createFrame("myFirstFrame"):show() +local aMenubar = mainFrame:addMenubar("myFirstMenubar"):show() +aMenubar:addItem("1. Entry") +aMenubar:addItem("2. Entry",colors.yellow) +aMenubar:addItem("3. Entry",colors.yellow,colors.green) +basalt.debug(aMenubar:getItemCount()) +``` + +## getAll +Returns all items as table + +#### Returns: +1. `table` All items + +#### Usage: +* Creates a default menubar with 3 entries and prints a table. +```lua +local mainFrame = basalt.createFrame("myFirstFrame"):show() +local aMenubar = mainFrame:addMenubar("myFirstMenubar"):show() +aMenubar:addItem("1. Entry") +aMenubar:addItem("2. Entry",colors.yellow) +aMenubar:addItem("3. Entry",colors.yellow,colors.green) +basalt.debug(aMenubar:getAll()) +``` + +## setSpace +Sets the space between entries + +#### Parameters: +1. `number` The space between each entry + +#### Returns: +1. `object` The object in use + +#### Usage: +* Creates a default menubar with 3 entries and changes the space to 3. +```lua +local mainFrame = basalt.createFrame("myFirstFrame"):show() +local aMenubar = mainFrame:addMenubar("myFirstMenubar"):show() +aMenubar:addItem("1. Entry") +aMenubar:addItem("2. Entry",colors.yellow) +aMenubar:addItem("3. Entry",colors.yellow,colors.green) +aMenubar:setSpace(3) +``` + + + +## setScrollable +Makes the menubar scrollable. The menubar will be scrollable as soon as the menubar is to small for all the entries. + +#### Parameters: +1. `boolean` if this menubar should be scrollable or not + +#### Returns: +1. `object` The object in use + +#### Usage: +* Creates a default menubar with 3 entries and makes it scrollable. +```lua +local mainFrame = basalt.createFrame("myFirstFrame"):show() +local aMenubar = mainFrame:addMenubar("myFirstMenubar"):show() +aMenubar:addItem("1. Entry") +aMenubar:addItem("2. Entry",colors.yellow) +aMenubar:addItem("3. Entry",colors.yellow,colors.green) +aMenubar:setScrollable(true) +``` + +## selectItem +selects a item in the list (same as a player would click on a item) + +#### Parameters: +1. `number` The index which should get selected + +#### Returns: +1. `object` The object in use + +#### Usage: +* Creates a default menubar with 3 entries and selects the second entry. +```lua +local mainFrame = basalt.createFrame("myFirstFrame"):show() +local aMenubar = mainFrame:addMenubar("myFirstMenubar"):show() +aMenubar:addItem("1. Entry") +aMenubar:addItem("2. Entry",colors.yellow) +aMenubar:addItem("3. Entry",colors.yellow,colors.green) +aMenubar:selectItem(2) +``` +## clear +Removes all items. + +#### Returns: +1. `object` The object in use + +#### Usage: +* Creates a default menubar with 3 entries and removes them immediatley. Which makes no sense. +```lua +local mainFrame = basalt.createFrame("myFirstFrame"):show() +local aMenubar = mainFrame:addMenubar("myFirstMenubar"):show() +aMenubar:addItem("1. Entry") +aMenubar:addItem("2. Entry",colors.yellow) +aMenubar:addItem("3. Entry",colors.yellow,colors.green) +aMenubar:clear() +``` + +## getItemIndex +returns the item index of the currently selected item + +#### Returns: +1. `number` The current index + +#### Usage: +* Creates a default menubar with 3 entries selects the second entry and prints the currently selected index. +```lua +local mainFrame = basalt.createFrame("myFirstFrame"):show() +local aMenubar = mainFrame:addMenubar("myFirstMenubar"):show() +aMenubar:addItem("1. Entry") +aMenubar:addItem("2. Entry",colors.yellow) +aMenubar:addItem("3. Entry",colors.yellow,colors.green) +aMenubar:selectItem(2) +basalt.debug(aMenubar:getItemIndex()) +``` + +## setSelectedItem +Sets the background and the foreground of the item which is currently selected + +#### Parameters: +1. `number|color` The background color which should be used +2. `number|color` The text color which should be used + +#### Returns: +1. `object` The object in use + +#### Usage: +* Creates a default menubar with 4 entries and sets the selection background color to green. +```lua +local mainFrame = basalt.createFrame("myFirstFrame"):show() +local aMenubar = mainFrame:addMenubar("myFirstMenubar"):show() +aMenubar:addItem("1. Entry") +aMenubar:addItem("2. Entry") +aMenubar:addItem("3. Entry") +aMenubar:addItem("4. Entry") +aMenubar:setSelectedItem(colors.green) +``` + +## setPositionOffset +Sets the offset of the menubar (the same as you would scroll) - default is 0 + +#### Parameters: +1. `number` The offset value + +#### Returns: +1. `object` The object in use + +#### Usage: +* Creates a default menubar with 6 entries and sets the offset to 3. +```lua +local mainFrame = basalt.createFrame("myFirstFrame"):show() +local aMenubar = mainFrame:addMenubar("myFirstMenubar"):show() +aMenubar:addItem("1. Entry") +aMenubar:addItem("2. Entry") +aMenubar:addItem("3. Entry") +aMenubar:addItem("4. Entry") +aMenubar:addItem("5. Entry") +aMenubar:addItem("6. Entry") +aMenubar:setPositionOffset(3) +``` + +## getPositionOffset +returns the current offset + +#### Returns: +1. `number` Current offset + +#### Usage: +* Creates a default menubar with 6 entries and sets the offset to 3. +```lua +local mainFrame = basalt.createFrame("myFirstFrame"):show() +local aMenubar = mainFrame:addMenubar("myFirstMenubar"):show() +aMenubar:addItem("1. Entry") +aMenubar:addItem("2. Entry") +aMenubar:addItem("3. Entry") +aMenubar:addItem("4. Entry") +aMenubar:addItem("5. Entry") +aMenubar:addItem("6. Entry") +aMenubar:setPositionOffset(3) +basalt.debug(aMenubar:getPositionOffset()) +```