Latest post of the previous page:
Сравни настройки цветов и раскраску файлов.RGB — работа с цветами консоли
Re: RGB — работа с цветами консоли
Предлагается следующее:
Добавить в FARCOLORFLAGS флажки
Наверное, имеет смысл добавить также маски
И вопрос: Transparent (например для foreground) - это ((FarColor.Flags & FCF_FG_MASK) == 0)?
Добавить в FARCOLORFLAGS флажки
Code: Select all
FCF_FG_24BIT = 0x0000000000000004ULL,
FCF_BG_4BIT = 0x0000000000000008ULL,
Code: Select all
FCF_FG_MASK = FCF_FG_4BIT|FCF_FG_24BIT,
FCF_BG_MASK = FCF_BG_4BIT|FCF_BG_24BIT,
Re: RGB — работа с цветами консоли
A==0xFF - это обычно полностью непрозрачный цвет (в ARGB).
Как я понял, в фаре наоборот?
Как я понял, в фаре наоборот?
- HaRT
- Moderator
- Posts: 10865
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: RGB — работа с цветами консоли
А ещё strikethrough и blinking.Maximus5 wrote:Italic/Bold/Underline?
Фар есть инструмент, а не нянька. © 2009 DrKnS
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: RGB — работа с цветами консоли
Да.Maximus5 wrote:A==0xFF - это обычно полностью непрозрачный цвет (в ARGB).
Как я понял, в фаре наоборот?
Пусть будут.Как на счет добавления флагов
Italic/Bold/Underline?
- zg
- zero-gravity
- Posts: 6035
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: RGB — работа с цветами консоли
а сейчас реально где-то прозрачность используется? может нормально сделать, как везде?DrKnS wrote:Да.Maximus5 wrote:A==0xFF - это обычно полностью непрозрачный цвет (в ARGB).
Как я понял, в фаре наоборот?
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: RGB — работа с цветами консоли
Сейчас только в раскраске файлов.
Перевернуть можно, только надо ли?
Тогда придется при описании каждого обычного, непрозрачного цвета явно указывать, что он непрозрачный.
Как бы лишняя работа.
Перевернуть можно, только надо ли?
Тогда придется при описании каждого обычного, непрозрачного цвета явно указывать, что он непрозрачный.
Как бы лишняя работа.
Re: RGB — работа с цветами консоли
Dll-ка приаттачена, можно прикручивать.
Для тестов ConEmu не нужен, длл-ка вполне работает в обычной консоли (в 4битах ест-но).
Для тестов ConEmu не нужен, длл-ка вполне работает в обычной консоли (в 4битах ест-но).
Last edited by Maximus5 on Sat 30 Jul, 2011 14:55, edited 1 time in total.
- zg
- zero-gravity
- Posts: 6035
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: RGB — работа с цветами консоли
макросDrKnS wrote:Сейчас только в раскраске файлов.
Перевернуть можно, только надо ли?
Тогда придется при описании каждого обычного, непрозрачного цвета явно указывать, что он непрозрачный.
Как бы лишняя работа.
#define RGB32(r,g,b) ((r)|((g)<<8)|((b)<<16)|0xff000000)
в plugin.hpp, не?
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: RGB — работа с цветами консоли
Far в аттаче. Ищет console.dll в стандартных местах. dll надо поправить:Maximus5 wrote:Dll-ка приаттачена, можно прикручивать.
void CommitOutput() -> bool Commit()
<G|S>etTextAttributes должны ожидать указатель на ОДИН FarColor.
и добавить BOOL ClearExtraRegions(const FarColor* Color) для очистки всего буфера по cls при "far /w"
Логично.zg wrote:макрос
#define RGB32(r,g,b) ((r)|((g)<<8)|((b)<<16)|0xff000000)
в plugin.hpp, не?
Re: RGB — работа с цветами консоли
Может все-таки "BOOL Commit()"?DrKnS wrote:void CommitOutput() -> bool Commit()
Хм? Если usecase для SetTextAttributes с одним указателем я могу понять, например, приведение всего видимого (да?) экрана к определенному цвету фона/текста.DrKnS wrote:<G|S>etTextAttributes должны ожидать указатель на ОДИН FarColor.
То вот смысл GetTextAttributes (с одиим параметром == указателю на ОДИН FarColor) до меня не доходит. Чего он делать должен?
Не понял, что должна делать ClearExtraRegions. Может лучше добавить параметр SMALL_RECT* в <G|S>etTextAttributes, не? Мало ли где и что "залить" захочется?DrKnS wrote:и добавить BOOL ClearExtraRegions(const FarColor* Color) для очистки всего буфера по cls при "far /w"
То есть делаем "правильный" ARGB?DrKnS wrote:Логично.zg wrote:макрос
#define RGB32(r,g,b) ((r)|((g)<<8)|((b)<<16)|0xff000000)
в plugin.hpp, не?
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: RGB — работа с цветами консоли
Да, конечно.Maximus5 wrote:Может все-таки "BOOL Commit()"?
Юзкейс понят неправильно.Хм? Если usecase для SetTextAttributes с одним указателем я могу понять, например, приведение всего видимого (да?) экрана к определенному цвету фона/текста.
То вот смысл GetTextAttributes (с одиим параметром == указателю на ОДИН FarColor) до меня не доходит. Чего он делать должен?
Это не "всего видимого экрана", это "цвет по умолчанию". То, что соответствует "Screen Text" и "Screen Background" в свойствах консоли. То, что задаётся командой color в cmd.exe. То, что будет использовано если в консоль просто писать по printf/std::cout/WriteConsole, без явного указания цвета. Так понятнее?
Она должна очищать невидимые участки буфера, недоступные фару:Не понял, что должна делать ClearExtraRegions. Может лучше добавить параметр SMALL_RECT* в <G|S>etTextAttributes, не? Мало ли где и что "залить" захочется?
Хотя, возможно, логичнее будет вынести в dll FillOutputAttribute и FillOutputCharacter.
Ага.То есть делаем "правильный" ARGB?
Re: RGB — работа с цветами консоли
Новая dll-ка для выложенного far.exe. Вроде что-то начинает работать.
<G|S>etTextAttributes пока не переделывал, только учел, что они один Color на вход принимают
Transparent тоже пока не переворачивал, я так понял, собранный фар еще по старому работает
Вопросы
1. При задании нового элемента в Hilightings, Far передает в GetColorDialog структуру заполненную 0-ми. Что с ней делать - непонятно. Сам фар, если Flags!=(FCF_FG_4BIT|FCF_BG_4BIT) тупо показывает стандартный белый (или серый?) текст на черном фоне. Но мне-то что делать? Такие флаги вполне валидны в TrueColor.
2. Вообще, с Hilighings что-то глючит. На новой конфигурации пытаюсь править стандартный элемент "*.exe,*.com,*.bat,*.cmd,%PATHEXT%". В диалоге цвет отображается правильно, но в панелях почему-то . Файлы 0.cmd и backup.cmd должны быть с красным цветом текста, а почему-то отображается белый. И в WriteOutput вроде приходит 4битный цвет, а не тот, который настроен.
3. На счет имени dll-ки. Есть предложение, для 64битного фара искать и загружать "Console64.dll". Так удобнее поставлять пользователю комплект целиком.
<G|S>etTextAttributes пока не переделывал, только учел, что они один Color на вход принимают
Transparent тоже пока не переворачивал, я так понял, собранный фар еще по старому работает
Вопросы
1. При задании нового элемента в Hilightings, Far передает в GetColorDialog структуру заполненную 0-ми. Что с ней делать - непонятно. Сам фар, если Flags!=(FCF_FG_4BIT|FCF_BG_4BIT) тупо показывает стандартный белый (или серый?) текст на черном фоне. Но мне-то что делать? Такие флаги вполне валидны в TrueColor.
2. Вообще, с Hilighings что-то глючит. На новой конфигурации пытаюсь править стандартный элемент "*.exe,*.com,*.bat,*.cmd,%PATHEXT%". В диалоге цвет отображается правильно, но в панелях почему-то . Файлы 0.cmd и backup.cmd должны быть с красным цветом текста, а почему-то отображается белый. И в WriteOutput вроде приходит 4битный цвет, а не тот, который настроен.
3. На счет имени dll-ки. Есть предложение, для 64битного фара искать и загружать "Console64.dll". Так удобнее поставлять пользователю комплект целиком.
- Attachments
-
- Console.110730.7z
- (6.02 KiB) Downloaded 106 times
- Alexey Samlyukov
- Posts: 1765
- Joined: Tue 15 Mar, 2005 17:28
- Been thanked: 7 times
- Contact: