[#1] Otwarcie systemowego fontu
Potrzebuję otworzyć dwa fonty ustawione w systemie jako ekranowy i systemowy w preferencjach systemu:



Co do ekranowego to sprawa była prosta, w dostępnych źródłach nietrudno znaleźć przykład na wypełnienie struktury TextAttr:

(...)
    screen_drawinfo := GetScreenDrawInfo(pub_screen)
    (...)
    pub_scr_font_name:=screen_drawinfo.font.mn.ln.name
    (...)
    StrCopy(font_name, pub_scr_font_name)
    (...)
    ptrScreenFontTA:=[
        font_name,
        screen_drawinfo.font.ysize,
        screen_drawinfo.font.style,
        screen_drawinfo.font.flags]:textattr
    (...)


Ale jak taką strukturę zbudować dla czcionki oznaczonej jako systemowa?
[wyróżniony] [#2] Re: Otwarcie systemowego fontu

@vojo, post #1

Use Preferences, Luke :)

W ENV:font.prefs sa ustawienia czcionek. Sparsuj chunk FONT z font.prefs za pomoca iffparse.library i znajdz czcionke, ktora zawiera w fp_Type FP_SYSFONT.
struct StoredProperty* sp;
struct FontPrefs *fp;
... // init iffparse itp
sp = FindProp(iffhandle, ID_PREF, ID_FONT);
fp=(struct FontPrefs *)sp->sp Data;
if (fp->fp_Type==FP_SYSFONT)
{
// fp_Name - to jest system font
}

Reszta w include/prefs/font.h
[#3] Re: Otwarcie systemowego fontu

@docent, post #2

Popieram Docenta.OK

Tutaj znajdziesz w necie więcej informacji nt. preferencji: http://amigadev.elowar.com/read/ADCD_2.1/Libraries_Manual_guide/node0227.html

Ostatnia aktualizacja: 09.03.2019 19:51:04 przez Hexmage960
[#4] Re: Otwarcie systemowego fontu

@docent, post #2

Oooo, dzięki, na to bym nie wpadł :)
[#5] Re: Otwarcie systemowego fontu

@docent, post #2

Hej,

Mam drobną uwagę. Otóż chunk FONT jest typu Collection bo występuje kilka razy w formie IFF. Zatem zamiast PropChunk() i FindProp() powinno być użyte CollectionChunk() i FindCollection().
[#6] Re: Otwarcie systemowego fontu

@Hexmage960, post #5

Tylko w 3.x to ma znaczenie, w AmigaOS 2.x preferencje czcionek sa trzymane w osobnych plikach i ColectionChunk jest niepotrzebne (choc tez bedzie dzialac)
Btw: preferencje czcionek sa w pliku ENV:Sys/fonts.prefs dla 3.x, dla 2.x to ENV:sys/wbfont.prefs, ENV:sys/sysfont.prefs, ENV:sys/screenfont.prefs
[#7] Re: Otwarcie systemowego fontu

@docent, post #6

Ważne info o tych różnicach między OS 2.x a 3.x, dzięki.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem