background handling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28333 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -407,6 +407,7 @@ public :
|
|||||||
virtual void Flash( ControlPartCode part , UInt32 ticks = 8 ) ;
|
virtual void Flash( ControlPartCode part , UInt32 ticks = 8 ) ;
|
||||||
virtual void VisibilityChanged( bool shown ) ;
|
virtual void VisibilityChanged( bool shown ) ;
|
||||||
virtual void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle ) ;
|
virtual void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle ) ;
|
||||||
|
virtual void SetBackground( const wxBrush &brush ) ;
|
||||||
virtual ControlPartCode HandleKey( SInt16 keyCode, SInt16 charCode, EventModifiers modifiers ) ;
|
virtual ControlPartCode HandleKey( SInt16 keyCode, SInt16 charCode, EventModifiers modifiers ) ;
|
||||||
void SetActionProc( ControlActionUPP actionProc ) ;
|
void SetActionProc( ControlActionUPP actionProc ) ;
|
||||||
void SetViewSize( SInt32 viewSize ) ;
|
void SetViewSize( SInt32 viewSize ) ;
|
||||||
|
@@ -156,6 +156,8 @@ public:
|
|||||||
void OnUpdateUndo(wxUpdateUIEvent& event);
|
void OnUpdateUndo(wxUpdateUIEvent& event);
|
||||||
void OnUpdateRedo(wxUpdateUIEvent& event);
|
void OnUpdateRedo(wxUpdateUIEvent& event);
|
||||||
|
|
||||||
|
void OnEraseBackground(wxEraseEvent& event) ;
|
||||||
|
|
||||||
virtual bool MacCanFocus() const { return true ; }
|
virtual bool MacCanFocus() const { return true ; }
|
||||||
virtual bool MacSetupCursor( const wxPoint& pt ) ;
|
virtual bool MacSetupCursor( const wxPoint& pt ) ;
|
||||||
|
|
||||||
|
@@ -195,7 +195,7 @@ public:
|
|||||||
virtual void Update() ;
|
virtual void Update() ;
|
||||||
virtual bool MacSetupCursor( const wxPoint& pt ) ;
|
virtual bool MacSetupCursor( const wxPoint& pt ) ;
|
||||||
|
|
||||||
virtual void MacSetBackgroundBrush( const wxBrush &brush ) { m_macBackgroundBrush = brush ; }
|
virtual void MacSetBackgroundBrush( const wxBrush &brush ) ;
|
||||||
const wxBrush& MacGetBackgroundBrush() const { return m_macBackgroundBrush ; }
|
const wxBrush& MacGetBackgroundBrush() const { return m_macBackgroundBrush ; }
|
||||||
|
|
||||||
// returns the visible region of this control in window ie non-client coordinates
|
// returns the visible region of this control in window ie non-client coordinates
|
||||||
|
@@ -204,6 +204,7 @@ public :
|
|||||||
void AdjustCreationAttributes( const wxColour& background , bool visible ) ;
|
void AdjustCreationAttributes( const wxColour& background , bool visible ) ;
|
||||||
|
|
||||||
virtual void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle ) ;
|
virtual void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle ) ;
|
||||||
|
virtual void SetBackground( const wxBrush &brush) ;
|
||||||
virtual void SetStyle(long start, long end, const wxTextAttr& style) ;
|
virtual void SetStyle(long start, long end, const wxTextAttr& style) ;
|
||||||
virtual void Copy() ;
|
virtual void Copy() ;
|
||||||
virtual void Cut() ;
|
virtual void Cut() ;
|
||||||
@@ -312,6 +313,7 @@ public :
|
|||||||
IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl)
|
IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl)
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
|
BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
|
||||||
|
EVT_ERASE_BACKGROUND( wxTextCtrl::OnEraseBackground )
|
||||||
EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
|
EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
|
||||||
EVT_CHAR(wxTextCtrl::OnChar)
|
EVT_CHAR(wxTextCtrl::OnChar)
|
||||||
EVT_MENU(wxID_CUT, wxTextCtrl::OnCut)
|
EVT_MENU(wxID_CUT, wxTextCtrl::OnCut)
|
||||||
@@ -758,6 +760,14 @@ void wxTextCtrl::OnDropFiles(wxDropFilesEvent& event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxTextCtrl::OnEraseBackground(wxEraseEvent& event)
|
||||||
|
{
|
||||||
|
// all erasing should be done by the real mac control implementation
|
||||||
|
// while this is true for MLTE under classic, the HITextView is somehow
|
||||||
|
// transparent but background erase is not working correctly, so intercept
|
||||||
|
// things while we can...
|
||||||
|
}
|
||||||
|
|
||||||
void wxTextCtrl::OnChar(wxKeyEvent& event)
|
void wxTextCtrl::OnChar(wxKeyEvent& event)
|
||||||
{
|
{
|
||||||
int key = event.GetKeyCode() ;
|
int key = event.GetKeyCode() ;
|
||||||
@@ -1252,7 +1262,7 @@ void wxMacUnicodeTextControl::WriteText(const wxString& str)
|
|||||||
val.Remove( start , end - start ) ;
|
val.Remove( start , end - start ) ;
|
||||||
val.insert( start , str ) ;
|
val.insert( start , str ) ;
|
||||||
SetStringValue( val ) ;
|
SetStringValue( val ) ;
|
||||||
SetInsertionPoint( start + str.Length() ) ;
|
SetSelection( start + str.Length() , start + str.Length() ) ;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1463,6 +1473,15 @@ void wxMacMLTEControl::AdjustCreationAttributes( const wxColour &background, boo
|
|||||||
TXNSetBackground( m_txn , &tback);
|
TXNSetBackground( m_txn , &tback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxMacMLTEControl::SetBackground( const wxBrush &brush )
|
||||||
|
{
|
||||||
|
// currently only solid background are supported
|
||||||
|
TXNBackground tback;
|
||||||
|
tback.bgType = kTXNBackgroundTypeRGB;
|
||||||
|
tback.bg.color = MAC_WXCOLORREF( brush.GetColour().GetPixel() );
|
||||||
|
TXNSetBackground( m_txn , &tback);
|
||||||
|
}
|
||||||
|
|
||||||
int wxMacMLTEControl::ConvertAttribute( const wxTextAttr& style , TXNTypeAttributes typeAttr[] )
|
int wxMacMLTEControl::ConvertAttribute( const wxTextAttr& style , TXNTypeAttributes typeAttr[] )
|
||||||
{
|
{
|
||||||
Str255 fontName = "\pMonaco" ;
|
Str255 fontName = "\pMonaco" ;
|
||||||
@@ -1492,7 +1511,6 @@ int wxMacMLTEControl::ConvertAttribute( const wxTextAttr& style , TXNTypeAttribu
|
|||||||
typeAttr[attrCounter+2].size = kTXNQDFontStyleAttributeSize ;
|
typeAttr[attrCounter+2].size = kTXNQDFontStyleAttributeSize ;
|
||||||
typeAttr[attrCounter+2].data.dataValue = fontStyle ;
|
typeAttr[attrCounter+2].data.dataValue = fontStyle ;
|
||||||
attrCounter += 3 ;
|
attrCounter += 3 ;
|
||||||
|
|
||||||
}
|
}
|
||||||
if ( style.HasTextColour() )
|
if ( style.HasTextColour() )
|
||||||
{
|
{
|
||||||
@@ -1508,7 +1526,7 @@ int wxMacMLTEControl::ConvertAttribute( const wxTextAttr& style , TXNTypeAttribu
|
|||||||
void wxMacMLTEControl::SetFont( const wxFont & font , const wxColour& foreground , long windowStyle )
|
void wxMacMLTEControl::SetFont( const wxFont & font , const wxColour& foreground , long windowStyle )
|
||||||
{
|
{
|
||||||
EditHelper help(m_txn) ;
|
EditHelper help(m_txn) ;
|
||||||
wxTextAttr style(wxNullColour,wxNullColour,font) ;
|
wxTextAttr style(foreground,wxNullColour,font) ;
|
||||||
TXNTypeAttributes typeAttr[4] ;
|
TXNTypeAttributes typeAttr[4] ;
|
||||||
int attrCounter = ConvertAttribute( style , typeAttr ) ;
|
int attrCounter = ConvertAttribute( style , typeAttr ) ;
|
||||||
if ( attrCounter > 0 )
|
if ( attrCounter > 0 )
|
||||||
|
@@ -1597,6 +1597,12 @@ void wxMacControl::SetFont( const wxFont & font , const wxColour& foreground , l
|
|||||||
::SetControlFontStyle( m_controlRef , &fontStyle );
|
::SetControlFontStyle( m_controlRef , &fontStyle );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxMacControl::SetBackground( const wxBrush &WXUNUSED(brush) )
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
// setting up a color proc is not recommended anymore
|
||||||
|
}
|
||||||
|
|
||||||
void wxMacControl::SetRange( SInt32 minimum , SInt32 maximum )
|
void wxMacControl::SetRange( SInt32 minimum , SInt32 maximum )
|
||||||
{
|
{
|
||||||
::SetControl32BitMinimum( m_controlRef , minimum ) ;
|
::SetControl32BitMinimum( m_controlRef , minimum ) ;
|
||||||
|
@@ -889,11 +889,14 @@ bool wxWindowMac::SetBackgroundColour(const wxColour& col )
|
|||||||
}
|
}
|
||||||
MacSetBackgroundBrush( brush ) ;
|
MacSetBackgroundBrush( brush ) ;
|
||||||
|
|
||||||
MacUpdateControlFont() ;
|
|
||||||
|
|
||||||
return true ;
|
return true ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxWindowMac::MacSetBackgroundBrush( const wxBrush &brush )
|
||||||
|
{
|
||||||
|
m_macBackgroundBrush = brush ;
|
||||||
|
m_peer->SetBackground( brush ) ;
|
||||||
|
}
|
||||||
|
|
||||||
bool wxWindowMac::MacCanFocus() const
|
bool wxWindowMac::MacCanFocus() const
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user