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:
Robert Roebling
1999-11-09 14:48:41 +00:00
parent dcda1c71b1
commit eff869aad2
5 changed files with 43 additions and 93 deletions

View File

@@ -479,6 +479,9 @@ protected:
friend class wxTreeRenameTimer; friend class wxTreeRenameTimer;
friend class wxTreeTextCtrl; friend class wxTreeTextCtrl;
wxFont m_normalFont;
wxFont m_boldFont;
wxGenericTreeItem *m_anchor; wxGenericTreeItem *m_anchor;
wxGenericTreeItem *m_current, *m_key_current, *m_currentEdit; wxGenericTreeItem *m_current, *m_key_current, *m_currentEdit;
bool m_hasFocus; bool m_hasFocus;

View File

@@ -547,6 +547,11 @@ void MyPanel::DoPasteFromClipboard()
void MyPanel::DoCopyToClipboard() 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) ); wxString text( m_multitext->GetLineText(0) );
if (text.IsEmpty()) if (text.IsEmpty())

View File

@@ -523,6 +523,13 @@ void wxTreeCtrl::Init()
m_dragCount = 0; m_dragCount = 0;
m_renameTimer = new wxTreeRenameTimer( this ); 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, bool wxTreeCtrl::Create(wxWindow *parent, wxWindowID id,
@@ -1406,28 +1413,8 @@ int wxTreeCtrl::GetLineHeight(wxGenericTreeItem *item) const
void wxTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc) void wxTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc)
{ {
// render bold items in bold
wxFont fontOld;
wxFont fontNew;
if (item->IsBold()) if (item->IsBold())
{ dc.SetFont(m_boldFont);
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!"));
}
}
long text_w = 0; long text_w = 0;
long text_h = 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() dc.DrawText( item->GetText(), image_w + item->GetX(), item->GetY()
+ ((total_h > text_h) ? (total_h - text_h)/2 : 0)); + ((total_h > text_h) ? (total_h - text_h)/2 : 0));
// restore normal font for bold items // restore normal font
if (fontOld.Ok()) dc.SetFont( m_normalFont );
{
dc.SetFont( fontOld);
}
} }
// Now y stands for the top of the item, whereas it used to stand for middle ! // 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); wxPaintDC dc(this);
PrepareDC( dc ); PrepareDC( dc );
dc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT ) ); dc.SetFont( m_normalFont );
dc.SetPen( m_dottedPen ); dc.SetPen( m_dottedPen );
// this is now done dynamically
//if(GetImageList() == NULL) //if(GetImageList() == NULL)
// m_lineHeight = (int)(dc.GetCharHeight() + 4); // m_lineHeight = (int)(dc.GetCharHeight() + 4);
@@ -2011,33 +1996,14 @@ void wxTreeCtrl::CalculateSize( wxGenericTreeItem *item, wxDC &dc )
long text_w = 0; long text_w = 0;
long text_h = 0; long text_h = 0;
wxFont fontOld;
wxFont fontNew;
if (item->IsBold()) if (item->IsBold())
{ dc.SetFont(m_boldFont);
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.GetTextExtent( item->GetText(), &text_w, &text_h ); dc.GetTextExtent( item->GetText(), &text_w, &text_h );
text_h+=2; text_h+=2;
// restore normal font for bold items // restore normal font
if (fontOld.Ok()) dc.SetFont( m_normalFont );
dc.SetFont( fontOld);
int image_h = 0; int image_h = 0;
int image_w = 0; int image_w = 0;
@@ -2092,7 +2058,7 @@ void wxTreeCtrl::CalculatePositions()
wxClientDC dc(this); wxClientDC dc(this);
PrepareDC( dc ); PrepareDC( dc );
dc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT ) ); dc.SetFont( m_normalFont );
dc.SetPen( m_dottedPen ); dc.SetPen( m_dottedPen );
//if(GetImageList() == NULL) //if(GetImageList() == NULL)

View File

@@ -79,26 +79,12 @@ targets_selection_received( GtkWidget *WXUNUSED(widget),
if ( wxTheClipboard && selection_data->length > 0 ) if ( wxTheClipboard && selection_data->length > 0 )
{ {
/* make sure we got the data in the correct form */ /* 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; GdkAtom type = selection_data->type;
if ( type != GDK_SELECTION_TYPE_ATOM ) if ( type != GDK_SELECTION_TYPE_ATOM )
{ {
if ( strcmp(gdk_atom_name(type), "TARGETS") != 0 )
{
// don't know what this is
clipboard->m_waiting = FALSE; clipboard->m_waiting = FALSE;
return; return;
} }
//else: don't know what this is, but it seems to work in the same
// way as GDK_SELECTION_TYPE_ATOM does
}
//else: the data is the list of formats supported by the selection
/* /*
wxDataFormat clip( selection_data->selection ); wxDataFormat clip( selection_data->selection );
@@ -484,11 +470,13 @@ bool wxClipboard::IsOpened() const
bool wxClipboard::IsSupported( const wxDataFormat& format ) bool wxClipboard::IsSupported( const wxDataFormat& format )
{ {
/* reentrance problems */ /* reentrance problems */
if (m_open) return TRUE; if (m_waiting) return FALSE;
/* store requested format to be asked for by callbacks */ /* store requested format to be asked for by callbacks */
m_targetRequested = format; m_targetRequested = format;
wxLogDebug( wxT("wxClipboard:IsSupported: requested format: %s"), format.GetId().c_str() );
wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") ); wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
m_formatSupported = FALSE; m_formatSupported = FALSE;

View File

@@ -79,26 +79,12 @@ targets_selection_received( GtkWidget *WXUNUSED(widget),
if ( wxTheClipboard && selection_data->length > 0 ) if ( wxTheClipboard && selection_data->length > 0 )
{ {
/* make sure we got the data in the correct form */ /* 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; GdkAtom type = selection_data->type;
if ( type != GDK_SELECTION_TYPE_ATOM ) if ( type != GDK_SELECTION_TYPE_ATOM )
{ {
if ( strcmp(gdk_atom_name(type), "TARGETS") != 0 )
{
// don't know what this is
clipboard->m_waiting = FALSE; clipboard->m_waiting = FALSE;
return; return;
} }
//else: don't know what this is, but it seems to work in the same
// way as GDK_SELECTION_TYPE_ATOM does
}
//else: the data is the list of formats supported by the selection
/* /*
wxDataFormat clip( selection_data->selection ); wxDataFormat clip( selection_data->selection );
@@ -484,11 +470,13 @@ bool wxClipboard::IsOpened() const
bool wxClipboard::IsSupported( const wxDataFormat& format ) bool wxClipboard::IsSupported( const wxDataFormat& format )
{ {
/* reentrance problems */ /* reentrance problems */
if (m_open) return TRUE; if (m_waiting) return FALSE;
/* store requested format to be asked for by callbacks */ /* store requested format to be asked for by callbacks */
m_targetRequested = format; m_targetRequested = format;
wxLogDebug( wxT("wxClipboard:IsSupported: requested format: %s"), format.GetId().c_str() );
wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") ); wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
m_formatSupported = FALSE; m_formatSupported = FALSE;