OS transparency disabling fixes

This commit is contained in:
Igor Timofeev 2018-05-31 19:38:22 +03:00
parent 2e79a724fb
commit 49e6425522
4 changed files with 38 additions and 34 deletions

View File

@ -50,12 +50,16 @@ FTPButton.colors.disabled = prevButton.colors.disabled
FTPButton.disabled = not MineOSNetwork.internetProxy FTPButton.disabled = not MineOSNetwork.internetProxy
local sidebarContainer = window:addChild(GUI.container(1, 4, 20, 1)) local sidebarContainer = window:addChild(GUI.container(1, 4, 20, 1))
sidebarContainer.panel = sidebarContainer:addChild(GUI.panel(1, 1, sidebarContainer.width, 1, 0xFFFFFF, MineOSCore.properties.transparencyEnabled and 0.3)) local sidebarPanel = sidebarContainer:addChild(GUI.object(1, 1, sidebarContainer.width, 1, 0xFFFFFF))
sidebarPanel.draw = function(object)
buffer.drawRectangle(object.x, object.y, object.width, object.height, 0xFFFFFF, 0x0, " ", MineOSCore.properties.transparencyEnabled and 0.3)
end
sidebarContainer.itemsContainer = sidebarContainer:addChild(GUI.container(1, 1, sidebarContainer.width, 1)) sidebarContainer.itemsContainer = sidebarContainer:addChild(GUI.container(1, 1, sidebarContainer.width, 1))
local searchInput = window:addChild(GUI.input(1, 2, 36, 1, 0xFFFFFF, 0x4B4B4B, 0xA5A5A5, 0xFFFFFF, 0x2D2D2D, nil, MineOSCore.localization.search, true)) local searchInput = window:addChild(GUI.input(1, 2, 36, 1, 0xFFFFFF, 0x4B4B4B, 0xA5A5A5, 0xFFFFFF, 0x2D2D2D, nil, MineOSCore.localization.search, true))
local iconField = window:addChild(MineOSInterface.iconField(1, 4, 1, 1, 2, 2, 0x3C3C3C, 0x3C3C3C, MineOSPaths.desktop)) local iconField = window:addChild(MineOSInterface.iconField(1, 4, 1, 1, 2, 2, 0x3C3C3C, 0x969696, MineOSPaths.desktop))
local scrollBar = window:addChild(GUI.scrollBar(1, 4, 1, 1, 0xC3C3C3, 0x4B4B4B, iconFieldYOffset, 1, 1, 1, 1, true)) local scrollBar = window:addChild(GUI.scrollBar(1, 4, 1, 1, 0xC3C3C3, 0x4B4B4B, iconFieldYOffset, 1, 1, 1, 1, true))
scrollBar.eventHandler = nil scrollBar.eventHandler = nil
@ -433,8 +437,8 @@ end
local function calculateSizes(width, height) local function calculateSizes(width, height)
sidebarContainer.height = height - 3 sidebarContainer.height = height - 3
sidebarContainer.panel.width = sidebarContainer.width sidebarPanel.width = sidebarContainer.width
sidebarContainer.panel.height = sidebarContainer.height sidebarPanel.height = sidebarContainer.height
sidebarContainer.itemsContainer.width = sidebarContainer.width sidebarContainer.itemsContainer.width = sidebarContainer.width
sidebarContainer.itemsContainer.height = sidebarContainer.height sidebarContainer.itemsContainer.height = sidebarContainer.height

4
OS.lua
View File

@ -375,7 +375,7 @@ local function createOSWidgets()
icon.onRightClick = function(icon, e1, e2, e3, e4, ...) icon.onRightClick = function(icon, e1, e2, e3, e4, ...)
local indexOf = icon:indexOf() local indexOf = icon:indexOf()
local menu = MineOSInterface.addContextMenu(MineOSInterface.mainContainer, e3, e4) local menu = GUI.addContextMenu(MineOSInterface.mainContainer, e3, e4)
menu.onMenuClosed = function() menu.onMenuClosed = function()
icon.selected = false icon.selected = false
@ -456,7 +456,7 @@ local function createOSWidgets()
end end
icon.onRightClick = function(icon, e1, e2, e3, e4) icon.onRightClick = function(icon, e1, e2, e3, e4)
local menu = MineOSInterface.addContextMenu(MineOSInterface.mainContainer, e3, e4) local menu = GUI.addContextMenu(MineOSInterface.mainContainer, e3, e4)
menu.onMenuClosed = function() menu.onMenuClosed = function()
icon.selected = false icon.selected = false

View File

@ -307,8 +307,3 @@ MineOSCore.setPackageUnloading(MineOSCore.properties.packageUnloading)
----------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------
return MineOSCore return MineOSCore

View File

@ -81,35 +81,37 @@ function MineOSInterface.cacheIconSource(name, path)
return MineOSInterface.iconsCache[name] return MineOSInterface.iconsCache[name]
end end
local function iconDrawNameLine(x, y, line, icon)
local lineLength = unicode.len(line)
local x = math.floor(x - lineLength / 2)
if icon.selected then
buffer.drawRectangle(x, y, lineLength, 1, icon.colors.selection, 0x0, " ", icon.colors.selectionTransparency)
end
buffer.drawText(x, y, icon.colors.text, line)
end
local function iconDraw(icon) local function iconDraw(icon)
local selectionTransparency = MineOSCore.properties.transparencyEnabled and 0.6
local text = MineOSCore.properties.showExtension and icon.name or icon.nameWithoutExtension local text = MineOSCore.properties.showExtension and icon.name or icon.nameWithoutExtension
local xCenter, yText = icon.x + MineOSInterface.iconHalfWidth, icon.y + MineOSInterface.iconImageHeight + 1 local xCenter, yText = icon.x + MineOSInterface.iconHalfWidth, icon.y + MineOSInterface.iconImageHeight + 1
local function iconDrawNameLine(y, line)
local lineLength = unicode.len(line)
local x = math.floor(xCenter - lineLength / 2)
if icon.selected then
buffer.drawRectangle(x, y, lineLength, 1, icon.colors.selection, 0x0, " ", selectionTransparency)
end
buffer.drawText(x, y, icon.colors.text, line)
end
local charIndex = 1 local charIndex = 1
for lineIndex = 1, MineOSInterface.iconTextHeight do for lineIndex = 1, MineOSInterface.iconTextHeight do
if lineIndex < MineOSInterface.iconTextHeight then if lineIndex < MineOSInterface.iconTextHeight then
iconDrawNameLine(xCenter, yText, unicode.sub(text, charIndex, charIndex + icon.width - 1), icon) iconDrawNameLine(yText, unicode.sub(text, charIndex, charIndex + icon.width - 1))
charIndex, yText = charIndex + icon.width, yText + 1 charIndex, yText = charIndex + icon.width, yText + 1
else else
iconDrawNameLine(xCenter, yText, string.limit(unicode.sub(text, charIndex, -1), icon.width, "center"), icon) iconDrawNameLine(yText, string.limit(unicode.sub(text, charIndex, -1), icon.width, "center"))
end end
end end
local xImage = icon.x + MineOSInterface.iconImageHorizontalOffset local xImage = icon.x + MineOSInterface.iconImageHorizontalOffset
if icon.selected then if icon.selected then
local xSelection = xImage - 1 local xSelection = xImage - 1
buffer.drawText(xSelection, icon.y - 1, icon.colors.selection, string.rep("", MineOSInterface.iconImageWidth + 2), icon.colors.selectionTransparency) buffer.drawText(xSelection, icon.y - 1, icon.colors.selection, string.rep("", MineOSInterface.iconImageWidth + 2), selectionTransparency)
buffer.drawText(xSelection, icon.y + MineOSInterface.iconImageHeight, icon.colors.selection, string.rep("", MineOSInterface.iconImageWidth + 2), icon.colors.selectionTransparency) buffer.drawText(xSelection, icon.y + MineOSInterface.iconImageHeight, icon.colors.selection, string.rep("", MineOSInterface.iconImageWidth + 2), selectionTransparency)
buffer.drawRectangle(xSelection, icon.y, MineOSInterface.iconImageWidth + 2, MineOSInterface.iconImageHeight, icon.colors.selection, 0x0, " ", icon.colors.selectionTransparency) buffer.drawRectangle(xSelection, icon.y, MineOSInterface.iconImageWidth + 2, MineOSInterface.iconImageHeight, icon.colors.selection, 0x0, " ", selectionTransparency)
end end
if icon.image then if icon.image then
@ -278,8 +280,7 @@ function MineOSInterface.icon(x, y, path, textColor, selectionColor)
icon.colors = { icon.colors = {
text = textColor, text = textColor,
selection = selectionColor, selection = selectionColor
selectionTransparency = 0.6
} }
icon.path = path icon.path = path
@ -480,7 +481,7 @@ local function iconFieldBackgroundObjectEventHandler(mainContainer, object, e1,
mainContainer:drawOnScreen() mainContainer:drawOnScreen()
else else
local menu = MineOSInterface.addContextMenu(MineOSInterface.mainContainer, e3, e4) local menu = GUI.addContextMenu(MineOSInterface.mainContainer, e3, e4)
local subMenu = menu:addSubMenu(MineOSCore.localization.create) local subMenu = menu:addSubMenu(MineOSCore.localization.create)
@ -592,7 +593,11 @@ local function iconFieldBackgroundObjectDraw(object)
y1, y2 = y2, y1 y1, y2 = y2, y1
end end
if MineOSCore.properties.transparencyEnabled then
buffer.drawRectangle(x1, y1, x2 - x1 + 1, y2 - y1 + 1, object.parent.colors.selection, 0x0, " ", 0.6) buffer.drawRectangle(x1, y1, x2 - x1 + 1, y2 - y1 + 1, object.parent.colors.selection, 0x0, " ", 0.6)
else
buffer.drawFrame(x1, y1, x2 - x1 + 1, y2 - y1 + 1, object.parent.colors.selection)
end
for i = 1, #object.parent.iconsContainer.children do for i = 1, #object.parent.iconsContainer.children do
local xCenter, yCenter = object.parent.iconsContainer.children[i].x + MineOSCore.properties.iconWidth / 2, object.parent.iconsContainer.children[i].y + MineOSCore.properties.iconHeight / 2 local xCenter, yCenter = object.parent.iconsContainer.children[i].x + MineOSCore.properties.iconWidth / 2, object.parent.iconsContainer.children[i].y + MineOSCore.properties.iconHeight / 2
@ -675,9 +680,9 @@ end
---------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------
function MineOSInterface.addContextMenu(...) local overrideGUIDropDownMenu = GUI.dropDownMenu
local menu = GUI.addContextMenu(...) GUI.dropDownMenu = function(...)
local menu = overrideGUIDropDownMenu(...)
menu.colors.transparency.background = MineOSCore.properties.transparencyEnabled and GUI.CONTEXT_MENU_BACKGROUND_TRANSPARENCY menu.colors.transparency.background = MineOSCore.properties.transparencyEnabled and GUI.CONTEXT_MENU_BACKGROUND_TRANSPARENCY
menu.colors.transparency.shadow = MineOSCore.properties.transparencyEnabled and GUI.CONTEXT_MENU_SHADOW_TRANSPARENCY menu.colors.transparency.shadow = MineOSCore.properties.transparencyEnabled and GUI.CONTEXT_MENU_SHADOW_TRANSPARENCY
@ -705,7 +710,7 @@ function MineOSInterface.iconRightClick(icon, e1, e2, e3, e4)
local selectedIcons = icon.parent.parent:getSelectedIcons() local selectedIcons = icon.parent.parent:getSelectedIcons()
local menu = MineOSInterface.addContextMenu(MineOSInterface.mainContainer, e3, e4) local menu = GUI.addContextMenu(MineOSInterface.mainContainer, e3, e4)
menu.onMenuClosed = function() menu.onMenuClosed = function()
icon.parent.parent:deselectAll() icon.parent.parent:deselectAll()