|
Название | 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 |