TweetFollow Us on Twitter

Buttons and Edits
Volume Number:1
Issue Number:5
Column Tag:BASIC SCHOOL

Buttons and Edit fields

By Dave Kelly

Well, now that we know how to use windows, we should discuss what to put in them. Besides the usual printing of output, our Macintosh provides us with what are known as BUTTONs and EDIT FIELDs.

In MS Basic 2.0 the syntax is:

BUTTON  button-id,state [ ,title,
 rectangle [,type ]]
BUTTON CLOSE n
EDIT FIELD field-id [,default, rectangle [,[type][,justify ]]]
EDIT FIELD CLOSE field-id

The id parameter identifies the button or edit field number. BUTTON states are: 0=Button inactive,dimmed on the screen,1=Button active, not selected, 2 =Button active, selected. Title is a string expression that is displayed inside or beside the identified BUTTON. The BUTTON type paramenter identifies the type of BUTTON, 1=A simple push button, 2=A check box, 3=A radio button. The EDIT FIELD default is the string expression to be edited. Cut and paste editing can be used to edit the default string. Type indicates one of four editing formats. Types are: 1=Draw a box around the rectangle to be edited-Return keys not allowed, 2=Draw a box around the rectangle and allow return keys, 3=No box around edit field-Return keys not allowed, 4=No box around the rectangle and allow return keys. When using types 1 and 3 the edit field has wrap around (no return keys are allowed). The justify parameter specifies the justification of the text in the EDIT FIELD, 1=Left Justify, 2=Center Justify, 3=Right Justify. Now we’re ready to program.

Well, almost. If you remember from our discussion of WINDOWs, the rectangle parameter specifies the location of the window on the Macintosh screen. The rectangle parameter in BUTTON and EDIT FIELD statements specifies the location of the BUTTON or EDIT FIELD in the current output window. It has the form (x1,y1)-(x2,y2), same as for WINDOW, (x1,y1) is the upper left corner of the current window and (x2,y2) is the lower right corner of the window. Sounds easy at first, but here’s the catch: for every program you write you have to figure out where on the screen you want to put each BUTTON or EDIT FIELD. This can be quite a pain, especially if you have alot to put in your window. Since there is no one rectangle for every application, you must be the judge of what you think “looks” good. This is true for all program development on the Mac. All of positions for the dialog boxes and window that we see in the finder and in other applications had to be decided the same way.

The program, Rectangle Sizer should be an aid to anyone experimenting with the positions and sizes of BUTTONs and EDIT FIELDs. When the program starts you may select BUTTONS or EDIT FIELDS from the Type Selection menu. The function menu allows you to add additional BUTTONs or EDIT FIELDS or erase. You may change the size of the output window and move it around, then select Window dimensions from the function menu and the program will print the current width and height of the output window. As you place BUTTONs or EDIT FIELDs in the window, the program will display the current rectangle cooredinates. You may want to experiment and write down the coordinates for use in your program. If you want to use different fonts and sizes you can add a menu for that if you wish. This would be useful in programming the EDIT FIELDs. The BUTTONs always use 12 point Chicago. Therefore the rectangle size must be 12 point or more or part of the text will be clipped off. To use other fonts with BUTTONs you should print text beside the BUTTON. (You may have to move the desired fonts to your BASIC disk as only the bare minimum of fonts comes on the disk). It would take some experimenting to get things just right, however. You should experiment with the different BUTTON types and sizes to see what happens. A useful utility brought to you by MACTUTOR.


‘    Rectangle Sizer    
‘    By Dave Kelly
‘    ©MACTUTOR 1985

‘Set up menus
MENU 6,0,1,”Function”
MENU 6,1,0,”Add or Change Button #”
MENU 6,2,1,”Erase Button”
MENU 6,3,0,”-”
MENU 6,4,0,”Add or Change Edit Field #”
MENU 6,5,1,”Erase Edit Field”
MENU 6,6,0,”-”
MENU 6,7,1,”Window dimensions”
MENU 6,8,1,”Quit”
MENU 7,0,1,”Type Selection”
MENU 7,1,1,”Buttons”
MENU 7,2,1,”Edit Fields”
MENU 7,3,2,”No Selection”
rect%=0:bnumber%=0:enumber%=0
ON MENU GOSUB menuevent : MENU ON
WINDOW CLOSE 1
WINDOW 2,,(2,280)-(510,340),3: CLS
WINDOW  1,”Rectangle Sizer Window”,  (2,40)-(510,275)
ON MOUSE GOSUB mouseevent
‘Watch for mouse click
MOUSE ON
pause:GOTO pause

mouseevent:
MOUSE OFF: MENU OFF: x=MOUSE(0) xstart=MOUSE(3): ystart=MOUSE(4)

loop:
x=MOUSE(0)
IF x>=0 THEN exitloop’ Loop until button is        released
xend=MOUSE(5):yend=MOUSE(6)
IF rect%=1 AND bnumber%>0 THEN     BUTTON bnumber%,State,Title$, 
 (xstart,ystart)-(xend,yend),Type
IF rect%=2 AND (yend-ystart<=0) THEN yend=ystart+1
IF rect%=2 AND (xend-xstart<15) THEN xend=xstart+16
IF rect%=2 AND enumber%>0 THEN
 EDIT FIELD enumber%,default$,     (xstart,ystart)-(xend,yend), 
 EditType,Justify
CLS:WINDOW OUTPUT 2:LOCATE 1,1
IF rect%=1 THEN
 PRINT”Rectangle”;bnumber%; ELSE
 PRINT “Rectangle”;enumber%;
PRINT “is:  (“;xstart;”,”;ystart;”)-(“;xend;             “,”;yend;”)”:WINDOW 
1
GOTO loop

exitloop:
WINDOW OUTPUT 2
LOCATE 1,1:IF rect%=1 THEN  PRINT”Rectangle”;bnumber%; ELSE
 PRINT “Rectangle”;enumber%;
PRINT “is:  (“;xstart;”,”;ystart;”)-(“;xend;
 “,”;yend;”)”: WINDOW OUTPUT 1
MOUSE ON: MENU ON: RETURN
menuevent:
menunumber=MENU(0)
IF menunumber=7 THEN menu7
IF menunumber<>6 THEN RETURN
menuitem=MENU(1): MENU
ON menuitem GOSUB Changebutton,    Erasebutton, blank, Changeedit, 
 Eraseedit, blank, Windowsize, Quit
RETURN

blank:RETURN  ‘This will never happen, but just in case...

menu7: menuitem=MENU(1)
IF menuitem=1 THEN MENU 7,3,1:MENU 7,1,2: MENU 7,2,1: MENU     
 6,1,1: MENU 6,4,0: rect%=1:IF     bnumber%=0 THEN GOSUB       
 changebutton
IF menuitem=2 THEN MENU 7,3,1:MENU 7,1,1: MENU 7,2,2: MENU     
 6,1,0: MENU 6,4,1: rect%=2:IF     enumber%=0 THEN GOSUB changeedit
IF menuitem=3 THEN MENU 7,3,2:MENU 7,1,1: MENU 7,2,1: MENU     
 6,1,0: MENU 6,4,0: rect%=0
RETURN

Changebutton:
WINDOW 2: CLS:INPUT “Enter Button  number:”,bnumber%
IF bnumber% <=0 GOTO Changebutton
GOSUB Startbutton: WINDOW 1: RETURN

Erasebutton:WINDOW 2:CLS
INPUT”Erase which number”;E%
CLS:WINDOW 1: BUTTON CLOSE E%
RETURN

Changeedit:
WINDOW 2: CLS
INPUT”Enter Edit Field number:”,   enumber%
IF enumber%<=0 GOTO Changeedit
GOSUB Startedit: WINDOW 1: RETURN
Eraseedit:
WINDOW 2: CLS
INPUT”Erase which Edit Field  number”;E%: CLS: WINDOW 1
EDIT FIELD CLOSE e%: RETURN

Quit: WINDOW CLOSE 2:MENU RESET:END

Startbutton:
CLS:PRINT “Enter Button #”;bnumber%;
INPUT” Title:”,Title$
In2:INPUT “Enter Type (1=Push button,  2=Check box, 3= Radio button):”,
 Type
IF Type < 1 OR Type >3 GOTO In2
In3:INPUT “Enter State (0=Inactive,  1=Active/not selected,    
 2=Active/selected):”,State
IF State <0 OR State >2 GOTO In3
CLS:RETURN

Startedit:
CLS:PRINT “Enter Edit Field #”;enumber%;
INPUT” Default (CR=None) :”,default$
e2:INPUT “Enter Type (1=Draw box/no CR,            2=Draw box/CR, 3=No 
Box/no CR,  4=No Box/CR):”,EditType
IF EditType < 1 OR EditType >4 GOTO e2
e3:INPUT “Enter Justify mode (1=Left Justify, 2=Center text, 3=Right 
 Justify):”,Justify
IF Justify <1 OR Justify >3 GOTO e3
CLS:RETURN

windowsize:
WINDOW OUTPUT 1:winwidth= WINDOW(2)
winheight=WINDOW(3)
WINDOW OUTPUT 2: LOCATE 2,1:PRINT  “Window width=”;winwidth;” height=”; 
 winheight;
WINDOW OUTPUT 1:RETURN

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Kill the Plumber World guide - How to ou...
You already know how to hop around like Mario, but do you know how to defeat him? Those are your marching orders in Kill the Plumber, and it's not always as easy as it looks. Here are some tips to get you started. This is not a seasoned platform... | Read more »
Planar Conquest (Games)
Planar Conquest 1.0 Device: iOS Universal Category: Games Price: $12.99, Version: 1.0 (iTunes) Description: IMPORTANT: Planar Conquest is compatible only with iPad 3 & newer devices, iPhone 5 & newer. It’s NOT compatible with... | Read more »
We talk to Cheetah Mobile about its plan...
Piano Tiles 2 is a fast-paced rhythm action high score chaser out now on iOS and Android. You have to tap a series of black tiles that appear on the screen in time to the music, being careful not to accidentally hit anywhere else. Do that and it's... | Read more »
Ultimate Briefcase guide - How to dodge...
Ultimate Briefcase is a simple but tricky game that’s highly dependent on how fast you can react. We can still offer you a few tips and tricks on how to survive though. Guess what? That’s exactly what we’re going to do now. Take it easy [Read more... | Read more »
SoundPrism Link Edition (Music)
SoundPrism Link Edition 1.0 Device: iOS Universal Category: Music Price: $4.99, Version: 1.0 (iTunes) Description: ***Introductory price for a the first few days after launch - if you're reading this, get it while it's fresh out of... | Read more »
Pre-register now for hack and slasher An...
Fincon, which won Facebook's Studio to Watch award in 2015, has announced that pre-registration is now open for the massive 3.0 update for its award-winning hack and slasher Angel Stone. Angel Stone is a post-apocalyptic action RPG in which the... | Read more »
Google has named Piano Tiles 2 as its Be...
Google has named Piano Tiles 2, which launched back in August last year, as its Best Game of 2015. If you're yet to play it, now's a good time to do so. It's a sequel to the hugely successful viral hit Piano Tiles (Don't Tap the White Tile) but... | Read more »
Sago Mini Trucks and Diggers (Education...
Sago Mini Trucks and Diggers 1.0 Device: iOS Universal Category: Education Price: $2.99, Version: 1.0 (iTunes) Description: Drive a dump truck with Rosie the hamster! Pile dirt high and dig deep in the ground with diggers, cranes and... | Read more »
Day One 2 Journal + Notes (Lifestyle)
Day One 2 Journal + Notes 2.0 Device: iOS Universal Category: Lifestyle Price: $4.99, Version: 2.0 (iTunes) Description: **New Release Sale—50% off for a Limited Time!** Capture life as you live it. From once-in-a-lifetime events to... | Read more »
Pull My Tongue (Games)
Pull My Tongue 1.0 Device: iOS Universal Category: Games Price: $.99, Version: 1.0 (iTunes) Description: Meet Greg. A hungry little chameleon that loves popcorn! Help feed Greg by pulling his tongue through a series of fun puzzles... | Read more »

Price Scanner via MacPrices.net

Watch Super Bowl 50 Live On Your iPad For Fre...
Watch Super Bowl 50 LIVE on the CBS Sports app for iPad and Apple TV. Get the app and then tune in Sunday, February 7, 2016 at 6:30 PM ET to catch every moment of the big game. The CBS Sports app is... Read more
Two-thirds Of All Smart Watches Shipped In 20...
Apple dominated the smart watch market in 2015, accounting for over 12 million units and two-thirds of all shipments according to Canalys market research analysts’ estimates. Samsung returned to... Read more
12-inch 1.2GHz Retina MacBooks on sale for up...
B&H Photo has 12″ 1.2GHz Retina MacBooks on sale for $180 off MSRP. Shipping is free, and B&H charges NY tax only: - 12″ 1.2GHz Gray Retina MacBook: $1499 $100 off MSRP - 12″ 1.2GHz Silver... Read more
12-inch 1.1GHz Gray Retina MacBook on sale fo...
B&H Photo has the 12″ 1.1GHz Gray Retina MacBook on sale for $1199 including free shipping plus NY sales tax only. Their price is $100 off MSRP, and it’s the lowest price available for this model... Read more
Apple now offering full line of Certified Ref...
Apple now has a full line of Certified Refurbished 2015 21″ & 27″ iMacs available for up to $350 off MSRP. Apple’s one-year warranty is standard, and shipping is free. The following models are... Read more
Free GUI Speedometer – The Ultimate Digital D...
Miami, Florida based RMKapps has announced the official release of GUI Speedometer 1.0, their digital dashboard display developed for iOS devices. GUI Speedometer allows users to track their precise... Read more
FutureCalc: Ergonomic iOS Calculator App For...
London, United Kingdom based Independent software developer and entrepreneur, Hovik Melikyan has announced the release and immediate availability of FutureCalc 1.0, his new ergonomic calculator app... Read more
Save up to $600 with Apple refurbished Mac Pr...
Apple has Certified Refurbished Mac Pros available for up to $600 off the cost of new models. An Apple one-year warranty is included with each Mac Pro, and shipping is free. The following... Read more
Apple’s ‘Next Big Thing’ Drought And Mature M...
Apple’s first fiscal quarter 2016 financial results yielded both good news and bad news. In the positive column, Apple made another boatload of money, reporting record quarterly revenue of $75.9... Read more
Lifeproof NUUD For iPhone 6S, iPhone 6S Plus...
LifeProof NUUD was designed to defy more than the elements. It defies logic itself by combining legendary four-proof protection and screenless technology to survive mountaintop missions and seaside... Read more

Jobs Board

*Apple* Macintosh OSX - Net2Source Inc. (Uni...
…: * Work Authorization : * Contact Number(Best time to reach you) : Skills : Apple Macintosh OSX Location : New York, New York. Duartion : 6+ Months The associate would Read more
Computer Operations Technician ll - *Apple*...
# Web Announcement** Apple Technical Liaison**The George Mason University, Information Technology Services (ITS), Technology Support Services, Desktop Support Read more
Restaurant Manager - Apple Gilroy Inc./Apple...
…in every aspect of daily operation. WHY YOU'LL LIKE IT: You'll be the Big Apple . You'll solve problems. You'll get to show your ability to handle the stress and Read more
Simply Mac *Apple* Specialist- Service Repa...
Simply Mac is the largest premier retailer of Apple products in the nation. In order to support our growing customer base, we are currently looking for a driven Read more
*Apple* IOS / OS X Level 3 Support Analyst -...
Needed: Apple Support Analyst (OS X / IOS); 50k-60k/yr +…Horizon Technology Partners has an immediate opening for an Apple IOS / OS X LEVEL 3 Support Analyst. Your Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.