1 /////////////////////////////////////////////////////////////////////////////// 
   2 // Name:        mac/carbon/aboutdlg.cpp 
   3 // Purpose:     native wxAboutBox() implementation for wxMac 
   4 // Author:      Vadim Zeitlin 
   7 // Copyright:   (c) 2006 Vadim Zeitlin <vadim@wxwindows.org> 
   8 // Licence:     wxWindows licence 
   9 /////////////////////////////////////////////////////////////////////////////// 
  11 // ============================================================================ 
  13 // ============================================================================ 
  15 // ---------------------------------------------------------------------------- 
  17 // ---------------------------------------------------------------------------- 
  19 // for compilers that support precompilation, includes "wx.h". 
  20 #include "wx/wxprec.h" 
  27 #include "wx/aboutdlg.h" 
  28 #include "wx/generic/aboutdlgg.h" 
  30 #include "wx/mac/private.h" 
  32 // helper class for HIAboutBox options 
  33 class AboutBoxOptions 
: public wxMacCFRefHolder
<CFMutableDictionaryRef
> 
  36     AboutBoxOptions() : wxMacCFRefHolder
<CFMutableDictionaryRef
> 
  38                           CFDictionaryCreateMutable
 
  41                            4, // there are at most 4 values 
  42                            &kCFTypeDictionaryKeyCallBacks
, 
  43                            &kCFTypeDictionaryValueCallBacks
 
  49     void Set(CFStringRef key
, const wxString
& value
) 
  51         CFDictionarySetValue(*this, key
, wxMacCFStringHolder(value
)); 
  55 // ============================================================================ 
  57 // ============================================================================ 
  59 void wxAboutBox(const wxAboutDialogInfo
& info
) 
  61     // Mac native about box currently can show only name, version, copyright 
  62     // and description fields and we also shoehorn the credits text into the 
  63     // description but if we have anything else we must use the generic version 
  64     if ( info
.IsSimple() ) 
  68         opts
.Set(kHIAboutBoxNameKey
, info
.GetName()); 
  70         if ( info
.HasVersion() ) 
  71             opts
.Set(kHIAboutBoxVersionKey
, info
.GetVersion()); 
  73         if ( info
.HasCopyright() ) 
  74             opts
.Set(kHIAboutBoxCopyrightKey
, info
.GetCopyright()); 
  76         opts
.Set(kHIAboutBoxDescriptionKey
, info
.GetDescriptionAndCredits()); 
  80     else // simple "native" version is not enough 
  82         // we need to use the full-blown generic version 
  83         wxGenericAboutBox(info
); 
  87 #endif // wxUSE_ABOUTDLG