Hi all !
I'm working on the new logger interface integration.
I found these events in sdk_events used in main.cpp:
const wxEventType cbEVT_ADD_LOG_WINDOW = wxNewEventType();
const wxEventType cbEVT_REMOVE_LOG_WINDOW = wxNewEventType();
const wxEventType cbEVT_SWITCH_TO_LOG_WINDOW = wxNewEventType();
const wxEventType cbEVT_SHOW_LOG_MANAGER = wxNewEventType();
const wxEventType cbEVT_HIDE_LOG_MANAGER = wxNewEventType();
const wxEventType cbEVT_LOCK_LOG_MANAGER = wxNewEventType();
const wxEventType cbEVT_UNLOCK_LOG_MANAGER = wxNewEventType();
but I don't see any event to access the
void InfoPane::Show(size_t i)
method.
As the previous version allows showing/hiding ThreadSearch Panel in the Messages notebook from the View menu, I'd like to implement it with new logger interface but I didn't find the right event to do it.
Any idea ?
Dje
Hi all !
I have a linking problem...
Linking dynamic library: ..\..\..\devel\share\CodeBlocks\plugins\ThreadSearch.dll
..\..\..\.objs\plugins\contrib\ThreadSearch\ThreadSearchView.o: In function `ZN14BlockAllocatorI19CodeBlocksDockEventLj75ELb0EED1Ev':
C:/DevSofts/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_vector.h:(.rdata$_ZTV16ThreadSearchView[vtable for ThreadSearchView]+0x14): undefined reference to `ThreadSearchView::Append(wxString const&, Logger::level)'
In ThreadSearchView.h, I have
class ThreadSearchView: public Logger, public wxPanel {
public:
...
virtual void Append(const wxString& msg, Logger::level lv = info);
...
}
In ThreadSearchView.cpp, I have
void Append(const wxString& msg, Logger::level lv)
{
// In OnTmrListCtrlUpdate, the events sent by the worker thread replace
// this method. The ThreadSearchLoggerBase::OnThreadSearchEvent method
// is called.
}
I cleaned my project and rebuilt it but the problem remains.
SVN4640
GCC 3.4.5
Win XP SP2
The problem must be so obvious that I can't find it :oops:
Thanks for any help !
Dje
In ThreadSearchView.cpp, I have
void Append(const wxString& msg, Logger::level lv)
{
// In OnTmrListCtrlUpdate, the events sent by the worker thread replace
// this method. The ThreadSearchLoggerBase::OnThreadSearchEvent method
// is called.
}
How about changing this to:
void ThreadSearchView::Append(const wxString& msg, Logger::level lv)
{
// In OnTmrListCtrlUpdate, the events sent by the worker thread replace
// this method. The ThreadSearchLoggerBase::OnThreadSearchEvent method
// is called.
}
??? ;-)
With regards, Morten.
Hi all !
This code worked before with wxWidgets 2.8.4 but not any more with 2.8.6.
The crash happens during the preview editor (cbStyledTextCtrl) creation.
I don't understand why, all parameters are OK:
#0 00000000 wxScintilla::Create(this=0x551ecb0, parent=0x55342f8, id=100, pos=@0x62de6858, size=@0x22f3a8, style=0, name=@0x22f1c0) (C:/Dev/codeblocks/trunk/src/sdk/wxscintilla/src/wxscintilla.cpp:163)
#1 6C9FF93D wxScintilla::wxScintilla(this=0x551ecb0, parent=0x55342f8, id=100, pos=@0x62de6858, size=@0x22f3a8, style=0, name=@0x22f1c0) (C:/Dev/codeblocks/trunk/src/sdk/wxscintilla/src/wxscintilla.cpp:147)
#2 00A97CDC cbStyledTextCtrl::cbStyledTextCtrl(this=0x551ecb0, pParent=0x55342f8, id=100, pos=@0x62de6858, size=@0x22f3a8, style=0) (C:/Dev/codeblocks/trunk/src/sdk/cbeditor.cpp:83)
#3 05E8DAAB ThreadSearchView::ThreadSearchView(this=0x5533708, threadSearchPlugin=@0x53d9010) (C:/Dev/codeblocks/trunk/src/plugins/contrib/ThreadSearch/ThreadSearchView.cpp:60)
#4 05E77417 ThreadSearch::OnAttach(this=0x53d9010) (C:/Dev/codeblocks/trunk/src/plugins/contrib/ThreadSearch/ThreadSearch.cpp:170)
#5 00AAE1CF cbPlugin::Attach(this=0x53d9010) (C:/Dev/codeblocks/trunk/src/sdk/cbplugin.cpp:66)
#6 00B674AD PluginManager::AttachPlugin(this=0x2f9b130, plugin=0x53d9010, ignoreSafeMode=false) (C:/Dev/codeblocks/trunk/src/sdk/pluginmanager.cpp:209)
#7 00B6FF87 PluginManager::LoadAllPlugins(this=0x2f9b130) (C:/Dev/codeblocks/trunk/src/sdk/pluginmanager.cpp:1115)
#8 0042E83E MainFrame::ScanForPlugins(this=0x25fda18) (C:/Dev/codeblocks/trunk/src/src/main.cpp:1025)
#9 00428810 MainFrame::MainFrame(this=0x25fda18, parent=0x0) (C:/Dev/codeblocks/trunk/src/src/main.cpp:537)
#10 00402213 CodeBlocksApp::InitFrame(this=0x2559838) (C:/Dev/codeblocks/trunk/src/src/app.cpp:349)
#11 00403A23 CodeBlocksApp::OnInit(this=0x2559838) (C:/Dev/codeblocks/trunk/src/src/app.cpp:510)
#12 00461BA4 wxAppConsole::CallOnInit(this=0x2559838) (C:/DevSofts/wxWidgets-2.8.6/include/wx/app.h:76)
#13 6274E4C9 wxEntryReal() (C:\DevSofts\wxWidgets-2.8.6\lib\gcc_dll\wxmsw28u_gcc_custom.dll:??)
#14 627D1D1C wxEntry() (C:\DevSofts\wxWidgets-2.8.6\lib\gcc_dll\wxmsw28u_gcc_custom.dll:??)
#15 0040179E WinMain(hInstance=0x400000, hPrevInstance=0x0, lpCmdLine=0x251f11 "", nCmdShow=10) (C:/Dev/codeblocks/trunk/src/src/app.cpp:287)
#16 0045E0EA main() (C:/Dev/codeblocks/trunk/src/include/logger.h:21)
crash happens in
bool wxScintilla::Create (wxWindow *parent,
wxWindowID id,
const wxPoint& pos,
const wxSize& size,
long style,
const wxString& name) {
#ifdef __WXMAC__
style |= wxVSCROLL | wxHSCROLL;
#endif
if (!wxControl::Create (parent, id, pos, size,
style | wxWANTS_CHARS | wxCLIP_CHILDREN,
wxDefaultValidator, name)) {
return false;
}
...
}
where wxControl::Create returns false.
As a result, m_swx is not allocated in contructor and the fisrt call results in a memory violation.
Does anyone have an idea concerning this crash (wxWidgets code reading didn't gave me the answer) ?
I have to build wxWidgets dll in debug and rebuild all C::B apps/plugin.
Dje
Hi all !
Great progress in new Logger integration (thanks Morten !)
A last problem remains...
When I want to remove the panel from the Messages notebook, I use the following code:
CodeBlocksLogEvent evt(cbEVT_REMOVE_LOG_WINDOW, this);
Manager::Get()->GetAppWindow()->ProcessEvent(evt);
I just want to remove the Logger from the notebook but my logger is deleted when event is processed !
With previous behaviour, it was just removed...
Is there any way to remove Logger without deletion ?
If that's not the case, is it possible to add a boolean to the event to tell if Logger should be deleted ?
Dje