Le 13/06/2014 15:39, Dick Hollenbeck a écrit : > The problem is made more difficult by the wxWindow hierarchy chosen. I don't > know if it > would be possible and easier if everything except the console wxWindow had a > common > wxPanel parent. That wxPanel injection might make the problem easier to > solve, but it > might not be possible with some children insisting on a wxFrame parent. >
For your proposal (everything on a common wxPanel) I am thinking this is possible: I have a branch where I put all widgets (draw panel, msg panel, toolbar ... ) on a wxPanel to build a clone of ViewLib. This clone can be shown in a Dialog or a Frame with very few specific code (no more than 20 lines). However I attached a patch which seems (for me) fix the keys issue. The change is only using a wxPanel instead of a too generic wxWindow to manage the PyConsole. Note, the PyConsole is actually a wxPanel, so I am thinking using a wxWindow as base type was a bug, or, at least, a bad idea. I tested the patch on Linux Ubuntu 10, but not on Windows. (Due to my working environment, It is more difficult for me to test Kicad on Windows, when it is built with option KICAD_SCRIPTING_WXPYTHON=ON). Can someone test this patch (On Windows and on Linux) ? (I did not made a lot of tests) -- Jean-Pierre CHARRAS
=== modified file 'include/wxPcbStruct.h' --- include/wxPcbStruct.h 2014-05-18 15:16:59 +0000 +++ include/wxPcbStruct.h 2014-06-13 16:32:15 +0000 @@ -106,7 +106,7 @@ #ifdef KICAD_SCRIPTING_WXPYTHON // Panel used to let user talk with internal scripting - wxWindow* m_pythonPanel; + wxPanel* m_pythonPanel; bool m_pythonPanelHidden; #endif === modified file 'pcbnew/pcbframe.cpp' --- pcbnew/pcbframe.cpp 2014-06-02 16:16:06 +0000 +++ pcbnew/pcbframe.cpp 2014-06-02 16:28:11 +0000 @@ -454,7 +454,6 @@ pythonAuiInfo.MinSize( wxSize( 200, 100 ) ); pythonAuiInfo.BestSize( wxSize( GetClientSize().x/2, 200 ) ); pythonAuiInfo.Hide(); - m_pythonPanel = CreatePythonShellWindow( this ); m_auimgr.AddPane( m_pythonPanel, pythonAuiInfo.Name( wxT( "PythonPanel" ) ).Bottom().Layer(9) ); === modified file 'scripting/python_scripting.cpp' --- scripting/python_scripting.cpp 2014-04-02 13:38:59 +0000 +++ scripting/python_scripting.cpp 2014-06-13 16:33:29 +0000 @@ -200,7 +200,7 @@ } -wxWindow* CreatePythonShellWindow( wxWindow* parent ) +wxPanel* CreatePythonShellWindow( wxWindow* parent ) { const char* pycrust_panel = "import wx\n" @@ -224,7 +224,7 @@ "\n"; - wxWindow* window = NULL; + wxPanel* window = NULL; PyObject* result; // As always, first grab the GIL === modified file 'scripting/python_scripting.h' --- scripting/python_scripting.h 2013-07-19 18:27:22 +0000 +++ scripting/python_scripting.h 2014-06-13 16:33:27 +0000 @@ -31,7 +31,7 @@ #ifdef KICAD_SCRIPTING_WXPYTHON void RedirectStdio(); -wxWindow* CreatePythonShellWindow( wxWindow* parent ); +wxPanel* CreatePythonShellWindow( wxWindow* parent ); class PyLOCK {
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp