-
Notifications
You must be signed in to change notification settings - Fork 469
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Manager] Refactor several wxWidgets constructors and/or inputs #6098
Comments
For more than 2 years the minimal supported version of wxWidgets is 3.1.3 (that is by the way already 6 years old). |
The Mac builld current uses wxWidgets 3.2.2. I am far more cautious about upgrading the dependent libraries, and especially wxWidgets, for the mac because of the many times updating to a newer version has broken things in the Mac Manager, and in the past at least has required patches to the wxWidgets code to work properly on the Mac. The current Mac code patches include/wx/osx/choice.h, src/osx/choice_osx.cpp, src/osx/cocoa/choice.mm and include/wx/osx/core/private.h. You can see all the patches in the file mac_build/buildWxMac.sh. So I feel the need to do very extensive testing any time I upgrade wxWidgets, which I don't have the time or energy to do unless absolutely necessary. As long as changes are backward compatible to wxWidgets 3.2.2, I am fine with them. Since the issues you list seem to not affect wxChoice or its derivatives, there probably should not be any problem in fixing most of them. That said, the Simple View interface is very fragile, especially the code involving transparent backgrounds for pens and brushes, and may appear differently on different platforms (operating systems.) So if you fix those warnings, we need to make sure the Simple View is thoroughly tested on all platforms. |
@CharlieFenton , I can understand the concern about causing problems in the Mac build. However, I don't think these will be an issue. The changes, for example, are changing the font family from "wxSWISS" to "wxFONTFAMILY_SWISS". I have made the changes, I just haven't built and tested it yet. For the Simple View brushes and pens, it is similar, such as changing "wxTRANSPARENT" to "wxPENSTYLE_TRANSPARENT". I don't think this should cause any issues, but you're right, we should test. |
The one deprecation I am not sure what to do about is the wxTimerEvent. In AdvancedFrame.cpp, the relevant lines of code are: boinc/clientgui/AdvancedFrame.cpp Line 1570 in ecc3330
boinc/clientgui/AdvancedFrame.cpp Line 1616 in ecc3330
with FireOnListRender being: boinc/clientgui/BOINCBaseView.cpp Lines 211 to 213 in ecc3330
I am not familiar with what these functions are doing. I could use some assistance with this. For now, I am leaving this alone. |
I agree, those should be no problem. |
It looks like they are just causing the main GUI window to refresh at a set interval (1 second). Do you have any idea what |
That said, please check that the Simple View looks the same after the change to |
Will do. I can test in Windows and Linux. If you have time to take a look when I submit the PR, I would appreciate a look at the Mac build. |
Describe the problem
While building the Manager, several deprecation warnings occur. These are all part of wxWidgets. The warnings are:
Describe the solution you'd like
These should be updated to the current code. However, I am not sure if it is as simple as refactoring some code, see below.
Additional context
Updating these deprecations for the current version of wxWidgets shouldn't be a problem, except for the wxTimerEvent. I haven't looked at that one in detail yet but it may be a separate issue. However, do we need to keep BOINC compatible with older versions of wxWidgets? If so, then this may get trickier. the changes for the wxFont constructor were added in wxWidgets 3.1.1. If someone is building the Manager for an older OS that needs to use an older version of wxWidgets, (possibly due to a wxGTK version), then this could be trickier.
I'm not sure if the appropriate fix would be to just fix it, add preprocessor headers for each constructor to make it compatible with older versions (which seems like a lot of work and difficult to cover all possibilities), or something else.
Any input is appreciated. I would be happy to fix these deprecations as well.
The text was updated successfully, but these errors were encountered: