|
|
| Название | ShowHide |
| Имя файла (*.txt) | ShowHide.txt |
| Описание | Показывает или скрывает элементы интерфейса |
| Автор | Вахмурка |
| Параметры | Switch, What (см. Комментарии) |
| Вызываемые плагины | win, childwin |
| Иконка |
|
| Версия | 1.0 |
| Дата обновления | 22.06.2009 |
args f, What
static hwnd = win.handle("c=TTOTAL_CMD")
static TMP = "TMyPanel"
static TMTC = "c=TMyTabControl"
static s = f
static Text, Hand, Temp, Width, LPath, i
static Path = "bdcihslktyre"
if(arg(0) == 1) do
What = Path
jump NoQ
endif
if(What != "?")
jump NoQ
LPath = esc(?+\r+, ?+\+)
Text = "Button Bar\Drive Button Bars\Drive ComboBox\Current Directory\Tab Header\"
Text = Text ++ "Status Bar\Command Line\Function Key Buttons\Folder Tabs\"
Text = Text ++ "Directory History & Hotlist\Breadcrumb Bar\Separate Tree\ALL THE ABOVE"
Hand = replacechars(Text, "\", LPath)
Temp = ifelse(f, "Show", "Hide")
Width = length(Path)
pickstring(Hand, Temp, 3)
if(not _pickedline_)
quit
Temp = _pickedline_
Text = word(Temp, 0)
Hand = Width + 1
if(Text == Hand)
quit
What = ""
if(index(Temp, Hand)) do
What = Path
jump NoQ
endif
for(i = 1; i <= Text; i++)
Hand = word(Temp, i)
What = What ++ select(Path, Hand, Hand)
endfor
@NoQ
if(index(What, "b"))
ButtonBar()
if(index(What, "d"))
DriveButtons()
if(index(What, "c"))
ComboBox()
if(index(What, "i"))
Directory()
if(index(What, "h"))
TabHeader()
if(index(What, "s"))
StatusBar()
if(index(What, "l"))
CommandLine()
if(index(What, "k"))
FunctionKey()
if(index(What, "t"))
Tabs()
if(index(What, "y"))
HistoryHotList()
if(index(What, "r"))
Breadcrumb()
if(index(What, "e"))
SeparateTree()
quit
//------------------------------------------------------------------------
Function ButtonBar
if(s ^^ childwin.handle(hwnd, "TButtonBar"))
win.sendmessage(hwnd, 0x400+51, 2901, 0)
quit
//------------------------------------------------------------------------
Function DriveButtons
if(s ^^ childwin.handle(hwnd, "TDrivePanel"))
win.sendmessage(hwnd, 0x400+51, 2902, 0)
quit
//------------------------------------------------------------------------
Function ComboBox
Temp = win.childhandlelist(hwnd, "c=TMyComboBox")
local Counter
for each word LPath in Temp
Counter += win.visible(LPath)
endfor
if(s ^^ Counter)
win.sendmessage(hwnd, 0x400+51, 2906, 0)
quit
//------------------------------------------------------------------------
Function Directory
Temp = win.childhandlelist(hwnd, "c=TPathPanel")
LPath = word(Temp, 1)
if(s ^^ win.height(LPath))
win.sendmessage(hwnd, 0x400+51, 2907, 0)
quit
//------------------------------------------------------------------------
Function TabHeader
Temp = win.childhandlelist(hwnd, "c=THeaderClick")
LPath = word(Temp, 1)
if(s ^^ win.height(LPath))
win.sendmessage(hwnd, 0x400+51, 2908, 0)
quit
//------------------------------------------------------------------------
Function StatusBar
Temp = win.childhandlelist(hwnd, TMTC)
LPath = word(Temp, 1)
Temp = childwin.handle(LPath, TMP)
if(s ^^ win.height(Temp))
win.sendmessage(hwnd, 0x400+51, 2909, 0)
quit
//------------------------------------------------------------------------
Function CommandLine
Temp = win.childhandlelist(hwnd, "c=Edit")
if(s ^^ win.visible(Temp))
win.sendmessage(hwnd, 0x400+51, 2910, 0)
quit
//------------------------------------------------------------------------
Function FunctionKey
Temp = win.childhandlelist(hwnd, "c=TMypanel")
for each word LPath in Temp
Hand = childwin.handle(LPath, TMP)
if(not Hand)
continue
Text = win.gettext(Hand)
Path = remove(Text, -1)
if(validpath(Path))
break
endfor
Temp = win.childhandlelist(hwnd, "c=Edit")
Hand = win.visible(Temp)
Temp = win.height(LPath) - 25*Hand
if(s ^^ Temp)
win.sendmessage(hwnd, 0x400+51, 2911, 0)
quit
//------------------------------------------------------------------------
Function Tabs
Temp = win.childhandlelist(hwnd, TMTC)
if(s ^^ Temp)
win.sendmessage(hwnd, 0x400+51, 2916, 0)
quit
//------------------------------------------------------------------------
Function HistoryHotList
Temp = win.childhandlelist(hwnd, TMTC)
LPath = word(Temp, 1)
Width = win.width(LPath)
Hand = childwin.handle(LPath, "TPathPanel")
Text = win.width(Hand)
Path = win.height(Hand)
if(s ^^ (Text + 2*Path - Path/2 < Width))
win.sendmessage(hwnd, 0x400+51, 2919, 0)
quit
//------------------------------------------------------------------------
Function Breadcrumb
keys %{f11}
wait.for(100)
Temp = childwin.handle(hwnd, TMP, 1)
Width = win.width(Temp)
if(s ^^ Width)
win.sendmessage(hwnd, 0x400+51, 2926, 0)
quit
//------------------------------------------------------------------------
Function SeparateTree
Temp = win.childhandlelist(hwnd, "c=TMyListBox")
if(s && (word(Temp, 0) <= 3))
win.sendmessage(hwnd, 0x400+51, 3201, 0)
if(not s && (word(Temp, 0) == 3))
win.sendmessage(hwnd, 0x400+51, 3200, 0)
Внимание! Скрипт не работает в Total Commander 7.5 pb1 и pb2!
Скрипт позволяет показывать и скрывать элементы интерфейса Total Commander, перечисленные в таблице:
| Элемент интерфейса | Ключ |
| Button bar | b |
| Drive button bars | d |
| Drive combobox | c |
| Current directory | i |
| Tab header (sorting) | h |
| Status bar | s |
| Command line | l |
| Function key buttons | k |
| Folder tabs | t |
| Directory history + hotlist | y |
| Breadcrumb bar | r |
| One separate tree panel | e |
Многочисленные внутренние команды типа cm_VisButtonbar позволяют показывать и скрывать элементы интерфейса программы. Однако они действуют как двоичные переключатели, всегда меняя текущее состояние. То есть, если панель кнопок была видна, то по команде cm_VisButtonbar она скроется, если же она была спрятана, то по команде она покажется.
Зачастую необходимо показать или скрыть элемент интерфейса вне зависимости от того, показан он или скрыт в момент выполнения команды. Именно это и делает скрипт. К примеру, если панель была видна, то при выполнении команды "показать панель" ничего не произойдет.
Первый параметр скрипта ("Switch") может принимать значение 1 (показать) или 0 (скрыть). Если второй параметр отсутствует, то скрипт покажет (или скроет) все элементы интерфейса, перечисленные в таблице.
При необходимости показать или скрыть лишь некоторые элементы следует включить соответствующую букву во второй параметр. Порядок букв в строке произволен, однако буквы должны быть в нижнем (строчном) регистре.
Если задать "?" в качестве второго параметра, будет выдано диалоговое окно со списком элементов интерфейса. Можно отметить мышью любое количество пунктов. Если выбрать "ALL THE ABOVE", то это будет аналогично запуску скрипта без второго параметра.
Примеры:
| Параметры | Команда |
| (0) |
Скрыть все элементы интерфейса. Получится "голый" Total Commander: только файловые панели и меню. Выглядит прикольно. |
| (1, "kc") | Показать строку функциональных кнопок и командную строку. Остальные элементы останутся в прежнем состоянии |
| (0, "sby") | Спрятать статусную строку, кнопку истории, кнопку меню часто используемых директорий и панель цепочек навигации |
| (1, "?") | Выдать запрос, какие элементы следует показать |
|
На главную |
|
Все о Total Commander |
|
PowerPro |
|
PowerPro & Total Commander |