Страница 1 из 1
Шрифт по умолчанию, системный интерфейс и глючный шрифт в редакторе
Добавлено: 28.04.20 00:28
БудДен
Поскольку весь системный интерфейс перерисовывать слабО, а шрифт по умолчанию слишком мелкий для редактора,
хочу сделать два отдельных шрифта - один для меню, другой для текста. Соответственно, нужно найти, как этот шрифт передаётся
и где-то поменять.
Модуль системного меню (которое win-Esc) называется MainMenu.Mod
Re: Шрифт по умолчанию и системный интерфейс
Добавлено: 28.04.20 00:50
БудДен
Настройку-то легко добавить, но она игнорируется компонентом редактора, а устанавливается неведомо откуда взявшийся размер 14. Даже при том, что если "взять" инструментом стиль для этого куска текста, то размер там показывается как 20. А если применить его к тому же куску, откуда он взят, то текст увеличивается. Это явный баг, и я вышел за допустимые временные рамки :(
Re: Шрифт по умолчанию, системный интерфейс и глючный шрифт в редакторе
Добавлено: 28.04.20 00:54
БудДен
WMTextView.Mod - отображение текста. Где же там шрифт?
Re: Шрифт по умолчанию, системный интерфейс и глючный шрифт в редакторе
Добавлено: 28.04.20 01:17
БудДен
- 2020-04-28-011727_1856x1056_scrot.png (225.83 КБ) 355 просмотров
Re: Шрифт по умолчанию, системный интерфейс и глючный шрифт в редакторе
Добавлено: 28.04.20 01:18
БудДен
Наша настройка DefaultTextFont не сработала, всё равно берётся DefaultFont.
Хорошо то, что оно берётся именно из конфига и не записано в исходниках.
Код: Выделить всё
PROCEDURE InitDefaultAttributes();
CONST
(** FontStyles from WMGraphics *)
FontBold = 0; FontItalic = 1;
VAR
res : INTEGER;
textColor := 0xFF, textBackColor := 0x00: SIGNED32;
defaultFontSize : SIGNED32;
defaultFontStyle := {} : SET;
defaultFontName : ARRAY 64 OF CHAR;
fontStyleName : ARRAY 16 OF CHAR;
BEGIN
Configuration.GetColor("WindowManager.ColorScheme.Default.TextBackColor", textBackColor, res);
Configuration.GetColor("WindowManager.ColorScheme.Default.TextColor", textColor, res);
NEW(defaultAttributes);
defaultFontName := ""; defaultFontSize := 0;
Configuration.Get("WindowManager.FontManager.DefaultTextFont.Name", defaultFontName, res);
IF (res # Configuration.Ok) OR (defaultFontName = "") THEN defaultFontName := "IBMPlexMono"; END;
Configuration.GetInteger("WindowManager.FontManager.DefaultTextFont.Size", defaultFontSize, res);
IF (res # Configuration.Ok) OR (defaultFontSize < 1) THEN defaultFontSize := 12; END;
Configuration.Get("WindowManager.FontManager.DefaultTextFont.Style", fontStyleName, res);
Надо выяснить, что не в порядке с этим кодом. Возможно, что в момент его выполнения конфиг не загружен, или что при реальной прорисовке текста данные берутся откуда-то из другого места. Код показа текста слишком большой, чтобы копать его так поздно ночью.
Re: Шрифт по умолчанию, системный интерфейс и глючный шрифт в редакторе
Добавлено: 29.04.20 15:47
БудДен
В общем, нужно всё же попробовать посмотреть, как работает загрузчик текста в формате Оберон и чем его работа отличается от работы текста в формате bbt. Например, трассировать, как стили грузятся из файла, как они записываются в видимые элементы и проч. Начинать надо где-то с WMTextView.Mod