latest wx news

Поиск
Список
Период
Сортировка
От Andreas Pflug
Тема latest wx news
Дата
Msg-id 40586979.9070008@pse-consulting.de
обсуждение исходный текст
Список pgadmin-hackers
Hi friends,

I reviewed all patches *except* the notebook_comctl.patch. Hiroshi,
please have a look at the new snapshot whether it's obsolete by now or
if we still need it.

Unicode/Clipboard is *fixed* for gtk, and for msw I couldn't reproduce
the problem which might be caused by different win32 apis used. However,
on any new system (MacOSX?) we might get the same problem if more than
one clipboard for text is available.

816019 font inheritance is still an issue. Several gtk controls have
been fixed in the meantime and guess what? they received a line of code
as I suggested for ages... I updated the patch to run against wx cvs
head. I'll try another suggestion to apply them in the next days on
wx-dev, after consuming some sedating substance... Ron, I already
assigned it to you, hoping for your kind assistance :-)

Another patch was necessary (918043) because wxNotebook won't set the
font under GTK at all. This fix should be hopefully quite non-controversal.

Regards,
Andreas

Index: include/wx/generic/statusbr.h
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/include/wx/generic/statusbr.h,v
retrieving revision 1.20
diff -u -r1.20 statusbr.h
--- include/wx/generic/statusbr.h    2004/03/07 17:28:28    1.20
+++ include/wx/generic/statusbr.h    2004/03/17 14:11:34
@@ -115,7 +115,6 @@

   int               m_borderX;
   int               m_borderY;
-  wxFont            m_defaultStatusBarFont;
   wxPen             m_mediumShadowPen;
   wxPen             m_hilightPen;

Index: src/generic/calctrl.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/generic/calctrl.cpp,v
retrieving revision 1.51
diff -u -r1.51 calctrl.cpp
--- src/generic/calctrl.cpp    2003/10/16 10:27:55    1.51
+++ src/generic/calctrl.cpp    2004/03/17 14:11:41
@@ -282,6 +282,8 @@
     // needed to get the arrow keys normally used for the dialog navigation
     SetWindowStyle(style | wxWANTS_CHARS);

+    SetFont(parent->GetFont());
+
     m_date = date.IsValid() ? date : wxDateTime::Today();

     m_lowdate = wxDefaultDateTime;
@@ -322,7 +324,6 @@
     SetSize(pos.x, pos.y, sizeReal.x, sizeReal.y);

     SetBackgroundColour(*wxWHITE);
-    SetFont(*wxSWISS_FONT);

     SetHolidayAttrs();

Index: src/generic/listctrl.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/generic/listctrl.cpp,v
retrieving revision 1.319
diff -u -r1.319 listctrl.cpp
--- src/generic/listctrl.cpp    2004/03/01 22:17:56    1.319
+++ src/generic/listctrl.cpp    2004/03/17 14:11:43
@@ -4621,6 +4621,8 @@
             m_headerWin->Show( FALSE );
         }
     }
+
+    InheritAttributes();

     return TRUE;
 }
Index: src/generic/panelg.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/generic/panelg.cpp,v
retrieving revision 1.66
diff -u -r1.66 panelg.cpp
--- src/generic/panelg.cpp    2003/09/24 00:41:03    1.66
+++ src/generic/panelg.cpp    2004/03/17 14:11:43
@@ -121,7 +121,11 @@
                      long style,
                      const wxString& name)
 {
-    return wxWindow::Create(parent, id, pos, size, style, name);
+    bool rc= wxWindow::Create(parent, id, pos, size, style, name);
+
+    if (rc)
+        SetFont(parent->GetFont());
+    return rc;
 }

 wxPanel::~wxPanel()
Index: src/generic/splitter.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/generic/splitter.cpp,v
retrieving revision 1.91
diff -u -r1.91 splitter.cpp
--- src/generic/splitter.cpp    2004/03/04 23:48:37    1.91
+++ src/generic/splitter.cpp    2004/03/17 14:11:44
@@ -92,6 +92,8 @@

     m_permitUnsplitAlways = (style & wxSP_PERMIT_UNSPLIT) != 0;

+    SetFont(parent->GetFont());
+
     return true;
 }

Index: src/generic/statusbr.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/generic/statusbr.cpp,v
retrieving revision 1.53
diff -u -r1.53 statusbr.cpp
--- src/generic/statusbr.cpp    2004/03/07 15:22:28    1.53
+++ src/generic/statusbr.cpp    2004/03/17 14:11:44
@@ -91,7 +91,7 @@
 #endif
   InitColours();

-  SetFont(m_defaultStatusBarFont);
+  SetFont(parent->GetFont());

   // Set the height according to the font and the border size
   wxClientDC dc(this);
@@ -350,14 +350,12 @@
     SetBackgroundColour(vColour);
     vColour.Set(wxString("BLACK"));
     SetForegroundColour(vColour);
-    m_defaultStatusBarFont = *wxSMALL_FONT;
 #else
     m_mediumShadowPen = wxPen("GREY", 1, wxSOLID);
     m_hilightPen = wxPen("WHITE", 1, wxSOLID);
 #endif

 #ifndef __WXPM__
-    m_defaultStatusBarFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
     SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
 #endif
 }
Index: src/generic/treectlg.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/generic/treectlg.cpp,v
retrieving revision 1.118
diff -u -r1.118 treectlg.cpp
--- src/generic/treectlg.cpp    2004/03/07 17:28:36    1.118
+++ src/generic/treectlg.cpp    2004/03/17 14:11:45
@@ -781,6 +781,15 @@
     SetForegroundColour( wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT) );
     SetBackgroundColour( wxSystemSettings::GetColour(wxSYS_COLOUR_LISTBOX) );

+    m_normalFont = parent->GetFont();
+    m_boldFont = wxFont(m_normalFont.GetPointSize(),
+                        m_normalFont.GetFamily(),
+                        m_normalFont.GetStyle(),
+                        wxBOLD,
+                        m_normalFont.GetUnderlined(),
+                        m_normalFont.GetFaceName(),
+                        m_normalFont.GetEncoding());
+
 //  m_dottedPen = wxPen( "grey", 0, wxDOT );  too slow under XFree86
     m_dottedPen = wxPen( wxT("grey"), 0, 0 );

cvs server: Diffing src/gtk
Index: src/gtk/gauge.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/gtk/gauge.cpp,v
retrieving revision 1.22
diff -u -r1.22 gauge.cpp
--- src/gtk/gauge.cpp    2004/03/10 01:15:27    1.22
+++ src/gtk/gauge.cpp    2004/03/17 14:11:46
@@ -56,6 +56,7 @@
     m_parent->DoAddChild( this );

     PostCreation();
+    InheritAttributes();
     SetBestSize(size);

     Show( TRUE );
Index: src/gtk/statline.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/gtk/statline.cpp,v
retrieving revision 1.10
diff -u -r1.10 statline.cpp
--- src/gtk/statline.cpp    2003/08/09 12:46:10    1.10
+++ src/gtk/statline.cpp    2004/03/17 14:11:46
@@ -75,6 +75,7 @@
     m_parent->DoAddChild( this );

     PostCreation();
+    InheritAttributes();

     Show( TRUE );

Index: src/gtk/tbargtk.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/gtk/tbargtk.cpp,v
retrieving revision 1.90
diff -u -r1.90 tbargtk.cpp
--- src/gtk/tbargtk.cpp    2003/09/26 19:43:45    1.90
+++ src/gtk/tbargtk.cpp    2004/03/17 14:11:46
@@ -374,7 +374,8 @@
     m_parent->DoAddChild( this );

     PostCreation();
-
+    SetFont(parent->GetFont());
+
     Show( TRUE );

     return TRUE;
Index: src/gtk/treegtk.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/gtk/treegtk.cpp,v
retrieving revision 1.5
diff -u -r1.5 treegtk.cpp
--- src/gtk/treegtk.cpp    2003/08/09 12:46:11    1.5
+++ src/gtk/treegtk.cpp    2004/03/17 14:11:46
@@ -135,6 +135,8 @@
 printf("postcreate\n");
   PostCreation();

+  InheritAttributes();
+
   gtk_widget_realize(GTK_WIDGET(m_tree));

   Show(TRUE);

Index: src/msw/checkbox.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/msw/checkbox.cpp,v
retrieving revision 1.53
diff -u -r1.53 checkbox.cpp
--- src/msw/checkbox.cpp    2004/01/15 13:49:04    1.53
+++ src/msw/checkbox.cpp    2004/03/17 14:11:46
@@ -177,7 +177,7 @@
     if ( !s_checkSize )
     {
         wxScreenDC dc;
-        dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
+        dc.SetFont(GetFont());

         s_checkSize = dc.GetCharHeight();
     }
Index: src/msw/listctrl.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/msw/listctrl.cpp,v
retrieving revision 1.192
diff -u -r1.192 listctrl.cpp
--- src/msw/listctrl.cpp    2004/02/29 23:24:35    1.192
+++ src/msw/listctrl.cpp    2004/03/17 14:11:47
@@ -367,8 +367,8 @@

     // inherit foreground colour but our background should be the same as for
     // listboxes and other such "container" windows and not inherited
+    InheritAttributes();
     SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
-    SetForegroundColour(GetParent()->GetForegroundColour());

     return TRUE;
 }
Index: src/msw/notebook.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/msw/notebook.cpp,v
retrieving revision 1.111
diff -u -r1.111 notebook.cpp
--- src/msw/notebook.cpp    2004/03/07 20:00:28    1.111
+++ src/msw/notebook.cpp    2004/03/17 14:11:48
@@ -270,6 +270,7 @@
     if ( !MSWCreateControl(WC_TABCONTROL, wxEmptyString, pos, size) )
         return false;

+    InheritAttributes();
     SetBackgroundColour(wxColour(::GetSysColor(COLOR_BTNFACE)));

     return true;
Index: src/msw/radiobut.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/msw/radiobut.cpp,v
retrieving revision 1.48
diff -u -r1.48 radiobut.cpp
--- src/msw/radiobut.cpp    2004/01/15 13:49:06    1.48
+++ src/msw/radiobut.cpp    2004/03/17 14:11:48
@@ -271,7 +271,7 @@
     if ( !s_radioSize )
     {
         wxScreenDC dc;
-        dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
+        dc.SetFont(GetFont());

         s_radioSize = dc.GetCharHeight();
     }
Index: src/msw/statbr95.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/msw/statbr95.cpp,v
retrieving revision 1.51
diff -u -r1.51 statbr95.cpp
--- src/msw/statbr95.cpp    2003/08/24 14:30:23    1.51
+++ src/msw/statbr95.cpp    2004/03/17 14:11:48
@@ -118,6 +118,7 @@
     SubclassWin(m_hWnd);

     SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_MENUBAR));
+    SetFont(parent->GetFont());

     return TRUE;
 }
Index: src/msw/tabctrl.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/msw/tabctrl.cpp,v
retrieving revision 1.31
diff -u -r1.31 tabctrl.cpp
--- src/msw/tabctrl.cpp    2004/02/07 14:47:48    1.31
+++ src/msw/tabctrl.cpp    2004/03/17 14:11:48
@@ -116,7 +116,7 @@

   SubclassWin((WXHWND) hWndTabCtrl);

-  SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
+  InheritAttributes();

   return TRUE;
 }
Index: src/msw/tbar95.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/msw/tbar95.cpp,v
retrieving revision 1.123
diff -u -r1.123 tbar95.cpp
--- src/msw/tbar95.cpp    2004/02/25 10:44:49    1.123
+++ src/msw/tbar95.cpp    2004/03/17 14:11:53
@@ -241,8 +241,8 @@
         return FALSE;

     // set up the colors and fonts
+    InheritAttributes();
     SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_MENUBAR));
-    SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));

     return TRUE;
 }
Index: include/wx/gtk/notebook.h
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/include/wx/gtk/notebook.h,v
retrieving revision 1.48
diff -c -r1.48 notebook.h
*** include/wx/gtk/notebook.h    2004/01/22 14:46:00    1.48
--- include/wx/gtk/notebook.h    2004/03/17 14:12:12
***************
*** 107,112 ****
--- 107,115 ----
  #endif

      void ApplyWidgetStyle();
+
+     // set all page's font
+     bool SetFont(const wxFont& font);

      // report if window belongs to notebook
      bool IsOwnGtkWindow( GdkWindow *window );
Index: src/gtk/notebook.cpp
===================================================================
RCS file: /pack/cvsroots/wxwidgets/wxWidgets/src/gtk/notebook.cpp,v
retrieving revision 1.102
diff -c -r1.102 notebook.cpp
*** src/gtk/notebook.cpp    2004/02/22 21:05:54    1.102
--- src/gtk/notebook.cpp    2004/03/17 14:12:13
***************
*** 24,35 ****
--- 24,38 ----
  #include "wx/intl.h"
  #include "wx/log.h"
  #include "wx/bitmap.h"
+ #include "wx/fontutil.h"

  #include "wx/gtk/private.h"
  #include "wx/gtk/win_gtk.h"

  #include <gdk/gdkkeysyms.h>

+ #include "wx/msgdlg.h"
+
  // ----------------------------------------------------------------------------
  // events
  // ----------------------------------------------------------------------------
***************
*** 69,86 ****
--- 72,144 ----
      m_image = -1;
      m_page = (GtkNotebookPage *) NULL;
      m_box = (GtkWidget *) NULL;
+     m_labelStyle=NULL;
+   }
+   ~wxGtkNotebookPage()
+   {
+       if (m_labelStyle)
+         gtk_style_unref( m_labelStyle );
    }
+   bool SetFont(const wxFont& font);

    wxString           m_text;
    int                m_image;
    GtkNotebookPage   *m_page;
    GtkLabel          *m_label;
    GtkWidget         *m_box;     // in which the label and image are packed
+   GtkStyle          *m_labelStyle;
  };

+
+ bool  wxGtkNotebookPage::SetFont(const wxFont& font)
+ {
+     if (!m_label)
+         return false;
+
+     if (m_labelStyle)
+     {
+         GtkStyle *remake = gtk_style_copy( m_labelStyle );
+
+ #ifndef __WXGTK20__
+         remake->klass = m_labelStyle->klass;
+ #endif
+
+         gtk_style_unref( m_labelStyle );
+         m_labelStyle = remake;
+     }
+     else
+     {
+         GtkStyle *def = gtk_rc_get_style( GTK_WIDGET(m_label) );
+
+         if (!def)
+             def = gtk_widget_get_default_style();
+
+         m_labelStyle = gtk_style_copy( def );
+
+         // FIXME: no more klass in 2.0
+ #ifndef __WXGTK20__
+         m_labelStyle->klass = def->klass;
+ #endif
+     }
+
+ #ifdef __WXGTK20__
+     pango_font_description_free( m_labelStyle->font_desc );
+     m_labelStyle->font_desc = pango_font_description_copy( font.GetNativeFontInfo()->description );
+ #else
+     gdk_font_unref( m_labelStyle->font );
+     m_labelStyle->font = gdk_font_ref( font.GetInternalFont( 1.0 ) );
+ #endif
+
+     gtk_widget_set_style( GTK_WIDGET(m_label), m_labelStyle );
+
+     return true;
+ }
+
+
  #include "wx/listimpl.cpp"
  WX_DEFINE_LIST(wxGtkNotebookPagesList);

+
  //-----------------------------------------------------------------------------
  // "switch_page"
  //-----------------------------------------------------------------------------
***************
*** 655,664 ****
--- 713,724 ----
      }

      /* set the label text */
+
      nb_page->m_text = text;
      if (nb_page->m_text.IsEmpty()) nb_page->m_text = wxT("");

      nb_page->m_label = GTK_LABEL( gtk_label_new(wxGTK_CONV(nb_page->m_text)) );
+     nb_page->SetFont(GetFont());
      gtk_box_pack_end( GTK_BOX(nb_page->m_box), GTK_WIDGET(nb_page->m_label), FALSE, FALSE, m_padding );

      /* show the label */
***************
*** 791,796 ****
--- 851,869 ----
  {
      return ((m_widget->window == window) ||
              (NOTEBOOK_PANEL(m_widget) == window));
+ }
+
+ bool  wxNotebook::SetFont(const wxFont& font)
+ {
+     bool rc=wxNotebookBase::SetFont(font);
+
+     if (rc)
+     {
+         size_t i;
+         for (i=0 ; i < m_pagesData.GetCount() ; i++)
+             GetNotebookPage(i)->SetFont(font);
+     }
+     return rc;
  }

  //-----------------------------------------------------------------------------

В списке pgadmin-hackers по дате отправления:

Предыдущее
От: Jean-Michel POURE
Дата:
Сообщение: Proposal to use Qemu fast emulator
Следующее
От: Hiroshi Saito
Дата:
Сообщение: Re: latest wx news