Code::Blocks Forums

Developer forums (C::B DEVELOPMENT STRICTLY!) => Contributions to C::B => Topic started by: gd_on on August 26, 2013, 12:32:28 pm

Title: C::B and wxWidgets 2.9.5 under Windows
Post by: gd_on on August 26, 2013, 12:32:28 pm
I have seen that recently a few updates have been made in svn to support wxWidgets 2.9.5.
Nevertheless, when I try to build C::B svn 9271, on Windows, with wxWidgets 2.9.5, I obtain a non stable version (using CodeBlocks_wx29.workspace).
I have generated the monolithic wxwidgets lib as told in  http://wiki.codeblocks.org/index.php?title=Compiling_wxWidgets_2.9.0_to_develop_Code::Blocks_%28MSW%29
and updated also the setup.h which is in my C:\wxWidgets-2.9.5\lib\gcc_dll\mswu\wx folder (not only the one in my C:\wxWidgets-2.9.5\include\wx\msw).
C::B compiles, executes also, but I obtain several warnings concerning "assert" and even a crash if for example :
I open a project, and want to have a look to the properties of a source file by a right clic on it's name in the management/project window.
May be my wxwidgets is not correctly generated ? Is the containt of the wiki is still correct (was written for 2.9.0 version) ?
My command line for generating wxwidgets 2.9.5 is :
mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 USE_STC=0 USE_PROPGRID=1 BUILD=release UNICODE=1 USE_OPENGL=1 VENDOR=cb CXXFLAGS="-fno-keep-inline-dllexport"

(it's the same line for 2.8.12 but without USE_STC=0 USE_PROPGRID=1 and no manual modifications in setup.h)

Thanks for your help.

Gd_on
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: stahta01 on August 26, 2013, 05:15:57 pm
You likely did every thing right.

I get the same crash for properties in some of my wxWidgets 2.9.x testing.

I have not had time to find the cause of the crash.

Tim S.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: Jenna on September 21, 2013, 07:24:52 am
This crash should be fixed in trunk now (svn r8362).
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: gd_on on September 21, 2013, 02:19:46 pm
OK, thanks.
An other small bug with wxWidgets 2.9.5 : see the attached file.

gd_on


[attachment deleted by admin]
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: Jenna on September 21, 2013, 07:58:09 pm
Looks okay for me on linux.
I will test it on windows this evening.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: mojca on September 29, 2013, 11:10:08 pm
Since the thread is about wxWidgets 2.9.5 support: may I please request looking into fixes for Mac as well (even if there is no Mac developer in the team as I was told recently)?

See:
or some patches/reports on the tracker.

wxWidgets 2.8 cannot be compiled on a recent Mac OS X (other than via wxGTK using X11), so it's particularly important to get the version 2.9 working for a smooth user experience.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: stahta01 on September 30, 2013, 01:48:07 am
wxWidgets 2.8 cannot be compiled on a recent Mac OS X (other than via wxGTK using X11), so it's particularly important to get the version 2.9 working for a smooth user experience.

I suggest working on the Building/testing of CB and wxWidgets 2.9/3.0 under Mac OS X.

The CB Team will NOT even think of supporting wxWidgets 2.9 as the primary wxWidgets; so, 3.0 needs to be released.
And, people need to test CB using the yet to be released wxWidgets 3.0.

I foresee  wxWidgets being released in October or November of this year (only 1 to 2 months past last posted schedule).
[FYI: The wxWidgets trunk already is using version number 3.0; so, it likely less than two week before trial builds.]

Tim S.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: mojca on September 30, 2013, 04:44:07 pm
Maybe I need to clarify. I successfully built Code::Blocks 12.11 on Mac OS X (10.7) against both wxGTK 2.8.12 and wxOSX 2.9.5. I had to add some patches, but the majority of these patches works with both wxWidgets 2.8 and 2.9/3.0. I would like to request from the Code::Blocks team to review those patches and to apply them to trunk, so that next version of Code::Blocks could be compiled out-of-the-box without additional patches. I assume that wxWidgets 3.0 might be released before the next version of Code::Blocks?

I created most patches myself and only later realized that some of those have already been applied to trunk.

The program now runs, but there are still some minor issues (some pop-up windows with warnings for example), some of which have probably already been fixed in trunk (like in r9362 as mentioned above).

I'm not requesting to make Code::Blocks work with wxWidgets 2.9 only, but to apply the patches that are needed to compile Code::Blocks with version 2.9/3.0.

These are the patches that I needed to compile Code::Blocks 12.11: http://trac.macports.org/browser/trunk/dports/devel/codeblocks/files (http://trac.macports.org/browser/trunk/dports/devel/codeblocks/files) and there are a bunch of bug reports/patches in the tracker. Some patches might need modifications, but such cases all include additional notes.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: stahta01 on September 30, 2013, 05:44:11 pm
Maybe I need to clarify. I successfully built Code::Blocks 12.11 on Mac OS X (10.7) against both wxGTK 2.8.12 and wxOSX 2.9.5. I had to add some patches, but the majority of these patches works with both wxWidgets 2.8 and 2.9/3.0. I would like to request from the Code::Blocks team to review those patches and to apply them to trunk, so that next version of Code::Blocks could be compiled out-of-the-box without additional patches. I assume that wxWidgets 3.0 might be released before the next version of Code::Blocks?

I created most patches myself and only later realized that some of those have already been applied to trunk.

The program now runs, but there are still some minor issues (some pop-up windows with warnings for example), some of which have probably already been fixed in trunk (like in r9362 as mentioned above).

I'm not requesting to make Code::Blocks work with wxWidgets 2.9 only, but to apply the patches that are needed to compile Code::Blocks with version 2.9/3.0.

These are the patches that I needed to compile Code::Blocks 12.11: http://trac.macports.org/browser/trunk/dports/devel/codeblocks/files (http://trac.macports.org/browser/trunk/dports/devel/codeblocks/files) and there are a bunch of bug reports/patches in the tracker. Some patches might need modifications, but such cases all include additional notes.

So, your patches are NOT against either wxWidgets trunk or CB trunk; I know I do NOT have the time to fix the patches.

Tim S.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: mojca on October 01, 2013, 08:36:30 am
So, your patches are NOT against either wxWidgets trunk or CB trunk; I know I do NOT have the time to fix the patches.
These patches are not for wxWidgets themselves, they are all for CB. Yes, the patches on the link are meant to be applied against 12.11, but those that haven't been applied already mostly apply without a problem and I have no problem doing minor modifications to them so that they could go straight to trunk (as long as someone plans to commit the changes soon rather than waiting until the patch would become incompatible with trunk again).

I have no problem migrating patches to the trunk, but I need to point out that I'm unable to compile the complete CB from trunk (http://developer.berlios.de/bugs/?func=detailbug&bug_id=19114&group_id=5358 (http://developer.berlios.de/bugs/?func=detailbug&bug_id=19114&group_id=5358)) which is why I kept patching the released version first.

What exactly should I do to get the patches applied? Just as an example, here's a report where I can still submit a patch (adding a single include), but it's not likely that doing it would mean any less work anyone involved:
http://developer.berlios.de/bugs/?func=detailbug&bug_id=19113&group_id=5358 (http://developer.berlios.de/bugs/?func=detailbug&bug_id=19113&group_id=5358)

I would be grateful if someone would at least replied to the tickets with at least some kind of comment like "this looks ok to me, please create a patch against trunk and I will commit it" or "this doesn't look acceptable to me for this or that reason, we need to find another way to solve the problem", just to make sure that it won't be just hours of extra work for me without any developer actually looking into it later.

Please advise.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: oBFusCATed on October 01, 2013, 09:40:15 am
Just create patches against trunk and we can talk:)
Patches against 12.11 are useless.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: mojca on October 01, 2013, 11:27:51 am
I submitted a revised patch for wxWidgets 2.9 compatibility to

https://developer.berlios.de/patch/index.php?func=detailpatch&patch_id=3499&group_id=5358 (https://developer.berlios.de/patch/index.php?func=detailpatch&patch_id=3499&group_id=5358)

As well as a few others:

There are a few remaining problems, but I'm not yet sure how to (properly) fix those.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: stahta01 on October 01, 2013, 03:23:05 pm

  • http://developer.berlios.de/patch/index.php?func=detailpatch&patch_id=3503&group_id=5358 (http://developer.berlios.de/patch/index.php?func=detailpatch&patch_id=3503&group_id=5358)


The changes to scintilla code will likely need submitted upstream to them for the changes to be put into CB.
IIRC, Morton updates the scintilla code from time to time from the upstream.

Edit3: I noticed these in the scintilla code section; so if doing non upstream changes it might help you get the patch applied.
Code
/* C::B begin */
/* C::B end */

I also suggest looking at the Category options when submitting patches.
If you think some are really bugs; please submit a bug report on them linking to the patch.

NOTE: I am NOT a CB dev; so, all I am saying are suggestions; not required. I gave up doing patches and stuff due to the work it took to keep them updated for CB trunk. But, yours are shorter; maybe my problem was patching to much in a single patch.

Tim S.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: oBFusCATed on October 01, 2013, 04:07:05 pm
I gave up doing patches and stuff due to the work it took to keep them updated for CB trunk.
What should this mean? We haven't apply some of your patches?
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: stahta01 on October 01, 2013, 07:11:36 pm
I gave up doing patches and stuff due to the work it took to keep them updated for CB trunk.
What should this mean? We haven't apply some of your patches?

I had patches that took many months to be applied; to keep updating them to trunk took a long time.

Then, I had to add all the unnecessary ifdefs because of the lack of documentation in wxWidgets of wxstr function.
I felt like it was a waste of my time to submit patches after awhile.
I believe my SDL patch for the wizard has still NOT been applied; but, I gave up on it long ago.

Tim S.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: mojca on October 01, 2013, 11:46:02 pm
Thanks a lot to fuscated for appling the patches r9375-r9378.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: mojca on October 02, 2013, 08:43:27 am
The changes to scintilla code will likely need submitted upstream to them for the changes to be put into CB.

I submitted a report to https://sourceforge.net/p/scintilla/bugs/1531/ (https://sourceforge.net/p/scintilla/bugs/1531/), but it was declined, saying that sources which use the CallTip.h should include <string>. (Honestly this seems a bit weird, in particular if the code that needs to include that header doesn't do anything with strings at all, it just needs the header to prevent a compile error.)

And wxScintilla seems pretty abandoned to me. At least I have no clue where to submit any bug reports. I saw that wxWidgets patches the code (see https://github.com/wxWidgets/wxWidgets/blob/master/src/stc/ScintillaWX.cpp (https://github.com/wxWidgets/wxWidgets/blob/master/src/stc/ScintillaWX.cpp)) by adding the following to ScintillaWX.cpp:

Code
#if !wxUSE_STD_CONTAINERS && !wxUSE_STD_IOSTREAM && !wxUSE_STD_STRING
    #include "wx/beforestd.h"
    #include <string>
    #include "wx/afterstd.h"
#endif
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: oBFusCATed on October 02, 2013, 09:31:51 am
It is not abandoned. See here for contacts http://www.scintilla.org/
I'm not sure where wxScintilla is developed, probably wxwidgets.
Morten would know better.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: mojca on October 02, 2013, 09:44:30 am
No, Scintilla is not abandoned, but wxScintilla seems to be.

http://wxcode.sourceforge.net/showcomp.php?name=wxScintilla (http://wxcode.sourceforge.net/showcomp.php?name=wxScintilla)
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: oBFusCATed on October 02, 2013, 11:35:36 am
I believe my SDL patch for the wizard has still NOT been applied; but, I gave up on it long ago.
I don't see it in the patch tracker.

If you don't get your patches applied in time there are three options you have:
1. bug us more
2. become a developer
3. don't do patches

I suppose 3 is a bad option :)
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: MortenMacFly on October 02, 2013, 12:05:41 pm
No, Scintilla is not abandoned, but wxScintilla seems to be.
Yes the original wxScintilla is dead. wxSTC is the replacement in the wxWidgets source tree, hence it is not as up-to-date as our fork nor we could use it by now as it is available in wx2.9.x+ only.

Besides us, I am not aware of other meaningful further-developed forks of wxScintilla.

So: Everything related to the scintilla core goes to the scintilla maintainer (Neil Hodges, http://www.scintilla.org), everything related to wxScintilla is our business.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: mojca on October 02, 2013, 12:20:19 pm
In that case I would like to request including <string> in src/sdk/wxscintilla/src/ScintillaWX.cpp. I still believe that it would be more logical if it was included in the Scintilla core, but they closed the ticket as invalid, so fixing ScintillaWX.cpp seems to be the only remaining option.

Other than that I have two questions:
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: oBFusCATed on October 02, 2013, 01:21:17 pm
If I were you I'd wait for a while, maybe a release will happen, maybe not...   ::)
Also I won't bother with 12.11 anymore, being marked as stable doesn't mean it is.

p.s. Can you close all you bugs that you've opened for the patches I've applied, because I can track them down. And in the future don't add bugs and patches simultaneously, it makes it harder for us.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: mojca on October 02, 2013, 01:54:00 pm
I would happily close the tickets, but I don't know how. Do I have sufficient permissions for that?

The problem with the tracker is that it's not too user-friendly. I found a bug, reported it, later I came up with a patch, but bug reports don't allow attachments, so I didn't see a better solution.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: oBFusCATed on October 02, 2013, 02:06:36 pm
List them here and I'll close them.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: mojca on October 02, 2013, 05:35:06 pm
The following tickets can be closed:

This has been partially fixed (I believe removing the two [or more] remaining lines as described in the ticket is safe & trivial):

The following two require an easy fix (in case that you are willing to fix & close):

Thank you.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: oBFusCATed on October 02, 2013, 07:11:09 pm
Patch #3501 changes some KWIC header, Morten where is the upstream for this project?
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: mojca on October 02, 2013, 10:42:55 pm
No, KWIC headers have already been patched. I uploaded a new patch to the same ticket, please take a look at that one. It is only patching src/plugins/contrib/wxContribItems/wxTreeList/src/treelistctrl.cpp, but I don't know if there is any other upstream source for that.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: MortenMacFly on October 06, 2013, 06:52:16 pm
Morten where is the upstream for this project?
What is an "upstream"?
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: oBFusCATed on October 06, 2013, 07:17:33 pm
Morten: The place where this project is maintained.
For example we're called upstream maintainers by distro maintainers. So if we use a library/component then we call them upstream, or at least this is what I do.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: MortenMacFly on October 06, 2013, 07:38:13 pm
Morten: The place where this project is maintained.
OK. In that case its in the wxCode GIT repository at:
components\kwic\include\kwic
...but I sync'ed from there I believe... so nothing to do "upstream".
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: oBFusCATed on October 06, 2013, 09:31:42 pm
I think, I've found a problem (minor) with wxgtk-trunk-relatively new.

Steps:
1. Settings -> Editor -> Syntax Highlight
2. Select some element in the top list control
3. Scroll with the mouse -> it doesn't scroll. Placing the mouse over the scroll bar scrolls it normally.

Can someone reproduce this on windows or another linux?
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: stahta01 on October 07, 2013, 12:25:07 am
Patch for alert when checking "Settings" -> "Environment"

Cause was SetSettingsIconsStyle in CB globals.cpp. (Code causing alert was Windows ONLY code.)

I have NOT tested patch under wxWidgets 2.8; only  tested using wxWidgets truck (wx 3.0.0).
Edit: I have now tested the patch with wxWidgets 2.8 branch and it worked under Windows 7 32bit.

I also needed to patch CB file environmentsettingsdlg.cpp because loading the icons makes it default to displaying icons using wxWidgets truck (wx 3.0.0)

Tim S.

Code
Index: src/sdk/globals.cpp
===================================================================
--- src/sdk/globals.cpp (revision 9381)
+++ src/sdk/globals.cpp (working copy)
@@ -1020,8 +1020,8 @@
     long flags = lc->GetWindowStyleFlag();
     switch (style)
     {
-        case sisNoIcons: flags = (flags & ~wxLC_ICON) | wxLC_SMALL_ICON; break;
-        default: flags = (flags & ~wxLC_SMALL_ICON) | wxLC_ICON; break;
+        case sisNoIcons: flags = (flags & ~wxLC_MASK_TYPE) | wxLC_LIST; break;
+        default: flags = (flags & ~wxLC_MASK_TYPE) | wxLC_ICON; break;
     }
     lc->SetWindowStyleFlag(flags);
 #endif
@@ -1032,7 +1032,7 @@
 // this doesn't work under wxGTK...
 #ifdef __WXMSW__
     long flags = lc->GetWindowStyleFlag();
-    if (flags & wxLC_SMALL_ICON)
+    if (flags & wxLC_LIST)
         return sisNoIcons;
 #endif
     return sisLargeIcons;
Index: src/src/environmentsettingsdlg.cpp
===================================================================
--- src/src/environmentsettingsdlg.cpp (revision 9381)
+++ src/src/environmentsettingsdlg.cpp (working copy)
@@ -107,8 +109,8 @@
     wxXmlResource::Get()->LoadObject(this, parent, _T("dlgEnvironmentSettings"),_T("wxScrollingDialog"));
     int sel = cfg->ReadInt(_T("/environment/settings_size"), 0);
     wxListbook* lb = XRCCTRL(*this, "nbMain", wxListbook);
+    LoadListbookImages();
     SetSettingsIconsStyle(lb->GetListView(), (SettingsIconsStyle)sel);
-    LoadListbookImages();
 
     Connect(XRCID("nbMain"),wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING,wxListbookEventHandler(EnvironmentSettingsDlg::OnPageChanging));
     Connect(XRCID("nbMain"),wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED, wxListbookEventHandler(EnvironmentSettingsDlg::OnPageChanged ));
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: Jenna on October 07, 2013, 01:21:35 am
I'm currently working on implementing the possibility to show/hide the settings icons with wxGTK also (after stumbling over the same issue), but it's not (yet) working as I want it (more or less minor issues on windows).
The patch touches SetSettingsIconStyles (also) and environment-, editor- and compilerdialog.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: Jenna on October 07, 2013, 07:55:14 pm
I'm currently working on implementing the possibility to show/hide the settings icons with wxGTK also (after stumbling over the same issue), but it's not (yet) working as I want it (more or less minor issues on windows).
The patch touches SetSettingsIconStyles (also) and environment-, editor- and compilerdialog.

Committed to trunk.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: stahta01 on October 07, 2013, 08:52:27 pm

Committed to trunk.

Thank you.

Tim S.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: oBFusCATed on October 11, 2013, 09:55:39 pm
Argh.... Running codeblocks-wx29 from within codeblocks makes debugging a simple console application with the second C::B impossible.
The debugger doesn't stop on breakpoints and prints this annoying message:
Code
During startup program exited with code 1

Anyone experiencing such issues?
Running codeblocks-wx28 works as expected...
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: Jenna on October 11, 2013, 10:39:48 pm
Argh.... Running codeblocks-wx29 from within codeblocks makes debugging a simple console application with the second C::B impossible.
The debugger doesn't stop on breakpoints and prints this annoying message:
Code
During startup program exited with code 1

Anyone experiencing such issues?
Running codeblocks-wx28 works as expected...
I just tested it with a console (hello world) application and it works in principal, but I always get the "Detected that the Terminal/Console has been closed. Do you want to stop the debugging session?" annoying dialog.
If I answer with "No", debugging worls as expected, "Yes" stops debugging (also as expected).
I did not (yet) have looked, which of the three conditions (m_stopDebuggerConsoleClosed && m_nConsolePid > 0 && wxKill(m_nConsolePid, wxSIGNONE) != 0 ) is true .
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: Jenna on October 11, 2013, 10:54:03 pm
Correction of my previous post:
I get this behaviour with gnome-shell, but not with xterm.
xterm gets closed after the debugging session, gnome-shell stays opened !
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: oBFusCATed on October 11, 2013, 11:20:04 pm
Probably this happens, because gnome-shell is running as single process and the instance started by C::B finishes right after it tells the main process what to do. I think there is an option to disable this behaviour.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: oBFusCATed on October 11, 2013, 11:22:24 pm
I have to note that I'm using relatively new version of wxGTK taken from git last couple of days (probably yesterday).
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: Jenna on October 12, 2013, 08:54:59 am
Probably this happens, because gnome-shell is running as single process and the instance started by C::B finishes right after it tells the main process what to do. I think there is an option to disable this behaviour.
Yes you might be correct, bacause that also happens with C::B build against wx2.8. I will try to investigate deeper.
Title: Re: C::B and wxWidgets 2.9.5 under Windows
Post by: Jenna on October 12, 2013, 08:56:39 am
I have to note that I'm using relatively new version of wxGTK taken from git last couple of days (probably yesterday).
I use the newest trunk also, but not checked out from git, but with git-svn from the subversion repo.
But there should not be any difference, I think.