]> git.saurik.com Git - wxWidgets.git/commitdiff
Removed Vadim's surplus code in clipboard.
authorRobert Roebling <robert@roebling.de>
Tue, 9 Nov 1999 14:48:41 +0000 (14:48 +0000)
committerRobert Roebling <robert@roebling.de>
Tue, 9 Nov 1999 14:48:41 +0000 (14:48 +0000)
  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

include/wx/generic/treectrl.h
samples/text/text.cpp
src/generic/treectrl.cpp
src/gtk/clipbrd.cpp
src/gtk1/clipbrd.cpp

index 3155e83cbe74226f1a015b0f57be71d7dd790ec9..9e8bf4ed5cc559275c30fcbc2171b5de618e409f 100644 (file)
@@ -479,6 +479,9 @@ protected:
     friend class wxTreeRenameTimer;
     friend class wxTreeTextCtrl;
 
     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;
     wxGenericTreeItem   *m_anchor;
     wxGenericTreeItem   *m_current, *m_key_current, *m_currentEdit;
     bool                 m_hasFocus;
index 19c5af35a5f45f2306b6270471b7e9dc7f78d195..26e87442e6f3f6cc3ee5d351976e4e85ade68fe6 100644 (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) );
 
     if (text.IsEmpty())
     wxString text( m_multitext->GetLineText(0) );
 
     if (text.IsEmpty())
index 98d1ab42ea11bea5c13dbc658272d2dfd35bb5f4..6106aaedf81c85d55265f23bf20fe9f789b43d1a 100644 (file)
@@ -523,6 +523,13 @@ void wxTreeCtrl::Init()
   m_dragCount = 0;
 
   m_renameTimer = new wxTreeRenameTimer( this );
   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,
 }
 
 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())
-    {
-        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;
 
     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));
 
     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 !
 }
 
 // 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 );
 
     wxPaintDC dc(this);
     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)
     // m_lineHeight = (int)(dc.GetCharHeight() + 4);
 
     //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;
 
     long text_w = 0;
     long text_h = 0;
 
-    wxFont fontOld;
-    wxFont fontNew;
     if (item->IsBold())
     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;
 
 
     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;
 
     int image_h = 0;
     int image_w = 0;
@@ -2092,7 +2058,7 @@ void wxTreeCtrl::CalculatePositions()
     wxClientDC dc(this);
     PrepareDC( dc );
 
     wxClientDC dc(this);
     PrepareDC( dc );
 
-    dc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT ) );
+    dc.SetFont( m_normalFont );
 
     dc.SetPen( m_dottedPen );
     //if(GetImageList() == NULL)
 
     dc.SetPen( m_dottedPen );
     //if(GetImageList() == NULL)
index dc4bbe9c9043661ffa6cedb84e192fb95177b002..9500db81e18abea33c5a5ad9fe98883d73c3ca9a 100644 (file)
@@ -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 */
     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 )
         {
         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() );
         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;
 
         // 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] );
 
         {
             wxDataFormat format( atoms[i] );
 
-            /*
+/*
             wxLogDebug( wxT("selection received for targets, format %s"), format.GetId().c_str() );
             wxLogDebug( wxT("selection received for targets, format %s"), format.GetId().c_str() );
-            */
+*/
 
             if (format == clipboard->m_targetRequested)
             {
 
             if (format == clipboard->m_targetRequested)
             {
@@ -484,11 +470,13 @@ bool wxClipboard::IsOpened() const
 bool wxClipboard::IsSupported( const wxDataFormat& format )
 {
     /* reentrance problems */
 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;
 
 
     /* 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;
     wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
 
     m_formatSupported = FALSE;
index dc4bbe9c9043661ffa6cedb84e192fb95177b002..9500db81e18abea33c5a5ad9fe98883d73c3ca9a 100644 (file)
@@ -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 */
     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 )
         {
         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() );
         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;
 
         // 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] );
 
         {
             wxDataFormat format( atoms[i] );
 
-            /*
+/*
             wxLogDebug( wxT("selection received for targets, format %s"), format.GetId().c_str() );
             wxLogDebug( wxT("selection received for targets, format %s"), format.GetId().c_str() );
-            */
+*/
 
             if (format == clipboard->m_targetRequested)
             {
 
             if (format == clipboard->m_targetRequested)
             {
@@ -484,11 +470,13 @@ bool wxClipboard::IsOpened() const
 bool wxClipboard::IsSupported( const wxDataFormat& format )
 {
     /* reentrance problems */
 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;
 
 
     /* 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;
     wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
 
     m_formatSupported = FALSE;