Removed Vadim's surplus code in clipboard.
wxTreeCtrl now creates its two font in the constructor. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4457 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
dcda1c71b1
commit
eff869aad2
@ -479,6 +479,9 @@ protected:
|
||||
friend class wxTreeRenameTimer;
|
||||
friend class wxTreeTextCtrl;
|
||||
|
||||
wxFont m_normalFont;
|
||||
wxFont m_boldFont;
|
||||
|
||||
wxGenericTreeItem *m_anchor;
|
||||
wxGenericTreeItem *m_current, *m_key_current, *m_currentEdit;
|
||||
bool m_hasFocus;
|
||||
|
@ -547,6 +547,11 @@ void MyPanel::DoPasteFromClipboard()
|
||||
|
||||
void MyPanel::DoCopyToClipboard()
|
||||
{
|
||||
// On X11, we want to get the data from the primary selection instead
|
||||
// of the normal clipboard (which isn't normal under X11 at all). This
|
||||
// call has no effect under MSW.
|
||||
wxTheClipboard->UsePrimarySelection();
|
||||
|
||||
wxString text( m_multitext->GetLineText(0) );
|
||||
|
||||
if (text.IsEmpty())
|
||||
|
@ -523,6 +523,13 @@ void wxTreeCtrl::Init()
|
||||
m_dragCount = 0;
|
||||
|
||||
m_renameTimer = new wxTreeRenameTimer( this );
|
||||
|
||||
m_normalFont = wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT );
|
||||
m_boldFont = wxFont( m_normalFont.GetPointSize(),
|
||||
m_normalFont.GetFamily(),
|
||||
m_normalFont.GetStyle(),
|
||||
wxBOLD,
|
||||
m_normalFont.GetUnderlined());
|
||||
}
|
||||
|
||||
bool wxTreeCtrl::Create(wxWindow *parent, wxWindowID id,
|
||||
@ -1406,28 +1413,8 @@ int wxTreeCtrl::GetLineHeight(wxGenericTreeItem *item) const
|
||||
|
||||
void wxTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc)
|
||||
{
|
||||
// render bold items in bold
|
||||
wxFont fontOld;
|
||||
wxFont fontNew;
|
||||
|
||||
if (item->IsBold())
|
||||
{
|
||||
fontOld = dc.GetFont();
|
||||
if (fontOld.Ok())
|
||||
{
|
||||
// VZ: is there any better way to make a bold variant of old font?
|
||||
fontNew = wxFont( fontOld.GetPointSize(),
|
||||
fontOld.GetFamily(),
|
||||
fontOld.GetStyle(),
|
||||
wxBOLD,
|
||||
fontOld.GetUnderlined());
|
||||
dc.SetFont(fontNew);
|
||||
}
|
||||
else
|
||||
{
|
||||
wxFAIL_MSG(wxT("wxDC::GetFont() failed!"));
|
||||
}
|
||||
}
|
||||
dc.SetFont(m_boldFont);
|
||||
|
||||
long text_w = 0;
|
||||
long text_h = 0;
|
||||
@ -1460,11 +1447,8 @@ void wxTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc)
|
||||
dc.DrawText( item->GetText(), image_w + item->GetX(), item->GetY()
|
||||
+ ((total_h > text_h) ? (total_h - text_h)/2 : 0));
|
||||
|
||||
// restore normal font for bold items
|
||||
if (fontOld.Ok())
|
||||
{
|
||||
dc.SetFont( fontOld);
|
||||
}
|
||||
// restore normal font
|
||||
dc.SetFont( m_normalFont );
|
||||
}
|
||||
|
||||
// Now y stands for the top of the item, whereas it used to stand for middle !
|
||||
@ -1612,9 +1596,10 @@ void wxTreeCtrl::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
||||
wxPaintDC dc(this);
|
||||
PrepareDC( dc );
|
||||
|
||||
dc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT ) );
|
||||
|
||||
dc.SetFont( m_normalFont );
|
||||
dc.SetPen( m_dottedPen );
|
||||
|
||||
// this is now done dynamically
|
||||
//if(GetImageList() == NULL)
|
||||
// m_lineHeight = (int)(dc.GetCharHeight() + 4);
|
||||
|
||||
@ -2011,33 +1996,14 @@ void wxTreeCtrl::CalculateSize( wxGenericTreeItem *item, wxDC &dc )
|
||||
long text_w = 0;
|
||||
long text_h = 0;
|
||||
|
||||
wxFont fontOld;
|
||||
wxFont fontNew;
|
||||
if (item->IsBold())
|
||||
{
|
||||
fontOld = dc.GetFont();
|
||||
if (fontOld.Ok())
|
||||
{
|
||||
// VZ: is there any better way to make a bold variant of old font?
|
||||
fontNew = wxFont( fontOld.GetPointSize(),
|
||||
fontOld.GetFamily(),
|
||||
fontOld.GetStyle(),
|
||||
wxBOLD,
|
||||
fontOld.GetUnderlined());
|
||||
dc.SetFont(fontNew);
|
||||
}
|
||||
else
|
||||
{
|
||||
wxFAIL_MSG(wxT("wxDC::GetFont() failed!"));
|
||||
}
|
||||
}
|
||||
dc.SetFont(m_boldFont);
|
||||
|
||||
dc.GetTextExtent( item->GetText(), &text_w, &text_h );
|
||||
text_h+=2;
|
||||
|
||||
// restore normal font for bold items
|
||||
if (fontOld.Ok())
|
||||
dc.SetFont( fontOld);
|
||||
// restore normal font
|
||||
dc.SetFont( m_normalFont );
|
||||
|
||||
int image_h = 0;
|
||||
int image_w = 0;
|
||||
@ -2092,7 +2058,7 @@ void wxTreeCtrl::CalculatePositions()
|
||||
wxClientDC dc(this);
|
||||
PrepareDC( dc );
|
||||
|
||||
dc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT ) );
|
||||
dc.SetFont( m_normalFont );
|
||||
|
||||
dc.SetPen( m_dottedPen );
|
||||
//if(GetImageList() == NULL)
|
||||
|
@ -79,31 +79,17 @@ targets_selection_received( GtkWidget *WXUNUSED(widget),
|
||||
if ( wxTheClipboard && selection_data->length > 0 )
|
||||
{
|
||||
/* make sure we got the data in the correct form */
|
||||
|
||||
// VZ: I don't know what does this mean (and GTK+ authors apparently
|
||||
// don't know either, Owen Taylor writes that "Motif seems to ask
|
||||
// for TARGETS atom sometimes" (??)), but it seems that xterm
|
||||
// (which is not a Motif app AFAIK) does this too, so it's
|
||||
// absolutely essential to support this, otherwise we can't paste
|
||||
// text from xterm!
|
||||
GdkAtom type = selection_data->type;
|
||||
if ( type != GDK_SELECTION_TYPE_ATOM )
|
||||
{
|
||||
if ( strcmp(gdk_atom_name(type), "TARGETS") != 0 )
|
||||
{
|
||||
// don't know what this is
|
||||
clipboard->m_waiting = FALSE;
|
||||
return;
|
||||
}
|
||||
//else: don't know what this is, but it seems to work in the same
|
||||
// way as GDK_SELECTION_TYPE_ATOM does
|
||||
clipboard->m_waiting = FALSE;
|
||||
return;
|
||||
}
|
||||
//else: the data is the list of formats supported by the selection
|
||||
|
||||
/*
|
||||
/*
|
||||
wxDataFormat clip( selection_data->selection );
|
||||
wxLogDebug( wxT("selection received for targets, clipboard %s"), clip.GetId().c_str() );
|
||||
*/
|
||||
*/
|
||||
|
||||
// the atoms we received, holding a list of targets (= formats)
|
||||
GdkAtom *atoms = (GdkAtom *)selection_data->data;
|
||||
@ -112,9 +98,9 @@ targets_selection_received( GtkWidget *WXUNUSED(widget),
|
||||
{
|
||||
wxDataFormat format( atoms[i] );
|
||||
|
||||
/*
|
||||
/*
|
||||
wxLogDebug( wxT("selection received for targets, format %s"), format.GetId().c_str() );
|
||||
*/
|
||||
*/
|
||||
|
||||
if (format == clipboard->m_targetRequested)
|
||||
{
|
||||
@ -484,11 +470,13 @@ bool wxClipboard::IsOpened() const
|
||||
bool wxClipboard::IsSupported( const wxDataFormat& format )
|
||||
{
|
||||
/* reentrance problems */
|
||||
if (m_open) return TRUE;
|
||||
if (m_waiting) return FALSE;
|
||||
|
||||
/* store requested format to be asked for by callbacks */
|
||||
m_targetRequested = format;
|
||||
|
||||
wxLogDebug( wxT("wxClipboard:IsSupported: requested format: %s"), format.GetId().c_str() );
|
||||
|
||||
wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
|
||||
|
||||
m_formatSupported = FALSE;
|
||||
|
@ -79,31 +79,17 @@ targets_selection_received( GtkWidget *WXUNUSED(widget),
|
||||
if ( wxTheClipboard && selection_data->length > 0 )
|
||||
{
|
||||
/* make sure we got the data in the correct form */
|
||||
|
||||
// VZ: I don't know what does this mean (and GTK+ authors apparently
|
||||
// don't know either, Owen Taylor writes that "Motif seems to ask
|
||||
// for TARGETS atom sometimes" (??)), but it seems that xterm
|
||||
// (which is not a Motif app AFAIK) does this too, so it's
|
||||
// absolutely essential to support this, otherwise we can't paste
|
||||
// text from xterm!
|
||||
GdkAtom type = selection_data->type;
|
||||
if ( type != GDK_SELECTION_TYPE_ATOM )
|
||||
{
|
||||
if ( strcmp(gdk_atom_name(type), "TARGETS") != 0 )
|
||||
{
|
||||
// don't know what this is
|
||||
clipboard->m_waiting = FALSE;
|
||||
return;
|
||||
}
|
||||
//else: don't know what this is, but it seems to work in the same
|
||||
// way as GDK_SELECTION_TYPE_ATOM does
|
||||
clipboard->m_waiting = FALSE;
|
||||
return;
|
||||
}
|
||||
//else: the data is the list of formats supported by the selection
|
||||
|
||||
/*
|
||||
/*
|
||||
wxDataFormat clip( selection_data->selection );
|
||||
wxLogDebug( wxT("selection received for targets, clipboard %s"), clip.GetId().c_str() );
|
||||
*/
|
||||
*/
|
||||
|
||||
// the atoms we received, holding a list of targets (= formats)
|
||||
GdkAtom *atoms = (GdkAtom *)selection_data->data;
|
||||
@ -112,9 +98,9 @@ targets_selection_received( GtkWidget *WXUNUSED(widget),
|
||||
{
|
||||
wxDataFormat format( atoms[i] );
|
||||
|
||||
/*
|
||||
/*
|
||||
wxLogDebug( wxT("selection received for targets, format %s"), format.GetId().c_str() );
|
||||
*/
|
||||
*/
|
||||
|
||||
if (format == clipboard->m_targetRequested)
|
||||
{
|
||||
@ -484,11 +470,13 @@ bool wxClipboard::IsOpened() const
|
||||
bool wxClipboard::IsSupported( const wxDataFormat& format )
|
||||
{
|
||||
/* reentrance problems */
|
||||
if (m_open) return TRUE;
|
||||
if (m_waiting) return FALSE;
|
||||
|
||||
/* store requested format to be asked for by callbacks */
|
||||
m_targetRequested = format;
|
||||
|
||||
wxLogDebug( wxT("wxClipboard:IsSupported: requested format: %s"), format.GetId().c_str() );
|
||||
|
||||
wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
|
||||
|
||||
m_formatSupported = FALSE;
|
||||
|
Loading…
Reference in New Issue
Block a user