========================================================================= (C) 1994 by Atari Corporation, GEnie, and the Atari Roundtables. May be reprinted only with this notice intact. The Atari Roundtables on GEnie are *official* information services of Atari Corporation. To sign up for GEnie service, call (with modem) 800-638-8369. Upon connection type HHH (RETURN after that). Wait for the U#= prompt.Type XTX99437,GENIE and press [RETURN]. The system will prompt you for your information. ========================================================================== Programming Real Time Conference February 17, 1994 Host - Mike Allen <[Host] MIKE-ALLEN> Ok, capture buffer on. Watch yourselves. Ok, a couple of words before we get into our normal chaos. I have been in contact with Karsten Isakovic, the author of SysMon. The latest available version of SysMon is 1.0.8. The docs are 1.0.5. 1.0.9 is in beta test. He no longers allows SysMon to be posted in BBSs. SysMon can be freely distributed, however. So, if anyone wants the SysMon 1.0.8, let me know and I will send it by EMail. Also, let me know if you need the docs. As I said, 1.0.5 is the latest version of the docs. SysMon is still Shareware and not cheap. $40 for non-commercial use and $80 for commercial use. 1.0.9 uses a registration key, by the way. In chatting with Karsten, it seems that he is lacking a lot of information about cookies from american software. I have sent him the info about the Gnva and CJar cookies. I would like to suggest that we start a cookie collection in lib 19. I have already uploaded the Atari cookies, courtesy of Scott Sanders. Any other cookies that you know of, especially their structure, could be of interest to others. We'll check for dups after they're uploaded. Ok, homework. I was a little confused by what was decided in the last session. It looked to me that we decided that a text editor was "slightly" ambitious. I got to the point of opening a window. I _did_ do my first evnt_multi. I felt like a new ex-virgin. I think that the next step should be opening and closing the window. The entire window concept is quite new to folks like me. After we get the window handled, we can decide what to put in it. We need to decide what attributes to enable in the window. I suggest a minimal set, but I don't know what that would be. suggestions, comments? Floor is open. <[Bud] B.CONNOLLY1> Closer, Fuller and Title. <[Host] MIKE-ALLEN> mover? what would fuller do? <[Bud] B.CONNOLLY1> Let's you open window to full size, or return to the previous size. <[Host] MIKE-ALLEN> two fixed sizes then? <[Bud] B.CONNOLLY1> or are we just using a full sized window? <[Host] MIKE-ALLEN> open at a smaller size and then be able to go to a full screen? <[Bud] B.CONNOLLY1> right. <[Host] MIKE-ALLEN> open at 1/2 vert and horiz size, centered? hello <[Host] MIKE-ALLEN> Howdy, D.Webb. <[Bud] B.CONNOLLY1> sure, that would work. <[Host] MIKE-ALLEN> any other comments on that suggestion? Keith, Charles, we are kinda looking to your experience for leads. <[Bud] B.CONNOLLY1> by using the FULLER, that would get us going towards using the SIZER box later. <[Host] MIKE-ALLEN> no adverse comments, so lets leave it at that. <[Bud] B.CONNOLLY1> ok, so it's: NAME, CLOSER, MOVER and FULLER on the window. <[Host] MIKE-ALLEN> To summarize, open a window, centered, 1/2 sized in both dimensions with a CLOSER and FULLER gadget and a title line. Mover later, Bud? With SIZER? I know that I'm going to have my plate full, without having to move the damn thing. <[Bud] B.CONNOLLY1> could do MOVER now, I did a program a few years back, it wasn't too hard. <[Host] MIKE-ALLEN> Hi, Carl. <[Carl] CBARRON> Hi, longer user's group meeting than usual <[Host] MIKE-ALLEN> Hey, bud, I just did evnt_multi. I'm still very learing. user's group? What's that. 8^{ <[Bud] B.CONNOLLY1> great, evnt_multi still has me scratching my head. <[Host] MIKE-ALLEN> Let's leave mover and sizer for a later assignment. <[Bud] B.CONNOLLY1> not sure how to handle everything it returns. ok. <[Host] MIKE-ALLEN> I'm doing a rather clumsy check at the moment. Carl, glad to see that you approve of my structuring. Hi Charles, Keith... <[Carl] CBARRON> mover and sizer are easy handle. mike your structure is improving <[Host] MIKE-ALLEN> Carl, easy maybe for you, but I'm still on the learning curve. I have to use Fortrash under VMS at work. <[Host] MIKE-ALLEN> I saw some mention of "modeless" dialog boxes. I wonder if that could be a topic for a future session? <[Bud] B.CONNOLLY1> Where's ERIN? That was his topic, wasn't it? <[Host] MIKE-ALLEN> Carl, I assume you understand modeless diaglogs? The way I understand it is that it is a dialog box with it's own window. Mike what level of experience is needed here <[Carl] CBARRON> I THINK, I understand the concept. Not the details of implimentation at the moment. They are windows with object trees for contents. they avoid form_do in its entirety, as I gather. <[Host] MIKE-ALLEN> D.Webb. Well, some folks are quite proficient. Others, like me, are just beginning. Modeless dialogs require special form handler routines and must be intertwined within the main evnt_multi loop, it can be a bit difficult to create. If there are no editable text fields, it is not too difficult to implement. <[Host] MIKE-ALLEN> So really it isn't a dialog box at all? Just acts like one? However, with editable text fields, you have to take into account the text cursor and there can be conflicts with Control/Alt key combinations meaning menu commands vs. special characters in the text field. A modeless dialog uses an OBJECT tree, as it would be defined in RCS. It does not use form_do () to animate it, as form_do () is modal. The concept of modeless here means that other parts of the program and other desk accs (or programs in the case of a Multitasking AES) can be accessed while the dialog in a window is displayed. <[Host] MIKE-ALLEN> Gotcha. I think. Sounds very useful, but I can just begin to see the complexity with editable test. The problem creates is that some menu items may need to be disabled while a modeless dialog is displayed, since there could be conflicts if two areas of a program are accessed at the same time. <[Host] MIKE-ALLEN> Seems like modeless dialogs will be the future, then, with MTOS and Geneva. <[Bud] B.CONNOLLY1> I thought modeless referred to programs that always present the same options to the user. the opposite would be a program that has differnet menu bars depending on the mode the user has selected. <[Host] MIKE-ALLEN> Charles - could you define modal and modeless? modal is a standard dialog or alert box. You cant proceed until some action is taken, i.e. exit via a button. <[Host] MIKE-ALLEN> why the term "modal?" modeless is a form in a window. It can have the same buttons, sliders, popup menus, etc. as a dialog, but the menu bar, other programs and other windows may be accessed at any time. Modal = a "mode" of a program <[Carl] CBARRON> I tbink its nodal, a normal dialog adds a node to a tree of places for input, while an nodeles one does not. <[Host] MIKE-ALLEN> Hmmmmmm - I guess I understand. Things trickle through my atrophied mind a little slowly. a routine that handels a modal dialog enters and exits once. While in the routimne, its in a mode of the program. <[Host] MIKE-ALLEN> aha! gotcha. Use enough words, and I'll get it sooner or later. a modeless dialog must be handled through the main evnt_multi () loop. All events must be tested and are handled based on what the top window contains. <[Host] MIKE-ALLEN> I have a question about evnt_multi. Can it return more than one event at a time> The main problem with modal vs. modeless dialogs, is that form_do() will handle a dialog while in a mode. evnt_multi () returns a mask with bits set for each event. Assuming that evnt_multi () is looking for multiple events, it can return multiple events. <[Host] MIKE-ALLEN> not just the first one it hits, then? if I am looking for a keybd or a messag event, it could return both? form_do () is a basic simple dialog handler. It does not allow for keyboard equivalents to buttons or other special text editing capabilities. <[Bud] B.CONNOLLY1> Right Mike. See page 6.69 of the Compendium. Mike: Yes, and the program should check the mask and handle both (normally) <[Host] MIKE-ALLEN> <[Bud] B.CONNOLLY1> middle of the page: RETURN VALUE <[Host] MIKE-ALLEN> yup - it says "one or more." damn, how'd I miss that? <[Bud] B.CONNOLLY1> information overload probably. <[Host] MIKE-ALLEN> back to the source code. <[Bud] B.CONNOLLY1> so much to learn... <[Host] MIKE-ALLEN> Charles and Carl. Thanks for the discussion. I still have a large confusion factor, but things are much clearer than before. Anything else to discuss? Floor's still open. <[Bud] B.CONNOLLY1> Did we give a concise definition of the homework assignment? <[Host] MIKE-ALLEN> Tim - any late-breaking news on Processor Direct? Bud I thought so, but I will re-iterate. <[Tim@TWP] P-DIRECT2> Well, I'm two articles away from being completely finished, so we'll be sending the disks to DMC to have the stuff put on film early next week. Please reiterate for me. :) <[Host] MIKE-ALLEN> building on HW2, which was a menu with an about under desk and a quit under file, about to key an alert box ... we are qoing to open a window. the window will be 1/2 size in both dimensions and centered. <[Tim@TWP] P-DIRECT2> Open a window? <[Host] MIKE-ALLEN> the window will have a title, a CLOSER and a FULLER box. <[Tim@TWP] P-DIRECT2> Why? <[Host] MIKE-ALLEN> the fuller box will toggle between full and original size. <[Tim@TWP] P-DIRECT2> How detailed would you like the comments in my source code? <[Bud] B.CONNOLLY1> should have been there earlier Tim. <[Host] MIKE-ALLEN> the closer will exit the program. same as quit from the file menu. did I miss anything, Bud? <[Bud] B.CONNOLLY1> nope, I don't think so. <[Host] MIKE-ALLEN> Tim - source code should have sufficient comments so that someone other than the programmer can understand it! <[Bud] B.CONNOLLY1> Tim, rule of thumb on comments. Enough so that you can pick up the program in 6 months and be able to modify without losing any hair. <[Host] MIKE-ALLEN> Also suggest that heavy error checking sould be done throughout the program. <[Bud] B.CONNOLLY1> yes. <[Tim@TWP] P-DIRECT2> Remember that editor that was mentioned at the first RTC? I've been working on one, and I was wondering if anyone would like to mess with it when I get it to load and save. <[Host] MIKE-ALLEN> Carl, did you notice my error checking stuck in with the structuring? <[Carl] CBARRON> leaves me out. I hate comments! re editor possibly, but I don't like assembled on any machine. <[Host] MIKE-ALLEN> Carl - I went back to some C code I did about 10 years ago. I haven't the foggiest idea what I was doing! <[Bud] B.CONNOLLY1> Needed more comments then! <[Host] MIKE-ALLEN> Yup. <[Tim@TWP] P-DIRECT2> For this open-window program, so you need a menu bar? Do you need it to compile to a PRG, or just code to open the windoe? <[Host] MIKE-ALLEN> Only thing I could figure out was that it was a data base for CP/M. Tim - it's gotta work! <[Tim@TWP] P-DIRECT2> Oh... ok. I'll see what I can do. What do you want in the window. Sorry for sounding like such a gump. <[Bud] B.CONNOLLY1> Tim, I believe it would have to be a PRG to use windows. <[Tim@TWP] P-DIRECT2> I know it has to be a PRG.... but Mike's answer 'it's gotta work' told me what I needed to know. <[Host] MIKE-ALLEN> Tim - nothing in the window at the moment. That's the next step. Some of us are learning! <[Tim@TWP] P-DIRECT2> I see... I'll make it blank. <[Carl] CBARRON> Anything in this window or just open it??? <[Tim@TWP] P-DIRECT2> White <[Host] MIKE-ALLEN> You can put a naked woman in the window if you want. <[Tim@TWP] P-DIRECT2> How erotic do you want? <[Host] MIKE-ALLEN> Anything else? My back hurts and I want to lie down. <[Tim@TWP] P-DIRECT2> Have a nice rest. I'll see if I can get time to work on the window program. <[Host] MIKE-ALLEN> Ok, capture off. Have fun all. thanks for coming.