X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/83f787ba2137594f12c7bd0659dc3c2fb973598f..967d3d97839afc098999cee27e0c8c70fa42294c:/src/mac/carbon/utils.cpp diff --git a/src/mac/carbon/utils.cpp b/src/mac/carbon/utils.cpp index 85a38d0b49..55848f5799 100644 --- a/src/mac/carbon/utils.cpp +++ b/src/mac/carbon/utils.cpp @@ -57,8 +57,11 @@ #include #include #endif + +#include "wx/mac/private/timer.h" #endif // wxUSE_GUI +#include "wx/evtloop.h" #include "wx/mac/private.h" #if defined(__MWERKS__) && wxUSE_UNICODE @@ -303,7 +306,13 @@ WXDLLEXPORT bool wxGetEnv(const wxString& var, wxString *value) } // set the env var name to the given value, return true on success -WXDLLEXPORT bool wxSetEnv(const wxString& var, const wxChar *value) +WXDLLEXPORT bool wxSetEnv(const wxString& var, const wxString& value) +{ + // TODO : under classic there is no environement support, under X yes + return false; +} + +WXDLLEXPORT bool wxUnsetEnv(const wxString& var) { // TODO : under classic there is no environement support, under X yes return false; @@ -378,83 +387,15 @@ wxPortId wxGUIAppTraits::GetToolkitVersion(int *verMaj, int *verMin) const return wxPORT_MAC; } -// Reading and writing resources (eg WIN.INI, .Xdefaults) -#if wxUSE_RESOURCES -bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file) -{ - // TODO - return false; -} - -bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file) -{ - wxString buf; - buf.Printf(wxT("%.4f"), value); - - return wxWriteResource(section, entry, buf, file); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file) -{ - wxString buf; - buf.Printf(wxT("%ld"), value); - - return wxWriteResource(section, entry, buf, file); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file) -{ - wxString buf; - buf.Printf(wxT("%d"), value); - - return wxWriteResource(section, entry, buf, file); -} - -bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file) -{ - // TODO - return false; -} - -bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = (float)strtod(s, NULL); - delete[] s; - } - - return succ; -} - -bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file) +wxEventLoopBase* wxGUIAppTraits::CreateEventLoop() { - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = strtol(s, NULL, 10); - delete[] s; - } - - return succ; + return new wxEventLoop; } -bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file) +wxTimerImpl* wxGUIAppTraits::CreateTimerImpl(wxTimer *timer) { - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = (int)strtol(s, NULL, 10); - delete[] s; - } - - return succ; + return new wxCarbonTimerImpl(timer); } -#endif // wxUSE_RESOURCES int gs_wxBusyCursorCount = 0; extern wxCursor gMacCurrentCursor; @@ -863,10 +804,14 @@ void wxMacControl::Init() void wxMacControl::Dispose() { + wxASSERT_MSG( m_controlRef != NULL , wxT("Control Handle already NULL, Dispose called twice ?") ); wxASSERT_MSG( IsValidControlHandle(m_controlRef) , wxT("Invalid Control Handle (maybe already released) in Dispose") ); // we cannot check the ref count here anymore, as autorelease objects might delete their refs later - CFRelease(m_controlRef); + // we can have situations when being embedded, where the control gets deleted behind our back, so only + // CFRelease if we are safe + if ( IsValidControlHandle(m_controlRef) ) + CFRelease(m_controlRef); m_controlRef = NULL; } @@ -2075,36 +2020,9 @@ void wxMacDataItemBrowserControl::MacDelete( unsigned int n ) RemoveItem( wxMacDataBrowserRootContainer, item ); } -void wxMacDataItemBrowserControl::MacInsert( unsigned int n, const wxString& text, int column ) -{ - wxMacDataItem* newItem = CreateItem(); - newItem->SetLabel( text ); - if ( column != -1 ) - newItem->SetColumn( kMinColumnId + column ); - - if ( m_sortOrder == SortOrder_None ) - { - // increase the order of the lines to be shifted - unsigned int lines = MacGetCount(); - for ( unsigned int i = n; i < lines; ++i) - { - wxMacDataItem* iter = (wxMacDataItem*) GetItemFromLine(i); - iter->SetOrder( iter->GetOrder() + 1 ); - } - - SInt32 frontLineOrder = 0; - if ( n > 0 ) - { - wxMacDataItem* iter = (wxMacDataItem*) GetItemFromLine(n-1); - frontLineOrder = iter->GetOrder(); - } - newItem->SetOrder( frontLineOrder + 1 ); - } - - AddItem( wxMacDataBrowserRootContainer, newItem ); -} - -void wxMacDataItemBrowserControl::MacInsert( unsigned int n, const wxArrayString& items, int column ) +void wxMacDataItemBrowserControl::MacInsert( unsigned int n, + const wxArrayStringsAdapter& items, + int column ) { size_t itemsCount = items.GetCount(); if ( itemsCount == 0 )