🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.mac.oop.macapp3
Article #182

Re: TPopup Testing

#182
From: Euro Tech Svcs, OOP Spec
Date: Thu, 17 Dec 1992 10:23
192 lines
8554 bytes
 
Paul,
 
Although you can access the menuhandle data structure to get the status of
items (it is kept in the enableFlags of a MenuInfo data structure), this is not
the way to go. What I would do, is subclass my TPopup and add a field that
keeps track of enabled items. I actually added a object (TBitMap, which come to
think of it is a really confusing name) that is an array of Booleans.
 
Included the MacApp 2.0 source code of UBitMap.cp and UBitMap.h. Adding it to
your subclass of TPopup is easy. For MacApp 3.0 some changes might be
necessary.
 
pascal void TMyPopup::IRes(TDocument *itsDocument, TView *itsSuperView, Ptr *
itsParams)
/*
Task:
   Initialize popup with bitmap of enabled/disabled items.
*/
{
   // do private initialization
   fEnabledItems = NULL;
 
   // and inherited one
   inherited::IRes(itsDocument, itsSuperView, itsParams);
 
   // allocate BitMap object that keeps track of enabled items
   fEnabledItems = new TBitMap;
   FailNIL(fEnabledItems);
   fEnabledItems->IBitMap();
}
 
pascal void TMyPopup::Free()
/*
Task:
   Free allocated BitMap object first.
*/
{
   FreeIfObject(fEnabledItems);
 
   inherited::Free();
}
 
Boolean TMyPopup::IsEnabled(short item)
/*
Task:
   Test if popup item is enabled.
 
Parameters:
   item: (IN) item to test.
 
Return Value:
   'true' If enabled, 'false' otherwise.
*/
{
   return fEnabledItems->IsEnabled(item);
}
 
short TMyPopup::FirstEnabled()
/*
Task:
   Determine first enabled item in a popup.
 
Return Value:
   Number of first enabled item, 0 if none.
*/
{
   return short(fEnabledItems->FirstEnabled());
}
 
void TMyPopup::SetValidSelection()
/*
Task:
   Make sure there is an enabled item selected in the popup.
*/
{
   if (! this->IsEnabled(this->GetCurrentItem())) {
   if (this->FirstEnabled()) {
   this->SetCurrentItem(this->FirstEnabled(), kRedraw);
   }
   }
}
 
Hope this helps, regards,
 
Jeroen Schalk
Object Programming Specialist
European Technology Services
Apple Computer Europe
 

begin 644 CompressedFile%2ePKG
M``46```"``````````````````````````4````#````5@```!(````)````
M:````"`````!````B```$',````"```0^P`````````(```0^P````A#;VUP
M<F5S<V5D1FEL92Y02T=(0E-&1T5/3```````````````````````````````
M``(!```````````````````"60``"!,```%V```)B51%6%1-4%,@`0`!'@0G
M```*54)I=$UA<"YC<````````````````````````````*50+^.FD9[(```#
M+0``$9N```````````'=```"M```"^(```Z65$585$U04R`!``&+!`\```E5
M0FET36%P+F@`````````````````````````````I5`REZ:1G@\```)@```$
MLX```````@````````````$```````````)9```($P```78```F)5$585$U0
M4R`!``$>!"<```I50FET36%P+F-P````````````````````````````I5`O
MXZ:1GL@```,M```1FX````$```````````'=```"M```"^(```Z65$585$U0
M4R`!``&+!`\```E50FET36%P+F@`````````````````````````````I5`R
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
;$=$`\``:D)T1`<*3(0"D$0(6"<A(HXUTO"$'
(IU8%6:=6!5L`
end
Technical Details
Message-ID: <724591933.1915627@AppleLink.Apple.COM>
Path: arc1-ca.pugleaf.net!sparky!uunet!stanford.edu!apple!applelink.apple.com

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!stanford.edu!apple!applelink.apple.com
From: SCHALK1@AppleLink.Apple.COM (Euro Tech Svcs, OOP Spec)
Newsgroups: comp.sys.mac.oop.macapp3
Subject: Re: TPopup Testing
Message-ID: <724591933.1915627@AppleLink.Apple.COM>
Date: 17 Dec 92 10:23:00 GMT
Sender: usenet@Apple.COM
Organization: AppleLink Gateway
Lines: 192