latest wx news - Mailing list pgadmin-hackers
From | Andreas Pflug |
---|---|
Subject | latest wx news |
Date | |
Msg-id | 40586979.9070008@pse-consulting.de Whole thread Raw |
List | 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 by date: