From b579a201f52508fef1d482c4e505edd2a6fb27a2 Mon Sep 17 00:00:00 2001 From: Igor Timofeev Date: Sun, 27 Sep 2015 01:23:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=20=D0=BF=D0=B0=D1=80=D1=83?= =?UTF-8?q?=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B9=20=D0=B8=20=D1=83?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D0=BB=20=D0=B8=D0=B7=20=D0=BD=D0=B8=D1=85=20?= =?UTF-8?q?=D0=B1=D1=8B=D0=B4=D0=BB=D0=BE=D0=BA=D0=BE=D0=B4.=20=D0=94?= =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D1=84=D1=83=D0=BD=D0=BA?= =?UTF-8?q?=D1=86=D0=B8=D1=8E=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BF=D0=BE=20=D1=88=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD?= =?UTF-8?q?=D1=83.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/ECSAPI.lua | 89 ++++++++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 42 deletions(-) diff --git a/lib/ECSAPI.lua b/lib/ECSAPI.lua index be734744..4c4542df 100644 --- a/lib/ECSAPI.lua +++ b/lib/ECSAPI.lua @@ -1097,66 +1097,71 @@ function ECSAPI.askForReplaceFile(path) end end +--Проверить имя файла на соответствие критериям +function ECSAPI.checkName(name, path) + --Если ввели хуйню какую-то, то + if name == "" or name == " " or name == nil then + ECSAPI.error("Неверное имя файла.") + return false + else + --Если файл с новым путем уже существует, то + if fs.exists(path .. name) then + ECSAPI.error("Файл \"".. name .. "\" уже имеется в этом месте.") + return false + --А если все заебок, то + else + return true + end + end +end + --Переименование файлов (для операционки) function ECSAPI.rename(mainPath) + --Задаем стартовую щнягу local name = fs.name(mainPath) path = fs.path(mainPath) - --Рисуем окошко ввода нового имени файла - local inputs = ECSAPI.universalWindow("auto", "auto", 30, ECSAPI.windowColors.background, true, {"EmptyLine"}, {"CenterText", 0x262626, "Переименовать"}, {"EmptyLine"}, {"Input", 0x262626, 0x880000, name}, {"EmptyLine"}, {"Button", {0xbbbbbb, 0xffffff, "Ok!"}}) - - --Если ввели в окошко хуйню какую-то - if inputs[1] == "" or inputs[1] == " " or inputs[1] == nil then - ECSAPI.error("Неверное имя файла.") - else - --Получаем новый путь к новому файлу - local newPath = path..inputs[1] - --Если файл с новым путем уже существует - if fs.exists(newPath) then - ECSAPI.error("Файл \"".. name .. "\" уже имеется в этом месте.") - return - else - fs.rename(mainPath, newPath) - end + local inputs = ECSAPI.universalWindow("auto", "auto", 30, ECSAPI.windowColors.background, true, {"EmptyLine"}, {"CenterText", 0x262626, "Переименовать"}, {"EmptyLine"}, {"Input", 0x262626, 0x880000, name}, {"EmptyLine"}, {"Button", {0xbbbbbb, 0xffffff, "OK"}}) + --Переименовываем + if ECSAPI.checkName(inputs[1], path) then + fs.rename(mainPath, path .. inputs[1]) end end --Создать новую папку (для операционки) function ECSAPI.newFolder(path) --Рисуем окошко ввода нового имени файла - local inputs = ECSAPI.universalWindow("auto", "auto", 30, ECSAPI.windowColors.background, true, {"EmptyLine"}, {"CenterText", 0x262626, "Новая папка"}, {"EmptyLine"}, {"Input", 0x262626, 0x880000, ""}, {"EmptyLine"}, {"Button", {0xbbbbbb, 0xffffff, "Ok!"}}) + local inputs = ECSAPI.universalWindow("auto", "auto", 30, ECSAPI.windowColors.background, true, {"EmptyLine"}, {"CenterText", 0x262626, "Новая папка"}, {"EmptyLine"}, {"Input", 0x262626, 0x880000, ""}, {"EmptyLine"}, {"Button", {0xbbbbbb, 0xffffff, "OK"}}) - --Если ввели в окошко хуйню какую-то - if inputs[1] == "" or inputs[1] == " " or inputs[1] == nil then - ECSAPI.error("Неверное имя файла.") - else - --Если файл с новым путем уже существует - if fs.exists(path.."/"..inputs[1]) then - ECSAPI.error("Файл \"".. inputs[1] .. "\" уже имеется в этом месте.") - return - else - fs.makeDirectory(path.."/"..inputs[1]) - end + if ECSAPI.checkName(inputs[1], path) then + fs.makeDirectory(path .. inputs[1]) end end --Создать новый файл (для операционки) function ECSAPI.newFile(path) --Рисуем окошко ввода нового имени файла - local inputs = ECSAPI.universalWindow("auto", "auto", 30, ECSAPI.windowColors.background, true, {"EmptyLine"}, {"CenterText", 0x262626, "Новый файл"}, {"EmptyLine"}, {"Input", 0x262626, 0x880000, ""}, {"EmptyLine"}, {"Button", {0xbbbbbb, 0xffffff, "Ok!"}}) + local inputs = ECSAPI.universalWindow("auto", "auto", 30, ECSAPI.windowColors.background, true, {"EmptyLine"}, {"CenterText", 0x262626, "Новый файл"}, {"EmptyLine"}, {"Input", 0x262626, 0x880000, ""}, {"EmptyLine"}, {"Button", {0xbbbbbb, 0xffffff, "OK"}}) - --Если ввели в окошко хуйню какую-то - if inputs[1] == "" or inputs[1] == " " or inputs[1] == nil then - ECSAPI.error("Неверное имя файла.") - else - --Если файл с новым путем уже существует - if fs.exists(path.."/"..inputs[1]) then - ECSAPI.error("Файл \"".. inputs[1] .. "\" уже имеется в этом месте.") - return - else - ECSAPI.prepareToExit() - ECSAPI.editFile(path.."/"..inputs[1]) - end + if ECSAPI.checkName(inputs[1], path) then + ECSAPI.prepareToExit() + ECSAPI.editFile(path .. inputs[1]) + end +end + +--Создать новое приложение (для операционки) +function ECSAPI.newApplication(path) + --Рисуем окошко ввода нового имени файла + local inputs = ECSAPI.universalWindow("auto", "auto", 30, ECSAPI.windowColors.background, true, {"EmptyLine"}, {"CenterText", 0x262626, "Новое приложение"}, {"EmptyLine"}, {"Input", 0x262626, 0x880000, "Введите имя"}, {"EmptyLine"}, {"Button", {0xbbbbbb, 0xffffff, "OK"}}) + + if ECSAPI.checkName(inputs[1], path) then + local name = path .. inputs[1] .. ".app/Resources" + fs.makeDirectory(name) + fs.copy("System/OS/Icons/SampleIcon.png", name) + local file = io.open(path .. "/" .. inputs[1] .. ".app/" .. inputs[1]. . ".lua", "w") + file:write("local ecs = require(\"ECSAPI\")"), "\n") + file:write("ecs.universalWindow(\"auto\", \"auto\", 30, 0xeeeeee, true, {\"EmptyLine\"}, {\"CenterText\", 0x262626, \"Hello world!\"}, {\"EmptyLine\"}, {\"Button\", {0xffdb80, 0xffffff, \"Hello!\"}})", "\n") + file:close() end end @@ -1433,7 +1438,7 @@ function ECSAPI.drawOSIcon(x, y, path, showFileFormat, nameColor) else if fileFormat == ".lnk" then local shortcutLink = ECSAPI.readShortcut(path) - ECSAPI.drawOSIcon(x, y, shortcutLink, showFileFormat) + ECSAPI.drawOSIcon(x, y, shortcutLink, showFileFormat, nameColor) --Стрелочка ECSAPI.colorTextWithBack(x + ECSAPI.OSIconsWidth - 4, y + ECSAPI.OSIconsHeight - 3, 0x000000, 0xffffff, "⤶") return 0