home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 October: Mac OS SDK / Dev.CD Oct 00 SDK1.toast / Development Kits / Mac OS / Appearance SDK 1.0.4 / Appearance Sample Code / Source / NewButtonPane.cp < prev    next >
Encoding:
Text File  |  1999-07-16  |  2.9 KB  |  112 lines  |  [TEXT/CWIE]

  1. /*
  2.     File:        NewButtonPane.cp
  3.  
  4.     Contains:    Code to demonstrate new button types available with Appearance.
  5.  
  6.     Version:    Appearance 1.0 SDK
  7.  
  8.     Copyright:    © 1997 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     File Ownership:
  11.  
  12.         DRI:                Edward Voas
  13.  
  14.         Other Contact:        7 of 9, Borg Collective
  15.  
  16.         Technology:            OS Technologies Group
  17.  
  18.     Writers:
  19.  
  20.         (edv)    Ed Voas
  21.  
  22.     Change History (most recent first):
  23.  
  24.          <2>    10/28/97    edv        Use RadioGroup control!
  25.          <1>     9/11/97    edv        First checked in.
  26. */
  27.  
  28. #include "NewButtonPane.h"
  29. #include "Appearance.h"
  30. #include "AppearanceHelpers.h"
  31. #include "UDialogUtils.h"
  32.  
  33. enum
  34. {
  35.     kBevel1            = 1,
  36.     kToRightBevel    = 2,
  37.     kBelowBevel     = 3,
  38.     kAboveBevel        = 4,
  39.     kToLeftBevel    = 5,
  40.     kMenuBevel        = 8,
  41.     kMultiMenuBevel    = 9,
  42.     kBevelGroup        = 18,
  43.     kLeftJustBevel    = 19,
  44.     kCenterJustBevel= 20,
  45.     kRightJustBevel = 21,
  46.     kFullJustBevel    = 22
  47. };
  48.  
  49. #define MIN( a, b )        ( ( (a) < (b) ) ? (a) : (b) )
  50. #define MAX( a, b )        ( ( (a) > (b) ) ? (a) : (b) )
  51.  
  52. NewButtonPane::NewButtonPane( DialogPtr dialog, SInt16 items ) : MegaPane( dialog, items )
  53. {
  54.     ControlHandle        control;
  55.     Boolean                kTrue = true;
  56.     SInt32                delay = 30;
  57.     
  58.     AppendDialogItemList( dialog, 6006, overlayDITL );
  59.     
  60.     GetDialogItemAsControl( dialog, fOrigItems + kToRightBevel, &control );
  61.     SetBevelButtonTextPlacement( control, kControlBevelButtonPlaceToRightOfGraphic );
  62.  
  63.     GetDialogItemAsControl( dialog, fOrigItems + kBelowBevel, &control );
  64.     SetBevelButtonTextPlacement( control, kControlBevelButtonPlaceBelowGraphic );
  65.  
  66.     GetDialogItemAsControl( dialog, fOrigItems + kAboveBevel, &control );
  67.     SetBevelButtonTextPlacement( control, kControlBevelButtonPlaceAboveGraphic );
  68.  
  69.     GetDialogItemAsControl( dialog, fOrigItems + kToLeftBevel, &control );
  70.     SetBevelButtonTextPlacement( control, kControlBevelButtonPlaceToLeftOfGraphic );
  71.  
  72.     GetDialogItemAsControl( dialog, fOrigItems + kMenuBevel, &control );
  73.     SetBevelButtonTextAlignment( control, kControlBevelButtonAlignTextFlushLeft, 3 );
  74.     SetControlData( control, 0, 'pglc', sizeof( kTrue ), (Ptr)&kTrue );
  75.  
  76.     GetDialogItemAsControl( dialog, fOrigItems + kMultiMenuBevel, &control );
  77.     SetBevelButtonTextAlignment( control, kControlBevelButtonAlignTextFlushLeft, 3 );
  78.     SetControlData( control, 0, 'pglc', sizeof( kTrue ), (Ptr)&kTrue );
  79.  
  80.     GetDialogItemAsControl( dialog, fOrigItems + kMultiMenuBevel, &control );
  81.     SetControlData( control, 0, kControlBevelButtonMenuDelayTag, sizeof( SInt32 ), (Ptr)&delay );
  82.     
  83.     InsertMenu( GetMenu( 147 ), -1 );
  84. }
  85.  
  86. NewButtonPane::~NewButtonPane()
  87. {
  88.     ShortenDITL( fDialog, CountDITL( fDialog ) - fOrigItems );
  89. }
  90.  
  91. void
  92. NewButtonPane::ItemHit( SInt16 item )
  93. {
  94.     SInt16            localItem;
  95.     
  96.     localItem = item - fOrigItems;
  97.     
  98.     switch ( localItem )
  99.     {
  100.         case kMultiMenuBevel:
  101.             {
  102.                 ControlHandle    control;
  103.                 Size            realSize;
  104.                 SInt16            menuID;
  105.                 
  106.                 GetDialogItemAsControl( fDialog, fOrigItems + kMultiMenuBevel, &control );
  107.                 GetControlData( control, 0, kControlBevelButtonLastMenuTag, sizeof( menuID ), (Ptr)&menuID, &realSize );
  108.             }
  109.             break;
  110.     }
  111. }
  112.