Release 1.0.13
- Added scrollbar to items tab - Fixed minor issues with scroll bars
This commit is contained in:
@@ -26,8 +26,8 @@ local CalcsTabClass = common.NewClass("CalcsTab", "UndoHandler", "ControlHost",
|
||||
|
||||
self.calcs = LoadModule("Modules/Calcs", self.grid)
|
||||
|
||||
self.controls.scrollBarH = common.New("ScrollBarControl", nil, 0, 0, 0, 18, 80, "HORIZONTAL")
|
||||
self.controls.scrollBarV = common.New("ScrollBarControl", nil, 0, 0, 18, 0, 80, "VERTICAL")
|
||||
self.controls.scrollBarH = common.New("ScrollBarControl", nil, 0, 0, 0, 18, 80, "HORIZONTAL", true)
|
||||
self.controls.scrollBarV = common.New("ScrollBarControl", nil, 0, 0, 18, 0, 80, "VERTICAL", true)
|
||||
end)
|
||||
|
||||
function CalcsTabClass:Load(xml, dbFileName)
|
||||
@@ -70,19 +70,24 @@ function CalcsTabClass:Save(xml)
|
||||
end
|
||||
|
||||
function CalcsTabClass:Draw(viewPort, inputEvents)
|
||||
local gridViewPort = { x = viewPort.x, y = viewPort.y }
|
||||
if self.grid.realWidth > viewPort.width then
|
||||
viewPort.height = viewPort.height - 18
|
||||
gridViewPort.height = viewPort.height - 18
|
||||
else
|
||||
gridViewPort.height = viewPort.height
|
||||
end
|
||||
if self.grid.realHeight > viewPort.height then
|
||||
viewPort.width = viewPort.width - 18
|
||||
gridViewPort.width = viewPort.width - 18
|
||||
else
|
||||
gridViewPort.width = viewPort.width
|
||||
end
|
||||
self.controls.scrollBarH.x = viewPort.x
|
||||
self.controls.scrollBarH.y = viewPort.y + viewPort.height
|
||||
self.controls.scrollBarH.width = viewPort.width
|
||||
self.controls.scrollBarH.x = gridViewPort.x
|
||||
self.controls.scrollBarH.y = gridViewPort.y + gridViewPort.height
|
||||
self.controls.scrollBarH.width = gridViewPort.width
|
||||
self.controls.scrollBarH:SetContentDimension(self.grid.realWidth, viewPort.width)
|
||||
self.controls.scrollBarV.x = viewPort.x + viewPort.width
|
||||
self.controls.scrollBarV.y = viewPort.y
|
||||
self.controls.scrollBarV.height = viewPort.height
|
||||
self.controls.scrollBarV.x = gridViewPort.x + gridViewPort.width
|
||||
self.controls.scrollBarV.y = gridViewPort.y
|
||||
self.controls.scrollBarV.height = gridViewPort.height
|
||||
self.controls.scrollBarV:SetContentDimension(self.grid.realHeight, viewPort.height)
|
||||
|
||||
self.grid.offX = viewPort.x - self.controls.scrollBarH.offset
|
||||
@@ -99,8 +104,8 @@ function CalcsTabClass:Draw(viewPort, inputEvents)
|
||||
end
|
||||
end
|
||||
end
|
||||
self.grid:ProcessInput(inputEvents, viewPort)
|
||||
self:ProcessControlsInput(inputEvents)
|
||||
self.grid:ProcessInput(inputEvents, gridViewPort)
|
||||
self:ProcessControlsInput(inputEvents, viewPort)
|
||||
|
||||
if self.grid.changeFlag then
|
||||
self.grid.changeFlag = false
|
||||
|
||||
@@ -29,7 +29,7 @@ function ControlHostClass:GetMouseOverControl()
|
||||
end
|
||||
end
|
||||
|
||||
function ControlHostClass:ProcessControlsInput(inputEvents)
|
||||
function ControlHostClass:ProcessControlsInput(inputEvents, viewPort)
|
||||
for id, event in ipairs(inputEvents) do
|
||||
if event.type == "KeyDown" then
|
||||
if self.selControl then
|
||||
@@ -38,10 +38,12 @@ function ControlHostClass:ProcessControlsInput(inputEvents)
|
||||
end
|
||||
if not self.selControl and event.key:match("BUTTON") then
|
||||
self:SelectControl()
|
||||
local mOverControl = self:GetMouseOverControl()
|
||||
if mOverControl and mOverControl.OnKeyDown then
|
||||
self:SelectControl(mOverControl:OnKeyDown(event.key, event.doubleClick))
|
||||
inputEvents[id] = nil
|
||||
if isMouseInRegion(viewPort) then
|
||||
local mOverControl = self:GetMouseOverControl()
|
||||
if mOverControl and mOverControl.OnKeyDown then
|
||||
self:SelectControl(mOverControl:OnKeyDown(event.key, event.doubleClick))
|
||||
inputEvents[id] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif event.type == "KeyUp" then
|
||||
@@ -50,8 +52,8 @@ function ControlHostClass:ProcessControlsInput(inputEvents)
|
||||
self:SelectControl(self.selControl:OnKeyUp(event.key))
|
||||
end
|
||||
inputEvents[id] = nil
|
||||
else
|
||||
local mOverControl = self:GetMouseOverControl()
|
||||
elseif isMouseInRegion(viewPort) then
|
||||
local mOverControl = self:GetMouseOverControl(viewPort)
|
||||
if mOverControl and mOverControl.OnKeyUp then
|
||||
mOverControl:OnKeyUp(event.key)
|
||||
inputEvents[id] = nil
|
||||
@@ -68,10 +70,10 @@ function ControlHostClass:ProcessControlsInput(inputEvents)
|
||||
end
|
||||
end
|
||||
|
||||
function ControlHostClass:DrawControls(...)
|
||||
function ControlHostClass:DrawControls(viewPort)
|
||||
for _, control in pairs(self.controls) do
|
||||
if control:IsShown() then
|
||||
control:Draw(...)
|
||||
control:Draw(viewPort)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -114,7 +114,7 @@ function DropDownClass:Draw()
|
||||
if type(selLabel) == "table" then
|
||||
selLabel = selLabel.label
|
||||
end
|
||||
SetViewport(x + 2, y + 2, width - 16, height - 4)
|
||||
SetViewport(x + 2, y + 2, width - height, height - 4)
|
||||
DrawString(0, 0, "LEFT", height - 4, "VAR", selLabel or "")
|
||||
SetViewport()
|
||||
if self.dropped then
|
||||
|
||||
@@ -166,7 +166,7 @@ function ImportTabClass:Draw(viewPort, inputEvents)
|
||||
self.width = viewPort.width
|
||||
self.height = viewPort.height
|
||||
|
||||
self:ProcessControlsInput(inputEvents)
|
||||
self:ProcessControlsInput(inputEvents, viewPort)
|
||||
|
||||
main:DrawBackground(viewPort)
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ local t_insert = table.insert
|
||||
local m_min = math.min
|
||||
|
||||
local ItemSlotClass = common.NewClass("ItemSlot", "DropDownControl", function(self, anchor, x, y, itemsTab, slotName, slotLabel, nodeId)
|
||||
self.DropDownControl(anchor, x, y, 320, 20, { }, function(sel)
|
||||
self.DropDownControl(anchor, x, y, 310, 20, { }, function(sel)
|
||||
if self.items[sel] ~= self.selItemId then
|
||||
self.selItemId = self.items[sel]
|
||||
itemsTab:PopulateSlots()
|
||||
|
||||
@@ -28,12 +28,12 @@ local ItemsTabClass = common.NewClass("ItemsTab", "UndoHandler", "ControlHost",
|
||||
-- Item slots
|
||||
self.slots = { }
|
||||
for index, slotName in pairs(baseSlots) do
|
||||
t_insert(self.controls, common.New("ItemSlot", {"TOPLEFT",self,"TOPLEFT"}, 100, (index - 1) * 20 + 24, self, slotName))
|
||||
t_insert(self.controls, common.New("ItemSlot", {"TOPLEFT",self,"TOPLEFT"}, 96, (index - 1) * 20 + 24, self, slotName))
|
||||
end
|
||||
self.sockets = { }
|
||||
for _, node in pairs(main.tree.nodes) do
|
||||
if node.type == "socket" then
|
||||
local socketControl = common.New("ItemSlot", {"TOPLEFT",self,"TOPLEFT"}, 100, 0, self, "Jewel "..node.id, "Socket", node.id)
|
||||
local socketControl = common.New("ItemSlot", {"TOPLEFT",self,"TOPLEFT"}, 96, 0, self, "Jewel "..node.id, "Socket", node.id)
|
||||
self.controls["socket"..node.id] = socketControl
|
||||
self.sockets[node.id] = socketControl
|
||||
end
|
||||
@@ -43,17 +43,17 @@ local ItemsTabClass = common.NewClass("ItemsTab", "UndoHandler", "ControlHost",
|
||||
-- Build item list
|
||||
self.controls.itemList = common.New("ItemList", {"TOPLEFT",self.slots[baseSlots[1]],"TOPRIGHT"}, 20, 0, 360, 308, self)
|
||||
|
||||
self.controls.selectDBLabel = common.New("LabelControl", {"TOPLEFT",self.controls.itemList,"BOTTOMLEFT"}, 0, 16, 0, 16, "^7Import from:")
|
||||
self.controls.selectDBLabel = common.New("LabelControl", {"TOPLEFT",self.controls.itemList,"BOTTOMLEFT"}, 0, 14, 0, 16, "^7Import from:")
|
||||
self.controls.selectDB = common.New("DropDownControl", {"LEFT",self.controls.selectDBLabel,"RIGHT"}, 4, 0, 150, 18, { "Uniques", "Rare Templates" })
|
||||
|
||||
-- Unique database
|
||||
self.controls.uniqueDB = common.New("ItemDB", {"TOPLEFT",self.controls.selectDBLabel,"BOTTOMLEFT"}, 0, 48, 360, 276, self, main.uniqueDB)
|
||||
self.controls.uniqueDB = common.New("ItemDB", {"TOPLEFT",self.controls.selectDBLabel,"BOTTOMLEFT"}, 0, 46, 360, 260, self, main.uniqueDB)
|
||||
self.controls.uniqueDB.shown = function()
|
||||
return self.controls.selectDB.sel == 1
|
||||
end
|
||||
|
||||
-- Rare template database
|
||||
self.controls.rareDB = common.New("ItemDB", {"TOPLEFT",self.controls.selectDBLabel,"BOTTOMLEFT"}, 0, 48, 360, 276, self, main.rareDB)
|
||||
self.controls.rareDB = common.New("ItemDB", {"TOPLEFT",self.controls.selectDBLabel,"BOTTOMLEFT"}, 0, 46, 360, 260, self, main.rareDB)
|
||||
self.controls.rareDB.shown = function()
|
||||
return self.controls.selectDB.sel == 2
|
||||
end
|
||||
@@ -84,7 +84,7 @@ local ItemsTabClass = common.NewClass("ItemsTab", "UndoHandler", "ControlHost",
|
||||
self.controls.displayItemVariant.shown = function()
|
||||
return self.displayItem.variantList and #self.displayItem.variantList > 1
|
||||
end
|
||||
self.controls.displayItemRangeLine = common.New("DropDownControl", {"TOPLEFT",self.controls.addDisplayItem,"BOTTOMLEFT"}, 0, 8, 400, 18, nil, function(sel)
|
||||
self.controls.displayItemRangeLine = common.New("DropDownControl", {"TOPLEFT",self.controls.addDisplayItem,"BOTTOMLEFT"}, 0, 8, 350, 18, nil, function(sel)
|
||||
self.controls.displayItemRangeSlider.val = self.displayItem.rangeLineList[sel].range
|
||||
end)
|
||||
self.controls.displayItemRangeLine.shown = function()
|
||||
@@ -94,6 +94,9 @@ local ItemsTabClass = common.NewClass("ItemsTab", "UndoHandler", "ControlHost",
|
||||
self.displayItem.rangeLineList[self.controls.displayItemRangeLine.sel].range = val
|
||||
itemLib.buildItemModList(self.displayItem)
|
||||
end)
|
||||
|
||||
-- Scroll bar
|
||||
self.controls.scrollBarH = common.New("ScrollBarControl", nil, 0, 0, 0, 18, 80, "HORIZONTAL", true)
|
||||
end)
|
||||
|
||||
function ItemsTabClass:Load(xml, dbFileName)
|
||||
@@ -154,6 +157,11 @@ function ItemsTabClass:Draw(viewPort, inputEvents)
|
||||
self.y = viewPort.y
|
||||
self.width = viewPort.width
|
||||
self.height = viewPort.height
|
||||
self.controls.scrollBarH.width = viewPort.width
|
||||
self.controls.scrollBarH.x = viewPort.x
|
||||
self.controls.scrollBarH.y = viewPort.y + viewPort.height - 18
|
||||
self.controls.scrollBarH:SetContentDimension(self.controls.displayItemRangeSlider:GetPos() + self.controls.displayItemRangeSlider:GetSize() - self.x, viewPort.width)
|
||||
self.x = self.x - self.controls.scrollBarH.offset
|
||||
|
||||
for id, event in ipairs(inputEvents) do
|
||||
if event.type == "KeyDown" then
|
||||
@@ -171,7 +179,7 @@ function ItemsTabClass:Draw(viewPort, inputEvents)
|
||||
end
|
||||
end
|
||||
end
|
||||
self:ProcessControlsInput(inputEvents)
|
||||
self:ProcessControlsInput(inputEvents, viewPort)
|
||||
|
||||
main:DrawBackground(viewPort)
|
||||
|
||||
@@ -236,6 +244,9 @@ function ItemsTabClass:SetDisplayItem(item)
|
||||
self.controls.displayItemVariant.list = item.variantList
|
||||
self.controls.displayItemVariant.sel = item.variant
|
||||
self:UpdateDisplayItemRangeLines()
|
||||
self.controls.scrollBarH:SetOffset(self.controls.scrollBarH.offsetMax)
|
||||
else
|
||||
self.controls.scrollBarH:SetOffset(0)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ local PopupDialogClass = common.NewClass("PopupDialog", "ControlHost", "Control"
|
||||
end
|
||||
end)
|
||||
|
||||
function PopupDialogClass:Draw()
|
||||
function PopupDialogClass:Draw(viewPort)
|
||||
local x, y = self:GetPos()
|
||||
local width, height = self:GetSize()
|
||||
-- Draw dialog background
|
||||
@@ -48,10 +48,10 @@ function PopupDialogClass:Draw()
|
||||
SetDrawColor(1, 1, 1)
|
||||
DrawString(titleX + 4, y - 7, "LEFT", 16, "VAR", title)
|
||||
-- Draw controls
|
||||
self:DrawControls()
|
||||
self:DrawControls(viewPort)
|
||||
end
|
||||
|
||||
function PopupDialogClass:ProcessInput(inputEvents)
|
||||
function PopupDialogClass:ProcessInput(inputEvents, viewPort)
|
||||
for id, event in ipairs(inputEvents) do
|
||||
if event.type == "KeyDown" then
|
||||
if event.key == "ESCAPE" then
|
||||
@@ -60,5 +60,5 @@ function PopupDialogClass:ProcessInput(inputEvents)
|
||||
end
|
||||
end
|
||||
end
|
||||
self:ProcessControlsInput(inputEvents)
|
||||
self:ProcessControlsInput(inputEvents, viewPort)
|
||||
end
|
||||
@@ -10,12 +10,17 @@ local m_max = math.max
|
||||
local m_ceil = math.ceil
|
||||
local m_floor = math.floor
|
||||
|
||||
local ScrollBarClass = common.NewClass("ScrollBarControl", "Control", function(self, anchor, x, y, width, height, step, dir)
|
||||
local ScrollBarClass = common.NewClass("ScrollBarControl", "Control", function(self, anchor, x, y, width, height, step, dir, autoHide)
|
||||
self.Control(anchor, x, y, width, height)
|
||||
self.step = step or width * 2
|
||||
self.dir = dir or "VERTICAL"
|
||||
self.offset = 0
|
||||
self.enabled = false
|
||||
if autoHide then
|
||||
self.shown = function()
|
||||
return self.enabled
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
function ScrollBarClass:SetContentDimension(conDim, viewDim)
|
||||
@@ -109,6 +114,9 @@ function ScrollBarClass:Draw()
|
||||
local enabled = self:IsEnabled()
|
||||
local mOver, mOverComp = self:IsMouseOver()
|
||||
local dir = self.dir
|
||||
if not IsKeyDown("LEFTBUTTON") then
|
||||
self.dragging = false
|
||||
end
|
||||
if self.dragging then
|
||||
local cursorX, cursorY = GetCursorPos()
|
||||
if self.dir == "HORIZONTAL" then
|
||||
@@ -283,7 +291,7 @@ function ScrollBarClass:OnKeyDown(key)
|
||||
end
|
||||
|
||||
function ScrollBarClass:OnKeyUp(key)
|
||||
if not self:IsShown() or not self:IsEnabled() or self:GetProperty("locked") then
|
||||
if not self:IsShown() or not self:IsEnabled() or self:GetProperty("locked") then
|
||||
return
|
||||
end
|
||||
if key == "LEFTBUTTON" then
|
||||
@@ -300,5 +308,9 @@ function ScrollBarClass:OnKeyUp(key)
|
||||
self.holdRepeating = nil
|
||||
self.holdPauseTime = nil
|
||||
end
|
||||
elseif key == "WHEELDOWN" then
|
||||
self:Scroll(1)
|
||||
elseif key == "WHEELUP" then
|
||||
self:Scroll(-1)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -120,7 +120,7 @@ function SkillsTabClass:Draw(viewPort, inputEvents)
|
||||
end
|
||||
end
|
||||
end
|
||||
self:ProcessControlsInput(inputEvents)
|
||||
self:ProcessControlsInput(inputEvents, viewPort)
|
||||
|
||||
main:DrawBackground(viewPort)
|
||||
|
||||
@@ -135,7 +135,7 @@ function SkillsTabClass:CreateGemSlot(index)
|
||||
self.gemSlots[index] = slot
|
||||
|
||||
-- Gem name specification
|
||||
slot.nameSpec = common.New("EditControl", nil, 0, 0, 200, 20, nil, nil, "[ %a]", 30, function(buf)
|
||||
slot.nameSpec = common.New("EditControl", nil, 0, 0, 200, 20, nil, nil, "[ %a']", 30, function(buf)
|
||||
if not self.displaySkill.gemList[index] then
|
||||
self.displaySkill.gemList[index] = { nameSpec = "", level = 1, quality = 0 }
|
||||
end
|
||||
|
||||
@@ -89,7 +89,7 @@ function TreeTabClass:Draw(viewPort, inputEvents)
|
||||
end
|
||||
end
|
||||
end
|
||||
self:ProcessControlsInput(inputEvents)
|
||||
self:ProcessControlsInput(inputEvents, viewPort)
|
||||
|
||||
self.viewer:Draw(self.build, viewPort, inputEvents)
|
||||
|
||||
|
||||
@@ -289,7 +289,6 @@ function buildMode:Save(xml)
|
||||
end
|
||||
|
||||
function buildMode:OnFrame(inputEvents)
|
||||
self:ProcessControlsInput(inputEvents)
|
||||
for id, event in ipairs(inputEvents) do
|
||||
if event.type == "KeyDown" then
|
||||
if event.key == "s" and IsKeyDown("CTRL") then
|
||||
@@ -298,6 +297,7 @@ function buildMode:OnFrame(inputEvents)
|
||||
end
|
||||
end
|
||||
end
|
||||
self:ProcessControlsInput(inputEvents, main.viewPort)
|
||||
|
||||
-- Update contents of ascendancy class dropdown
|
||||
wipeTable(self.controls.ascendDrop.list)
|
||||
@@ -343,25 +343,24 @@ function buildMode:OnFrame(inputEvents)
|
||||
end
|
||||
self.controls.mainSkillDrop.sel = self.mainSkillIndex
|
||||
|
||||
|
||||
-- Draw contents of current tab
|
||||
local sideBarWidth = 312
|
||||
local viewPort = {
|
||||
local tabViewPort = {
|
||||
x = sideBarWidth,
|
||||
y = 32,
|
||||
width = main.screenW - sideBarWidth,
|
||||
height = main.screenH - 32
|
||||
}
|
||||
if self.viewMode == "IMPORT" then
|
||||
self.importTab:Draw(viewPort, inputEvents)
|
||||
self.importTab:Draw(tabViewPort, inputEvents)
|
||||
elseif self.viewMode == "TREE" then
|
||||
self.treeTab:Draw(viewPort, inputEvents)
|
||||
self.treeTab:Draw(tabViewPort, inputEvents)
|
||||
elseif self.viewMode == "SKILLS" then
|
||||
self.skillsTab:Draw(viewPort, inputEvents)
|
||||
self.skillsTab:Draw(tabViewPort, inputEvents)
|
||||
elseif self.viewMode == "ITEMS" then
|
||||
self.itemsTab:Draw(viewPort, inputEvents)
|
||||
self.itemsTab:Draw(tabViewPort, inputEvents)
|
||||
elseif self.viewMode == "CALCS" then
|
||||
self.calcsTab:Draw(viewPort, inputEvents)
|
||||
self.calcsTab:Draw(tabViewPort, inputEvents)
|
||||
end
|
||||
|
||||
-- Draw top bar background
|
||||
|
||||
@@ -64,12 +64,11 @@ function listMode:OnFrame(inputEvents)
|
||||
end
|
||||
end
|
||||
end
|
||||
self:ProcessControlsInput(inputEvents)
|
||||
self:ProcessControlsInput(inputEvents, main.viewPort)
|
||||
|
||||
SetDrawColor(0.5, 0.5, 0.5)
|
||||
DrawImage(main.tree.assets.Background1.handle, 0, 0, main.screenW, main.screenH, 0, 0, main.screenW / 100, main.screenH / 100)
|
||||
main:DrawBackground(main.viewPort)
|
||||
|
||||
self:DrawControls()
|
||||
self:DrawControls(main.viewPort)
|
||||
end
|
||||
|
||||
function listMode:BuildList()
|
||||
|
||||
@@ -123,6 +123,12 @@ function jsonToLua(json)
|
||||
return json:gsub("%[","{"):gsub("%]","}"):gsub('"(%d[%d%.]*)":','[%1]='):gsub('"([^"]+)":','["%1"]='):gsub("\\/","/"):gsub("{(%w+)}","{[0]=%1}")
|
||||
end
|
||||
|
||||
-- Check if mouse is currently inside area defined by region.x, region.y, region.width, region.height
|
||||
function isMouseInRegion(region)
|
||||
local cursorX, cursorY = GetCursorPos()
|
||||
return cursorX >= region.x and cursorX < region.x + region.width and cursorY >= region.y and cursorY < region.y + region.height
|
||||
end
|
||||
|
||||
-- Make a copy of a table and all subtables
|
||||
function copyTable(tbl)
|
||||
local out = {}
|
||||
|
||||
@@ -153,16 +153,18 @@ function main:OnFrame()
|
||||
self:CallMode("Init", unpack(self.modeArgs))
|
||||
end
|
||||
|
||||
self.viewPort = { x = 0, y = 0, width = self.screenW, height = self.screenH }
|
||||
|
||||
if self.popups[1] then
|
||||
self.popups[1]:ProcessInput(self.inputEvents)
|
||||
self.popups[1]:ProcessInput(self.inputEvents, self.viewPort)
|
||||
wipeTable(self.inputEvents)
|
||||
else
|
||||
self:ProcessControlsInput(self.inputEvents)
|
||||
self:ProcessControlsInput(self.inputEvents, self.viewPort)
|
||||
end
|
||||
|
||||
self:CallMode("OnFrame", self.inputEvents)
|
||||
self:CallMode("OnFrame", self.inputEvents, self.viewPort)
|
||||
|
||||
self:DrawControls()
|
||||
self:DrawControls(self.viewPort)
|
||||
|
||||
if self.popups[1] then
|
||||
SetDrawLayer(10)
|
||||
|
||||
@@ -7,6 +7,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
Launch.lua = Launch.lua
|
||||
LaunchInstall.lua = LaunchInstall.lua
|
||||
README.md = README.md
|
||||
UpdateApply.lua = UpdateApply.lua
|
||||
UpdateCheck.lua = UpdateCheck.lua
|
||||
EndProjectSection
|
||||
|
||||
10
README.md
10
README.md
@@ -46,3 +46,13 @@ Head over to the [Releases](https://github.com/Openarl/PathOfBuilding/releases)
|
||||

|
||||

|
||||

|
||||
|
||||
## Changelog
|
||||
### 1.0.13 - 2016/09/01
|
||||
* Added a scroll bar to the Items tab to fix the issue with low screen resolutions
|
||||
* The scroll bar will automatically jump to the right when you start editing an item, then jump back when you save it
|
||||
* This might be a little disorienting; need feedback on this
|
||||
* Also fixed some minor issues with scroll bars (mouse wheel should now work on all of them)
|
||||
### 1.0.12 - 2016/09/01
|
||||
* Updated tree to 2.4.0
|
||||
* Added latest patch note changes
|
||||
Reference in New Issue
Block a user