m_eventObject = this;
m_curFocused = NULL;
m_processedEvent = NULL;
+ m_tlp = NULL;
m_sortFunction = NULL;
m_inDoPropertyChanged = false;
m_inCommitChangesFromEditor = false;
m_coloursCustomized = 0;
m_frozen = 0;
-#if wxPG_DOUBLE_BUFFER
m_doubleBuffer = NULL;
-#endif
#ifndef wxPG_ICON_WIDTH
m_expandbmp = NULL;
SetBackgroundStyle( wxBG_STYLE_CUSTOM );
// Hook the top-level parent
- m_tlp = NULL;
m_tlpClosed = NULL;
m_tlpClosedTime = 0;
wxS("Close(false).)") );
}
-#if wxPG_DOUBLE_BUFFER
if ( m_doubleBuffer )
delete m_doubleBuffer;
-#endif
if ( m_iFlags & wxPG_FL_CREATEDSTATE )
delete m_pState;
}
else
{
- #if wxPG_DOUBLE_BUFFER
wxDELETE(m_doubleBuffer);
- #endif
}
}
wxDC* dcPtr = &dc;
bool isBuffered = false;
- #if wxPG_DOUBLE_BUFFER
wxMemoryDC* bufferDC = NULL;
if ( !(GetExtraStyle() & wxPG_EX_NATIVE_DOUBLE_BUFFERING) )
isBuffered = true;
}
}
- #endif
if ( dcPtr )
{
}
}
- #if wxPG_DOUBLE_BUFFER
if ( bufferDC )
{
dc.Blit( drawRect.x, drawRect.y, drawRect.width,
bufferDC, 0, 0, wxCOPY );
delete bufferDC;
}
- #endif
}
else
{
int xRelMod = 0;
//
- // With wxPG_DOUBLE_BUFFER, do double buffering
+ // For now, do some manual calculation for double buffering
// - buffer's y = 0, so align itemsRect and coordinates to that
//
-#if wxPG_DOUBLE_BUFFER
+ // TODO: In future use wxAutoBufferedPaintDC (for example)
+ //
int yRelMod = 0;
wxRect cr2;
firstItemTopY -= yRelMod;
lastItemBottomY -= yRelMod;
}
-#else
- wxUnusedVar(isBuffered);
-#endif
int x = m_marginWidth - xRelMod;
void wxPropertyGrid::RefreshProperty( wxPGProperty* p )
{
- if ( m_pState->DoIsPropertySelected(p) )
+ if ( m_pState->DoIsPropertySelected(p) || p->IsChildSelected(true) )
{
// NB: We must copy the selection.
wxArrayPGProperty selection = m_pState->m_selection;
}
else if ( wnd->IsKindOf(CLASSINFO(wxComboCtrl)) )
{
+ // In some cases we might stumble unintentionally on
+ // wxComboCtrl's embedded wxTextCtrl's events. Let's
+ // avoid them.
+ if ( editorWnd->IsKindOf(CLASSINFO(wxTextCtrl)) )
+ return false;
+
wxComboCtrl* cc = (wxComboCtrl*) wnd;
wxString newTcValue = cc->GetTextCtrl()->GetValue();
m_width = width;
m_height = height;
-#if wxPG_DOUBLE_BUFFER
if ( !(GetExtraStyle() & wxPG_EX_NATIVE_DOUBLE_BUFFERING) )
{
int dblh = (m_lineHeight*2);
}
}
-#endif
-
m_pState->OnClientWidthChange( width, event.GetSize().x - m_ncWidth, true );
m_ncWidth = event.GetSize().x;
}
// Do not Skip() the event after selection has been made.
- // Otherwise default event handling behavior kicks in
+ // Otherwise default event handling behaviour kicks in
// and may revert focus back to the main canvas.
res = true;
}
m_column = 1;
m_canVeto = false;
m_wasVetoed = false;
+ m_pg = NULL;
}
// -----------------------------------------------------------------------