Шрифт по умолчанию, системный интерфейс и глючный шрифт в редакторе

Операционная система, написанная на языке Оберон и проект её перевода на русский язык. Только технические вопросы.
Ответить
БудДен
Сообщения: 854
Зарегистрирован: 07.10.18 14:01

Шрифт по умолчанию, системный интерфейс и глючный шрифт в редакторе

Сообщение БудДен » 28.04.20 00:28

Поскольку весь системный интерфейс перерисовывать слабО, а шрифт по умолчанию слишком мелкий для редактора,
хочу сделать два отдельных шрифта - один для меню, другой для текста. Соответственно, нужно найти, как этот шрифт передаётся
и где-то поменять.

Модуль системного меню (которое win-Esc) называется MainMenu.Mod
Последний раз редактировалось БудДен 28.04.20 00:54, всего редактировалось 1 раз.

БудДен
Сообщения: 854
Зарегистрирован: 07.10.18 14:01

Re: Шрифт по умолчанию и системный интерфейс

Сообщение БудДен » 28.04.20 00:50

Настройку-то легко добавить, но она игнорируется компонентом редактора, а устанавливается неведомо откуда взявшийся размер 14. Даже при том, что если "взять" инструментом стиль для этого куска текста, то размер там показывается как 20. А если применить его к тому же куску, откуда он взят, то текст увеличивается. Это явный баг, и я вышел за допустимые временные рамки :(

БудДен
Сообщения: 854
Зарегистрирован: 07.10.18 14:01

Re: Шрифт по умолчанию, системный интерфейс и глючный шрифт в редакторе

Сообщение БудДен » 28.04.20 00:54

WMTextView.Mod - отображение текста. Где же там шрифт?

БудДен
Сообщения: 854
Зарегистрирован: 07.10.18 14:01

Re: Шрифт по умолчанию, системный интерфейс и глючный шрифт в редакторе

Сообщение БудДен » 28.04.20 01:17

2020-04-28-011727_1856x1056_scrot.png
2020-04-28-011727_1856x1056_scrot.png (225.83 КБ) 44 просмотра

БудДен
Сообщения: 854
Зарегистрирован: 07.10.18 14:01

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);
Надо выяснить, что не в порядке с этим кодом. Возможно, что в момент его выполнения конфиг не загружен, или что при реальной прорисовке текста данные берутся откуда-то из другого места. Код показа текста слишком большой, чтобы копать его так поздно ночью.

БудДен
Сообщения: 854
Зарегистрирован: 07.10.18 14:01

Re: Шрифт по умолчанию, системный интерфейс и глючный шрифт в редакторе

Сообщение БудДен » 29.04.20 15:47

В общем, нужно всё же попробовать посмотреть, как работает загрузчик текста в формате Оберон и чем его работа отличается от работы текста в формате bbt. Например, трассировать, как стили грузятся из файла, как они записываются в видимые элементы и проч. Начинать надо где-то с WMTextView.Mod

Ответить