guayadeque icon indicating copy to clipboard operation
guayadeque copied to clipboard

wxwidgets now at 3.2

Open ben2talk opened this issue 3 years ago • 7 comments

In file included from /usr/include/wx-3.2/wx/bitmap.h:318,
                 from /usr/include/wx-3.2/wx/generic/panelg.h:14,
                 from /usr/include/wx-3.2/wx/panel.h:69,
                 from /usr/include/wx-3.2/wx/wx.h:40,
                 from /home/ben/guayadeque/src/misc/Utils.h:25,
                 from /home/ben/guayadeque/src/ui/aui/AuiNotebook.h:25,
                 from /home/ben/guayadeque/src/ui/aui/AuiNotebook.cpp:22:
/usr/include/wx-3.2/wx/gtk/bitmap.h:63:24: note: candidate: ‘wxBitmap& wxBitmap::operator=(const wxBitmap&)’
   63 | class WXDLLIMPEXP_CORE wxBitmap: public wxBitmapBase
      |                        ^~~~~~~~
/usr/include/wx-3.2/wx/gtk/bitmap.h:63:24: note:   no known conversion for argument 1 from ‘wxBitmapBundle’ to ‘const wxBitmap&’

Wow, a sad day for me. Is something like Appimage feasible?

ben2talk avatar Jul 16 '22 05:07 ben2talk

I have a different error message related to src/ui/aui/AuiNotebook.cpp. There was a migration from wxBitmap to wxBitmapBundle in wxWidgets around October 2021 / version 3.1.x and this is not yet reflected in guayadeque. The patch below makes it compile for me, ~~but it still starts with an error dialog (message: /usr/src/debug/wxWidgets-3.2.0/src/generic/imaglist.cpp(56): assert "m_size != wxSize(0, 0)" failed in GetImageCount(): Invalid image list - I can click continue until guayadeque starts[only for debug builds]~~ and now I can play music again.

A simplistic patch, but maybe someone can use it as a start (pull it here:https://github.com/sluedecke/guayadeque/tree/sl/wxwidgets-3.2):

diff --git a/src/ui/aui/AuiNotebook.cpp b/src/ui/aui/AuiNotebook.cpp
index f8178e4c..9c85f685 100644
--- a/src/ui/aui/AuiNotebook.cpp
+++ b/src/ui/aui/AuiNotebook.cpp
@@ -293,7 +293,7 @@ void guAuiTabArt::DrawTab(wxDC &dc, wxWindow * wnd, const wxAuiNotebookPage &pag
     int close_button_width = 0;
     if( close_button_state != wxAUI_BUTTON_STATE_HIDDEN )
     {
-        close_button_width = m_activeCloseBmp.GetWidth();
+      close_button_width = m_activeCloseBmp.GetDefaultSize().GetWidth();
     }
 
 
@@ -303,12 +303,12 @@ void guAuiTabArt::DrawTab(wxDC &dc, wxWindow * wnd, const wxAuiNotebookPage &pag
         bitmap_offset = tab_x + 8;
 
         // draw bitmap
-        dc.DrawBitmap(page.bitmap,
+        dc.DrawBitmap(page.bitmap.GetBitmap(page.bitmap.GetDefaultSize()), //  page.bitmap,
                       bitmap_offset,
-                      drawn_tab_yoff + (drawn_tab_height/2) - (page.bitmap.GetHeight()/2),
+                      drawn_tab_yoff + (drawn_tab_height/2) - (page.bitmap.GetDefaultSize().GetHeight()/2),
                       true);
 
-        text_offset = bitmap_offset + page.bitmap.GetWidth();
+        text_offset = bitmap_offset + page.bitmap.GetDefaultSize().GetWidth();
         text_offset += 3; // bitmap padding
     }
      else
@@ -331,12 +331,12 @@ void guAuiTabArt::DrawTab(wxDC &dc, wxWindow * wnd, const wxAuiNotebookPage &pag
     // draw close button if necessary
     if (close_button_state != wxAUI_BUTTON_STATE_HIDDEN)
     {
-        wxBitmap bmp = m_disabledCloseBmp;
+      wxBitmap bmp = m_disabledCloseBmp.GetBitmap(m_disabledCloseBmp.GetDefaultSize());
 
         if (close_button_state == wxAUI_BUTTON_STATE_HOVER ||
             close_button_state == wxAUI_BUTTON_STATE_PRESSED)
         {
-            bmp = m_activeCloseBmp;
+          bmp = m_activeCloseBmp.GetBitmap(m_activeCloseBmp.GetDefaultSize());
         }
 
         wxRect rect(tab_x + tab_width - close_button_width - 1,

sluedecke avatar Jul 30 '22 20:07 sluedecke

Thanks for the tip - failed build for me. /home/ben/guayadeque/src/ui/aui/AuiNotebook.cpp: In member function ‘virtual void Guayadeque::guAuiTabArt::DrawTab(wxDC&, wxWindow*, const wxAuiNotebookPage&, const wxRect&, int, wxRect*, wxRect*, int*)’: /home/ben/guayadeque/src/ui/aui/AuiNotebook.cpp:296:47: error: ‘class wxBitmapBundle’ has no member named ‘GetWidth’ 296 | close_button_width = m_activeCloseBmp.GetWidth(); | ^~~~~~~~ /home/ben/guayadeque/src/ui/aui/AuiNotebook.cpp:308:76: error: ‘const class wxBitmapBundle’ has no member named ‘GetHeight’ 308 | drawn_tab_yoff + (drawn_tab_height/2) - (page.bitmap.GetHeight()/2), | ^~~~~~~~~ /home/ben/guayadeque/src/ui/aui/AuiNotebook.cpp:311:51: error: ‘const class wxBitmapBundle’ has no member named ‘GetWidth’ 311 | text_offset = bitmap_offset + page.bitmap.GetWidth(); | ^~~~~~~~ /home/ben/guayadeque/src/ui/aui/AuiNotebook.cpp:334:24: error: conversion from ‘wxBitmapBundle’ to non-scalar type ‘wxBitmap’ requested 334 | wxBitmap bmp = m_disabledCloseBmp; | ^~~~~~~~~~~~~~~~~~ /home/ben/guayadeque/src/ui/aui/AuiNotebook.cpp:339:19: error: no match for ‘operator=’ (operand types are ‘wxBitmap’ and ‘wxBitmapBundle’) 339 | bmp = m_activeCloseBmp; | ^~~~~~~~~~~~~~~~ In file included from /usr/include/wx-3.2/wx/bitmap.h:318, from /usr/include/wx-3.2/wx/generic/panelg.h:14, from /usr/include/wx-3.2/wx/panel.h:69, from /usr/include/wx-3.2/wx/wx.h:40, from /home/ben/guayadeque/src/misc/Utils.h:25, from /home/ben/guayadeque/src/ui/aui/AuiNotebook.h:25, from /home/ben/guayadeque/src/ui/aui/AuiNotebook.cpp:22: /usr/include/wx-3.2/wx/gtk/bitmap.h:63:24: note: candidate: ‘wxBitmap& wxBitmap::operator=(const wxBitmap&)’ 63 | class WXDLLIMPEXP_CORE wxBitmap: public wxBitmapBase | ^~~~~~~~ /usr/include/wx-3.2/wx/gtk/bitmap.h:63:24: note: no known conversion for argument 1 from ‘wxBitmapBundle’ to ‘const wxBitmap&’ make[2]: *** [src/CMakeFiles/guayadeque.dir/build.make:720: src/CMakeFiles/guayadeque.dir/ui/aui/AuiNotebook.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:698: src/CMakeFiles/guayadeque.dir/all] Error 2 make: *** [Makefile:136: all] Error 2

ben2talk avatar Aug 01 '22 13:08 ben2talk

Thanks @sluedecke. Can confirm this works on arch linux. Used guayadeque-git PKGBUILD with patch and corrected build flags for wx 3.2.

JohnyPeaN avatar Aug 01 '22 17:08 JohnyPeaN

@JohnyPeaN if you want, you could open a PR against https://github.com/Strubbl/aur-guayadeque-git so that i can update the aur package

Strubbl avatar Aug 01 '22 18:08 Strubbl

Guayadeque-git built from AUR this morning - Thanks

ben2talk avatar Aug 02 '22 00:08 ben2talk

.

martinkg avatar Aug 13 '22 17:08 martinkg

Build fine with this patch under Debian unstable amd64

marillat avatar Mar 07 '23 08:03 marillat