TabFileTools

Название TabFileTools
Имя файла (*.txt) TabFileTools.txt
Описание Обеспечивает основные операции с tab-файлами: просмотр, удаление, открытие
Автор Вахмурка
Параметры -
Вызываемые плагины win, file, ini
Иконка
Версия 1.1
Дата обновления 15.11.2017
local hh = win.handle("c=TTOTAL_CMD")
static Path = file.folder(win.exepath(hh))
local List = file.listfiles(Path ++ "\Tabs\*.tab")
local Elem, Str, Temp, Count

static T = cl.Create("Tabs", 1)
static Width = 150

T.Insert(0)
T.SetLabel(0, "Close")
T.AddLeft(0, "*Bar close Tabs")
T.SetTooltip(0, "Close bar")
T.SetHeight(0, 30)

T.Insert(0)
T.SetLabel(0, "Delete")
T.AddLeft(0, cb("@Delete"))
T.SetTooltip(0, "Delete selected tab file")
T.SetHeight(0, 30)

T.Insert(0)
T.SetLabel(0, "View")
T.AddLeft(0, cb("@View"))
T.SetTooltip(0, "View selected tab file")
T.SetHeight(0, 30)

T.Insert(0)
T.SetLabel(0, "Add / Replace")
T.SetTooltip(0, "Left: Add tabs/Right: Replace tabs")
T.SetHeight(0, 30)
T.AddLeft(0, cb("@UseTabs", 1))
T.AddRight(0, cb("@UseTabs", 0))

T.Insert(0)
T.SetLabel(0, ?+*control combobox dropdownlist scroll border+)
T.SetWidth(0, Width)
T.SetTooltip(0, "Choose tab file")
T.SetHeight(0, 25)

T.SetProperties("Format=barsize samesize position: FixedTopLeft vertical tooltips border topmost textcenter")

Temp = T.length

for each line Elem in List
	Str = file.name(Elem)
	T.Insert(Temp)
	T.AddLeft(Temp, cb("@View", Elem))
	T.SetLabel(Temp, Str)

	Count = 0
	for(ini.check_exists(Elem, "activetabs", Count ++ "_path") == 3)
		Count++
	endfor

	T.SetTooltip(Temp, Count ++ " tabs")
	Temp++
endfor

T.show

for each line Elem in List
	Str = file.name(Elem)
	T.AddCtrlListItem(0, Str)
endfor

quit
//===================================================
Function View(TabFile)

if(!TabFile) do
	if(T.GetCtrlValue(0)) do
		TabFile = Path ++ "\Tabs\" ++ T.GetCtrlValue(0) ++ ".tab"
	else
		messagebox("ok error", "First select tab file from dropdown list", "TabFileTools Script")
		quit
	endif
endif

local ATs = "activetabs"
local Active = ini.get(TabFile, ATs, "activetab")
local Keys = ini.enum_keys(TabFile, ATs)
local Values = line(Keys, 0)
local TabChar = esc(?+\t+, ?+\+)
static CR = esc(?+\n+, ?+\+)
local OpQuote = esc(?+\d171+, ?+\+)
local ClQuote = esc(?+\d187+, ?+\+)
local i, Temp

local Message = "File size:" ++ TabChar ++ file.size(TabFile) ++ " bytes" ++ CR
Message ++= "Created:" ++ TabChar ++ TimeDate(file.getdate(TabFile, "c"))
Message ++= "Modified:" ++ TabChar ++ TimeDate(file.getdate(TabFile, "m")) ++ CR

local Keys = ini.enum_keys(TabFile, ATs)
local Values = line(Keys, 0)

for(i = Values/3; i <= Values/2; i++)
	if(ini.check_exists(TabFile, ATs, i ++ "_path") != 3) do
		Temp = i - 1
		break
	endif
endfor

for(i = 0; i <= Temp; i++)
	Values = ini.get(TabFile, ATs, i ++ "_path")
	Message ++= i ++ ifelse(i == Active, "*:", ":") ++ TabChar ++ Values

	if(ini.check_exists(TabFile, ATs, i ++ "_caption") == 3) do
		Values = ini.get(TabFile, ATs, i ++ "_caption")
		Message ++= TabChar ++ OpQuote ++ Values ++ ClQuote
	endif

	Message ++= CR
endfor

messagebox("ok info", Message, "Tab file: " ++ TabFile)

quit
//===================================================
Function TimeDate(Str)
local Result = formatdate("longdate", select(Str, 8)) ++ ", " ++ formattime("HH:mm:ss", select(Str, -6)) ++ CR
quit(Result)
//===================================================
Function UseTabs(Key)
if(T.GetCtrlValue(0)) do
	.OpenTabs(Path ++ "\Tabs\" ++ T.GetCtrlValue(0) ++ ".tab", Key)
else
	messagebox("ok error", "First select tab file from dropdown list", "TabFileTools Script")
endif

quit
//===================================================
Function Delete
if(T.GetCtrlValue(0)) do
	file.delete(Path ++ "\Tabs\" ++ T.GetCtrlValue(0) ++ ".tab")
	T.close
else
	messagebox("ok error", "First select tab file from dropdown list", "TabFileTools Script")
endif

quit

Комментарии

Появившаяся панель состоит из двух, по сути дела независимых, частей.

Нижняя содержит кнопки, по одной на каждый tab-файл. Нажатие на такую кнопку вызывает соответствующий файл к просмотру. Выводятся не только пути к вкладкам, но и описания, если они есть. Активная вкладка отмечается звездочкой.

Удаление файлов, а также замена и добавление вкладок (команды OPENTABS и APPENDTABS) в нижней части панели в целях безопасности не предусмотрены.

Для этого предназначена верхняя часть панели. Самым первым ее элементом является раскрывающийся список (dropdown list), содержащий те же tab-файлы, что и на кнопках ниже. Необходимо сначала выбрать один из них в списке, а затем нажать одну их кнопок под ним. Они отличаются от кнопок, соответствующих tab-фалам, во-первых, самими надписями, во-вторых, их размещением по центру, а в-третьих, чуть большей высотой.

Первая кнопка Add/Replace производит добавление (левая кнопка мыши) или замену (правая) текущего набора вкладок на выбранный в раскрывающемся списке. Вторая кнопка View работает так же, как кнопка с именем соответствующего tab-файла в нижней части. Кнопка Delete удаляет tab-файл. Наконец, кнопка Close закрывает панель.


На главную Все о Total Commander PowerPro PowerPro & Total Commander