#include "wx/odcombo.h"
-#ifdef __WXMSW__
- #include "wx/msw/private.h"
-#endif
-
// -----------------------------------------------------------------------
#if defined(__WXMSW__)
#define wxPG_CHOICEYADJUST 0
#endif
-#define ODCB_CUST_PAINT_MARGIN 6 // Number added to image width for SetCustomPaintWidth
+// Number added to image width for SetCustomPaintWidth
+#define ODCB_CUST_PAINT_MARGIN 6
// Milliseconds to wait for two mouse-ups after focus inorder
// to trigger a double-click.
//
// Fix indentation, just in case (change in font boldness is one good
// reason).
-#if defined(__WXMSW__) && !defined(__WXWINCE__)
- ::SendMessage(GetHwndOf(tc),
- EM_SETMARGINS,
- EC_LEFTMARGIN | EC_RIGHTMARGIN,
- MAKELONG(0, 0));
-#endif
+ tc->SetMargins(0);
}
// Provided so that, for example, ComboBox editor can use the same code
return rect.width;
}
- virtual void PositionTextCtrl( int WXUNUSED(textCtrlXAdjust),
+ virtual void PositionTextCtrl( int textCtrlXAdjust,
int WXUNUSED(textCtrlYAdjust) )
{
wxPropertyGrid* pg = GetGrid();
+ #ifdef wxPG_TEXTCTRLXADJUST
+ textCtrlXAdjust = wxPG_TEXTCTRLXADJUST -
+ (wxPG_XBEFOREWIDGET+wxPG_CONTROL_MARGIN+1) - 1,
+ #endif
wxOwnerDrawnComboBox::PositionTextCtrl(
- wxPG_TEXTCTRLXADJUST -
- (wxPG_XBEFOREWIDGET+wxPG_CONTROL_MARGIN+1) - 1,
+ textCtrlXAdjust,
pg->GetSpacingY() + 2
);
}
wxPGProperty* property = propGrid->GetSelectedProperty();
wxASSERT( property );
+ wxSize imageSize;
+ bool res;
+
if ( cmnVal >= 0 )
{
// Yes, a common value is being selected
property->SetCommonValue( cmnVal );
- wxSize imageSize = propGrid->GetCommonValue(cmnVal)->
+ imageSize = propGrid->GetCommonValue(cmnVal)->
GetRenderer()->GetImageSize(property, 1, cmnVal);
- if ( imageSize.x ) imageSize.x += ODCB_CUST_PAINT_MARGIN;
- cb->SetCustomPaintWidth( imageSize.x );
- return false;
+ res = false;
}
else
{
- wxSize imageSize = propGrid->GetImageSize(property, -1);
- if ( imageSize.x ) imageSize.x += ODCB_CUST_PAINT_MARGIN;
- cb->SetCustomPaintWidth( imageSize.x );
- return true;
+ imageSize = propGrid->GetImageSize(property, -1);
+ res = true;
}
+
+ if ( imageSize.x )
+ imageSize.x += ODCB_CUST_PAINT_MARGIN;
+ cb->SetCustomPaintWidth( imageSize.x );
+
+ return res;
}
// CreateControls calls this with CB_READONLY in extraStyle
odcbFlags);
cb->SetButtonPosition(si.y,0,wxRIGHT);
- cb->SetTextIndent(wxPG_XBEFORETEXT-1);
+ cb->SetMargins(wxPG_XBEFORETEXT-1);
wxPGChoiceEditor_SetCustomPaintWidth( propGrid, cb, property->GetCommonValue() );
void wxPropertyGrid::CorrectEditorWidgetSizeX()
{
- if ( m_selColumn == -1 )
- return;
-
int secWid = 0;
int newSplitterx = m_pState->DoGetSplitterPosition(m_selColumn-1);
int newWidth = newSplitterx + m_pState->m_colWidths[m_selColumn];
void wxPropertyGrid::CorrectEditorWidgetPosY()
{
- if ( m_selColumn == -1 )
- return;
-
if ( GetSelection() && (m_wndEditor || m_wndEditor2) )
{
wxRect r = GetEditorWidgetRect(GetSelection(), m_selColumn);
// Fixes position of wxTextCtrl-like control (wxSpinCtrl usually
// fits into that category as well).
void wxPropertyGrid::FixPosForTextCtrl( wxWindow* ctrl,
- unsigned int forColumn,
+ unsigned int WXUNUSED(forColumn),
const wxPoint& offset )
{
// Center the control vertically
finalPos.y += y_adj;
finalPos.height -= (y_adj+sz_dec);
- int textCtrlXAdjust = wxPG_TEXTCTRLXADJUST;
+#ifndef wxPG_TEXTCTRLXADJUST
+ int textCtrlXAdjust = wxPG_XBEFORETEXT - 1;
- if ( forColumn != 1 )
- textCtrlXAdjust -= 3; // magic number!
+ wxTextCtrl* tc = static_cast<wxTextCtrl*>(ctrl);
+ tc->SetMargins(0);
+#else
+ int textCtrlXAdjust = wxPG_TEXTCTRLXADJUST;
+#endif
finalPos.x += textCtrlXAdjust;
finalPos.width -= textCtrlXAdjust;
int tcFlags = wxTE_PROCESS_ENTER | extraStyle;
- if ( prop->HasFlag(wxPG_PROP_READONLY) )
+ if ( prop->HasFlag(wxPG_PROP_READONLY) && forColumn == 1 )
tcFlags |= wxTE_READONLY;
wxPoint p(pos.x,pos.y);