📄 settingrearrangelistview.luac.lua
字号:
-- Decompiled using luadec 1.0 by sztupy (http://winmo.sztupy.hu)
-- Command line was: -l2 ;;;5;;4,10,16,42,43;4;8,9,12,88,132;2;8;4,8; 40b75be6_manila.luac
trace("SettingReArrangeListView is loading.")
require("scrollphysics")
require("machine_status_svc")
require("CheckboxControl")
ItemSizeWidth = 480
ItemSizeHeight = 80
LVPositionX = -240
LVPositionY = 288
LVWidth = 480
LVHeight = 636
StartMovedIndex = nil
EndMovedIndex = nil
CenterY = 400
MovingObjPosDiffY = -5
NumItemsInOnePage = 8
UpLimit = 80
DownLimit = 720
FakeMovingObjHitArea._visible = false
g_bRearrangeFlag = false
if MachineStatus().HomeRSKPath.Value == "" then
HomeRskPath = "Manila://programs.page"
else
HomeRskPath = MachineStatus().HomeRSKPath.Value
end
ReArrangePages = class()
ReArrangePages.__init = function(l_1_0, l_1_1, l_1_2, l_1_3, l_1_4)
l_1_0.ListView = l_1_1
l_1_0.Selector = l_1_3
l_1_0.ConfiguredManager = l_1_2
l_1_0.MovingObj = l_1_4
l_1_0.CurrentOffset = 0
l_1_0.MaxOffset = 0
g_bRearrangeFlag = false
l_1_0.CheckBoxArray = {}
collection = l_1_0.ConfiguredManager:GetConfiguredItemList()
l_1_0:InitialLayout()
l_1_0:Generate()
l_1_0._request = _request
l_1_0._request.NavigateOutTo:connect(l_1_0.Destroy, l_1_0)
l_1_0.ListView.onMouseDown:connect(l_1_0.OnMouseDown, l_1_0)
l_1_0.ListView.onMouseUp:connect(l_1_0.OnMouseUp, l_1_0)
l_1_0.ListView.onMouseMove:connect(l_1_0.OnMouseMove, l_1_0)
l_1_0.ConfiguredManager.OnItemMoved:connect(l_1_0.Generate, l_1_0)
end
ReArrangePages.Destroy = function(l_2_0)
l_2_0.ListView.onMouseDown:disconnect(l_2_0.OnMouseDown, l_2_0)
l_2_0.ListView.onMouseUp:disconnect(l_2_0.OnMouseUp, l_2_0)
l_2_0.ListView.onMouseMove:disconnect(l_2_0.OnMouseMove, l_2_0)
l_2_0.ConfiguredManager.OnItemMoved:disconnect(l_2_0.Generate, l_2_0)
end
ReArrangePages.InitialLayout = function(l_3_0)
trace("[ReArrangePages] InitialLayout")
local l_3_1 = TileLayout()
l_3_1:SetItemSize(ItemSizeWidth, ItemSizeHeight, 0)
l_3_1.DisableScrollClamping = true
l_3_1.BringSelectedIntoView = false
l_3_1:DisableMomentum()
l_3_1.DisableVirtualization = true
l_3_1.SelectionNode = l_3_0.Selector
l_3_0.ListView:SetLayout(l_3_1)
l_3_0.ListView.Position.x = LVPositionX
l_3_0.ListView.Position.y = LVPositionY
l_3_0.ListView.Viewport.x = LVWidth
l_3_0.ListView.Viewport.y = LVHeight
end
ReArrangePages.Generate = function(l_4_0)
trace("[ReArrangePages] Generate")
trace("[SettingReArrangeListview] : count = " .. collection:GetCount())
ItemListGenerator = LibraryGeneratorConfiguredData(collection, l_4_0.ListView:GetMovie(), l_4_0.ListView.ComponentLibraryName, l_4_0.ListView.ComponentLibraryID)
ItemListGenerator.ItemCreated:connect(l_4_0.ItemCreated, l_4_0)
ItemListGenerator.ItemDestroyed:connect(l_4_0.ItemDestroyed, l_4_0)
l_4_0.ListView:SetGenerator(ItemListGenerator)
l_4_0.CurrentOffset = 0
l_4_0.Scrollable_UP = true
l_4_0.Scrollable_DOWN = true
if ListPhysics then
ListPhysics:DisconnectMouseEvents()
ListPhysics = nil
end
if ListPhysics == nil then
ListPhysics = ScrollPhysics(l_4_0.ListView, l_4_0.ListView, ReArrangePages.HandleListSelection)
ListPhysics:ConnectMouseEvents()
end
end
ReArrangePages.ItemCreated = function(l_5_0, l_5_1, l_5_2)
local l_5_3 = l_5_2.Namespace:FindName("TabText")
l_5_3.String = l_5_1.strTitle
local l_5_4 = l_5_2.Namespace:FindName("TabIcon")
trace("Page Name: " .. l_5_1.strPageName)
local l_5_5 = nil
l_5_5 = string.gsub(l_5_1.strPageName, "Manila://", "")
trace("tempIconPath: " .. l_5_5)
l_5_4:SetTexture("\\windows\\HTC\\Assets\\Images\\rearrange\\" .. l_5_5 .. ".qtc")
l_5_1.strIconPath = l_5_5 .. ".qtc"
local l_5_6 = l_5_2.Namespace:FindName("CheckboxComponent")
local l_5_7 = false
local l_5_8 = l_5_2.Namespace:FindName("CheckboxHitArea")
l_5_8.Tag = l_5_1
if l_5_1.strPageName == "Manila://home.page" or l_5_1.strPageName == "Manila://settings.page" or l_5_1.strPageName == HomeRskPath then
l_5_6._visible = false
l_5_6.Duration = 0
else
InitializeCheckbox(l_5_6, l_5_1.nEnable == 1)
l_5_8.onRelease:connect(l_5_0.OnCheckBoxRelease, l_5_0)
end
local itnum = ItemListGenerator:GetIndexForItem(l_5_2)
l_5_0.CheckBoxArray[itnum] = l_5_1.nEnable
end
ReArrangePages.ItemDestroyed = function(l_6_0, l_6_1)
local l_6_2 = l_6_1.Namespace:FindName("CheckboxHitArea")
l_6_2.onRelease:disconnect(l_6_0.OnCheckBoxRelease, l_6_0)
end
ReArrangePages.OnMouseDown = function(l_7_0, l_7_1)
trace("[ReArrangePages] OnMouseDown")
local l_7_2 = l_7_0.ListView:GetIndexAtMousePoint(l_7_1._xmouse, l_7_1._ymouse)
local l_7_3 = collection
local l_7_4 = l_7_3:GetItem(l_7_2)
selected_page = l_7_4.strPageName
selected_title = l_7_4.strTitle
selected_enable = l_7_4.nEnable
selected_icon = l_7_4.strIconPath
trace("Index: " .. tostring(l_7_2) .. ", Icon: " .. selected_icon .. ", Title: " .. selected_title .. ", Eable: " .. tostring(selected_enable))
if l_7_1._xmouse > 70 then
trace("mouse down end")
return
end
if l_7_2 < 0 or selected_page == "Manila://home.page" then
trace("mouse down end")
return
end
StartMovedIndex = l_7_2
trace("selected_icon: " .. selected_icon)
FakeMovingTabIcon:SetTexture("\\windows\\HTC\\Assets\\Images\\rearrange\\" .. selected_icon)
FakeMovingText.String = selected_title
trace("selected_page:" .. selected_page)
if selected_page == "Manila://settings.page" or selected_page == HomeRskPath then
FakeMovingCheckbox._visible = false
else
FakeMovingCheckbox._visible = true
end
local l_7_5 = FakeMovingCheckbox.Namespace:FindName("CheckboxComponent")
if selected_enable == 1 then
InitializeCheckbox(FakeMovingCheckbox, true)
else
InitializeCheckbox(FakeMovingCheckbox, true)
end
l_7_0.MovingObj.Position.x = l_7_0.ListView.Position.x
l_7_0.MovingObj.Position.y = -l_7_0.ListView._ymouse + MovingObjPosDiffY + CenterY
l_7_0.MovingObj._visible = true
FakeMovingObjHitArea._visible = true
ControlListViewGroup._visible = true
ListPhysics:DisconnectMouseEvents()
local l_7_6 = l_7_0.ListView:GetGenerator():GetCount() - NumItemsInOnePage
if l_7_6 > 0 then
l_7_0.MaxOffset = l_7_6 * ItemSizeHeight + NumItemsInOnePage
else
l_7_0.MaxOffset = 0
end
l_7_0.CurrentOffset = l_7_0.ListView:GetVerticalScrollOffset()
ConfigListView.Opacity.value = 50
trace("mouse down end")
end
ReArrangePages.OnMouseMove = function(l_8_0, l_8_1)
local l_8_2 = FakeMovingObjHitArea._visible
if l_8_2 == true then
l_8_2 = l_8_1._ymouse
if l_8_2 < UpLimit then
return
end
l_8_2 = l_8_1._ymouse
if DownLimit < l_8_2 then
return
end
l_8_2 = l_8_0.MovingObj
l_8_2 = l_8_2.Position
l_8_2.y = -l_8_1._ymouse + MovingObjPosDiffY + CenterY
end
end
ReArrangePages.OnMouseUp = function(l_9_0, l_9_1)
trace("[ReArrangePages] OnMouseUp")
local l_9_2 = l_9_0.ListView:GetIndexAtMousePoint(l_9_1._xmouse, l_9_1._ymouse)
if l_9_2 == 0 then
l_9_2 = 1
end
if l_9_1._ymouse <= 60 and l_9_1._ymouse > 0 then
l_9_2 = 1
end
EndMovedIndex = l_9_2
if not FakeMovingObjHitArea._visible then
trace("[ReArrangePages] Fake Obj visible false")
EndMovedIndex = nil
StartMovedIndex = nil
else
if StartMovedIndex == EndMovedIndex then
trace("[ReArrangePages] StartMovedIndex == EndMovedIndex")
EndMovedIndex = nil
StartMovedIndex = nil
ListPhysics:ConnectMouseEvents()
end
end
l_9_0.StartMovedIndex = StartMovedIndex
l_9_0.EndMovedIndex = EndMovedIndex
if l_9_0.StartMovedIndex ~= nil and l_9_0.EndMovedIndex ~= nil then
trace("[ReArrangePages] MoveItem")
l_9_0.ConfiguredManager:MoveItem(l_9_0.StartMovedIndex, l_9_0.EndMovedIndex)
g_bRearrangeFlag = true
end
l_9_0.MovingObj._visible = true
FakeMovingObjHitArea._visible = false
ControlListViewGroup._visible = false
ConfigListView.Opacity.value = 100
l_9_0.StartMovedIndex = nil
l_9_0.EndMovedIndex = nil
end
ReArrangePages.OnCheckBoxRelease = function(l_10_0, l_10_1)
local l_10_2 = l_10_1.Namespace:FindName("CheckboxHitArea")
local l_10_3 = l_10_1.Namespace:FindName("CheckboxComponent")
ToggleCheckbox(l_10_3)
l_10_2.Tag.nEnable = l_10_3.Tag.Value and 1 or 0
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -