Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!gem.mps.ohio-state.edu!wuarchive!udel!mmdf From: jwhitman@stl-06sima.army.mil (Jerry Whitman) Newsgroups: comp.sys.amiga Subject: Changing Fonts via LIBRARY functions Message-ID: <4669@lab.udel.EDU> Date: 23 Nov 89 01:17:14 GMT Sender: mmdf@udel.EDU Lines: 76 This message is aimed primarily at the CATS, but I could use help from any source. WB1.3 contains several BASIC program demos. One demonstrates the manipulation of topaz font size and style. Since Carolyn Scheppner did the accompanying write-up on the BASIC bmaps I am assuming she did the demo program also. I have not seen Caroyln publish anything lately so I anm not sure she is still available, but here goes. I did some experimenting with the demo to see how much I could affect the actual text line height and thereby the number of lines in a BASIC window. The actual code follows with line numbers added for reference: 1 DECLARE FUNCTION AskSoftStyle& LIBRARY 2 DECLARE FUNCTION OpenFont& LIBRARY 3 DECLARE FUNCTION Execute& LIBRARY 4 LIBRARY "graphics.library" 5 enable%=AskSoftStyle&(WINDOW(8)) 6 Font "topaz.font",8,0,0 7 FOR i=25 TO 1 Step -1 PRINT "LINE";i 8 next i 9 SetStyle 0 10 Font "",0,0,0 'Causes last pFont to be closed 11 LIBRARY CLOSE 12 END 13 SUB Font*fontName$, height%, style, prefs%) 14 SHARED pFont& 15 IF pFont&<>0 THEN PRINT "pFont";pFont&:CALL CloseFont(pFont&) 16 fontName0$=fontName$+chr$(0) 17 textAttr&(0)=SADD(fontName0$) 18 textAttr&(1)=height%*65536 + style%*256 + prefs% 19 pFont&=OpenFont&VARPTR(textAttr&(0))) 20 IF pFont& <> 0 THEN PRINT "PFONT";pFont&:SetFont WINDOW(8),pFont& 21 ENDSUB 22 SUB SetStyle(mask%) STATIC 23 SHARED enable% 24 SetSoftStyle WINDOW(8),mask%,enable% 25 PRINT "SetSoftStyle("mask%")" 26 ENDSUB Now for the questions!! (Output window is 600 x 200) 1. I can vary the font size in line 6 to 8 or 9 and get corresponding height changes in the output window. Values lower than 8 or higher than 9 make no change, but appear to process without error. Why? Can I cause topaz to be rendered with more or less height? 2.If I change the fontName$ in line 6 to any other font than topaz then lines 15 and 20 test as false and the THEN clause is not executed. Also no font change takes place? Why? How can I cause fonts other than topaz to be recognized in this routine? The Fonts directory shows all 10 fonts present. 3. If I can get to other fonts how to I describe which point size I want to use? I am trying to get to Helvetica 9 point! 4. I also varied the values for style and prefs in line 6 to various non- zero values but saw no apparent change. Besides computing what seems to be a bitmap size (textAttr%(1)) in line 18, what are these parameters used for and what are valid values/results? If I am missing some fundamental concepts please whack me on the head to get my attention!! I have read the descriptions of the sample program in the AMIGA BASIC manual and cannot find clues to the above questions. Any and all help greatly appreciated. (BTW I know 'REAL' programmers do not use BASIC, but then I never claimed to be a 'REAL" programmer. The amount of time I get to spend on my AMY does not allow for a 'C' or ASM learning curve, so I am trying to meet my modest needs with BASIC.) Regards, Jerry