--txcgb编辑器代码
输入框上移()

require "import"
import "android.app.*"
import "android.os.*"
import "android.widget.*"
import "android.view.*"
提示=[[
「预览功能」可查看编辑内容的渲染效果
「调试功能」可实时测试代码运行结果
]]

if 文件是否存在(tdata..'cz.txt')==false then 写入文件(tdata..'cz.txt','') end--查找文档没有就建立一个
if 文件是否存在(tdata..'th.txt')==false then 写入文件(tdata..'th.txt','') end--替换文档没有就建立一个

lay=
{
 LinearLayout,
 orientation="vertical",
 backgroundColor="#CCCCCC",
 padding="4dp",
 verticalScrollBarEnabled=false,--隐藏纵向滑条
 {
 TextView,
 text="文本编辑器",
 layout_marginTop='34dp', -- 布局顶距
 layout_marginBottom='-15dp', -- 布局底距
 layout_height="56dp",
 paddingLeft="16dp",
 textSize="22dp", -- 字体加大
 gravity="center|top",
 textColor="#009688", -- 文字颜色改为青色
 --textStyle="bold", -- 加粗字体
 elevation="35dp", -- 增加阴影
 },
 {
 LinearLayout,
 orientation="vertical",
 padding="3dp",
 layout_width="fill",
 {
 CardView,
 radius="3dp",
 layout_width="fill",
 backgroundColor=次要色,
 --layout_height="30dp",
 elevation="35dp", -- 增加阴影
 paddingTop="8dp",
 layout_marginBottom="20dp",
 {
 LinearLayout,
 layout_width="fill",
 {
 TextView,
 textColor="#FFFFFF",
 backgroundColor='#009688',
 text="文件",
 id="b2",
 gravity="center",
 textSize="18dp",
 layout_weight=1,
 padding="8dp",
 },
 {
 TextView,
 textColor="#FFFFFF",
 text="换核",
 backgroundColor='#009688',
 onClick=function()
 写入文件(编辑文件,edit.text)
 WEB小程序("bianjiqi")
 end,
 gravity="center",
 textSize="18dp",
 padding="8dp",
 layout_weight=1,
 },
 {
 TextView,
 textColor="#FFFFFF",
 text="预览",
 backgroundColor='#009688',
 id="b3",
 gravity="center",
 textSize="18dp",
 layout_weight=1,
 padding="8dp",
 },
 {
 TextView,
 textColor="#FFFFFF",
 backgroundColor='#009688',
 text="调试",
 id="b4",
 gravity="center",
 textSize="18dp",
 padding="8dp",
 layout_weight=1,
 },
 },
 },
 {
 ScrollView,
 layout_width="fill",
 layout_height="match_parent",
{
 EditText,
 layout_marginBottom="18dp",
 layout_width="fill",
 layout_height="fill",
 backgroundColor= "#DEDEDE",
 text=读取文件(编辑文件);
 Hint=提示;
 hintTextColor=次要文字色,
 textSize="12dp",
 textColor=文字色,
 id="edit",
 gravity="top",
 minLines=6,
 padding="3dp",
 },
 },
 },
}

activity.setContentView(loadlayout(lay))

b2.onClick=function()
 pop=PopupMenu(activity,popmenu_position)
 menu=pop.Menu

 menu.add("打开").onMenuItemClick=function(a)
 打开菜单()
 end

 menu.add("剪贴").onMenuItemClick=function(a)
 剪贴菜单()
 end

 menu.add("编码").onMenuItemClick=function(a)
 编码菜单()
 end

 menu.add("替换").onMenuItemClick=function(a)
 替换菜单()
 end

 menu.add("保存").onMenuItemClick=function(a)
 保存菜单()
 end

 pop.show()
end

b3.onClick=function()
 --复制文本(edit.text)
 写入文件(编辑文件,edit.text)
 写入文件(编辑文件网页,edit.text)
 子页面("安卓","file://"..编辑文件网页)
end

b4.onClick=function()
 --复制文本(edit.text)
 写入文件(编辑文件,edit.text)
 写入文件(编辑器文件夹.."bianjiqi.lua",edit.text)
 进入子页面("编辑器")
end

function  编码菜单()
 pop=PopupMenu(activity,popmenu_position)
 menu=pop.Menu

 menu.add("Base64编码").onMenuItemClick=function(a)
 edit.text=编码64(edit.text)
 print("编码成功！")
 end

 menu.add("Base64解码").onMenuItemClick=function(a)
 if pcall(function() edit.text=解码64(edit.text) end)
 then 
 print("解码成功！")
 else
 print("Base64编码无效") end
 end

 menu.add("URL编码").onMenuItemClick=function(a)
 edit.text=url编码(edit.text)
 print("编码成功！")
 end

 menu.add("URL解码").onMenuItemClick=function(a)
 if pcall(function() edit.text=url解码(edit.text) end)
 then 
 print("解码成功！")
 else
 print("url编码无效") end
 end

 menu.add("MD5加密").onMenuItemClick=function(a)
 edit.text=MD5(edit.text)
 print("MD5加密成功！")
 end

 menu.add("加密文本").onMenuItemClick=function(a)
 zdy_layout={
 LinearLayout;
 orientation="vertical";--重力属性
 {
 EditText;--编辑框控件
 id="name",
 hint="请输入文件名称",
 layout_marginTop='15dp';--布局顶距
 layout_width="82%w";--编辑框宽度
 layout_gravity="center";--重力属性
 };
 {
 EditText;--编辑框控件
 id="pass",
 hint="请输入你的秘钥",
 layout_marginTop='15dp';--布局顶距
 layout_width="82%w";--编辑框宽度
 layout_gravity="center";--重力属性
 };
 };
 AlertDialog.Builder(this)
 .setView(loadlayout(zdy_layout))--设置布局
 .setCancelable(false)--点击外围可取消
 .setTitle("将被保存在记事本:")--设置标题
 .setPositiveButton("确认",function(v)--设置积极按钮
 if pcall(function() 
 NR=加密(edit.text,pass.text) 
 end) 
 then 
 edit.text=NR
 写入文件(TXCGB.."note/"..name.text..".txt",edit.text)
 end
 end)
 .setNegativeButton("取消",function()--设置消极按钮
 end)
 .show()
 end
 -------------
 menu.add("解密文本").onMenuItemClick=function(a)
 zdy_layout={
 LinearLayout;
 orientation="vertical";--重力属性
 {
 EditText;--编辑框控件
 id="name",
 hint="请输入文件名称",
 layout_marginTop='15dp';--布局顶距
 layout_width="82%w";--编辑框宽度
 layout_gravity="center";--重力属性
 };
 {
 EditText;--编辑框控件
 id="pass",
 hint="请输入你的秘钥",
 layout_marginTop='15dp';--布局顶距
 layout_width="82%w";--编辑框宽度
 layout_gravity="center";--重力属性
 };
 };
 AlertDialog.Builder(this)
 .setView(loadlayout(zdy_layout))--设置布局
 .setCancelable(false)--点击外围可取消
 .setTitle("将被保存在记事本:")--设置标题
 .setPositiveButton("确认",function(v)--设置积极按钮
 if pcall(function() 
 NR=解密(edit.text,pass.text) 
 end) 
 then 
 edit.text=NR
 写入文件(TXCGB.."note/"..name.text..".txt",edit.text)
 end
 end)
 .setNegativeButton("取消",function()--设置消极按钮
 end)
 .show()
 end
 -------------
 pop.show()
end

function 打开菜单()
 pop=PopupMenu(activity,popmenu_position)
 menu=pop.Menu

 menu.add("配置库").onMenuItemClick=function(a)
 打开文件(NEICUN.."download/配置库/tools/")
 end
 
 menu.add("web云").onMenuItemClick=function(a)
 打开文件(TXCGB.."tools/")
 end
 
 menu.add("记事本").onMenuItemClick=function(a)
 打开文件(TXCGB.."note/")
 end
 
 menu.add("我的文档").onMenuItemClick=function(a)
 打开文件(NEICUN.."documents/")
 end
 
 menu.add("系统数据").onMenuItemClick=function(a)
 zdy_layout={
 LinearLayout;
 orientation="vertical";--重力属性
 --Focusable=true,--可聚焦
 --FocusableInTouchMode=true,--可聚焦在触摸模式下，可变色
 id="zdy_father_layout",
 {
 EditText;--编辑框控件
 id="edit",
 layout_marginTop='15dp';--布局顶距
 layout_width="82%w";--编辑框宽度
 layout_gravity="center";--重力属性
 inputType="textPassword";--密码格式
 Hint='******';--设置编辑框为空时的提示文字
 };
 };
 AlertDialog.Builder(this)
 .setView(loadlayout(zdy_layout))--设置布局
 .setCancelable(false)--点击外围可取消
 .setTitle("请输入密码:")--设置标题
 .setPositiveButton("确认",function(v)--设置积极按钮
 if (edit.text=="0")then
 打开文件(FILES)
 else
 print("密码错误")
 end
 end)
 .setNegativeButton("取消",function()--设置消极按钮
 end)
 .show()
 end

 pop.show()
end

function 剪贴菜单()
 pop=PopupMenu(activity,popmenu_position)
 menu=pop.Menu

 menu.add("清除").onMenuItemClick=function(a)
 edit.text=""
 写入文件(编辑文件,edit.text)
 end

 menu.add("剪切").onMenuItemClick=function(a)
 复制文本(edit.text)
 edit.text=""
 写入文件(编辑文件,edit.text)
 print("已剪切到系统剪贴板")
 end

 menu.add("复制").onMenuItemClick=function(a)
 复制文本(edit.text)
 print("已复制到系统剪贴板")
 end

 menu.add("粘贴").onMenuItemClick=function(a)
 edit.text=获取剪贴板()
 end

 pop.show()
end

function 替换菜单()
 ------分割线------
function 字符替换()
 tihuan_layout={
 LinearLayout;
 orientation="vertical";
 id="Download_father_layout",
 {
 TextView;
 id="czhint",
 layout_marginTop="10dp";
 text="查找",
 layout_width="80%w";
 textColor=WidgetColors,
 layout_gravity="center";
 };
 {
 EditText;
 id="cz",
 text=读取文件(tdata..'cz.txt');
 layout_width="80%w";
 layout_gravity="center"; 
 };
 {
 TextView;
 id="thhint",
 layout_marginTop="10dp";
 text="替换",
 layout_width="80%w";
 textColor=WidgetColors,
 layout_gravity="center";
 };
 {
 EditText;
 id="th",
 text=读取文件(tdata..'th.txt');
 layout_width="80%w";
 layout_gravity="center"; 
 };
};
AlertDialog.Builder(this)
.setTitle("替换")
.setView(loadlayout(tihuan_layout))
.setPositiveButton("全部替换",{onClick=function(v)
写入文件(tdata..'cz.txt',cz.text) 写入文件(tdata..'th.txt',th.text)
替换=string.gsub(edit.text,cz.text,th.text)
local new_text, num_replacements = string.gsub(edit.text, cz.text, th.text)--监听替换次数
edit.text=替换
字符替换()
print("替换了 " .. num_replacements .. " 处",600)end}) 
.setNeutralButton("上下互换",function(v)
写入文件(tdata..'cz.txt',th.text) 写入文件(tdata..'th.txt',cz.text)
字符替换()
end)
.setNegativeButton("取消",nil)
.show()
end
字符替换()
end

function 保存菜单()
 
 对话框()
.设置标题("重要提示！")
.设置消息('将被保存在\n\n'..读取文件(编辑路径)..'文件中\n\n按保存键保存文件\n按上传键保存并上传文件')
.设置积极按钮("保存",function()
 写入文件(读取文件(编辑路径),edit.text)
 print("已保存至"..读取文件(编辑路径))
end)
.设置中立按钮("上传",function()
 写入文件(读取文件(编辑路径),edit.text)
 print("已保存至"..读取文件(编辑路径)..'\n正在加载代码仓库')
 调用浏览器("https://gitlab.com/txcgb/free/-/tree/master/tools")
 end)
.设置消极按钮("取消")
.显示()
end

