Структура EditorInfo
Структура EditorInfo
Нельзя ли в новых версиях добавить в EditorInfo поля, в которых были бы координаты верхнего левого угла редактора (если он неполноэкранный)? Или подскажите, как можно получить эти координаты из имеющихся данных.
Пробовал что-то слепить из GetConsoleCursorInfo(), EditorInfo::LeftPos и EditorInfo::CurPos - не срабатывает (на EE_REDRAW в EditorInfo приходит уже изменённая позиция курсора, в то время, как GetConsoleCursorInfo() даёт не обновлённую позицию. Как быть?
Пробовал что-то слепить из GetConsoleCursorInfo(), EditorInfo::LeftPos и EditorInfo::CurPos - не срабатывает (на EE_REDRAW в EditorInfo приходит уже изменённая позиция курсора, в то время, как GetConsoleCursorInfo() даёт не обновлённую позицию. Как быть?
- t-rex
- Страшный и ужасный
- Posts: 4910
- Joined: Tue 15 Mar, 2005 16:17
- Location: Tel-Aviv
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
У тебя есть WindowSizeX, WindowSizeY, TopScreenLine, LeftPos так что всё можно высчитать.jbak wrote:Нужно
Узнать координаты левого верхнего угла неполноэкранного редактора
Зачем это нужно
Например, чтобы нормально раскрасить символы в таком редакторе (если этих координат не знаешь - ничего не получится).
Хорошо, реальный пример.
Курсор во второй строке, в 3-ей позиции. Размер окна 30х30 символов.
Имеем WindowSizeX=30, LeftPos=0, CurPos=3. Эти значения будут теми же самыми, если оконная координата X=0,1,2,...50,...100... Т.е. таким образом её узнать нельзя.
Если не так - покажи, пожалуйста, на конкретном примере.
Какие при этом грабли? Ну, о вертикальном блоке в неполноэкранном редакторе вообще промолчу - он попросту не работает. Но подсветка символов получается правильной, если в EditorColor устанавливать StartPos=координата X+требуемая позиция, EndPos=координата X+требуемая позиция. Это было сделано в TwoEdit при подсветке отличий. Но там плагин сам открывает файлы и эту позицию хранит (Очень бережно хранит!) А другие плагины этой позиции узнать не могут.
Курсор во второй строке, в 3-ей позиции. Размер окна 30х30 символов.
Имеем WindowSizeX=30, LeftPos=0, CurPos=3. Эти значения будут теми же самыми, если оконная координата X=0,1,2,...50,...100... Т.е. таким образом её узнать нельзя.
Если не так - покажи, пожалуйста, на конкретном примере.
Какие при этом грабли? Ну, о вертикальном блоке в неполноэкранном редакторе вообще промолчу - он попросту не работает. Но подсветка символов получается правильной, если в EditorColor устанавливать StartPos=координата X+требуемая позиция, EndPos=координата X+требуемая позиция. Это было сделано в TwoEdit при подсветке отличий. Но там плагин сам открывает файлы и эту позицию хранит (Очень бережно хранит!) А другие плагины этой позиции узнать не могут.
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
алекс пытался тебе культурно намекнуть. но никто ж культурных намёков не понимает, а потом ещё и в хамстве обвиняют… так о чём это я. ах да. на данном этапе всякие умники типа скирдина и прочих там мельниковых надобавляли в фарапи столько неструктуированого мусора, что если продолжать в том же духе, оно, фарапи, вообще перестанет предсказуемо работать… оно тебе надо?jbak wrote:Неужели так сложно?
- t-rex
- Страшный и ужасный
- Posts: 4910
- Joined: Tue 15 Mar, 2005 16:17
- Location: Tel-Aviv
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Короче, глянул на это дело - оказалось всё очень просто (вроде бы). Вот вам фар который не глючит с раскраской и блоками в неполноэкранных редакторах. Если есть ещё где то глюки с этим делом то говорите.
http://farmanager.com/farbugs/farvedit.rar
http://farmanager.com/farbugs/farvedit.rar
Опередил ты меня. Я как раз с утра собрался дать ЦУ, что, где и как нужно поправить в FAR, а тут смотрю - уже сделано. Спасибо!
Вопрос 1 Это так и останется в новых альфах? Убирать мне костыль из TwoEdit, который с таким Far как раз и приводит к глюкам? Или по каким-то религиозным сображениям будет решено вернуть глюки?
Вопрос 2 А насчёт цифирок - просьба остаётся в силе. Вот захотел я отцентрировать меню EUM по окну неполноэкранного редактора - ан нет у меня двух магических координат! Посоветуешь GetConsoleCursorInfo() ? (здесь как раз подошло). Или всё же задействуешь зарезервированную память?
Вопрос 1 Это так и останется в новых альфах? Убирать мне костыль из TwoEdit, который с таким Far как раз и приводит к глюкам? Или по каким-то религиозным сображениям будет решено вернуть глюки?
Вопрос 2 А насчёт цифирок - просьба остаётся в силе. Вот захотел я отцентрировать меню EUM по окну неполноэкранного редактора - ан нет у меня двух магических координат! Посоветуешь GetConsoleCursorInfo() ? (здесь как раз подошло). Или всё же задействуешь зарезервированную память?
- t-rex
- Страшный и ужасный
- Posts: 4910
- Joined: Tue 15 Mar, 2005 16:17
- Location: Tel-Aviv
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Фикс останется.jbak wrote: Вопрос 1 Это так и останется в новых альфах? Убирать мне костыль из TwoEdit, который с таким Far как раз и приводит к глюкам? Или по каким-то религиозным сображениям будет решено вернуть глюки?
Цифирок пока не будет.jbak wrote: Вопрос 2 А насчёт цифирок - просьба остаётся в силе. Вот захотел я отцентрировать меню EUM по окну неполноэкранного редактора - ан нет у меня двух магических координат! Посоветуешь GetConsoleCursorInfo() ? (здесь как раз подошло). Или всё же задействуешь зарезервированную память?