mirror of
https://github.com/opsxcq/mirror-textfiles.com.git
synced 2025-08-14 12:24:25 +02:00
394 lines
18 KiB
Plaintext
394 lines
18 KiB
Plaintext
|
|
America Online
|
|
APPLE II DEVELOPMENT FORUM CONFERENCE LOG
|
|
Tuesday, January 8, 1991 10:00 p.m. Eastern Time
|
|
Topic: Toolbox Programming
|
|
Forum Leader: Dave Sugar (AFL Dyfet)
|
|
|
|
AFL Dyfet Tonight's toolbox night :)
|
|
AFA Gary J Yep :)
|
|
INF2 Is it the toolbox today?
|
|
AFL Dyfet Yes it is Inf2...In fact, I think DevScott had the first question
|
|
for tonight.
|
|
INF2 Today, the ToolBox... Tommorow, the WORLD!!!:D
|
|
DevScott I am trying to learn more about the GS and programming it by
|
|
creating a simple
|
|
DevScott paint program using pascal and am having problems with an about
|
|
dialog
|
|
DevScott box "disfiguring" the drawing window behind it. What do I need to
|
|
do
|
|
DevScott to preserve the drawing already done? GetPort/SetPort stuff?
|
|
AFL Dyfet GA Winkie....
|
|
WinkieJim Is the window behind it getting the partthe dialog covered
|
|
erased?
|
|
DevScott What was that?
|
|
DevScott The part of the window the dialog covers is filled with the
|
|
current color
|
|
DevScott selected (a different problem).
|
|
WinkieJim Is the window behind the dialog just getting erased without being
|
|
redrawn?
|
|
WinkieJim Not the background color?
|
|
DevScott Well, I'm not quite sure...
|
|
AFA Gary J Probably the background color.
|
|
WinkieJim Is it white?
|
|
DevScott The color is selected using
|
|
DevScott SetPenPat, but when drawing, the color drawn isn't what was
|
|
DevScott selected? Hard to tell.
|
|
DevScott Not always white, though.
|
|
WinkieJim Scott, you do redraw the entire window when your update routine
|
|
for that
|
|
WinkieJim window is drawn, right?
|
|
|
|
DevScott I believe so...what exactly do I do to make sure that it's done.
|
|
DevScott <---- sorry, kind of a novice here.
|
|
AFL Dyfet That's okay Scott!!
|
|
WinkieJim In your update rouine for the window you're supposed to redraw
|
|
EVERYTHING
|
|
WinkieJim that is displayed in the context region of the window.
|
|
DevScott So, do you have to set up a routine that "remembers" everything
|
|
the user
|
|
DevScott did draw?
|
|
WinkieJim Right Scott
|
|
AFL Dyfet Yes, Scott
|
|
DevScott Well, I'm still a little foggy about how to do that, but I'll do
|
|
some more
|
|
DevScott digging to see if I can figure it out.
|
|
WinkieJim Scott you could also draw everything to the window on screen AND
|
|
to an
|
|
WinkieJim off-screen window and then copy all the pixels to the on-screen
|
|
window at
|
|
WinkieJim update time.
|
|
DevScott PPToPort, or is that a little different?
|
|
WinkieJim I believe CopyPixels is what you'd want to use
|
|
DevScott Ok, I'll try it out. Thanks for the guidance!
|
|
DevScott <-- Done.
|
|
WinkieJim Good luck Scott. GA
|
|
DevScott :)
|
|
AFL Dyfet Okay, go ahead Steve....
|
|
SteveB Just wanted to thank the people who helped my figure out....
|
|
SteveB how to handle what SFP gives me. Nice guys here! :)
|
|
SteveB And, I have to be leaving, so g'night all! :)
|
|
AFL Dyfet Thanks :)
|
|
SteveB GA :)
|
|
AFL Dyfet Okay, INF2 has the next question...GA INF2...
|
|
INF2 Well, actually, not much of a "question", but I'll GA...
|
|
INF2 Well, it's only been one year, since I've got my IIGS, but I don't
|
|
understand
|
|
INF2 the ToolBox at all... Do you need stuff like ORCA/C?
|
|
INF2 Or APW?
|
|
AFL Dyfet A good place to start, actually, is a wonderful book Michael
|
|
Fisher wrote, the
|
|
AFL Dyfet Apple IIgs Technical Reference....
|
|
AFL Marty Who? :)
|
|
INF2 The "Technical Introduction to the IIGS"?
|
|
AFL Dyfet It is published by Osborn/Mcgraw Hill
|
|
INF2 Oh
|
|
AFL Dyfet It was the first IIgs programming book I started with....and still
|
|
use it for
|
|
AFL Dyfet reference from time to time....GA Dave...
|
|
Dave Lyons If you do any real toolbox work, you definitely want the real
|
|
reference manuals--the stuff
|
|
Dave Lyons in Toolbox Ref Volume 3 wasn't even conceived when Fischer's book
|
|
came out (and you want the
|
|
Dave Lyons official books anyway). ga
|
|
INF2 Well, can't I use ANY part of the ToolBox from GS/OS itself?
|
|
AFL Dyfet That is true...at some point you will want to get the IIgs toolbox
|
|
references.
|
|
AFL Dyfet GA Gary...
|
|
AFA Gary J As for languages and such, yes ORCA/C is one you could use, but
|
|
you can also
|
|
AFA Gary J access the IIGS toolbox from assembly, Pascal, or even BASIC on
|
|
the IIGS.
|
|
INF2 BASIC?
|
|
INF2 HOW?
|
|
AFA Gary J You can even experiment with toolbox calls using Nifty List CDA
|
|
:)
|
|
AFL Dyfet GA Marty....
|
|
AFA Gary J Not Applesoft BASIC, but IIGS specific basics.
|
|
AFA Gary J GA
|
|
INF2 Oh...
|
|
AFL Marty I started reading a good book on toolbox programming last
|
|
night...
|
|
AFL Marty it's called "Mastering the Apple IIGS Toolbox" by...
|
|
AFL Marty Dan Gookin and Morgan Davis.
|
|
AFL Marty I got through about 60 pages or so. It goes at a rather good rate
|
|
for me
|
|
AFL Marty (I'm the rankest of beginners)...
|
|
INF2 But you see,
|
|
INF2 I don't have ANYTHING I can use to acess the ToolBox, I think...
|
|
AFL Marty You can experiment with toolbox calls from BASIC or from the
|
|
monitor.
|
|
AFL Marty GA
|
|
AFL Dyfet Or from Nifty List :)
|
|
AFA Gary J (Or Nifty List :)
|
|
INF2 I only have AppleSoft....
|
|
AFA Gary J :)
|
|
AFL Marty Or from Nifty List :)
|
|
INF2 And what is Nifty List?
|
|
AFA Gary J (Nifty List is available in our software library. It's a CDA
|
|
written by
|
|
AFA Gary J Dave Lyons)
|
|
INF2 Oh.
|
|
AFL Dyfet GA Dave :)
|
|
AFA Gary J :)
|
|
Dave Lyons Nifty List got its name because its original purpose in life was
|
|
to disassemble ("List")
|
|
Dave Lyons assembly code with extra information displayed in the margin (the
|
|
names of toolbox calls, for
|
|
INF2 But what is it now?
|
|
Dave Lyons example). It's grown into a generally useful tool for learing
|
|
about the GS toolbox and OS, and
|
|
Dave Lyons for debugging GS programs (yours and other people's).
|
|
INF2 Does it come with Docs?
|
|
Dave Lyons Starting with version 3.0, you can make toolbox calls
|
|
interactively and write your own commands
|
|
Dave Lyons if you want. Sure, docs are included, and most of the information
|
|
is available right from Nifty
|
|
Dave Lyons List (by putting a "?" in front of the command name).
|
|
Dave Lyons ga
|
|
INF2 OK... Thanks Dave!:)
|
|
AFA Gary J BUT, I'd like to add.... it REALLY HELPS to have manuals of some
|
|
type
|
|
AFA Gary J guiding you along in making those toolcalls.
|
|
INF2 Uh-huh...
|
|
AFA Gary J :)
|
|
INF2 I'll D/L that right now.
|
|
INF2 BYE!
|
|
AFL Dyfet Okay, GSShadow has the next question, and the floor now...GA
|
|
GS...
|
|
GSShadow Ok. this should be qiuck. First, where can i find info on the
|
|
GSShadow QuickDrawII 'picture' format, the one used with the Draw Picture
|
|
command?
|
|
AFL Dyfet GA Dave
|
|
Dave Lyons Apple IIgs Technical Note #46 (this was revealed to me by page 6
|
|
of the Apple II Technical Note
|
|
Dave Lyons Index, amazingly enough).
|
|
Dave Lyons The information is provided for
|
|
Dave Lyons debugging purposes, mainly--the format may be extended in the
|
|
future, but it isn't too likely
|
|
Dave Lyons to change soon. ga
|
|
GSShadow O.k. I thought It might be in the tech notes. I have been waiting
|
|
of APDA's
|
|
GSShadow compilation of tech notes. How can I get tech notes sent to me? Is
|
|
there some
|
|
GSShadow kind of subscription?
|
|
AFA Gary J GSShadow: You can download TN#46 right here on America Online
|
|
AFL Dyfet GA Matt
|
|
Matt DTS As of the new APDAlog automagically winging its way around the
|
|
world, the APDA subscription policy
|
|
Matt DTS for TNs changes. Now you can buy a complete back set and a
|
|
one-year subscription independent of the
|
|
Matt DTS calendar year (for example, if you subscribe in September 1991 it
|
|
goes until September 1992).
|
|
Matt DTS GA
|
|
AFA Gary J (That sounds good :)
|
|
Tamira when does the new APDA cat go out Matt???
|
|
Matt DTS Dunno. I have mine already.
|
|
WinkieJim Tam, I got mine today
|
|
AFA Gary J Tamira, mine came yesterday.
|
|
Tamira sigh again.....and again :(
|
|
GSShadow THANKS. Also, for some reason my program (asm) is not getting
|
|
update events
|
|
GSShadow for my modeless dialogs. I have used taskmaster, and the is
|
|
Dialog/Dialog
|
|
GSShadow select combo but I cannot get my dialogs redrawn when they're
|
|
covered by
|
|
GSShadow windows. If it is covered by a modal dialog, everything owrks
|
|
fine! Help?
|
|
AFL Dyfet GA Dave
|
|
Dave Lyons GSShadow, the least painful way is to not use modeless dialogs,
|
|
and just
|
|
Dave Lyons use regular windows instead.
|
|
Dave Lyons The Dialog Manager should be automatically updating
|
|
Dave Lyons your modeless dialogs during DialogSelect, though--I don't know
|
|
what going wroing, unless
|
|
Dave Lyons you are expecting it to draw something *other* than your dialog
|
|
items in there. (That is, if you have
|
|
Dave Lyons a wContDefProc that you expect the system to call for that window,
|
|
you will be disappointed.)
|
|
Dave Lyons ga
|
|
WinkieJim I love it when Dave saves the painful stuff for last :)
|
|
GSShadow O.k. My problem is that I want to get input from controls without
|
|
having to
|
|
GSShadow select a window, and I was hoping to accomplish that w/ a modeless
|
|
dialog.
|
|
GSShadow I guess I can get around it.
|
|
Dave Lyons Okay, you want the user to type
|
|
Dave Lyons into, say, a Line Edit control while the window isn't in front?
|
|
GSShadow No, I want the user to be able to click on an icon while the
|
|
window isn't
|
|
GSShadow in front. (same difference)
|
|
Dave Lyons I don't see how modeless dialogs simplifies it--
|
|
Dave Lyons what's stopping you from calling FindControl and TrackControl on a
|
|
window that's not in front?
|
|
Dave Lyons (It's just that TaskMaster doesn't help you out as much there.)
|
|
GSShadow I was hoping it some magical property I could use to my advantage.
|
|
But I guess
|
|
GSShadow not, Huh?
|
|
Dave Lyons (Not that I've thought of, anyway. ga)
|
|
AFL Dyfet Okay, Nuzz, you have the floor now...
|
|
Nuzz If an App that does NOT have a resource fork wishes to open other
|
|
files RForks,
|
|
Nuzz must that app issue resource startup/down calls, and if it does
|
|
have to and
|
|
Nuzz doesn't, what are the consequences
|
|
WinkieJim Yes it must startup and shotdown the resource manager.
|
|
AFL Dyfet GA Dave...
|
|
Dave Lyons Yes, your application has to start and shut down the resource
|
|
manager--but StartUpTools and
|
|
Dave Lyons ShutDownTools take care of that for you, even if your application
|
|
has no resource fork. ga
|
|
Nuzz OK, how about Da's in the same context?
|
|
WinkieJim Yup, if they are going to make resource manager calls.
|
|
Dave Lyons In system 5.0.4 and earlier,
|
|
Dave Lyons StartUpTools and ShutDownTools must *not* be called from a DA, so
|
|
you have to do your own
|
|
Dave Lyons ResourceStartUp and ResourceShutDown calls from the DA, as shown
|
|
in GS Technote #71. ga
|
|
Nuzz OK. Done
|
|
AFL Dyfet Okay, go ahead Foreigner...
|
|
Foreigner1 Coupla quick Questions: 1. Should a LocInfo BoundsRect ever have a
|
|
v1 of -25?
|
|
Foreigner1 That's what I get with a GetLocInfo call on the samples from
|
|
ORCA/C...
|
|
AFL Dyfet GA Dave
|
|
Dave Lyons Yes, the BoundsRect of a QuickDraw II grafport that points to
|
|
video memory is the rectangle
|
|
Dave Lyons bounding the screen, in the local coordinates of the window. So
|
|
if the top line of your window's
|
|
Dave Lyons content region is on scanline 25, the boundsRect.v1 of your
|
|
window's port will be -25. ga
|
|
Dave Lyons (BTW, you can use Nifty List to quickly check on things like
|
|
this!)
|
|
AFL Dyfet :)
|
|
Foreigner1 Okay, thanks. #2- how do you do Icons, when the header file
|
|
states the length
|
|
WinkieJim Dyfet, do you think we should have Dave pay fro all his
|
|
commercials? :) :):)
|
|
Foreigner1 of them to all be one? (The QDIconRecord in QDAUX.h)?
|
|
Foreigner1 GA
|
|
AFL Dyfet :)
|
|
AFL Dyfet GA Dave...
|
|
Dave Lyons What? Most icons -don't- have length 1. How are you determining
|
|
that they do?
|
|
Dave Lyons Are you examining Finder icon FILES, or individual icons?
|
|
Coach101 Dave, I think he is referring to the struct/typedeff in the .h
|
|
file....
|
|
Foreigner1 The struct definition in the header file states, (and I quote)
|
|
Byte iconImage[1];
|
|
Foreigner1 Same with the cursor definition in Quickdraw.h
|
|
Foreigner1 GA
|
|
AFL Dyfet GA Matt
|
|
Matt DTS (I found it just before he said it) That doesn't mean the icons
|
|
are all one byte long. It's some
|
|
Matt DTS kind of C hocus-pocus to define the structure so you can access it
|
|
later. Someone who actually knows
|
|
Matt DTS C will have to explain it in detail. GA.
|
|
Dave Lyons Ah! Since icons are variable-length, you can't really write
|
|
structures for them in Pascal or C;
|
|
Dave Lyons those are just templates you can use as a starting point. If you
|
|
want to use those data structures,
|
|
Dave Lyons make a copy & make one with the height and width you need. Ditto
|
|
for QuickDraw cursors.
|
|
AFL Dyfet So you just use IconImage to reference the FIRST byte of the
|
|
image....
|
|
Foreigner1 Gotcha. One last (easy) question- Address/Phone # of APDA?
|
|
Dave Lyons 1-800-282-APDA
|
|
Foreigner1 ga. I'm done!
|
|
AFL Dyfet Okay, A2 has the next question...GA A2...
|
|
A2GS 2 short Q's.....1) Do Apple Dealers still give the system disk
|
|
upgrades?
|
|
WinkieJim A2GS, yes if they want too...Apple doesn't require them too...
|
|
WinkieJim if you have a good one they should allow you to get a copy of the
|
|
latest
|
|
WinkieJim system.
|
|
A2GS I'm currently using a 1987 ver. of AppleLink (developer ver.)
|
|
has
|
|
A2GS there been any upgrade for II users since then???????
|
|
A2GS GA
|
|
AFL Dyfet GA MAtt
|
|
Matt DTS Send me an AppleLink with your name and system configuration and
|
|
we'll talk offline.
|
|
A2GS huh?
|
|
Matt DTS Using '87 AppleLink = you have an AppleLink account.
|
|
Matt DTS Use it to send me (DEATHERAGE1) an AppleLink that contains your
|
|
name, your system configuration and
|
|
Matt DTS we'll talk about upgrades. GA.
|
|
A2GS oh...o.k......now I see....need to get more sleep :)
|
|
AFL Dyfet Okay, are there any more questions for tonight?
|
|
AFA Parik (I read somewhere that AppleLink will [soon] allow anyone online,
|
|
alaCIS/GEnie)
|
|
AFA Parik (er, I mean you don't need a Mac...you can use a IBM. still need
|
|
a acct!)
|
|
A2GS got a Q...
|
|
WinkieJim We have a question!
|
|
A2GS Is there anyway to force the Cntrl-pnl NDA to come up without
|
|
using having
|
|
A2GS to use PDM's?
|
|
A2GS GA
|
|
WinkieJim PDM's?
|
|
A2GS pull down menus
|
|
WinkieJim Oh....:)
|
|
AFL Dyfet GA Winkie
|
|
DangardAce Someone write QuickeysGS :)
|
|
WinkieJim I Edited the Control panel NDA file to have a keyboard equivalent
|
|
:)
|
|
Coach101 Cheating :)
|
|
A2GS I'd prefer NOT to do that....any other suggestions?
|
|
A2GS Dave...Matt?
|
|
WinkieJim Only way I know, until someone creates a macro program that
|
|
simulates mouse
|
|
WinkieJim movements to the event manager...
|
|
A2GS Matt...Dave?
|
|
Dave Lyons There's no built-in shortcut for opening the Control Panel NDA,
|
|
no.
|
|
WinkieJim Well, I like keyboard equivalents for NDas...I wrote the only NDA
|
|
that has
|
|
WinkieJim a keyboard equivalent for it's menu item :) :) :)
|
|
AFA Gary J You could use CTRL-OA-ESC :)
|
|
A2GS sorry won't cut it
|
|
Nuzz How do you know someone else won't use that Key combo Jim
|
|
WinkieJim Nuzz, I took a chance...the new version will have it selectable by
|
|
the user. :)
|
|
Coach101 There is the OpenNDA call that looks like it would do it if.....
|
|
Coach101 you could come up with the idNum to pass it. Does anyone know how
|
|
to "safely" find the idNum?
|
|
AFL Dyfet GA Matt
|
|
Matt DTS Keyboard equivalents for NDA menu items aren't such a good idea -
|
|
depending on the (unguaranteed)
|
|
Matt DTS search order of MenuKey, either your NDA or the application's menu
|
|
item that share key equivalents
|
|
Matt DTS will never get to use it. If it's yours, it's OK, but it's not OK
|
|
to take the applications. GA.
|
|
Coach101 Matt, can you safely run the menu manager's menu lists to find a
|
|
particular NDAs idNum and
|
|
Coach101 then call OpenNDA?
|
|
A2GS Is there any "safe" way to find out the ID assigned to the CP
|
|
Nda?
|
|
Dave Lyons Coach, it's not guaranteed, but it's reasonably safe to call
|
|
GetMItemName on 1, 2, 3... until you
|
|
Dave Lyons find the DA you're looking for. It'll work.
|
|
Dave Lyons You may confuse some applications that way, though--it would be
|
|
better to make
|
|
Dave Lyons the application think there was a mouse-down in the menu bar, and
|
|
then make MenuSelect return that
|
|
Dave Lyons ID. This way if the app does some housekeeping when it opens an
|
|
NDA itself, it will still get
|
|
Dave Lyons to do it (not all apps let TaskMaster open DAs for them).
|
|
Coach101 So, then one could cause any NDA to come up by looping on
|
|
GetMItenName till they find the one
|
|
Coach101 they wish to start and then do an OpenNDA with the resulting
|
|
idNum? We solved ?'s problem!
|
|
A2GS how do we check whether we got the id for the CP?
|
|
Coach101 A2, remember Dave's caveats about confusing an applicatoin (but if
|
|
its your application, where
|
|
Coach101 is the confusion), the Get... call will give you the menu name of
|
|
the NDA (I think) so you just go
|
|
Coach101 on looking until you hit the end (some sort of error return, I
|
|
suppose) or get an equality on the
|
|
Coach101 name you are looking for.
|
|
Coach101 ga
|
|
AFL Dyfet Okay, do we have anything else for tonight>
|
|
A2GS thanx...will study the matter further
|
|
|