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 Все скрипты