Thanks for testing the previous patch. This revised patch fixes the crash on pause/stop, turns off the button borders so they appear as they do with wx2.8 and even fixes the splash screen.
Cheers, Olly
diff -Nru guayadeque-0.3.7~ds0/debian/changelog guayadeque-0.3.7~ds0/debian/changelog --- guayadeque-0.3.7~ds0/debian/changelog 2014-04-30 03:02:15.000000000 +1200 +++ guayadeque-0.3.7~ds0/debian/changelog 2014-08-14 17:12:56.000000000 +1200 @@ -1,3 +1,11 @@ +guayadeque (0.3.7~ds0-2.1) experimental; urgency=low + + * Non-maintainer upload. + * Update to use wxWidgets 3.0, thanks to Damyan Ivanov for partial patch. + (Closes: #749978) + + -- Olly Betts <o...@survex.com> Thu, 14 Aug 2014 17:12:55 +1200 + guayadeque (0.3.7~ds0-2) unstable; urgency=low * Enable debug builds. (Closes: #746368) diff -Nru guayadeque-0.3.7~ds0/debian/control guayadeque-0.3.7~ds0/debian/control --- guayadeque-0.3.7~ds0/debian/control 2014-04-30 03:01:35.000000000 +1200 +++ guayadeque-0.3.7~ds0/debian/control 2014-08-11 10:50:52.000000000 +1200 @@ -15,8 +15,8 @@ libindicate-dev (>= 0.6.92), libsqlite3-dev, libtagc0-dev, - libwxgtk2.8-dev, - libwxsqlite3-2.8-dev (>> 3.0.0) + libwxgtk3.0-dev, + libwxsqlite3-3.0-dev Standards-Version: 3.9.5 Homepage: http://sourceforge.net/projects/guayadeque Vcs-Git: git://git.debian.org/pkg-multimedia/guayadeque.git diff -Nru guayadeque-0.3.7~ds0/debian/patches/03-curl_headers_location.patch guayadeque-0.3.7~ds0/debian/patches/03-curl_headers_location.patch --- guayadeque-0.3.7~ds0/debian/patches/03-curl_headers_location.patch 2014-04-30 01:37:40.000000000 +1200 +++ guayadeque-0.3.7~ds0/debian/patches/03-curl_headers_location.patch 2014-08-14 16:07:05.000000000 +1200 @@ -11,8 +11,8 @@ src/Podcasts.h | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) ---- guayadeque.orig/src/LastFM.cpp -+++ guayadeque/src/LastFM.cpp +--- a/src/LastFM.cpp ++++ b/src/LastFM.cpp @@ -24,7 +24,7 @@ #include "DbCache.h" #include "Utils.h" @@ -22,8 +22,8 @@ #include <wx/arrimpl.cpp> #include <wx/sstream.h> ---- guayadeque.orig/src/LastFMPanel.cpp -+++ guayadeque/src/LastFMPanel.cpp +--- a/src/LastFMPanel.cpp ++++ b/src/LastFMPanel.cpp @@ -21,7 +21,7 @@ #include "LastFMPanel.h" @@ -33,8 +33,8 @@ #include "Images.h" #include "MainApp.h" #include "Settings.h" ---- guayadeque.orig/src/LyricsPanel.cpp -+++ guayadeque/src/LyricsPanel.cpp +--- a/src/LyricsPanel.cpp ++++ b/src/LyricsPanel.cpp @@ -23,7 +23,7 @@ #include "Base64.h" #include "Commands.h" @@ -44,8 +44,8 @@ #include "Preferences.h" #include "Images.h" #include "ListView.h" ---- guayadeque.orig/src/MainFrame.h -+++ guayadeque/src/MainFrame.h +--- a/src/MainFrame.h ++++ b/src/MainFrame.h @@ -26,7 +26,7 @@ #include "Config.h" #include "CoverPanel.h" @@ -55,8 +55,8 @@ #include "dbus/gudbus.h" #include "dbus/mpris.h" #include "dbus/mpris2.h" ---- guayadeque.orig/src/MusicBrainz.cpp -+++ guayadeque/src/MusicBrainz.cpp +--- a/src/MusicBrainz.cpp ++++ b/src/MusicBrainz.cpp @@ -21,7 +21,7 @@ #include "MusicBrainz.h" @@ -66,8 +66,8 @@ #include <wx/arrimpl.cpp> #include <wx/sstream.h> ---- guayadeque.orig/src/MusicDns.cpp -+++ guayadeque/src/MusicDns.cpp +--- a/src/MusicDns.cpp ++++ b/src/MusicDns.cpp @@ -21,7 +21,7 @@ #include "MusicDns.h" @@ -77,8 +77,8 @@ #include "MusicBrainz.h" #include "Utils.h" #include "Version.h" ---- guayadeque.orig/src/Podcasts.h -+++ guayadeque/src/Podcasts.h +--- a/src/Podcasts.h ++++ b/src/Podcasts.h @@ -21,7 +21,7 @@ #ifndef PODCASTS_H #define PODCASTS_H diff -Nru guayadeque-0.3.7~ds0/debian/patches/05-wx3.0.patch guayadeque-0.3.7~ds0/debian/patches/05-wx3.0.patch --- guayadeque-0.3.7~ds0/debian/patches/05-wx3.0.patch 1970-01-01 12:00:00.000000000 +1200 +++ guayadeque-0.3.7~ds0/debian/patches/05-wx3.0.patch 2014-08-14 17:12:53.000000000 +1200 @@ -0,0 +1,691 @@ +Description: Fix to work with wxwidgets3.0 + Based on partial patch by dam. +Author: Olly Betts <o...@survex.com> +Bug-Debian: http://bugs.debian.org/749978 +Forwarded: no +Last-Update: 2014-08-14 + +--- a/src/ListView.h ++++ b/src/ListView.h +@@ -28,6 +28,7 @@ + #include <wx/scrolwin.h> + #include <wx/vlbox.h> + #include <wx/settings.h> ++#include <wx/listbase.h> + + class guListViewClient; + class guListViewHeader; +@@ -330,7 +331,7 @@ + size_t GetVisibleEnd( void ) const { return m_ListBox->GetVisibleEnd(); } + size_t GetFirstVisibleLine() const { return m_ListBox->GetFirstVisibleLine(); } + size_t GetLastVisibleLine() const { return m_ListBox->GetLastVisibleLine(); } +- bool ScrollLines( int lines ) { return m_ListBox->ScrollLines( lines ); } ++ bool ScrollLines( int lines ) { return m_ListBox->wxWindow::ScrollLines( lines ); } + + bool ScrollToLine( size_t line ) { return m_ListBox->ScrollToLine( line ); } + +--- a/src/FileBrowser.cpp ++++ b/src/FileBrowser.cpp +@@ -36,6 +36,7 @@ + #include <wx/arrimpl.cpp> + #include <wx/artprov.h> + #include <wx/clipbrd.h> ++#include <wx/gtk/tglbtn.h> + + WX_DEFINE_OBJARRAY(guFileItemArray); + +@@ -221,7 +222,7 @@ + + DirBtnSizer->Add( 0, 0, 1, wxEXPAND, 5 ); + +- m_ShowLibPathsBtn = new wxToggleBitmapButton( this, wxID_ANY, guImage( guIMAGE_INDEX_tiny_library ), wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW ); ++ m_ShowLibPathsBtn = new wxBitmapToggleButton( this, wxID_ANY, guImage( guIMAGE_INDEX_tiny_library ), wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW ); + m_ShowLibPathsBtn->SetToolTip( ShowPaths == guFILEBROWSER_SHOWPATH_SYSTEM ? + _( "See used locations" ) : + _( "See system files" ) ); +--- a/src/FileBrowser.h ++++ b/src/FileBrowser.h +@@ -36,6 +36,7 @@ + #include <wx/sizer.h> + #include <wx/string.h> + #include <wx/tglbtn.h> ++#include <wx/gtk/tglbtn.h> + + + #define guPANEL_FILEBROWSER_DIRCTRL ( 1 << 0 ) +@@ -122,7 +123,7 @@ + guMediaViewer * m_MediaViewer; + guGenericDirCtrl * m_DirCtrl; + bool m_AddingFolder; +- wxToggleBitmapButton * m_ShowLibPathsBtn; ++ wxBitmapToggleButton * m_ShowLibPathsBtn; + + void OnShowLibPathsClick( wxCommandEvent& event ); + +--- a/src/AuiNotebook.cpp ++++ b/src/AuiNotebook.cpp +@@ -47,8 +47,8 @@ + m_TextFgColor = wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOWTEXT ); + m_SelTextFgColour = wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOWTEXT ); + +- m_disabled_close_bmp = guImage( guIMAGE_INDEX_tiny_close_normal ); +- m_active_close_bmp = guImage( guIMAGE_INDEX_tiny_close_highlight ); ++ m_disabledCloseBmp = guImage( guIMAGE_INDEX_tiny_close_normal ); ++ m_activeCloseBmp = guImage( guIMAGE_INDEX_tiny_close_highlight ); + } + + // -------------------------------------------------------------------------------- // +@@ -60,9 +60,9 @@ + wxAuiTabArt * guAuiTabArt::Clone() + { + guAuiTabArt * art = new guAuiTabArt; +- art->SetNormalFont( m_normal_font ); +- art->SetSelectedFont( m_selected_font ); +- art->SetMeasuringFont( m_measuring_font ); ++ art->SetNormalFont( m_normalFont ); ++ art->SetSelectedFont( m_selectedFont ); ++ art->SetMeasuringFont( m_measuringFont ); + // art->m_BgColor = m_BgColor; + // art->m_SelBgColor = m_SelBgColor; + // art->m_TextFgColor = m_TextFgColor; +@@ -75,7 +75,7 @@ + // draw background + //wxColor top_color = m_base_colour; + wxColor top_color = m_BgColor; +- wxColor bottom_color = wxAuiStepColour( m_base_colour, 120 ); ++ wxColor bottom_color = wxAuiStepColour( m_baseColour, 120 ); + wxRect r; + + if( m_flags & wxAUI_NB_BOTTOM ) +@@ -88,7 +88,7 @@ + dc.GradientFillLinear( r, top_color, bottom_color, wxNORTH ); + + // draw base lines +- dc.SetPen( m_border_pen ); ++ dc.SetPen( m_borderPen ); + int y = rect.GetHeight(); + int w = rect.GetWidth(); + +@@ -120,10 +120,10 @@ + if( caption.empty() ) + caption = wxT("Xj"); + +- dc.SetFont(m_selected_font); ++ dc.SetFont(m_selectedFont); + dc.GetTextExtent(caption, &selected_textx, &selected_texty); + +- dc.SetFont(m_normal_font); ++ dc.SetFont(m_normalFont); + dc.GetTextExtent(caption, &normal_textx, &normal_texty); + + // figure out the size of the tab +@@ -135,7 +135,7 @@ + close_button_state, + x_extent); + +- wxCoord tab_height = m_tab_ctrl_height - 1; ++ wxCoord tab_height = m_tabCtrlHeight - 1; + if( !page.active ) + tab_height -= 2; + wxCoord tab_width = tab_size.x; +@@ -150,12 +150,12 @@ + + if( page.active ) + { +- dc.SetFont( m_selected_font ); ++ dc.SetFont( m_selectedFont ); + texty = selected_texty; + } + else + { +- dc.SetFont(m_normal_font); ++ dc.SetFont(m_normalFont); + texty = normal_texty; + } + +@@ -221,7 +221,7 @@ + // } + + // draw tab outline +- dc.SetPen( m_border_pen ); ++ dc.SetPen( m_borderPen ); + dc.SetBrush( * wxTRANSPARENT_BRUSH ); + dc.DrawPolygon( WXSIZEOF( border_points ), border_points ); + +@@ -230,7 +230,7 @@ + if( page.active ) + { + if( m_flags & wxAUI_NB_BOTTOM ) +- dc.SetPen( wxPen( wxColour( wxAuiStepColour( m_base_colour, 170 ) ) ) ); ++ dc.SetPen( wxPen( wxColour( wxAuiStepColour( m_baseColour, 170 ) ) ) ); + // TODO: else if (m_flags &wxAUI_NB_LEFT) {} + // TODO: else if (m_flags &wxAUI_NB_RIGHT) {} + else //for wxAUI_NB_TOP +@@ -246,7 +246,7 @@ + int close_button_width = 0; + if (close_button_state != wxAUI_BUTTON_STATE_HIDDEN) + { +- close_button_width = m_active_close_bmp.GetWidth(); ++ close_button_width = m_activeCloseBmp.GetWidth(); + } + + +@@ -284,12 +284,12 @@ + // draw close button if necessary + if (close_button_state != wxAUI_BUTTON_STATE_HIDDEN) + { +- wxBitmap bmp = m_disabled_close_bmp; ++ wxBitmap bmp = m_disabledCloseBmp; + + if (close_button_state == wxAUI_BUTTON_STATE_HOVER || + close_button_state == wxAUI_BUTTON_STATE_PRESSED) + { +- bmp = m_active_close_bmp; ++ bmp = m_activeCloseBmp; + } + + wxRect rect(tab_x + tab_width - close_button_width - 1, +@@ -367,14 +367,14 @@ + // UpdateTabCtrlHeight() does the actual tab resizing. It's meant + // to be used interally + // -------------------------------------------------------------------------------- // +-void guAuiNotebook::UpdateTabCtrlHeight() ++bool guAuiNotebook::UpdateTabCtrlHeight() + { + // get the tab ctrl height we will use + int height = CalculateTabCtrlHeight(); + + wxAuiTabArt* art = m_tabs.GetArtProvider(); + +- m_tab_ctrl_height = height; ++ m_tabCtrlHeight = height; + + wxAuiPaneInfoArray& all_panes = m_mgr.GetAllPanes(); + size_t i, pane_count = all_panes.GetCount(); +@@ -385,10 +385,12 @@ + continue; + wxTabFrame* tab_frame = (wxTabFrame*)pane.window; + wxAuiTabCtrl* tabctrl = tab_frame->m_tabs; +- tab_frame->SetTabCtrlHeight(m_tab_ctrl_height); ++ tab_frame->SetTabCtrlHeight(m_tabCtrlHeight); + tabctrl->SetArtProvider(art->Clone()); + tab_frame->DoSizing(); + } ++ ++ return true; + } + + // -------------------------------------------------------------------------------- // +@@ -447,7 +449,7 @@ + if( p ) + tabs += wxT( "," ); + +- if( ( int ) page_idx == m_curpage ) ++ if( ( int ) page_idx == m_curPage ) + tabs += wxT( "*" ); + else if( ( int ) p == tabframe->m_tabs->GetActivePage() ) + tabs += wxT( "+" ); +@@ -501,12 +503,12 @@ + // create a new tab frame + wxTabFrame * new_tabs = new wxTabFrame; + new_tabs->m_tabs = new wxAuiTabCtrl( this, +- m_tab_id_counter++, ++ m_tabIdCounter++, + wxDefaultPosition, + wxDefaultSize, + wxNO_BORDER | wxWANTS_CHARS ); + new_tabs->m_tabs->SetArtProvider( m_tabs.GetArtProvider()->Clone() ); +- new_tabs->SetTabCtrlHeight( m_tab_ctrl_height ); ++ new_tabs->SetTabCtrlHeight( m_tabCtrlHeight ); + new_tabs->m_tabs->SetFlags( m_flags ); + wxAuiTabCtrl * dest_tabs = new_tabs->m_tabs; + +@@ -555,7 +557,7 @@ + m_mgr.LoadPerspective( frames ); + + // Force refresh of selection +- m_curpage = -1; ++ m_curPage = -1; + SetSelection( sel_page ); + + return true; +--- a/src/AuiNotebook.h ++++ b/src/AuiNotebook.h +@@ -205,7 +205,7 @@ + + virtual ~guAuiNotebook(); + +- virtual void UpdateTabCtrlHeight(); ++ virtual bool UpdateTabCtrlHeight(); + + wxString SavePerspective( void ); + bool LoadPerspective( const wxString &layout ); +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -120,7 +120,7 @@ + SET( ADD_WXSQLITE_SUPPORT 0 ) + PKG_CHECK_MODULES( LIBWXSQLITE3 wxsqlite3 ) + IF( NOT LIBWXSQLITE3_LIBRARIES ) +- PKG_CHECK_MODULES( LIBWXSQLITE3 wxsqlite3-2.8 ) ++ PKG_CHECK_MODULES( LIBWXSQLITE3 wxsqlite3-3.0 ) + IF( NOT LIBWXSQLITE3_LIBRARIES ) + ADD_DEFINITIONS(-DADD_WXSQLITE_SUPPORT=1) + SET( ADD_WXSQLITE_SUPPORT 1 ) +--- a/src/LastFMPanel.cpp ++++ b/src/LastFMPanel.cpp +@@ -2812,7 +2812,7 @@ + if( event.GetKeyCode() == WXK_RETURN ) + { + wxCommandEvent CmdEvent( wxEVT_COMMAND_TEXT_ENTER ); +- m_ArtistTextCtrl->AddPendingEvent( CmdEvent ); ++ m_ArtistTextCtrl->GetEventHandler()->AddPendingEvent( CmdEvent ); + return; + } + event.Skip(); +--- a/src/MainApp.cpp ++++ b/src/MainApp.cpp +@@ -360,8 +360,7 @@ + if( LangInfo ) + { + guLogError( wxT( "Could not initialize the translations engine for ( %s )" ), LangInfo->CanonicalName.c_str() ); +- wxStandardPaths StdPaths; +- guLogError( wxT( "Locale directory '%s'" ), StdPaths.GetLocalizedResourcesDir( LangInfo->CanonicalName, wxStandardPaths::ResourceCat_Messages).c_str() ); ++ guLogError( wxT( "Locale directory '%s'" ), wxStandardPaths::Get().GetLocalizedResourcesDir( LangInfo->CanonicalName, wxStandardPaths::ResourceCat_Messages).c_str() ); + } + else + { +--- a/src/PLSoListBox.cpp ++++ b/src/PLSoListBox.cpp +@@ -179,7 +179,7 @@ + if( event.GetKeyCode() == WXK_DELETE ) + { + wxCommandEvent evt( wxEVT_COMMAND_MENU_SELECTED, ID_TRACKS_DELETE ); +- GetParent()->AddPendingEvent( evt ); ++ GetParent()->GetEventHandler()->AddPendingEvent( evt ); + return; + } + +--- a/src/StatusBar.cpp ++++ b/src/StatusBar.cpp +@@ -509,7 +509,7 @@ + } + + // -------------------------------------------------------------------------------- // +-void guStatusBar::DrawField( wxDC &dc, int i ) ++void guStatusBar::DrawField( wxDC &dc, int i, int textHeight ) + { + wxRect rect; + GetFieldRect( i, rect ); +@@ -521,7 +521,7 @@ + dc.DrawLine( rect.x + rect.width, rect.y + 1, rect.x + rect.width, rect.y + rect.height - 1 ); + } + +- DrawFieldText( dc, i ); ++ DrawFieldText( dc, rect, i, textHeight ); + } + + // -------------------------------------------------------------------------------- // +--- a/src/TagInfo.cpp ++++ b/src/TagInfo.cpp +@@ -2453,7 +2453,7 @@ + } + + // -------------------------------------------------------------------------------- // +-bool guTagSetLyrics( const wxString &filename, wxString &lyrics ) ++bool guTagSetLyrics( const wxString &filename, const wxString &lyrics ) + { + guMainFrame * MainFrame = ( guMainFrame * ) wxTheApp->GetTopWindow(); + +--- a/src/TagInfo.h ++++ b/src/TagInfo.h +@@ -329,7 +329,7 @@ + bool guTagSetPicture( const wxString &filename, wxImage * picture ); + bool guTagSetPicture( const wxString &filename, const wxString &imagefile ); + wxString guTagGetLyrics( const wxString &filename ); +-bool guTagSetLyrics( const wxString &filename, wxString &lyrics ); ++bool guTagSetLyrics( const wxString &filename, const wxString &lyrics ); + //void guUpdateTrack( const guTrack &track, const wxImage * image, const wxString &lyrics, const int &changedflags ); + void guUpdateTracks( const guTrackArray &tracks, const guImagePtrArray &images, + const wxArrayString &lyrics, const wxArrayInt &changedflags ); +--- a/src/PlayListAppend.cpp ++++ b/src/PlayListAppend.cpp +@@ -128,7 +128,7 @@ + int guPlayListAppend::GetSelectedPlayList( void ) + { + int Selection = m_PlayListComboBox->GetSelection(); +- if( Selection == wxNOT_FOUND && !m_PlayListComboBox->IsEmpty() ) ++ if( Selection == wxNOT_FOUND && m_PlayListComboBox->GetCount() != 0 ) + { + Selection = FindPlayListItem( m_PlayListItems, m_PlayListComboBox->GetValue().Lower().Trim().Trim( false ) ); + } +--- a/src/AlbumBrowser.cpp ++++ b/src/AlbumBrowser.cpp +@@ -2308,7 +2308,7 @@ + // Its a LeftUp event + event.SetEventType( wxEVT_LEFT_DOWN ); + event.m_leftDown = true; +- m_BigCoverTracksListBox->AddPendingEvent( event ); ++ m_BigCoverTracksListBox->GetEventHandler()->AddPendingEvent( event ); + } + return; + } +--- a/src/AuiDockArt.cpp ++++ b/src/AuiDockArt.cpp +@@ -23,7 +23,34 @@ + #include "Images.h" + #include "Utils.h" + +-extern wxString wxAuiChopText( wxDC &dc, const wxString &text, int max_size ); ++wxString wxAuiChopText(wxDC& dc, const wxString& text, int max_size) ++{ ++ wxCoord x,y; ++ ++ // first check if the text fits with no problems ++ dc.GetTextExtent(text, &x, &y); ++ if (x <= max_size) ++ return text; ++ ++ size_t i, len = text.Length(); ++ size_t last_good_length = 0; ++ for (i = 0; i < len; ++i) ++ { ++ wxString s = text.Left(i); ++ s += wxT("..."); ++ ++ dc.GetTextExtent(s, &x, &y); ++ if (x > max_size) ++ break; ++ ++ last_good_length = i; ++ } ++ ++ wxString ret = text.Left(last_good_length); ++ ret += wxT("..."); ++ return ret; ++} ++ + + // -------------------------------------------------------------------------------- // + guAuiDockArt::guAuiDockArt() : wxAuiDefaultDockArt() +@@ -42,12 +69,12 @@ + // -------------------------------------------------------------------------------- // + void guAuiDockArt::DrawCaptionBackground( wxDC &dc, const wxRect &rect, bool active ) + { +- if( m_gradient_type == wxAUI_GRADIENT_NONE ) ++ if( m_gradientType == wxAUI_GRADIENT_NONE ) + { + if( active ) +- dc.SetBrush( wxBrush( m_active_caption_colour ) ); ++ dc.SetBrush( wxBrush( m_activeCaptionColour ) ); + else +- dc.SetBrush( wxBrush( m_inactive_caption_colour ) ); ++ dc.SetBrush( wxBrush( m_inactiveCaptionColour ) ); + + dc.DrawRectangle( rect.x, rect.y, rect.width, rect.height ); + } +@@ -58,15 +85,15 @@ + // on mac the gradients are expected to become darker from the top + #ifdef __WXMAC__ + DrawGradientRectangle( dc, rect, +- m_active_caption_colour, +- m_active_caption_gradient_colour, +- m_gradient_type ); ++ m_activeCaptionColour, ++ m_activeCaptionGradientColour, ++ m_gradientType ); + #else + // on other platforms, active gradients become lighter at the top + DrawGradientRectangle( dc, rect, +- m_active_caption_colour, +- m_active_caption_gradient_colour, +- m_gradient_type ); ++ m_activeCaptionColour, ++ m_activeCaptionGradientColour, ++ m_gradientType ); + #endif + } + else +@@ -74,20 +101,20 @@ + #ifdef __WXMAC__ + // on mac the gradients are expected to become darker from the top + DrawGradientRectangle( dc, rect, +- m_inactive_caption_colour, +- m_inactive_caption_gradient_colour, +- m_gradient_type ); ++ m_inactiveCaptionColour, ++ m_inactiveCaptionGradientColour, ++ m_gradientType ); + #else + // on other platforms, inactive gradients become lighter at the bottom + DrawGradientRectangle( dc, rect, +- m_inactive_caption_colour, +- m_inactive_caption_gradient_colour, +- m_gradient_type ); ++ m_inactiveCaptionColour, ++ m_inactiveCaptionGradientColour, ++ m_gradientType ); + #endif + } + } + +- dc.SetPen( m_border_pen ); ++ dc.SetPen( m_borderPen ); + int y = rect.y + rect.height - 1; + dc.DrawLine( rect.x, y, rect.x + rect.width, y ); + } +@@ -97,11 +124,11 @@ + void guAuiDockArt::DrawCaption( wxDC &dc, wxWindow * window, const wxString &text, const wxRect &rect, wxAuiPaneInfo &pane ) + { + dc.SetPen( * wxTRANSPARENT_PEN ); +- dc.SetFont( m_caption_font ); ++ dc.SetFont( m_captionFont ); + + DrawCaptionBackground( dc, rect, bool( pane.state & wxAuiPaneInfo::optionActive ) ); + +- dc.SetTextForeground( pane.state & wxAuiPaneInfo::optionActive ? m_active_caption_text_colour : m_inactive_caption_text_colour ); ++ dc.SetTextForeground( pane.state & wxAuiPaneInfo::optionActive ? m_activeCaptionTextColour : m_inactiveCaptionTextColour ); + + wxCoord w, h; + dc.GetTextExtent( wxT( "ABCDEFHXfgkj" ), &w, &h ); +@@ -110,11 +137,11 @@ + clip_rect.width -= 3; // text offset + clip_rect.width -= 2; // button padding + if( pane.HasCloseButton() ) +- clip_rect.width -= m_button_size; ++ clip_rect.width -= m_buttonSize; + if( pane.HasPinButton() ) +- clip_rect.width -= m_button_size; ++ clip_rect.width -= m_buttonSize; + if( pane.HasMaximizeButton() ) +- clip_rect.width -= m_button_size; ++ clip_rect.width -= m_buttonSize; + + wxString draw_text = wxAuiChopText( dc, text, clip_rect.width ); + +--- a/src/SmartMode.cpp ++++ b/src/SmartMode.cpp +@@ -500,7 +500,7 @@ + int guGenSmartPlaylist::GetPlayListId( void ) + { + int Selection = m_SaveToComboBox->GetSelection(); +- if( Selection == wxNOT_FOUND && !m_SaveToComboBox->IsEmpty() ) ++ if( Selection == wxNOT_FOUND && m_SaveToComboBox->GetCount() != 0 ) + { + Selection = FindPlayListItem( &m_Playlists, m_SaveToComboBox->GetValue().Lower().Trim().Trim( false ) ); + } +--- a/src/StaticBitmap.cpp ++++ b/src/StaticBitmap.cpp +@@ -70,7 +70,7 @@ + { + wxCommandEvent event( guStaticBitmapMouseOverEvent, guEVT_STATICBITMAP_MOUSE_OVER ); + event.SetEventObject( this ); +- m_Bitmap->AddPendingEvent( event ); ++ m_Bitmap->GetEventHandler()->AddPendingEvent( event ); + } + } + +--- a/src/Equalizer.cpp ++++ b/src/Equalizer.cpp +@@ -537,7 +537,7 @@ + { + int Sel = m_PresetComboBox->GetSelection(); + +- m_SaveButton->Enable( !m_PresetComboBox->IsEmpty() && ++ m_SaveButton->Enable( m_PresetComboBox->GetCount() != 0 && + ( m_BandChanged || !FindPresetName( m_PresetComboBox->GetValue(), m_EQPresets ) ) ); + + m_DelButton->Enable( Sel != wxNOT_FOUND ); +--- a/src/LocationPanel.cpp ++++ b/src/LocationPanel.cpp +@@ -161,7 +161,52 @@ + return 1; + } + +-extern wxColor wxAuiStepColour( const wxColor & c, int percent ); ++unsigned char wxAuiBlendColour(unsigned char fg, unsigned char bg, double alpha) ++{ ++ double result = bg + (alpha * (fg - bg)); ++ if (result < 0.0) ++ result = 0.0; ++ if (result > 255) ++ result = 255; ++ return (unsigned char)result; ++} ++ ++wxColor wxAuiStepColour(const wxColor& c, int ialpha) ++{ ++ if (ialpha == 100) ++ return c; ++ ++ unsigned char r = c.Red(), ++ g = c.Green(), ++ b = c.Blue(); ++ unsigned char bg; ++ ++ // ialpha is 0..200 where 0 is completely black ++ // and 200 is completely white and 100 is the same ++ // convert that to normal alpha 0.0 - 1.0 ++ ialpha = wxMin(ialpha, 200); ++ ialpha = wxMax(ialpha, 0); ++ double alpha = ((double)(ialpha - 100.0))/100.0; ++ ++ if (ialpha > 100) ++ { ++ // blend with white ++ bg = 255; ++ alpha = 1.0 - alpha; // 0 = transparent fg; 1 = opaque fg ++ } ++ else ++ { ++ // blend with black ++ bg = 0; ++ alpha += 1.0; // 0 = transparent fg; 1 = opaque fg ++ } ++ ++ r = wxAuiBlendColour(r, bg, alpha); ++ g = wxAuiBlendColour(g, bg, alpha); ++ b = wxAuiBlendColour(b, bg, alpha); ++ ++ return wxColour(r, g, b); ++} + + // -------------------------------------------------------------------------------- // + void guLocationTreeCtrl::ReloadItems( const bool loadstate ) +--- a/src/StatusBar.h ++++ b/src/StatusBar.h +@@ -101,7 +101,7 @@ + void SetPlayMode( const bool forcegapless ); + void SetAudioScrobble( const bool audioscrobble ); + +- virtual void DrawField( wxDC &dc, int i ); ++ virtual void DrawField( wxDC &dc, int i, int textHeight ); + + }; + +--- a/src/Utils.cpp ++++ b/src/Utils.cpp +@@ -311,7 +311,7 @@ + static const wxChar marks[] = wxT( "-_.\"!~*()'" ); + + wxString RetVal; +- unsigned char CurChar; ++ wxChar CurChar; + + wxCharBuffer CharBuffer = url.ToUTF8(); + int Index; +@@ -352,7 +352,7 @@ + + for( index = 0; index < StrLen; index++ ) + { +- unsigned char C = CharBuffer[ index ]; ++ wxChar C = CharBuffer[ index ]; + { + static const wxChar marks[] = wxT( " -_.\"/+!~*()'[]%" ); //~!@#$&*()=:/,;?+' + +--- a/src/ListView.cpp ++++ b/src/ListView.cpp +@@ -914,7 +914,7 @@ + // iterate over all visible lines + for( ; line < lineMax; line++ ) + { +- const wxCoord hLine = OnGetLineHeight( line ); ++ const wxCoord hLine = OnGetRowHeight( line ); + + rectLine.height = hLine; + +--- a/src/TimeLine.h ++++ b/src/TimeLine.h +@@ -115,7 +115,7 @@ + + virtual void TimerEvent( void ); + virtual int TimerCreate( void ); +- virtual void TimerDestroy( void ) { g_source_remove( m_TimerId ); } ++ virtual void TimerDestroy( void ) { int id = m_TimerId; m_TimerId = 0; if (id) g_source_remove( id ); } + + }; + +--- a/src/SplashWin.cpp ++++ b/src/SplashWin.cpp +@@ -79,7 +79,7 @@ + + Show( true ); + SetThemeEnabled( false ); +- SetBackgroundStyle( wxBG_STYLE_CUSTOM ); ++ SetBackgroundStyle( wxBG_STYLE_ERASE ); + + m_Timer.SetOwner( this ); + m_Timer.Start( timeout, wxTIMER_ONE_SHOT ); +--- a/src/RoundButton.cpp ++++ b/src/RoundButton.cpp +@@ -33,7 +33,7 @@ + + // -------------------------------------------------------------------------------- // + guRoundButton::guRoundButton( wxWindow * parent, const wxImage &image, const wxImage &selimage, const int flags ) : +- wxControl( parent, wxID_ANY ) ++ wxControl( parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE ) + { + m_Bitmap = wxBitmap( image ); + m_HoverBitmap = wxBitmap( selimage ); +--- a/src/RatingCtrl.cpp ++++ b/src/RatingCtrl.cpp +@@ -34,7 +34,8 @@ + END_EVENT_TABLE() + + // -------------------------------------------------------------------------------- // +-guRating::guRating( wxWindow * parent, const int style ) : wxControl( parent, wxID_ANY ) ++guRating::guRating( wxWindow * parent, const int style ) : ++ wxControl( parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE ) + { + m_Rating = wxNOT_FOUND; + m_Style = style; +--- a/src/ToggleRoundButton.cpp ++++ b/src/ToggleRoundButton.cpp +@@ -35,7 +35,7 @@ + // -------------------------------------------------------------------------------- // + guToggleRoundButton::guToggleRoundButton( wxWindow * parent, const wxImage &image, + const wxImage &selimage, const wxImage &hoverimage ) : +- wxControl( parent, wxID_ANY ) ++ wxControl( parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE ) + { + m_Bitmap = wxBitmap( selimage ); + m_DisBitmap = wxBitmap( image ); diff -Nru guayadeque-0.3.7~ds0/debian/patches/series guayadeque-0.3.7~ds0/debian/patches/series --- guayadeque-0.3.7~ds0/debian/patches/series 2014-04-30 01:37:40.000000000 +1200 +++ guayadeque-0.3.7~ds0/debian/patches/series 2014-08-11 10:43:21.000000000 +1200 @@ -1 +1,2 @@ 03-curl_headers_location.patch +05-wx3.0.patch diff -Nru guayadeque-0.3.7~ds0/debian/rules guayadeque-0.3.7~ds0/debian/rules --- guayadeque-0.3.7~ds0/debian/rules 2014-04-30 01:54:11.000000000 +1200 +++ guayadeque-0.3.7~ds0/debian/rules 2014-08-11 15:59:59.000000000 +1200 @@ -1,6 +1,7 @@ #!/usr/bin/make -f export LDFLAGS+=-Wl,--as-needed +export DEB_CXXFLAGS_MAINT_APPEND := -DNDEBUG export REPACK_SH=$(CURDIR)/debian/repack.sh
_______________________________________________ pkg-multimedia-maintainers mailing list pkg-multimedia-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-multimedia-maintainers