X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b5d59f11f00a3865641d9c3b8981972f6df67ef3..0075ea227994861373b5b9ee0889e64bf079860b:/src/mac/carbon/utils.cpp diff --git a/src/mac/carbon/utils.cpp b/src/mac/carbon/utils.cpp index d491c42b04..b39f646238 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,84 +387,16 @@ 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) +wxEventLoopBase* wxGUIAppTraits::CreateEventLoop() { - wxString buf; - buf.Printf(wxT("%d"), value); - - return wxWriteResource(section, entry, buf, file); + return new wxEventLoop; } -bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file) +wxTimerImpl* wxGUIAppTraits::CreateTimerImpl(wxTimer *timer) { - // 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) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = strtol(s, NULL, 10); - delete[] s; - } - - return succ; + return new wxCarbonTimerImpl(timer); } -bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = (int)strtol(s, NULL, 10); - delete[] s; - } - - return succ; -} -#endif // wxUSE_RESOURCES - int gs_wxBusyCursorCount = 0; extern wxCursor gMacCurrentCursor; wxCursor gMacStoredActiveCursor; @@ -522,7 +463,7 @@ wxString wxMacFindFolder( short vol, // Check whether this window wants to process messages, e.g. Stop button // in long calculations. -bool wxCheckForInterrupt(wxWindow *wnd) +bool wxCheckForInterrupt(wxWindow *WXUNUSED(wnd)) { // TODO return false; @@ -648,10 +589,10 @@ wxString wxGetOsDescription() } #ifndef __DARWIN__ -wxChar *wxGetUserHome (const wxString& user) +wxString wxGetUserHome (const wxString& user) { // TODO - return NULL; + return wxString(); } bool wxGetDiskSpace(const wxString& path, wxDiskspaceSize_t *pTotal, wxDiskspaceSize_t *pFree) @@ -867,7 +808,10 @@ void wxMacControl::Dispose() 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; } @@ -988,7 +932,7 @@ bool wxMacControl::NeedsFocusRect() const return m_needsFocusRect; } -void wxMacControl::VisibilityChanged(bool shown) +void wxMacControl::VisibilityChanged(bool WXUNUSED(shown)) { } @@ -999,6 +943,7 @@ void wxMacControl::SuperChangedPosition() void wxMacControl::SetFont( const wxFont & font , const wxColour& foreground , long windowStyle ) { m_font = font; +#ifndef __LP64__ ControlFontStyleRec fontStyle; if ( font.MacGetThemeFontID() != kThemeCurrentPortFont ) { @@ -1049,6 +994,7 @@ void wxMacControl::SetFont( const wxFont & font , const wxColour& foreground , l } ::SetControlFontStyle( m_controlRef , &fontStyle ); +#endif } void wxMacControl::SetBackground( const wxBrush &WXUNUSED(brush) ) @@ -1342,7 +1288,11 @@ DataBrowserItemDataUPP gDataBrowserItemDataUPP = NULL; DataBrowserItemNotificationUPP gDataBrowserItemNotificationUPP = NULL; DataBrowserItemCompareUPP gDataBrowserItemCompareUPP = NULL; -wxMacDataBrowserControl::wxMacDataBrowserControl( wxWindow* peer, const wxPoint& pos, const wxSize& size, long style) : wxMacControl( peer ) +wxMacDataBrowserControl::wxMacDataBrowserControl( wxWindow* peer, + const wxPoint& pos, + const wxSize& size, + long WXUNUSED(style)) + : wxMacControl( peer ) { Rect bounds = wxMacGetBoundsForControl( peer, pos, size ); OSStatus err = ::CreateDataBrowserControl( @@ -1682,7 +1632,7 @@ const wxString& wxMacDataItem::GetLabel() const return m_label; } -bool wxMacDataItem::IsLessThan(wxMacDataItemBrowserControl *owner , +bool wxMacDataItem::IsLessThan(wxMacDataItemBrowserControl *WXUNUSED(owner) , const wxMacDataItem* rhs, DataBrowserPropertyID sortProperty) const { @@ -1699,7 +1649,7 @@ bool wxMacDataItem::IsLessThan(wxMacDataItemBrowserControl *owner , return retval; } -OSStatus wxMacDataItem::GetSetData( wxMacDataItemBrowserControl *owner , +OSStatus wxMacDataItem::GetSetData( wxMacDataItemBrowserControl *WXUNUSED(owner) , DataBrowserPropertyID property, DataBrowserItemDataRef itemData, bool changeValue ) @@ -1731,9 +1681,9 @@ OSStatus wxMacDataItem::GetSetData( wxMacDataItemBrowserControl *owner , return err; } -void wxMacDataItem::Notification(wxMacDataItemBrowserControl *owner , - DataBrowserItemNotification message, - DataBrowserItemDataRef itemData ) const +void wxMacDataItem::Notification(wxMacDataItemBrowserControl *WXUNUSED(owner) , + DataBrowserItemNotification WXUNUSED(message), + DataBrowserItemDataRef WXUNUSED(itemData) ) const { } @@ -2076,36 +2026,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 ) @@ -2260,7 +2183,15 @@ void * wxMacDataItemBrowserControl::MacGetClientData( unsigned int n) const void wxMacDataItemBrowserControl::MacScrollTo( unsigned int n ) { - RevealItem( GetItemFromLine( n) , kDataBrowserRevealWithoutSelecting ); + UInt32 top , left ; + GetScrollPosition( &top , &left ) ; + wxMacDataItem * item = (wxMacDataItem*) GetItemFromLine( n ); + + UInt16 height ; + GetRowHeight( (DataBrowserItemID) item , &height ) ; + SetScrollPosition( n * ((UInt32)height) , left ) ; + + RevealItem( item , kDataBrowserRevealWithoutSelecting ); }