]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/fontdlg.cpp
Change wxNotebook selection before sending page changed event in wxMSW.
[wxWidgets.git] / src / osx / carbon / fontdlg.cpp
index e7892ad5426ae1b4b81a7f1ccfdd93a3dd298897..cf0aed1759e08100ca75166b9ec21285dd1d6e86 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        src/mac/carbon/fontdlg.cpp
+// Name:        src/osx/carbon/fontdlg.cpp
 // Purpose:     wxFontDialog class for carbon 10.2+.
 // Author:      Ryan Norton
 // Modified by:
 // Purpose:     wxFontDialog class for carbon 10.2+.
 // Author:      Ryan Norton
 // Modified by:
 #endif
 
 #include "wx/fontdlg.h"
 #endif
 
 #include "wx/fontdlg.h"
+#include "wx/fontutil.h"
 
 
-#if wxMAC_USE_EXPERIMENTAL_FONTDIALOG
+#if wxOSX_USE_EXPERIMENTAL_FONTDIALOG
 
 IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog)
 
 
 IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog)
 
-#include "wx/mac/uma.h"
+#include "wx/osx/private.h"
 
 // ---------------------------------------------------------------------------
 // wxFontDialog
 // ---------------------------------------------------------------------------
 
 
 // ---------------------------------------------------------------------------
 // wxFontDialog
 // ---------------------------------------------------------------------------
 
+#if wxOSX_USE_CARBON
+
 static const EventTypeSpec eventList[] =
 {
     { kEventClassFont, kEventFontSelection } ,
 static const EventTypeSpec eventList[] =
 {
     { kEventClassFont, kEventFontSelection } ,
@@ -73,20 +76,22 @@ wxMacCarbonFontPanelHandler(EventHandlerCallRef WXUNUSED(nextHandler),
         case kEventFontSelection :
         {
             bool setup = false ;
         case kEventFontSelection :
         {
             bool setup = false ;
-#if wxMAC_USE_CORE_TEXT
+#if wxOSX_USE_CORE_TEXT
             if (  UMAGetSystemVersion() >= 0x1050 )
             {
                 CTFontDescriptorRef descr;
                 if ( cEvent.GetParameter<CTFontDescriptorRef>( kEventParamCTFontDescriptor, typeCTFontDescriptorRef, &descr ) == noErr )
                 {
                     wxFont font;
             if (  UMAGetSystemVersion() >= 0x1050 )
             {
                 CTFontDescriptorRef descr;
                 if ( cEvent.GetParameter<CTFontDescriptorRef>( kEventParamCTFontDescriptor, typeCTFontDescriptorRef, &descr ) == noErr )
                 {
                     wxFont font;
-                    font.MacCreateFromCTFontDescriptor(descr);
+                    wxNativeFontInfo fontinfo;
+                    fontinfo.Init(descr);
+                    font.Create(fontinfo);
                     fontdata.SetChosenFont( font ) ;
                     setup = true;
                 }
             }
 #endif
                     fontdata.SetChosenFont( font ) ;
                     setup = true;
                 }
             }
 #endif
-#if wxMAC_USE_ATSU_TEXT
+#if wxOSX_USE_ATSU_TEXT
             ATSUFontID fontId = 0 ;
             if ( !setup && (cEvent.GetParameter<ATSUFontID>(kEventParamATSUFontID, &fontId) == noErr) )
             {
             ATSUFontID fontId = 0 ;
             if ( !setup && (cEvent.GetParameter<ATSUFontID>(kEventParamATSUFontID, &fontId) == noErr) )
             {
@@ -98,7 +103,7 @@ wxMacCarbonFontPanelHandler(EventHandlerCallRef WXUNUSED(nextHandler),
                 FMFontFamily fontFamily = cEvent.GetParameter<FMFontFamily>(kEventParamFMFontFamily);
                 ATSFontFamilyRef atsfontfamilyref = FMGetATSFontFamilyRefFromFontFamily( fontFamily ) ;
                 OSStatus err = ATSFontFamilyGetName( atsfontfamilyref , kATSOptionFlagsDefault , &cfName ) ;
                 FMFontFamily fontFamily = cEvent.GetParameter<FMFontFamily>(kEventParamFMFontFamily);
                 ATSFontFamilyRef atsfontfamilyref = FMGetATSFontFamilyRefFromFontFamily( fontFamily ) ;
                 OSStatus err = ATSFontFamilyGetName( atsfontfamilyref , kATSOptionFlagsDefault , &cfName ) ;
-                if ( err == noErr )
+                if ( err != noErr )
                 {
                     wxFAIL_MSG("ATSFontFamilyGetName failed");
                 }
                 {
                     wxFAIL_MSG("ATSFontFamilyGetName failed");
                 }
@@ -142,7 +147,7 @@ wxMacCarbonFontPanelHandler(EventHandlerCallRef WXUNUSED(nextHandler),
                     fontdata.m_chosenFont.SetWeight(fontStyle & bold ? wxFONTWEIGHT_BOLD : wxFONTWEIGHT_NORMAL);
                 }
             }
                     fontdata.m_chosenFont.SetWeight(fontStyle & bold ? wxFONTWEIGHT_BOLD : wxFONTWEIGHT_NORMAL);
                 }
             }
-#endif // wxMAC_USE_ATSU_TEXT
+#endif // wxOSX_USE_ATSU_TEXT
 
             // retrieving the color
             RGBColor fontColor ;
 
             // retrieving the color
             RGBColor fontColor ;
@@ -191,6 +196,7 @@ wxMacCarbonFontPanelHandler(EventHandlerCallRef WXUNUSED(nextHandler),
 }
 
 DEFINE_ONE_SHOT_HANDLER_GETTER( wxMacCarbonFontPanelHandler )
 }
 
 DEFINE_ONE_SHOT_HANDLER_GETTER( wxMacCarbonFontPanelHandler )
+#endif
 
 wxFontDialog::wxFontDialog()
 {
 
 wxFontDialog::wxFontDialog()
 {
@@ -213,6 +219,8 @@ bool wxFontDialog::Create(wxWindow *WXUNUSED(parent), const wxFontData& data)
 
 int wxFontDialog::ShowModal()
 {
 
 int wxFontDialog::ShowModal()
 {
+#if wxOSX_USE_CARBON
+
     OSStatus err ;
     wxFont font = *wxNORMAL_FONT ;
     if ( m_fontData.m_initialFont.Ok() )
     OSStatus err ;
     wxFont font = *wxNORMAL_FONT ;
     if ( m_fontData.m_initialFont.Ok() )
@@ -221,15 +229,16 @@ int wxFontDialog::ShowModal()
     }
 
     bool setup = false;
     }
 
     bool setup = false;
-#if wxMAC_USE_CORE_TEXT
+#if wxOSX_USE_CORE_TEXT
     if ( UMAGetSystemVersion() >= 0x1050 )
     {
     if ( UMAGetSystemVersion() >= 0x1050 )
     {
-        CTFontDescriptorRef descr = (CTFontDescriptorRef)font.MacGetCTFontDescriptor();
+        CTFontDescriptorRef descr = (CTFontDescriptorRef) CTFontCopyFontDescriptor( (CTFontRef) font.OSXGetCTFont() );
         err = SetFontInfoForSelection (kFontSelectionCoreTextType,1, &descr , NULL);
         err = SetFontInfoForSelection (kFontSelectionCoreTextType,1, &descr , NULL);
+        CFRelease( descr );
         setup = true;
     }
 #endif
         setup = true;
     }
 #endif
-#if wxMAC_USE_ATSU_TEXT
+#if wxOSX_USE_ATSU_TEXT
     if ( !setup )
     {
         ATSUStyle style = (ATSUStyle)font.MacGetATSUStyle();
     if ( !setup )
     {
         ATSUStyle style = (ATSUStyle)font.MacGetATSUStyle();
@@ -247,10 +256,13 @@ int wxFontDialog::ShowModal()
 
     if ( !FPIsFontPanelVisible() )
         FPShowHideFontPanel();
 
     if ( !FPIsFontPanelVisible() )
         FPShowHideFontPanel();
-
+#endif
+    wxDialog::OSXBeginModalDialog();
     int retval = RunMixedFontDialog(this);
     int retval = RunMixedFontDialog(this);
-
+    wxDialog::OSXEndModalDialog();
+#if wxOSX_USE_CARBON
     ::RemoveEventHandler(handler);
     ::RemoveEventHandler(handler);
+#endif
 
     return retval ;
 }
 
     return retval ;
 }
@@ -261,7 +273,7 @@ int wxFontDialog::ShowModal()
 
 #undef wxFontDialog
 
 
 #undef wxFontDialog
 
-#include "wx/mac/fontdlg.h"
+#include "wx/osx/fontdlg.h"
 
 #include "wx/fontenum.h"
 #include "wx/colordlg.h"
 
 #include "wx/fontenum.h"
 #include "wx/colordlg.h"
@@ -501,7 +513,7 @@ void wxFontDialog::CreateControls()
     wxStaticText* itemStaticText8 = new wxStaticText( itemDialog1, wxID_STATIC, _("Size:"), wxDefaultPosition, wxDefaultSize, 0 );
     itemFlexGridSizer4->Add(itemStaticText8, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
 
     wxStaticText* itemStaticText8 = new wxStaticText( itemDialog1, wxID_STATIC, _("Size:"), wxDefaultPosition, wxDefaultSize, 0 );
     itemFlexGridSizer4->Add(itemStaticText8, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
 
-    m_sizeCtrl = new wxSpinCtrl( itemDialog1, wxID_FONTDIALOG_FONTSIZE, _T("12"), wxDefaultPosition, wxSize(60, -1), wxSP_ARROW_KEYS, 1, 300, 12 );
+    m_sizeCtrl = new wxSpinCtrl( itemDialog1, wxID_FONTDIALOG_FONTSIZE, wxT("12"), wxDefaultPosition, wxSize(60, -1), wxSP_ARROW_KEYS, 1, 300, 12 );
     m_sizeCtrl->SetHelpText(_("The font size in points."));
     if (ShowToolTips())
         m_sizeCtrl->SetToolTip(_("The font size in points."));
     m_sizeCtrl->SetHelpText(_("The font size in points."));
     if (ShowToolTips())
         m_sizeCtrl->SetToolTip(_("The font size in points."));
@@ -577,7 +589,7 @@ void wxFontDialog::CreateControls()
     wxFontEnumerator enumerator;
     enumerator.EnumerateFacenames();
     wxArrayString facenames = enumerator.GetFacenames();
     wxFontEnumerator enumerator;
     enumerator.EnumerateFacenames();
     wxArrayString facenames = enumerator.GetFacenames();
-    if (facenames)
+    if (!facenames.empty())
     {
         facenames.Add(_("<Any>"));
         facenames.Add(_("<Any Roman>"));
     {
         facenames.Add(_("<Any>"));
         facenames.Add(_("<Any Roman>"));
@@ -823,6 +835,6 @@ int FontFamilyStringToInt(const wxChar *family)
 
 #endif // !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
 
 
 #endif // !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
 
-#endif // wxMAC_USE_EXPERIMENTAL_FONTDIALOG
+#endif // wxOSX_USE_EXPERIMENTAL_FONTDIALOG
 
 #endif // wxUSE_FONTDLG
 
 #endif // wxUSE_FONTDLG