#include "wx/evtloop.h"
-#if defined(__MWERKS__) && wxUSE_UNICODE
-#if __MWERKS__ < 0x4100
- #include <wtime.h>
-#endif
-#endif
-
-#if wxUSE_BASE
+#if wxUSE_GUI
// Emit a beeeeeep
void wxBell()
else
#endif
#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
- SysBeep(30);
+ AlertSoundPlay();
#else
{
}
#endif
}
-#endif // wxUSE_BASE
-
-#if wxUSE_GUI
-
wxTimerImpl* wxGUIAppTraits::CreateTimerImpl(wxTimer *timer)
{
return new wxOSXTimerImpl(timer);
#endif // wxUSE_BASE
+
+// ============================================================================
+// GUI-only functions from now on
+// ============================================================================
+
#if wxUSE_GUI
+// ----------------------------------------------------------------------------
+// Miscellaneous functions
+// ----------------------------------------------------------------------------
+
void wxGetMousePosition( int* x, int* y )
{
Point pt;
#endif // wxUSE_GUI
-#if wxUSE_BASE
-// ----------------------------------------------------------------------------
-// Common Event Support
-// ----------------------------------------------------------------------------
-
-void wxMacWakeUp()
-{
- OSStatus err = noErr;
-
-#if wxOSX_USE_CARBON
-#if 0
- // lead sometimes to race conditions, although all calls used should be thread safe ...
- static wxMacCarbonEvent s_wakeupEvent;
- if ( !s_wakeupEvent.IsValid() )
- {
- err = s_wakeupEvent.Create( 'WXMC', 'WXMC', GetCurrentEventTime(),
- kEventAttributeNone );
- }
- if ( err == noErr )
- {
-
- if ( IsEventInQueue( GetMainEventQueue() , s_wakeupEvent ) )
- return;
- s_wakeupEvent.SetCurrentTime();
- err = PostEventToQueue(GetMainEventQueue(), s_wakeupEvent,
- kEventPriorityHigh );
- }
-#else
- wxMacCarbonEvent wakeupEvent;
- wakeupEvent.Create( 'WXMC', 'WXMC', GetCurrentEventTime(),
- kEventAttributeNone );
- err = PostEventToQueue(GetMainEventQueue(), wakeupEvent,
- kEventPriorityHigh );
-#endif
-#endif
-}
-
-#endif // wxUSE_BASE
-
#if wxUSE_GUI
// ----------------------------------------------------------------------------
wx->y = n->v;
}
-//---------------------------------------------------------------------------
-// wxMac Specific string utility functions
-//---------------------------------------------------------------------------
-
-void wxMacStringToPascal( const wxString&from , StringPtr to )
-{
- wxCharBuffer buf = from.mb_str( wxConvLocal );
- int len = strlen(buf);
-
- if ( len > 255 )
- len = 255;
- to[0] = len;
- memcpy( (char*) &to[1] , buf , len );
-}
-
-wxString wxMacMakeStringFromPascal( ConstStringPtr from )
-{
- return wxString( (char*) &from[1] , wxConvLocal , from[0] );
-}
-
-
// ----------------------------------------------------------------------------
// Carbon Event Support
// ----------------------------------------------------------------------------
return AddDataBrowserListViewColumn( m_controlRef, columnDesc, position );
}
-OSStatus wxMacDataBrowserControl::GetColumnIDFromIndex( DataBrowserTableViewColumnIndex position, DataBrowserTableViewColumnID* id ){
+OSStatus wxMacDataBrowserControl::GetColumnIDFromIndex( DataBrowserTableViewColumnIndex position, DataBrowserTableViewColumnID* id )
+{
return GetDataBrowserTableViewColumnProperty( m_controlRef, position, id );
}
return SetDataBrowserListViewDisclosureColumn( m_controlRef, property, expandableRows);
}
+OSStatus wxMacDataBrowserControl::GetItemPartBounds( DataBrowserItemID item, DataBrowserPropertyID property, DataBrowserPropertyPart part, Rect * bounds )
+{
+ return GetDataBrowserItemPartBounds( m_controlRef, item, property, part, bounds);
+}
+
// ============================================================================
// Higher-level Databrowser
// ============================================================================
const wxMacDataItem* rhs,
DataBrowserPropertyID sortProperty) const
{
- const wxMacDataItem* otherItem = wx_const_cast(wxMacDataItem*,rhs);
bool retval = false;
if ( sortProperty == kNumericOrderColumnId )
- retval = m_order < otherItem->m_order;
+ retval = m_order < rhs->m_order;
return retval;
}
{
wxMacDataItem* itemOne = (wxMacDataItem*) itemOneID;
wxMacDataItem* itemTwo = (wxMacDataItem*) itemTwoID;
- return CompareItems( itemOne , itemTwo , sortProperty );
-}
-Boolean wxMacDataItemBrowserControl::CompareItems(const wxMacDataItem* itemOne,
- const wxMacDataItem* itemTwo,
- DataBrowserPropertyID sortProperty)
-{
Boolean retval = false;
if ( itemOne != NULL )
retval = itemOne->IsLessThan( this , itemTwo , sortProperty);
Boolean changeValue )
{
wxMacDataItem* item = (wxMacDataItem*) itemID;
- return GetSetItemData(item, property, itemData , changeValue );
-}
-
-OSStatus wxMacDataItemBrowserControl::GetSetItemData(
- wxMacDataItem* item,
- DataBrowserPropertyID property,
- DataBrowserItemDataRef itemData,
- Boolean changeValue )
-{
OSStatus err = errDataBrowserPropertyNotSupported;
switch( property )
{
DataBrowserItemDataRef itemData)
{
wxMacDataItem* item = (wxMacDataItem*) itemID;
- ItemNotification( item , message, itemData);
-}
-
-void wxMacDataItemBrowserControl::ItemNotification(
- const wxMacDataItem* item,
- DataBrowserItemNotification message,
- DataBrowserItemDataRef itemData)
-{
if (item != NULL)
item->Notification( this, message, itemData);
}
delete [] items;
}
-void wxMacDataItemBrowserControl::InsertColumn(int colId, DataBrowserPropertyType colType,
+static int column_id_counter = 0;
+
+void wxMacDataItemBrowserControl::InsertColumn(int col, DataBrowserPropertyType colType,
const wxString& title, SInt16 just, int defaultWidth)
{
DataBrowserListViewColumnDesc columnDesc;
// TODO: Why is m_font not defined when we enter wxLC_LIST mode, but is
// defined for other modes?
wxFontEncoding enc;
- if ( m_font.Ok() )
+ if ( m_font.IsOk() )
enc = m_font.GetEncoding();
else
enc = wxLocale::GetSystemEncoding();
columnDesc.headerBtnDesc.minimumWidth = 0;
columnDesc.headerBtnDesc.maximumWidth = 30000;
- columnDesc.propertyDesc.propertyID = (kMinColumnId + colId);
+ DataBrowserPropertyID id = kMinColumnId + column_id_counter;
+ column_id_counter++;
+
+ columnDesc.propertyDesc.propertyID = id;
columnDesc.propertyDesc.propertyType = colType;
columnDesc.propertyDesc.propertyFlags = kDataBrowserListViewSortableColumn;
columnDesc.propertyDesc.propertyFlags |= kDataBrowserListViewTypeSelectColumn;
columnDesc.propertyDesc.propertyFlags |= kDataBrowserListViewNoGapForIconInHeaderButton;
- verify_noerr( AddColumn( &columnDesc, kDataBrowserListViewAppendColumn ) );
+ verify_noerr( AddColumn( &columnDesc, col ) );
if (defaultWidth > 0){
- SetColumnWidth(colId, defaultWidth);
+ SetColumnWidth(col, defaultWidth);
}
-
}
void wxMacDataItemBrowserControl::SetColumnWidth(int colId, int width)
void wxMacDataItemBrowserControl::RemoveAllItems(wxMacDataItem *container)
{
+ SetScrollPosition(0, 0);
OSStatus err = wxMacDataBrowserControl::RemoveItems( (DataBrowserItemID)container, 0 , NULL , kDataBrowserItemNoProperty );
verify_noerr( err );
}
void wxMacDataItemBrowserControl::MacInsert( unsigned int n, wxMacDataItem* item)
{
- SInt32 frontLineOrder = 0;
-
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 );
}
+
+#if 0
+ // I don't understand what this code is supposed to do, RR.
+ SInt32 frontLineOrder = 0;
if ( n > 0 )
{
wxMacDataItem* iter = (wxMacDataItem*) GetItemFromLine(n-1);
- frontLineOrder = iter->GetOrder();
+ frontLineOrder = iter->GetOrder()+1;
}
+#else
+ item->SetOrder( n );
+#endif
}
- wxArrayMacDataItemPtr ids;
- ids.SetCount( 1 );
-
- if ( m_sortOrder == SortOrder_None )
- item->SetOrder( frontLineOrder + 1 );
-
- ids[0] = item;
-
- AddItems( wxMacDataBrowserRootContainer, ids );
+ AddItem( wxMacDataBrowserRootContainer, item );
}
void wxMacDataItemBrowserControl::MacClear()