WindowsIconReader.st
changeset 104 aee902af74e0
parent 103 8efb0016ad8c
child 114 e577a2f332d0
equal deleted inserted replaced
103:8efb0016ad8c 104:aee902af74e0
    33 "
    33 "
    34 !
    34 !
    35 
    35 
    36 version
    36 version
    37 "
    37 "
    38 $Header: /cvs/stx/stx/libview2/WindowsIconReader.st,v 1.17 1995-09-17 22:52:44 claus Exp $
    38 $Header: /cvs/stx/stx/libview2/WindowsIconReader.st,v 1.18 1995-09-18 10:35:20 claus Exp $
    39 "
    39 "
    40 !
    40 !
    41 
    41 
    42 documentation
    42 documentation
    43 "
    43 "
    62 
    62 
    63     inStream := self streamReadingFile:aFileName.
    63     inStream := self streamReadingFile:aFileName.
    64     inStream isNil ifTrue:[^ false].
    64     inStream isNil ifTrue:[^ false].
    65 
    65 
    66     inStream binary.
    66     inStream binary.
    67     inStream size < 16 ifTrue:[
       
    68 	^ false
       
    69     ].
       
    70 
       
    71     header := ByteArray uninitializedNew:4.
       
    72     inStream nextBytes:4 into:header.
       
    73 
       
    74     ok := false.
    67     ok := false.
    75     (header startsWith:#(66 77)) ifTrue:[     "BM"
    68     inStream size > 16 ifTrue:[
    76 	ok := true.
    69 	header := ByteArray uninitializedNew:4.
    77 "/        'WINREADER: Win3.x or OS/2 vsn 2 BM format' infoPrintNL.
    70 	inStream nextBytes:4 into:header.
    78     ].
    71 
    79     (header startsWith:#(66 65)) ifTrue:[     "BA"
    72 	(header startsWith:#(66 77)) ifTrue:[     "BM"
    80 	ok := true.
    73 	    ok := true.
    81 "/        'WINREADER: OS/2 vsn 2 BA format' infoPrintNL.
    74 "/            'WINREADER: Win3.x or OS/2 vsn 2 BM format' infoPrintNL.
    82     ].
    75 	].
    83     (header startsWith:#(73 67)) ifTrue:[     "IC"
    76 	(header startsWith:#(66 65)) ifTrue:[     "BA"
    84 	ok := true.
    77 	    ok := true.
    85 "/        'WINREADER: OS/2 IC format' infoPrintNL.
    78 "/            'WINREADER: OS/2 vsn 2 BA format' infoPrintNL.
    86     ].
    79 	].
    87     (header startsWith:#(80 84)) ifTrue:[     "PT"
    80 	(header startsWith:#(73 67)) ifTrue:[     "IC"
    88 	ok := true.
    81 	    ok := true.
    89 "/        'WINREADER: OS/2 PT format' infoPrintNL.
    82 "/            'WINREADER: OS/2 IC format' infoPrintNL.
    90     ].
    83 	].
    91     (header startsWith:#(0 0 1 0)) ifTrue:[
    84 	(header startsWith:#(80 84)) ifTrue:[     "PT"
    92 	ok := true.
    85 	    ok := true.
    93 "/        'WINREADER: Win3.x ICO format' infoPrintNL.
    86 "/            'WINREADER: OS/2 PT format' infoPrintNL.
    94     ].
    87 	].
    95     ok ifFalse:[^ false].
    88 	(header startsWith:#(0 0 1 0)) ifTrue:[
    96     ^ true
    89 	    ok := true.
       
    90 "/            'WINREADER: Win3.x ICO format' infoPrintNL.
       
    91 	].
       
    92     ].
       
    93     inStream close.
       
    94     ^ ok
    97 
    95 
    98     "
    96     "
    99      WindowsIconReader isValidImageFile:'/phys/clam2/LocalLibrary/Images/OS2_icons/dos.ico'
    97      WindowsIconReader isValidImageFile:'/phys/clam2/LocalLibrary/Images/OS2_icons/dos.ico'
   100     "
    98     "
   101 
    99