userscreen под панелями — отдельное окно ("Desktop")

Хотите говорить о Far и не знаете, куда обратиться?
User avatar
zg
zero-gravity
Posts: 5817
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 147 times
Contact:

userscreen под панелями — отдельное окно ("Desktop")

Post by zg »

Latest post of the previous page:

Code: Select all

F=far.Flags
Event
  group:"DialogEvent"
  description:"remove Desktop"
  action:(event,param)->
    if event==F.DE_DLGPROCINIT and param.Msg==F.DN_INITDIALOG
      id=far.SendDlgMessage param.hDlg,F.DM_GETDIALOGINFO
      id=id and id.Id or ""
      if id==win.Uuid"72eb948a-5f1d-4481-9a91-a4bfd869d127"
        far.SendDlgMessage param.hDlg,F.DM_LISTDELETE,1,StartIndex:1,Count:1
        with far.SendDlgMessage param.hDlg,F.DM_GETDLGRECT
          far.SendDlgMessage param.hDlg,F.DM_RESIZEDIALOG,0,X:.Right-.Left+1,Y:.Bottom-.Top
        item=far.SendDlgMessage param.hDlg,F.DM_GETDLGITEM,1
        item[5]-=1
        far.SendDlgMessage param.hDlg,F.DM_SETDLGITEM,1,item
    false

Shmuel
Posts: 6126
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 309 times

userscreen под панелями — отдельное окно ("Desktop")

Post by Shmuel »

zg
Красиво!
Мелочные придирки: or "" и false можно убрать.

User avatar
zg
zero-gravity
Posts: 5817
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 147 times
Contact:

userscreen под панелями — отдельное окно ("Desktop")

Post by zg »

Shmuel wrote:false можно убрать.
тогда для меню экранов не будет выполняться DN_INITDIALOG. ни пользовательский, ни дефолтный. в данном случае их нет, но если кто-то скопипастит код для других целей — могут быть неожиданные эффекты по неочевидной причине.

Shmuel
Posts: 6126
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 309 times

userscreen под панелями — отдельное окно ("Desktop")

Post by Shmuel »

zg wrote:тогда для меню экранов не будет выполняться DN_INITDIALOG. ни пользовательский, ни дефолтный.
Не вижу ни в LuaMacro, ни в LuaFAR разницы между возвратом false и выходом без явного возврата величины.

User avatar
zg
zero-gravity
Posts: 5817
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 147 times
Contact:

userscreen под панелями — отдельное окно ("Desktop")

Post by zg »

это мунскрипт, если выполнится DM_SETDLGITEM, то его результат и вернётся.

Shmuel
Posts: 6126
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 309 times

userscreen под панелями — отдельное окно ("Desktop")

Post by Shmuel »

zg wrote: это мунскрипт, если выполнится DM_SETDLGITEM, то его результат и вернётся.
Теперь вижу. Вернётся результат из if'а двойной вложенности. Не, это не для меня.

nnobody
Posts: 15
Joined: Sun 05 Feb, 2012 15:33

userscreen под панелями — отдельное окно ("Desktop")

Post by nnobody »

zg wrote:

Code: Select all

F=far.Flags
Event
  group:"DialogEvent"
  description:"remove Desktop"
...
Прикрутил, работает, однако :)
Спасибо!

rival
Posts: 5
Joined: Tue 13 Jan, 2015 14:27

userscreen под панелями — отдельное окно ("Desktop")

Post by rival »

zg wrote:

Code: Select all

F=far.Flags
Event
  group:"DialogEvent"
  description:"remove Desktop"
...
Обработчики остаются старыми по позициям, т.е. визуально список без desktop'а,
но выбор 1го в списке открывает именно его. Есть ли возможность это исправить?

User avatar
John Doe
Бюрократ
Posts: 12826
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

userscreen под панелями — отдельное окно ("Desktop")

Post by John Doe »

rival wrote: но выбор 1го в списке открывает именно его
Не подтверждаю

rival
Posts: 5
Joined: Tue 13 Jan, 2015 14:27

userscreen под панелями — отдельное окно ("Desktop")

Post by rival »

John Doe wrote:
rival wrote: но выбор 1го в списке открывает именно его
Не подтверждаю
попробую с версиями поэксперементировать, но в связке Win 8.1 x64 + build 4040 x86 у меня ситуация именно такова

rival
Posts: 5
Joined: Tue 13 Jan, 2015 14:27

userscreen под панелями — отдельное окно ("Desktop")

Post by rival »

с 4238 всё заработало, спасибо

difr
Posts: 16
Joined: Sat 26 Oct, 2013 23:08
Has thanked: 2 times

userscreen под панелями — отдельное окно ("Desktop")

Post by difr »

zg, не могли бы его на луа переписать, чтобы сразу в "AltScreens.lua" добавить?
или как и куда этот прикрутить? подскажите, пожалуйста.

Shmuel
Posts: 6126
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 309 times

userscreen под панелями — отдельное окно ("Desktop")

Post by Shmuel »

difr wrote: как и куда этот прикрутить?
Дайте файлу расширение moon и положите рядом с другими макрофайлами.

difr
Posts: 16
Joined: Sat 26 Oct, 2013 23:08
Has thanked: 2 times

userscreen под панелями — отдельное окно ("Desktop")

Post by difr »

Shmuel, спасибо!

может кому пригодится способ возврата к нормальному переключению "AltScreens.lua":
1. оформить скрипт от zg как "AltScreens.moon" и положить рядом с "AltScreens.lua"
2. в "AltScreens.lua" исправить "akey(1):sub(-1)" на "tostring(akey(1):sub(-1)+1)"

gerser
Posts: 58
Joined: Tue 11 Oct, 2005 20:13
Location: Сургут
Contact:

userscreen под панелями — отдельное окно ("Desktop")

Post by gerser »

zg wrote:

Code: Select all

F=far.Flags
Event
  group:"DialogEvent"
  description:"remove Desktop"
...
Куда это нужно вставить, чтобы работало ?
Last edited by gerser on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Удалён оверквотинг

Shmuel
Posts: 6126
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 309 times

userscreen под панелями — отдельное окно ("Desktop")

Post by Shmuel »

gerser wrote: Куда это нужно вставить, чтобы работало ?
Посмотрите на 2 сообщения выше вашего.

Post Reply

Return to “Обсуждение Far Manager”