[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] font.get_fonts and OS X



Of course ctypes is used by pygame -m pygame.tests on Windows. So requiring it for sysfont as well is reasonable.

Lenard

Lenard Lindstrom wrote:

Hi René,

win32gui creates a win32api dependency. This could be done with ctypes, but now Python 2.4 support will be compromised. Personally, I don't care if general Python 2.4 support is dropped.

Lenard

René Dudfield wrote:
Hi,

two things I found out...

maybe this key works?
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows[NT]\CurrentVersion\Fonts"


Also there is an function called EnumFontFamilies, that is there from win95 to get font information.


Here's some code I found using the win32gui module...

import win32gui
hdc=win32gui.CreateDC('DISPLAY','Display',None)
fonts=[]
def callback(font, tm, fonttype, fonts):
    fonts.append(font)
    #print font.lfFaceName
    #print fonttype
    return True
win32gui.EnumFontFamilies(hdc, None, callback, fonts)

#print fonts

f = fonts[0]

print dir(fonts[0])






On Thu, May 21, 2009 at 6:59 AM, Lenard Lindstrom <len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>> wrote:

    Hi,

    I see there are problems with Windows XP. Apparently the default
    fonts aren't showing up in the usual registry place:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts

    I guess that is just for additional fonts, which Brian's build
    machine apparently does not have. Would there be any other places
    in the registry to search? Or must one start with a list of
    default Windows fonts then check for each in the \windows\fonts
    directory?

    Lenard


    René Dudfield wrote:

        hi,

        the tests pass on 10.5.7... which just uses the unix
        function... (which uses fc-list).

        I think it should be easier to figure out what to do for when
        fc-list isn't there (pre 10.5.x machines)...  by looking at
        the out put that the fc-list using function uses.

        cu,



        On Wed, May 20, 2009 at 3:33 PM, Lenard Lindstrom
        <len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>> wrote:

           I committed what I have so far. If OS X has an fc-list
        equivalent
           take a look at the updates I made to the Unix section of
           sysfont.py for Python 3 and unicode. Some of it may be
        relevant.

           Lenard



           René Dudfield wrote:

               hello,

               ah, nice catch!   That's annoying... all this time and it
               hasn't been
               working on OSX.

               Can you commit your tests?

               I can have a go at it... unless Brian you want to have
        a go?


               Here are the main font paths... the X11 one isn't there
        on most
installs for 10.4.x ... but should be there on most 10.5.x
               installs.
               The last path is where OS9 used to install fonts, and
        some people
               still use that directory apparently.

               ~/Library/Fonts/
               /Library/Fonts/
               /System/Library/Fonts/
               /usr/X11/lib/X11/fonts/TTF/
               /Network/Library/Fonts/
               /System Folder/Fonts/


               cheers,




               On Wed, May 20, 2009 at 7:55 AM, Lenard Lindstrom
               <len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>> wrote:
Currently I am filling in the font unit tests. For
        OS X I
                   noticed that
                   sysfont.py does not hunt down installed fonts. The
                   relevant function is a
                   stub. I have no OS X access, so can't write it
        myself. Is
                   someone else
willing to take care of it. Otherwise when I commit the
                   completed unit tests
                   they will fail for OS X.

                   Lenard




    --     Lenard Lindstrom
    <len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>