// Created: 2007-04-14
// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx/wx.h".
{
// Make sure there is correct text (instead of unspecified value
// indicator or hint text)
- int flags = property->HasFlag(wxPG_PROP_READONLY) ?
+ int flags = property->HasFlag(wxPG_PROP_READONLY) ?
0 : wxPG_EDITABLE_VALUE;
wxString correctText = property->GetValueAsString(flags);
tc->SetSelection(-1,-1);
}
-
+
void wxPGTextCtrlEditor::OnFocus( wxPGProperty* property,
wxWindow* wnd ) const
{
wxPGTextCtrlEditor_OnFocus(property, tc);
}
-wxPGTextCtrlEditor::~wxPGTextCtrlEditor() { }
+wxPGTextCtrlEditor::~wxPGTextCtrlEditor()
+{
+ // Reset the global pointer. Useful when wxPropertyGrid is accessed
+ // from an external main loop.
+ wxPG_EDITOR(TextCtrl) = NULL;
+}
// -----------------------------------------------------------------------
else
{
renderFlags |= wxPGCellRenderer::ChoicePopup;
+
+ // For consistency, always use normal font when drawing drop down
+ // items
+ dc.SetFont(GetFont());
}
// If not drawing a selected popup item, then give property's
}
-wxPGChoiceEditor::~wxPGChoiceEditor() { }
+wxPGChoiceEditor::~wxPGChoiceEditor()
+{
+ wxPG_EDITOR(Choice) = NULL;
+}
// -----------------------------------------------------------------------
}
-wxPGComboBoxEditor::~wxPGComboBoxEditor() { }
+wxPGComboBoxEditor::~wxPGComboBoxEditor()
+{
+ wxPG_EDITOR(ComboBox) = NULL;
+}
+
// -----------------------------------------------------------------------
}
-wxPGChoiceAndButtonEditor::~wxPGChoiceAndButtonEditor() { }
-
+wxPGChoiceAndButtonEditor::~wxPGChoiceAndButtonEditor()
+{
+ wxPG_EDITOR(ChoiceAndButton) = NULL;
+}
// -----------------------------------------------------------------------
// wxPGTextCtrlAndButtonEditor
}
-wxPGTextCtrlAndButtonEditor::~wxPGTextCtrlAndButtonEditor() { }
-
+wxPGTextCtrlAndButtonEditor::~wxPGTextCtrlAndButtonEditor()
+{
+ wxPG_EDITOR(TextCtrlAndButton) = NULL;
+}
// -----------------------------------------------------------------------
// wxPGCheckBoxEditor
wxSimpleCheckBox::~wxSimpleCheckBox()
{
- delete ms_doubleBuffer;
- ms_doubleBuffer = NULL;
+ wxDELETE(ms_doubleBuffer);
}
wxBitmap* wxSimpleCheckBox::ms_doubleBuffer = NULL;
}
-wxPGCheckBoxEditor::~wxPGCheckBoxEditor() { }
-
+wxPGCheckBoxEditor::~wxPGCheckBoxEditor()
+{
+ wxPG_EDITOR(CheckBox) = NULL;
+}
#endif // wxPG_INCLUDE_CHECKBOX
void wxPropertyGrid::CorrectEditorWidgetSizeX()
{
int secWid = 0;
- int newSplitterx = m_pState->DoGetSplitterPosition(m_selColumn-1);
- int newWidth = newSplitterx + m_pState->m_colWidths[m_selColumn];
+
+ // Use fixed selColumn 1 for main editor widgets
+ int newSplitterx = m_pState->DoGetSplitterPosition(0);
+ int newWidth = newSplitterx + m_pState->m_colWidths[1];
if ( m_wndEditor2 )
{
void wxPropertyGrid::CorrectEditorWidgetPosY()
{
- if ( GetSelection() && (m_wndEditor || m_wndEditor2) )
- {
- wxRect r = GetEditorWidgetRect(GetSelection(), m_selColumn);
+ wxPGProperty* selected = GetSelection();
- if ( m_wndEditor )
+ if ( selected )
+ {
+ if ( m_labelEditor )
{
- wxPoint pos = m_wndEditor->GetPosition();
+ wxRect r = GetEditorWidgetRect(selected, m_selColumn);
+ wxPoint pos = m_labelEditor->GetPosition();
// Calculate y offset
int offset = pos.y % m_lineHeight;
- m_wndEditor->Move(pos.x, r.y + offset);
+ m_labelEditor->Move(pos.x, r.y + offset);
}
- if ( m_wndEditor2 )
+ if ( m_wndEditor || m_wndEditor2 )
{
- wxPoint pos = m_wndEditor2->GetPosition();
+ wxRect r = GetEditorWidgetRect(selected, 1);
+
+ if ( m_wndEditor )
+ {
+ wxPoint pos = m_wndEditor->GetPosition();
+
+ // Calculate y offset
+ int offset = pos.y % m_lineHeight;
+
+ m_wndEditor->Move(pos.x, r.y + offset);
+ }
- m_wndEditor2->Move(pos.x, r.y);
+ if ( m_wndEditor2 )
+ {
+ wxPoint pos = m_wndEditor2->GetPosition();
+
+ m_wndEditor2->Move(pos.x, r.y);
+ }
}
}
}
}
#endif
+ // This code is repeated from DoSelectProperty(). However, font boldness
+ // must be set before margin is set up below in FixPosForTextCtrl().
+ if ( forColumn == 1 &&
+ prop->HasFlag(wxPG_PROP_MODIFIED) &&
+ HasFlag(wxPG_BOLD_MODIFIED) )
+ tc->SetFont( m_captionFont );
+
// Center the control vertically
if ( !hasSpecialSize )
FixPosForTextCtrl(tc, forColumn);