applied SourceForge patch #440594 which corrects ListBox related errors
in Carbon applications under Mac OS X the LDEF resource is no longer used in Carbon applications git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11355 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -66,7 +66,8 @@ public:
|
|||||||
const wxString& name = wxListBoxNameStr);
|
const wxString& name = wxListBoxNameStr);
|
||||||
|
|
||||||
virtual ~wxListBox();
|
virtual ~wxListBox();
|
||||||
|
virtual void Refresh(bool eraseBack = TRUE, const wxRect *rect = NULL);
|
||||||
|
|
||||||
// implement base class pure virtuals
|
// implement base class pure virtuals
|
||||||
virtual void Clear();
|
virtual void Clear();
|
||||||
virtual void Delete(int n);
|
virtual void Delete(int n);
|
||||||
|
@@ -20,9 +20,7 @@
|
|||||||
#include "wx/log.h"
|
#include "wx/log.h"
|
||||||
|
|
||||||
#include "wx/utils.h"
|
#include "wx/utils.h"
|
||||||
#ifdef __DARWIN__
|
#ifndef __DARWIN__
|
||||||
#include "ldef/extldef.h"
|
|
||||||
#else
|
|
||||||
#include "extldef.h"
|
#include "extldef.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -59,58 +57,95 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id,
|
|||||||
const wxValidator& validator,
|
const wxValidator& validator,
|
||||||
const wxString& name)
|
const wxString& name)
|
||||||
{
|
{
|
||||||
m_noItems = 0 ; // this will be increased by our append command
|
m_noItems = 0 ; // this will be increased by our append command
|
||||||
m_selected = 0;
|
m_selected = 0;
|
||||||
|
|
||||||
|
Rect bounds ;
|
||||||
|
Str255 title ;
|
||||||
|
|
||||||
|
MacPreControlCreate( parent , id , "" , pos , size ,style, validator , name , &bounds , title ) ;
|
||||||
|
|
||||||
Rect bounds ;
|
#if TARGET_CARBON
|
||||||
Str255 title ;
|
ListDefSpec listDef;
|
||||||
|
OptionBits options;
|
||||||
MacPreControlCreate( parent , id , "" , pos , size ,style, validator , name , &bounds , title ) ;
|
Size asize;
|
||||||
|
|
||||||
m_macControl = UMANewControl( parent->GetMacRootWindow() , &bounds , title , false , kwxMacListWithVerticalScrollbar , 0 , 0,
|
listDef.defType = kListDefStandardTextType;
|
||||||
kControlListBoxProc , (long) this ) ;
|
|
||||||
|
|
||||||
long result ;
|
|
||||||
UMAGetControlData( m_macControl , kControlNoPart , kControlListBoxListHandleTag , sizeof( ListHandle ) , (char*) &m_macList , &result ) ;
|
|
||||||
|
|
||||||
HLock( (Handle) m_macList ) ;
|
CreateListBoxControl( parent->GetMacRootWindow(), &bounds, false, 0, 1, false, true,
|
||||||
NewExtLDEFInfo( m_macList , MacDrawStringCell , (long) this ) ;
|
14, 14, false, &listDef, &m_macControl );
|
||||||
(**m_macList).selFlags = 0 ;
|
|
||||||
if ( style & wxLB_MULTIPLE )
|
|
||||||
{
|
|
||||||
(**m_macList).selFlags += lNoExtend ;
|
|
||||||
}
|
|
||||||
else if ( style & wxLB_EXTENDED )
|
|
||||||
{
|
|
||||||
(**m_macList).selFlags += lExtendDrag ;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
(**m_macList).selFlags = lOnlyOne ;
|
|
||||||
}
|
|
||||||
Point pt = (**m_macList).cellSize ;
|
|
||||||
pt.v = 14 ;
|
|
||||||
LCellSize( pt , m_macList ) ;
|
|
||||||
|
|
||||||
LAddColumn( 1 , 0 , m_macList ) ;
|
GetControlData(m_macControl, kControlNoPart, kControlListBoxListHandleTag,
|
||||||
|
sizeof(ListHandle), (Ptr) &m_macList, &asize);
|
||||||
|
|
||||||
MacPostControlCreate() ;
|
SetControlReference(m_macControl, (long) this);
|
||||||
|
SetControlVisibility(m_macControl, false, false);
|
||||||
|
|
||||||
ControlFontStyleRec controlstyle ;
|
options = 0;
|
||||||
controlstyle.flags = kControlUseFontMask + kControlUseSizeMask ;
|
if ( style & wxLB_MULTIPLE )
|
||||||
//controlstyle.font = kControlFontSmallSystemFont ;
|
{
|
||||||
controlstyle.font = kFontIDMonaco ;
|
options += lNoExtend ;
|
||||||
controlstyle.size = 9 ;
|
}
|
||||||
::UMASetControlFontStyle( m_macControl , &controlstyle ) ;
|
else if ( style & wxLB_EXTENDED )
|
||||||
|
{
|
||||||
|
options += lExtendDrag ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
options = lOnlyOne ;
|
||||||
|
}
|
||||||
|
SetListSelectionFlags(m_macList, options);
|
||||||
|
|
||||||
for ( int i = 0 ; i < n ; i++ )
|
#else
|
||||||
{
|
long result ;
|
||||||
Append( choices[i] ) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
LSetDrawingMode( true , m_macList ) ;
|
m_macControl = UMANewControl( parent->GetMacRootWindow() , &bounds , title , false ,
|
||||||
|
kwxMacListWithVerticalScrollbar , 0 , 0,
|
||||||
|
kControlListBoxProc , (long) this ) ;
|
||||||
|
UMAGetControlData( m_macControl , kControlNoPart , kControlListBoxListHandleTag ,
|
||||||
|
sizeof( ListHandle ) , (char*) &m_macList , &result ) ;
|
||||||
|
|
||||||
return TRUE;
|
HLock( (Handle) m_macList ) ;
|
||||||
|
NewExtLDEFInfo( m_macList , MacDrawStringCell , (long) this ) ;
|
||||||
|
|
||||||
|
(**m_macList).selFlags = 0 ;
|
||||||
|
if ( style & wxLB_MULTIPLE )
|
||||||
|
{
|
||||||
|
(**m_macList).selFlags += lNoExtend ;
|
||||||
|
}
|
||||||
|
else if ( style & wxLB_EXTENDED )
|
||||||
|
{
|
||||||
|
(**m_macList).selFlags += lExtendDrag ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
(**m_macList).selFlags = lOnlyOne ;
|
||||||
|
}
|
||||||
|
|
||||||
|
Point pt = (**m_macList).cellSize ;
|
||||||
|
pt.v = 14 ;
|
||||||
|
LCellSize( pt , m_macList ) ;
|
||||||
|
|
||||||
|
LAddColumn( 1 , 0 , m_macList ) ;
|
||||||
|
|
||||||
|
ControlFontStyleRec controlstyle ;
|
||||||
|
controlstyle.flags = kControlUseFontMask + kControlUseSizeMask ;
|
||||||
|
//controlstyle.font = kControlFontSmallSystemFont ;
|
||||||
|
controlstyle.font = kFontIDMonaco ;
|
||||||
|
controlstyle.size = 9 ;
|
||||||
|
//::UMASetControlFontStyle( m_macControl , &controlstyle ) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
MacPostControlCreate() ;
|
||||||
|
|
||||||
|
for ( int i = 0 ; i < n ; i++ )
|
||||||
|
{
|
||||||
|
Append( choices[i] ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
LSetDrawingMode( true , m_macList ) ;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxListBox::~wxListBox()
|
wxListBox::~wxListBox()
|
||||||
@@ -118,8 +153,10 @@ wxListBox::~wxListBox()
|
|||||||
Free() ;
|
Free() ;
|
||||||
if ( m_macList )
|
if ( m_macList )
|
||||||
{
|
{
|
||||||
DisposeExtLDEFInfo( m_macList ) ;
|
#if !TARGET_CARBON
|
||||||
m_macList = NULL ;
|
DisposeExtLDEFInfo( m_macList ) ;
|
||||||
|
#endif
|
||||||
|
m_macList = NULL ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -335,7 +372,7 @@ bool wxListBox::IsSelected(int N) const
|
|||||||
void *wxListBox::DoGetItemClientData(int N) const
|
void *wxListBox::DoGetItemClientData(int N) const
|
||||||
{
|
{
|
||||||
wxCHECK_MSG( N >= 0 && N < m_noItems, NULL,
|
wxCHECK_MSG( N >= 0 && N < m_noItems, NULL,
|
||||||
"invalid index in wxListBox::GetClientData" );
|
wxT("invalid index in wxListBox::GetClientData"));
|
||||||
|
|
||||||
return (void *)m_dataArray[N];
|
return (void *)m_dataArray[N];
|
||||||
}
|
}
|
||||||
@@ -461,6 +498,16 @@ void wxListBox::SetupColours()
|
|||||||
SetForegroundColour(GetParent()->GetForegroundColour());
|
SetForegroundColour(GetParent()->GetForegroundColour());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxListBox::Refresh(bool eraseBack, const wxRect *rect)
|
||||||
|
{
|
||||||
|
// Set up port
|
||||||
|
WindowRef rootwindow = GetMacRootWindow() ;
|
||||||
|
wxWindow* wxrootwindow = wxFindWinFromMacWindow( rootwindow ) ;
|
||||||
|
wxMacDrawingHelper focus( wxrootwindow );
|
||||||
|
|
||||||
|
UMADrawControl(m_macControl);
|
||||||
|
}
|
||||||
|
|
||||||
#if wxUSE_OWNER_DRAWN
|
#if wxUSE_OWNER_DRAWN
|
||||||
|
|
||||||
class wxListBoxItem : public wxOwnerDrawn
|
class wxListBoxItem : public wxOwnerDrawn
|
||||||
@@ -503,38 +550,38 @@ void MacDrawStringCell(Rect *cellRect, Cell lCell, ListHandle theList, long refC
|
|||||||
|
|
||||||
void wxListBox::MacDelete( int N )
|
void wxListBox::MacDelete( int N )
|
||||||
{
|
{
|
||||||
ListHandle list ;
|
LDelRow( 1 , N , m_macList) ;
|
||||||
long result ;
|
Refresh();
|
||||||
UMAGetControlData( m_macControl , kControlNoPart , kControlListBoxListHandleTag , sizeof( ListHandle ) , (char*) &list , &result ) ;
|
|
||||||
LDelRow( 1 , N , list ) ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::MacInsert( int n , const char * text)
|
void wxListBox::MacInsert( int n , const char * text)
|
||||||
{
|
{
|
||||||
Cell cell ;
|
Cell cell = { 0 , 0 } ;
|
||||||
|
cell.v = n ;
|
||||||
cell.h = 0 ;
|
LAddRow( 1 , cell.v , m_macList ) ;
|
||||||
cell.v = n ;
|
LSetCell(text, strlen(text), cell, m_macList);
|
||||||
|
Refresh();
|
||||||
LAddRow( 1 , cell.v , m_macList ) ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::MacAppend( const char * text)
|
void wxListBox::MacAppend( const char * text)
|
||||||
{
|
{
|
||||||
Cell cell = { 0 , 0 } ;
|
Cell cell = { 0 , 0 } ;
|
||||||
cell.v = (**m_macList).dataBounds.bottom ;
|
cell.v = (**m_macList).dataBounds.bottom ;
|
||||||
LAddRow( 1 , cell.v , m_macList ) ;
|
LAddRow( 1 , cell.v , m_macList ) ;
|
||||||
|
LSetCell(text, strlen(text), cell, m_macList);
|
||||||
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::MacClear()
|
void wxListBox::MacClear()
|
||||||
{
|
{
|
||||||
LDelRow( (**m_macList).dataBounds.bottom , 0 , m_macList ) ;
|
LDelRow( (**m_macList).dataBounds.bottom , 0 , m_macList ) ;
|
||||||
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::MacSetSelection( int n , bool select )
|
void wxListBox::MacSetSelection( int n , bool select )
|
||||||
{
|
{
|
||||||
Cell cell = { 0 , 0 } ;
|
Cell cell = { 0 , 0 } ;
|
||||||
if ( LGetSelect( TRUE , &cell , m_macList ) )
|
if ( LGetSelect( true , &cell , m_macList ) )
|
||||||
{
|
{
|
||||||
LSetSelect( false , cell , m_macList ) ;
|
LSetSelect( false , cell , m_macList ) ;
|
||||||
}
|
}
|
||||||
@@ -542,6 +589,7 @@ void wxListBox::MacSetSelection( int n , bool select )
|
|||||||
cell.v = n ;
|
cell.v = n ;
|
||||||
LSetSelect( select , cell , m_macList ) ;
|
LSetSelect( select , cell , m_macList ) ;
|
||||||
LAutoScroll( m_macList ) ;
|
LAutoScroll( m_macList ) ;
|
||||||
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxListBox::MacIsSelected( int n ) const
|
bool wxListBox::MacIsSelected( int n ) const
|
||||||
@@ -553,7 +601,7 @@ bool wxListBox::MacIsSelected( int n ) const
|
|||||||
|
|
||||||
void wxListBox::MacDestroy()
|
void wxListBox::MacDestroy()
|
||||||
{
|
{
|
||||||
// DisposeExtLDEFInfo( m_macList ) ;
|
// DisposeExtLDEFInfo( m_macList ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxListBox::MacGetSelection() const
|
int wxListBox::MacGetSelection() const
|
||||||
@@ -589,7 +637,8 @@ void wxListBox::MacSet( int n , const char * text )
|
|||||||
// so we just have to redraw
|
// so we just have to redraw
|
||||||
Cell cell = { 0 , 0 } ;
|
Cell cell = { 0 , 0 } ;
|
||||||
cell.v = n ;
|
cell.v = n ;
|
||||||
LDraw( cell , m_macList ) ;
|
LSetCell(text, strlen(text), cell, m_macList);
|
||||||
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::MacScrollTo( int n )
|
void wxListBox::MacScrollTo( int n )
|
||||||
@@ -599,9 +648,15 @@ void wxListBox::MacScrollTo( int n )
|
|||||||
|
|
||||||
void wxListBox::OnSize( const wxSizeEvent &event)
|
void wxListBox::OnSize( const wxSizeEvent &event)
|
||||||
{
|
{
|
||||||
Point pt = (**m_macList).cellSize ;
|
Point pt;
|
||||||
pt.h = m_width - 15 ;
|
|
||||||
LCellSize( pt , m_macList ) ;
|
#if TARGET_CARBON
|
||||||
|
GetListCellSize(m_macList, &pt);
|
||||||
|
#else
|
||||||
|
pt = (**m_macList).cellSize ;
|
||||||
|
#endif
|
||||||
|
pt.h = m_width - 15 ;
|
||||||
|
LCellSize( pt , m_macList ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::MacHandleControlClick( ControlHandle control , SInt16 controlpart )
|
void wxListBox::MacHandleControlClick( ControlHandle control , SInt16 controlpart )
|
||||||
|
@@ -20,9 +20,7 @@
|
|||||||
#include "wx/log.h"
|
#include "wx/log.h"
|
||||||
|
|
||||||
#include "wx/utils.h"
|
#include "wx/utils.h"
|
||||||
#ifdef __DARWIN__
|
#ifndef __DARWIN__
|
||||||
#include "ldef/extldef.h"
|
|
||||||
#else
|
|
||||||
#include "extldef.h"
|
#include "extldef.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -59,58 +57,95 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id,
|
|||||||
const wxValidator& validator,
|
const wxValidator& validator,
|
||||||
const wxString& name)
|
const wxString& name)
|
||||||
{
|
{
|
||||||
m_noItems = 0 ; // this will be increased by our append command
|
m_noItems = 0 ; // this will be increased by our append command
|
||||||
m_selected = 0;
|
m_selected = 0;
|
||||||
|
|
||||||
|
Rect bounds ;
|
||||||
|
Str255 title ;
|
||||||
|
|
||||||
|
MacPreControlCreate( parent , id , "" , pos , size ,style, validator , name , &bounds , title ) ;
|
||||||
|
|
||||||
Rect bounds ;
|
#if TARGET_CARBON
|
||||||
Str255 title ;
|
ListDefSpec listDef;
|
||||||
|
OptionBits options;
|
||||||
MacPreControlCreate( parent , id , "" , pos , size ,style, validator , name , &bounds , title ) ;
|
Size asize;
|
||||||
|
|
||||||
m_macControl = UMANewControl( parent->GetMacRootWindow() , &bounds , title , false , kwxMacListWithVerticalScrollbar , 0 , 0,
|
listDef.defType = kListDefStandardTextType;
|
||||||
kControlListBoxProc , (long) this ) ;
|
|
||||||
|
|
||||||
long result ;
|
|
||||||
UMAGetControlData( m_macControl , kControlNoPart , kControlListBoxListHandleTag , sizeof( ListHandle ) , (char*) &m_macList , &result ) ;
|
|
||||||
|
|
||||||
HLock( (Handle) m_macList ) ;
|
CreateListBoxControl( parent->GetMacRootWindow(), &bounds, false, 0, 1, false, true,
|
||||||
NewExtLDEFInfo( m_macList , MacDrawStringCell , (long) this ) ;
|
14, 14, false, &listDef, &m_macControl );
|
||||||
(**m_macList).selFlags = 0 ;
|
|
||||||
if ( style & wxLB_MULTIPLE )
|
|
||||||
{
|
|
||||||
(**m_macList).selFlags += lNoExtend ;
|
|
||||||
}
|
|
||||||
else if ( style & wxLB_EXTENDED )
|
|
||||||
{
|
|
||||||
(**m_macList).selFlags += lExtendDrag ;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
(**m_macList).selFlags = lOnlyOne ;
|
|
||||||
}
|
|
||||||
Point pt = (**m_macList).cellSize ;
|
|
||||||
pt.v = 14 ;
|
|
||||||
LCellSize( pt , m_macList ) ;
|
|
||||||
|
|
||||||
LAddColumn( 1 , 0 , m_macList ) ;
|
GetControlData(m_macControl, kControlNoPart, kControlListBoxListHandleTag,
|
||||||
|
sizeof(ListHandle), (Ptr) &m_macList, &asize);
|
||||||
|
|
||||||
MacPostControlCreate() ;
|
SetControlReference(m_macControl, (long) this);
|
||||||
|
SetControlVisibility(m_macControl, false, false);
|
||||||
|
|
||||||
ControlFontStyleRec controlstyle ;
|
options = 0;
|
||||||
controlstyle.flags = kControlUseFontMask + kControlUseSizeMask ;
|
if ( style & wxLB_MULTIPLE )
|
||||||
//controlstyle.font = kControlFontSmallSystemFont ;
|
{
|
||||||
controlstyle.font = kFontIDMonaco ;
|
options += lNoExtend ;
|
||||||
controlstyle.size = 9 ;
|
}
|
||||||
::UMASetControlFontStyle( m_macControl , &controlstyle ) ;
|
else if ( style & wxLB_EXTENDED )
|
||||||
|
{
|
||||||
|
options += lExtendDrag ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
options = lOnlyOne ;
|
||||||
|
}
|
||||||
|
SetListSelectionFlags(m_macList, options);
|
||||||
|
|
||||||
for ( int i = 0 ; i < n ; i++ )
|
#else
|
||||||
{
|
long result ;
|
||||||
Append( choices[i] ) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
LSetDrawingMode( true , m_macList ) ;
|
m_macControl = UMANewControl( parent->GetMacRootWindow() , &bounds , title , false ,
|
||||||
|
kwxMacListWithVerticalScrollbar , 0 , 0,
|
||||||
|
kControlListBoxProc , (long) this ) ;
|
||||||
|
UMAGetControlData( m_macControl , kControlNoPart , kControlListBoxListHandleTag ,
|
||||||
|
sizeof( ListHandle ) , (char*) &m_macList , &result ) ;
|
||||||
|
|
||||||
return TRUE;
|
HLock( (Handle) m_macList ) ;
|
||||||
|
NewExtLDEFInfo( m_macList , MacDrawStringCell , (long) this ) ;
|
||||||
|
|
||||||
|
(**m_macList).selFlags = 0 ;
|
||||||
|
if ( style & wxLB_MULTIPLE )
|
||||||
|
{
|
||||||
|
(**m_macList).selFlags += lNoExtend ;
|
||||||
|
}
|
||||||
|
else if ( style & wxLB_EXTENDED )
|
||||||
|
{
|
||||||
|
(**m_macList).selFlags += lExtendDrag ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
(**m_macList).selFlags = lOnlyOne ;
|
||||||
|
}
|
||||||
|
|
||||||
|
Point pt = (**m_macList).cellSize ;
|
||||||
|
pt.v = 14 ;
|
||||||
|
LCellSize( pt , m_macList ) ;
|
||||||
|
|
||||||
|
LAddColumn( 1 , 0 , m_macList ) ;
|
||||||
|
|
||||||
|
ControlFontStyleRec controlstyle ;
|
||||||
|
controlstyle.flags = kControlUseFontMask + kControlUseSizeMask ;
|
||||||
|
//controlstyle.font = kControlFontSmallSystemFont ;
|
||||||
|
controlstyle.font = kFontIDMonaco ;
|
||||||
|
controlstyle.size = 9 ;
|
||||||
|
//::UMASetControlFontStyle( m_macControl , &controlstyle ) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
MacPostControlCreate() ;
|
||||||
|
|
||||||
|
for ( int i = 0 ; i < n ; i++ )
|
||||||
|
{
|
||||||
|
Append( choices[i] ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
LSetDrawingMode( true , m_macList ) ;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxListBox::~wxListBox()
|
wxListBox::~wxListBox()
|
||||||
@@ -118,8 +153,10 @@ wxListBox::~wxListBox()
|
|||||||
Free() ;
|
Free() ;
|
||||||
if ( m_macList )
|
if ( m_macList )
|
||||||
{
|
{
|
||||||
DisposeExtLDEFInfo( m_macList ) ;
|
#if !TARGET_CARBON
|
||||||
m_macList = NULL ;
|
DisposeExtLDEFInfo( m_macList ) ;
|
||||||
|
#endif
|
||||||
|
m_macList = NULL ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -335,7 +372,7 @@ bool wxListBox::IsSelected(int N) const
|
|||||||
void *wxListBox::DoGetItemClientData(int N) const
|
void *wxListBox::DoGetItemClientData(int N) const
|
||||||
{
|
{
|
||||||
wxCHECK_MSG( N >= 0 && N < m_noItems, NULL,
|
wxCHECK_MSG( N >= 0 && N < m_noItems, NULL,
|
||||||
"invalid index in wxListBox::GetClientData" );
|
wxT("invalid index in wxListBox::GetClientData"));
|
||||||
|
|
||||||
return (void *)m_dataArray[N];
|
return (void *)m_dataArray[N];
|
||||||
}
|
}
|
||||||
@@ -461,6 +498,16 @@ void wxListBox::SetupColours()
|
|||||||
SetForegroundColour(GetParent()->GetForegroundColour());
|
SetForegroundColour(GetParent()->GetForegroundColour());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxListBox::Refresh(bool eraseBack, const wxRect *rect)
|
||||||
|
{
|
||||||
|
// Set up port
|
||||||
|
WindowRef rootwindow = GetMacRootWindow() ;
|
||||||
|
wxWindow* wxrootwindow = wxFindWinFromMacWindow( rootwindow ) ;
|
||||||
|
wxMacDrawingHelper focus( wxrootwindow );
|
||||||
|
|
||||||
|
UMADrawControl(m_macControl);
|
||||||
|
}
|
||||||
|
|
||||||
#if wxUSE_OWNER_DRAWN
|
#if wxUSE_OWNER_DRAWN
|
||||||
|
|
||||||
class wxListBoxItem : public wxOwnerDrawn
|
class wxListBoxItem : public wxOwnerDrawn
|
||||||
@@ -503,38 +550,38 @@ void MacDrawStringCell(Rect *cellRect, Cell lCell, ListHandle theList, long refC
|
|||||||
|
|
||||||
void wxListBox::MacDelete( int N )
|
void wxListBox::MacDelete( int N )
|
||||||
{
|
{
|
||||||
ListHandle list ;
|
LDelRow( 1 , N , m_macList) ;
|
||||||
long result ;
|
Refresh();
|
||||||
UMAGetControlData( m_macControl , kControlNoPart , kControlListBoxListHandleTag , sizeof( ListHandle ) , (char*) &list , &result ) ;
|
|
||||||
LDelRow( 1 , N , list ) ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::MacInsert( int n , const char * text)
|
void wxListBox::MacInsert( int n , const char * text)
|
||||||
{
|
{
|
||||||
Cell cell ;
|
Cell cell = { 0 , 0 } ;
|
||||||
|
cell.v = n ;
|
||||||
cell.h = 0 ;
|
LAddRow( 1 , cell.v , m_macList ) ;
|
||||||
cell.v = n ;
|
LSetCell(text, strlen(text), cell, m_macList);
|
||||||
|
Refresh();
|
||||||
LAddRow( 1 , cell.v , m_macList ) ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::MacAppend( const char * text)
|
void wxListBox::MacAppend( const char * text)
|
||||||
{
|
{
|
||||||
Cell cell = { 0 , 0 } ;
|
Cell cell = { 0 , 0 } ;
|
||||||
cell.v = (**m_macList).dataBounds.bottom ;
|
cell.v = (**m_macList).dataBounds.bottom ;
|
||||||
LAddRow( 1 , cell.v , m_macList ) ;
|
LAddRow( 1 , cell.v , m_macList ) ;
|
||||||
|
LSetCell(text, strlen(text), cell, m_macList);
|
||||||
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::MacClear()
|
void wxListBox::MacClear()
|
||||||
{
|
{
|
||||||
LDelRow( (**m_macList).dataBounds.bottom , 0 , m_macList ) ;
|
LDelRow( (**m_macList).dataBounds.bottom , 0 , m_macList ) ;
|
||||||
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::MacSetSelection( int n , bool select )
|
void wxListBox::MacSetSelection( int n , bool select )
|
||||||
{
|
{
|
||||||
Cell cell = { 0 , 0 } ;
|
Cell cell = { 0 , 0 } ;
|
||||||
if ( LGetSelect( TRUE , &cell , m_macList ) )
|
if ( LGetSelect( true , &cell , m_macList ) )
|
||||||
{
|
{
|
||||||
LSetSelect( false , cell , m_macList ) ;
|
LSetSelect( false , cell , m_macList ) ;
|
||||||
}
|
}
|
||||||
@@ -542,6 +589,7 @@ void wxListBox::MacSetSelection( int n , bool select )
|
|||||||
cell.v = n ;
|
cell.v = n ;
|
||||||
LSetSelect( select , cell , m_macList ) ;
|
LSetSelect( select , cell , m_macList ) ;
|
||||||
LAutoScroll( m_macList ) ;
|
LAutoScroll( m_macList ) ;
|
||||||
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxListBox::MacIsSelected( int n ) const
|
bool wxListBox::MacIsSelected( int n ) const
|
||||||
@@ -553,7 +601,7 @@ bool wxListBox::MacIsSelected( int n ) const
|
|||||||
|
|
||||||
void wxListBox::MacDestroy()
|
void wxListBox::MacDestroy()
|
||||||
{
|
{
|
||||||
// DisposeExtLDEFInfo( m_macList ) ;
|
// DisposeExtLDEFInfo( m_macList ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxListBox::MacGetSelection() const
|
int wxListBox::MacGetSelection() const
|
||||||
@@ -589,7 +637,8 @@ void wxListBox::MacSet( int n , const char * text )
|
|||||||
// so we just have to redraw
|
// so we just have to redraw
|
||||||
Cell cell = { 0 , 0 } ;
|
Cell cell = { 0 , 0 } ;
|
||||||
cell.v = n ;
|
cell.v = n ;
|
||||||
LDraw( cell , m_macList ) ;
|
LSetCell(text, strlen(text), cell, m_macList);
|
||||||
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::MacScrollTo( int n )
|
void wxListBox::MacScrollTo( int n )
|
||||||
@@ -599,9 +648,15 @@ void wxListBox::MacScrollTo( int n )
|
|||||||
|
|
||||||
void wxListBox::OnSize( const wxSizeEvent &event)
|
void wxListBox::OnSize( const wxSizeEvent &event)
|
||||||
{
|
{
|
||||||
Point pt = (**m_macList).cellSize ;
|
Point pt;
|
||||||
pt.h = m_width - 15 ;
|
|
||||||
LCellSize( pt , m_macList ) ;
|
#if TARGET_CARBON
|
||||||
|
GetListCellSize(m_macList, &pt);
|
||||||
|
#else
|
||||||
|
pt = (**m_macList).cellSize ;
|
||||||
|
#endif
|
||||||
|
pt.h = m_width - 15 ;
|
||||||
|
LCellSize( pt , m_macList ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::MacHandleControlClick( ControlHandle control , SInt16 controlpart )
|
void wxListBox::MacHandleControlClick( ControlHandle control , SInt16 controlpart )
|
||||||
|
Reference in New Issue
Block a user