MVV

|
Posted: Wed Nov 16, 2011 16:34 Post subject: |
|
|
Левую/правую панели различать надо?
Для начала выделим регистры для режимов каждой панели и укажем максимальное число режимов на каждой панели. Например,
Code: | ; [Macros]
regImgFilterL=10
regImgFilterR=11
swImgFilterCountL=3
swImgFilterCountR=3 |
Теперь напишем команды, которые будут переключать режим, принимая номер режима в параметре (названия em-команд можно указать любые, в том числе и одинаковые для обеих панелей, если команда работает с активной панелью, а не с конкретно правой-левой; если наборы фильтров одинаковые, можно вообще использовать одну команду):
Code: | ; [Items]
; swImgFilterL(int mode), swImgFilterR(int mode)
swImgFilterL=tem(em_ShowBlackWhiteImages), eval(#1==0) | tem(em_ShowColorImages), eval(#1==1) | tem(em_ShowPaletteImages)
swImgFilterR=run_item(swImgFilterL, #1) |
Теперь напишем команду, которая будет инкрементировать значение в регистре и вызывать команду переключения режима:
Code: | ; [Items]
swImgFilterModeNext=run_item(swImgFilterL, regread(regImgFilterL)) eval(regwrite(regImgFilterL, (regread(regImgFilterL)+1)%(swImgFilterCountL))), eval(L_isActive) | run_item(swImgFilterR, regread(regImgFilterR)) eval(regwrite(regImgFilterR, (regread(regImgFilterR)+1)%(swImgFilterCountR))) |
При вызове команды она будет включать режим с текущим номером и увеличивать номер в соответствующем регистре. Например, если режимов у панели 3, то она будет включать режимы в таком порядке: 0, 1, 2, 0, 1, ... Перед первым запуском можно записать в регистр номер стартового режима. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|