America Online APPLE II DEVELOPMENT FORUM CONFERENCE LOG Tuesday, September 11, 1990 10:00 p.m. Eastern Time Topic: Apple IIGS Toolbox Programming Forum Leader: Dave Sugar (AFL Dyfet) AFL Dyfet Okay, I have a couple of announcements before we begin: AFL Dyfet First, neither Matt Deathrage or Dave Lyons will be able to attend tonight. AFL Dyfet Dave is on vacation somewhere without a computer (*gasp*) and Matt has a AFL Dyfet special appointment. Matt may be able to attend later though... AFL Dyfet Also, we will be holding the second monthly meeting of the Advanced Basic SIG AFL Dyfet this Thursday at 11pm, in this very room. AFL Dyfet Now we are ready to begin. Good evening and welcome to the Apple II AFL Dyfet Development Forum conference. Tonight our topic is the IIgs toolsets. We will AFL Dyfet not be using protocol unless it proves nessisary. The floor is now open for AFL Dyfet utter chaos :) JusLooking Is there any way to have TextEdit show special characters? AFL Dyfet It depends what's available in the font your using, JusLooking... JusLooking ...assume shaston HeadCase You can always use the option and apple chars, but control keys are filtered by TE. JusLooking .so would you have to write a filter proc to handle them? HeadCase You can use TEInsert can handle control keys I think...looking JusLooking Can you insert page breaks into the TE record and show the break on screen JusLooking ? HeadCase HA HA HA JusLooking Should i assume from that response that TE can only be used to make a elementry JusLooking wordprocessor JusLooking ? AFA Gary J My understanding is that the intent of TE is not to provide a "wordprocessor", AFA Gary J but a convenient way of editing multiple lines of text. AFL Dyfet TE is exactly what it sounds, text editing...You can do a reasonable editor AFL Dyfet using it, as demonstrated in Complete Pascal, but that is stretching it there:) HeadCase You can use TEInsert to insert control chars, but why would you want to? CodeMaster isn't there a file size limitation when using TE? HeadCase TE is documented to be able to handle 30,000 chars CodeMaster right, I thought it was about 32K JusLooking Has Apple announced any updates to the toolbox, GS/OS, or system disk since 502 AFL Dyfet Just a minor update for use with the DMA SCSI card, Jus... DAERON1 IS THERE A TOOL THAT WILL LET ME PLOT EACH PIXEL IN THE SUPER HIGHRESS SCREEN CodeMaster you mean to see where each pixel is at in a window? as in to plot them? CodeMaster I mean plot to an output device. CodeMaster or plot them on the screen? AFA Gary J Yes, please clarify your question. JusLooking moveto(y,x); line(y,x,y,x)...or something like that. DAERON1 NO IF I HAVE DATA TO COLOR EACH PIXEL OF THE SCREEN AFL Dyfet You mean like a paint bit map? DAERON1 YES CodeMaster do you men to define what each pixels color on the screen ? CodeMaster opps, men = mean WTSBrian Hi everyone AFL Dyfet So you wish to take a picture from a paint program and use quickdraw to draw AFL Dyfet part or all of it in a window? CodeMaster are you asking this for a window area or the raw screen? CodeMaster or are you trying to create a pixel paint program? HeadCase Is this like a bitmaped character you wish to put on the screen? DAERON1 YES I HAVE A PROGRAM TO MAKE FRACTAL PICTURES BUT CANN'T GET TO SUPER HI CodeMaster how big is the file? CodeMaster scratch that! CodeMaster it doesn't make any difference the size. CodeMaster the first real question is... CodeMaster do you wish the image in a window or on the full screen? CodeMaster multiple choice: DAERON1 FULL SCREEN CodeMaster then is the file bigger then 32766? CodeMaster that is the file size of a full screnn image. DAERON1 I HAVE EACH ROW SAVEED AS A FILE CodeMaster if it is bigger, ( I think ) you would need to use a window... CodeMaster so the user can scroll around to see the whole image. DAERON1 OK AFL Dyfet If you simply wish to reload the image to a screen, you can bypass the tools AFL Dyfet and directly load the image into screen memory.... CodeMaster right, or store it in a buffer and then move to the screen! AFL Dyfet Well, if you have a DMA SCSI card you may wish to load it direct :)... CodeMaster well, true! DAERON1 OK THAT WOULD BE A DIFFERENT CONF. CodeMaster have your seen the Star Wars SCCI demo? AFL Dyfet I have heard about it... DAERON1 NO AFL Dyfet Haven;t seen it... CodeMaster I saw it at KC... CodeMaster they had about 2 minutes of the Empire Strikes Back... CodeMaster footage dizitized to a Hard drive... CodeMaster and was using the new card to play back the film... CodeMaster in real time! CodeMaster ofcourse it was in gray scale, But It was GREAT to see! AFA Gary J Actually, I think it was supposed to be FASTER than real time. HeadCase Correction faster than real time 36 frames/sec AFA Gary J Yes. (Movies are 24 frames per second) AFL Dyfet Okay, do we have any toolbox questions out there for tonight?? WinkieJim I saw it, it was a little faster that real time... CodeMaster OK, better then real time! :) WinkieJim <---raising hand! :) CodeMaster it was great non the less! AFL Dyfet Go ahead Winkie! WinkieJim Ok, I'm attempting to place menus in the info bar of a NDA. CodeMaster ooo ! :) WinkieJim problem one: I can't get them to select or pull down or anything HeadCase Are you using taskmasterDA? WinkieJim Yes. AFL Dyfet Pulldowns in a window status bar? Shades of 'MS Windows' :) CodeMaster CJ did it in WriteIt! HeadCase You want menus like Write-it right? WinkieJim Yes. WinkieJim Well, so far the demo source has been in pascal and I program in ASM... CodeMaster does any one know if CJ is on AOL? AFL Dyfet Hmm... WinkieJim I get them to display in the info bar, and I get a 'in info bar' from WinkieJim taskmasterDA, but a call to MenuSelect doesn't seem to do the job. WinkieJim (pluw I think TaskmasterDA should handle this already, if I'm not mistaken.' WinkieJim <---stumped them all :) CodeMaster yeep :(\ CodeMaster you could always ask CK Kahn how he did it. AFA Gary J C.K. Haun CodeMaster I thought that was it, but it didn't look right when I typed it! :) HeadCase He's gone home AFA Gary J :) CodeMaster then drop him a little note. CodeMaster <---- Question CodeMaster ( After Jim, though ) WinkieJim well aparently I'm done :) AFL Dyfet I think we're still stumped by Jim :) AFL Dyfet GA CM CodeMaster thanks... CodeMaster I have code that will let me use 16 colors in 640 mode... CodeMaster but I want to transfer that info the Color Pattle... CodeMaster Any ideas. CodeMaster Well, the book says only 4 colors in 640, but I thought different! AFL Dyfet You mean with dithering? CodeMaster right CodeMaster I would rather use the Pallette then _SetPenPattern HeadCase What about setcolortable? CodeMaster _SetColortable CodeMaster pass... CodeMaster tableNumber - WORD HeadCase Is this when you are drawing? and you want to change the pen color? CodeMaster scrTablePtr - LONG CodeMaster right, I still can't get the text to use 16 colors. CodeMaster I know that there is 16 color table, but I really... CodeMaster don't know how they work! :( HeadCase You must set the colors to values like $11-$FF incrementing by $11. CodeMaster but can you use Dithering in the pallette? AFL Dyfet You can't really get 16 color text because you need to use 2 pixels in AFL Dyfet dithering.... AFL Dyfet At best 40, or maybe 55 column text :) CodeMaster right, thats what I thought... CodeMaster I'll be happy with the 4 colors of text... CodeMaster but I would rather use the palette. AFL Dyfet Well, if you only use 4 colors per line of text, you can shift pallettes around AFL Dyfet for different lines of text. CodeMaster you mean set each scan line to a new palette? AFL Dyfet Yes... AFL Dyfet Well, each 8 scan lines (assuming 8 pixel font) CodeMaster right. HeadCase I can use setforecolor to change to any of the 16 640 mode colors then use drawstring to drow it HeadCase in the correct color, is this what you wanted to do? CodeMaster but there are only 4 defalut colors in 640, right? HeadCase Yes, but with dithering there are 16. CodeMaster but _SetForeColor wnats a color number... HeadCase Look at finders color menu. Those are the 16 standard colors in 640. I don't know hoe it works... CodeMaster I thought if I didn't change the palette, I would only get the 4 HeadCase Give setforecolor a value of 0-$FF incrementing by $11 and those are the valid values for the default CodeMaster give a value of 0 to 15 * 17? CodeMaster sorry, I'm not doning this in Asm. HeadCase Yeah I guess... CodeMaster Lets ask Mat! He knows EVERYTHING! CodeMaster :) Matt DTS What's the problem? AFA Gary J :) Matt DTS (other than spelling) CodeMaster I know he wounldn't resist! :) CodeMaster right! :) HeadCase Say you want darkblue text. Call SetForeColor with 1. Then use drawstring with the pointer CodeMaster Matt: I'm trying to set the palette in 640 with 16 colors. Matt DTS "Set the palette" doesn't mean anything. What are you trying to accomplish? CodeMaster ok, CodeMaster I have a routine that will let me draw object in 16 colors... CodeMaster useing _SetPenPattern... CodeMaster I give the call a dither table. CodeMaster very easy, works fine... CodeMaster but I would rather use a palette to do the same job. Matt DTS Define "palette" CodeMaster the color table were the default colrs are stored. CodeMaster I thought that was known as the Color Palette. HeadCase Color table Matt DTS I still don't understand why messing with the color tables is more desirable than what you're doing. CodeMaster BTW Matt, thanks for the help in KC! CodeMaster I just htought if I could setr the palette, it would be.. CodeMaster faster to specify colors to use then to.. CodeMaster keep going to the _SetPenPattern CodeMaster Am I wrong? MikeNuzz Code, you "set the Palette" by using the _SetColorTable call Matt DTS Probably. I think the way you're doing it is probably fine. CodeMaster Sure, it works, but it just adds time to the program loop to keep... CodeMaster making that call. No big deal really... CodeMaster but! :) CodeMaster I just thought that there might be a better way to do it. MikeNuzz If you want to use 16 colors in 640 you MUST use Dithering Matt DTS If you have a nice dither table and it works, you've probably got the problem licked. Matt DTS Give yourself credit. MikeNuzz Using a color number just won't work CodeMaster <-- Credit CodeMaster One last question, ok? Matt DTS I think other people are waiting, so hurry. CodeMaster ( then I promise to shut up! ) CodeMaster Q: is there a way to know when the user has chosen a NDA from the Apple menu? Matt DTS TaskMaster returns wInSpecial when the user's picked an NDA, I believe. CodeMaster The TaskMaster does not return that event to the application. CodeMaster oh, CodeMaster thanks, Matt, I'll try that. CodeMaster finished! CodeMaster thank you gentalmen! Surak TFF I have a question about reading from and outputting to LineEdit controls in a Surak TFF movable NDA (system) window. Surak TFF The problem is, I can't get it to work - I want to get a number from one LE Surak TFF control, and output a base-converted number to the other. Surak TFF I have problems reading the string from the control, because I know my base Surak TFF conversion routines work on their own... Surak TFF And output has just been a total failure. Matt DTS How are you reading the string from the control? Surak TFF Well, I got the handle to the LineEdit record in the CtlData field of the Surak TFF extended control.. Surak TFF And then tried to read the string from the LineEdit record. Surak TFF I took the leTextHndl (sp) from the LineEdit record and used that to get to Surak TFF the text. Matt DTS With something like textHand := LEGetTextHand(GetCtlTitle); ? Surak TFF At first I tried LEGetTextHand, and that didn't work too well either. Surak TFF (And, even if I can get the input to work, output is the bigger problem :) Matt DTS (GetCtlTitle returns the ctlData field of the control record, btw.) Matt DTS It should work just fine. You pass what's in the ctlData field to an LE routine and it returns the Matt DTS text. There's a routine to do this in DTS Sample Code's FakeModalDialog; you can look at it if you Matt DTS think it would help. Surak TFF OK... But the problem is putting the output in another LineEdit box... Surak TFF Or, even IN the desk accessory window - when I used QuickDraw's SetPort call Surak TFF (the text was being drawn outside the window before, and the Local/Global coord Surak TFF conversion routines didn't seem to be working), it dumped into the monitor when Surak TFF I ran that routine. Matt DTS Perhaps you should post some of the troublesome source here for others to look at. Matt DTS Dave Lyons did this in a prototype NDA shell and it works fine, so it's probably not a toolbox bug. Surak TFF Well, if you could just tell me the right method of putting the text back out.. Matt DTS It sounds like you're doing the right thing, but something small is probably tripping you up. Surak TFF Then I could probably get it to work. Matt DTS To get the text, call LEGetText with the leHandle from the ctlData field. Matt DTS To set the text, pass the text pointer, length and leHandle to LESetText. Surak TFF LEGetText? Matt DTS Make sure the environment is set for drawing (e.g., StartDrawing if not in an update routine) since Matt DTS LineEdit will draw immediately instead of invalidating parts of the window. Matt DTS (LEGetTextHand, whatever) MikeNuzz Don't you have to redraw the control to show the new text Matt DTS No - LineEdit draws immediately Matt DTS (otherwise you'd have to redraw on every key to see the results) Surak TFF Well, do I have to erase the thing in the box currently first, or will LE Surak TFF take care of doing that? (what if what's in there before is longer than what Matt DTS define "thing" Surak TFF I am putting in now, is what I'm saying)... Surak TFF The text in the box (previous output). Matt DTS LineEdit takes care of that. Surak TFF OK... That makes it a whole lot simpler... What type of strings do I pass to Surak TFF LE? Surak TFF I know I can't use Pascal Strings. (BIG warning in the Toolbox ref..) Matt DTS You just pass text, and the length as a separate parameter. Matt DTS "types" of strings are just different ways of marking the size. LE takes the size as a parameter. Surak TFF OK.. I will try that, and if all goes well my NDA will be up on America Online Surak TFF soon :) Surak TFF So I can use the Pascal String, without the length byte. Matt DTS Without the length byte. Surak TFF OK... Thanks a lot for your help!