Added wxPGCell::SetFont() and GetFont(); Documented wxPGCell class.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62412 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -137,14 +137,28 @@ public:
|
|||||||
wxPGProperty* property,
|
wxPGProperty* property,
|
||||||
const wxPGEditor* editor ) const;
|
const wxPGEditor* editor ) const;
|
||||||
|
|
||||||
/** Utility to render cell bitmap and set text colour plus bg brush colour.
|
/** Utility to render cell bitmap and set text colour plus bg brush
|
||||||
|
colour.
|
||||||
|
|
||||||
Returns image width that, for instance, can be passed to DrawText.
|
@return Returns image width, which, for instance, can be passed to
|
||||||
|
DrawText.
|
||||||
*/
|
*/
|
||||||
int PreDrawCell( wxDC& dc,
|
int PreDrawCell( wxDC& dc,
|
||||||
const wxRect& rect,
|
const wxRect& rect,
|
||||||
const wxPGCell& cell,
|
const wxPGCell& cell,
|
||||||
int flags ) const;
|
int flags ) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Utility to be called after drawing is done, to revert whatever
|
||||||
|
changes PreDrawCell() did.
|
||||||
|
|
||||||
|
@param flags
|
||||||
|
Same as those passed to PreDrawCell().
|
||||||
|
*/
|
||||||
|
void PostDrawCell( wxDC& dc,
|
||||||
|
const wxPropertyGrid* propGrid,
|
||||||
|
const wxPGCell& cell,
|
||||||
|
int flags ) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -162,6 +176,7 @@ public:
|
|||||||
void SetBitmap( const wxBitmap& bitmap ) { m_bitmap = bitmap; }
|
void SetBitmap( const wxBitmap& bitmap ) { m_bitmap = bitmap; }
|
||||||
void SetFgCol( const wxColour& col ) { m_fgCol = col; }
|
void SetFgCol( const wxColour& col ) { m_fgCol = col; }
|
||||||
void SetBgCol( const wxColour& col ) { m_bgCol = col; }
|
void SetBgCol( const wxColour& col ) { m_bgCol = col; }
|
||||||
|
void SetFont( const wxFont& font ) { m_font = font; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual ~wxPGCellData() { }
|
virtual ~wxPGCellData() { }
|
||||||
@@ -170,14 +185,16 @@ protected:
|
|||||||
wxBitmap m_bitmap;
|
wxBitmap m_bitmap;
|
||||||
wxColour m_fgCol;
|
wxColour m_fgCol;
|
||||||
wxColour m_bgCol;
|
wxColour m_bgCol;
|
||||||
|
wxFont m_font;
|
||||||
|
|
||||||
// True if m_text is valid and specified
|
// True if m_text is valid and specified
|
||||||
bool m_hasValidText;
|
bool m_hasValidText;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** @class wxPGCell
|
/**
|
||||||
|
@class wxPGCell
|
||||||
|
|
||||||
Base class for simple wxPropertyGrid cell information.
|
Base class for wxPropertyGrid cell information.
|
||||||
*/
|
*/
|
||||||
class WXDLLIMPEXP_PROPGRID wxPGCell : public wxObject
|
class WXDLLIMPEXP_PROPGRID wxPGCell : public wxObject
|
||||||
{
|
{
|
||||||
@@ -218,11 +235,32 @@ public:
|
|||||||
void SetText( const wxString& text );
|
void SetText( const wxString& text );
|
||||||
void SetBitmap( const wxBitmap& bitmap );
|
void SetBitmap( const wxBitmap& bitmap );
|
||||||
void SetFgCol( const wxColour& col );
|
void SetFgCol( const wxColour& col );
|
||||||
|
|
||||||
|
/**
|
||||||
|
Sets font of the cell.
|
||||||
|
|
||||||
|
@remarks Because wxPropertyGrid does not support rows of
|
||||||
|
different height, it makes little sense to change
|
||||||
|
size of the font. Therefore it is recommended
|
||||||
|
to use return value of wxPropertyGrid::GetFont()
|
||||||
|
or wxPropertyGrid::GetCaptionFont() as a basis
|
||||||
|
for the font that, after modifications, is passed
|
||||||
|
to this member function.
|
||||||
|
*/
|
||||||
|
void SetFont( const wxFont& font );
|
||||||
|
|
||||||
void SetBgCol( const wxColour& col );
|
void SetBgCol( const wxColour& col );
|
||||||
|
|
||||||
const wxString& GetText() const { return GetData()->m_text; }
|
const wxString& GetText() const { return GetData()->m_text; }
|
||||||
const wxBitmap& GetBitmap() const { return GetData()->m_bitmap; }
|
const wxBitmap& GetBitmap() const { return GetData()->m_bitmap; }
|
||||||
const wxColour& GetFgCol() const { return GetData()->m_fgCol; }
|
const wxColour& GetFgCol() const { return GetData()->m_fgCol; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns font of the cell. If no specific font is set for this
|
||||||
|
cell, then the font will be invalid.
|
||||||
|
*/
|
||||||
|
const wxFont& GetFont() const { return GetData()->m_font; }
|
||||||
|
|
||||||
const wxColour& GetBgCol() const { return GetData()->m_bgCol; }
|
const wxColour& GetBgCol() const { return GetData()->m_bgCol; }
|
||||||
|
|
||||||
wxPGCell& operator=( const wxPGCell& other )
|
wxPGCell& operator=( const wxPGCell& other )
|
||||||
|
@@ -1505,6 +1505,73 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
@class wxPGCell
|
||||||
|
|
||||||
|
Base class for wxPropertyGrid cell information.
|
||||||
|
|
||||||
|
@library{wxpropgrid}
|
||||||
|
@category{propgrid}
|
||||||
|
*/
|
||||||
|
class wxPGCell : public wxObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxPGCell();
|
||||||
|
wxPGCell(const wxPGCell& other);
|
||||||
|
wxPGCell( const wxString& text,
|
||||||
|
const wxBitmap& bitmap = wxNullBitmap,
|
||||||
|
const wxColour& fgCol = wxNullColour,
|
||||||
|
const wxColour& bgCol = wxNullColour );
|
||||||
|
|
||||||
|
virtual ~wxPGCell();
|
||||||
|
|
||||||
|
const wxPGCellData* GetData() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns @true if this cell has custom text stored within.
|
||||||
|
*/
|
||||||
|
bool HasText() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Merges valid data from srcCell into this.
|
||||||
|
*/
|
||||||
|
void MergeFrom( const wxPGCell& srcCell );
|
||||||
|
|
||||||
|
void SetText( const wxString& text );
|
||||||
|
void SetBitmap( const wxBitmap& bitmap );
|
||||||
|
void SetFgCol( const wxColour& col );
|
||||||
|
|
||||||
|
/**
|
||||||
|
Sets font of the cell.
|
||||||
|
|
||||||
|
@remarks Because wxPropertyGrid does not support rows of
|
||||||
|
different height, it makes little sense to change
|
||||||
|
size of the font. Therefore it is recommended
|
||||||
|
to use return value of wxPropertyGrid::GetFont()
|
||||||
|
or wxPropertyGrid::GetCaptionFont() as a basis
|
||||||
|
for the font that, after modifications, is passed
|
||||||
|
to this member function.
|
||||||
|
*/
|
||||||
|
void SetFont( const wxFont& font );
|
||||||
|
|
||||||
|
void SetBgCol( const wxColour& col );
|
||||||
|
|
||||||
|
const wxString& GetText() const;
|
||||||
|
const wxBitmap& GetBitmap() const;
|
||||||
|
const wxColour& GetFgCol() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns font of the cell. If no specific font is set for this
|
||||||
|
cell, then the font will be invalid.
|
||||||
|
*/
|
||||||
|
const wxFont& GetFont() const;
|
||||||
|
|
||||||
|
const wxColour& GetBgCol() const;
|
||||||
|
|
||||||
|
wxPGCell& operator=( const wxPGCell& other );
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@class wxPGChoices
|
@class wxPGChoices
|
||||||
|
|
||||||
@@ -1522,7 +1589,7 @@ public:
|
|||||||
@library{wxpropgrid}
|
@library{wxpropgrid}
|
||||||
@category{propgrid}
|
@category{propgrid}
|
||||||
*/
|
*/
|
||||||
class WXDLLIMPEXP_PROPGRID wxPGChoices
|
class wxPGChoices
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef long ValArrItem;
|
typedef long ValArrItem;
|
||||||
|
@@ -1793,9 +1793,19 @@ void FormMain::PopulateWithLibraryConfig ()
|
|||||||
|
|
||||||
wxPGProperty* pid;
|
wxPGProperty* pid;
|
||||||
|
|
||||||
|
wxFont italicFont = pgman->GetGrid()->GetCaptionFont();
|
||||||
|
italicFont.SetStyle(wxFONTSTYLE_ITALIC);
|
||||||
|
|
||||||
|
wxString italicFontHelp = "Font of this property's wxPGCell has "
|
||||||
|
"been modified. Obtain property's cell "
|
||||||
|
"with wxPGProperty::"
|
||||||
|
"GetOrCreateCell(column).";
|
||||||
|
|
||||||
#define ADD_WX_LIB_CONF_GROUP(A) \
|
#define ADD_WX_LIB_CONF_GROUP(A) \
|
||||||
cat = pg->AppendIn( pid, new wxPropertyCategory(A) ); \
|
cat = pg->AppendIn( pid, new wxPropertyCategory(A) ); \
|
||||||
pg->SetPropertyCell( cat, 0, wxPG_LABEL, bmp );
|
pg->SetPropertyCell( cat, 0, wxPG_LABEL, bmp ); \
|
||||||
|
cat->GetCell(0).SetFont(italicFont); \
|
||||||
|
cat->SetHelpString(italicFontHelp);
|
||||||
|
|
||||||
#define ADD_WX_LIB_CONF(A) pg->Append( new wxBoolProperty(wxT(#A),wxPG_LABEL,(bool)((A>0)?true:false)));
|
#define ADD_WX_LIB_CONF(A) pg->Append( new wxBoolProperty(wxT(#A),wxPG_LABEL,(bool)((A>0)?true:false)));
|
||||||
#define ADD_WX_LIB_CONF_NODEF(A) pg->Append( new wxBoolProperty(wxT(#A),wxPG_LABEL,(bool)false) ); \
|
#define ADD_WX_LIB_CONF_NODEF(A) pg->Append( new wxBoolProperty(wxT(#A),wxPG_LABEL,(bool)false) ); \
|
||||||
|
@@ -682,6 +682,9 @@ void wxPropertyGrid::OnComboItemPaint( const wxPGComboBox* pCb,
|
|||||||
if ( pDc )
|
if ( pDc )
|
||||||
pDc->SetBrush(*wxWHITE_BRUSH);
|
pDc->SetBrush(*wxWHITE_BRUSH);
|
||||||
|
|
||||||
|
wxPGCellRenderer* renderer = NULL;
|
||||||
|
const wxPGChoiceEntry* cell = NULL;
|
||||||
|
|
||||||
if ( rect.x >= 0 )
|
if ( rect.x >= 0 )
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@@ -750,11 +753,13 @@ void wxPropertyGrid::OnComboItemPaint( const wxPGComboBox* pCb,
|
|||||||
|
|
||||||
if ( choices.IsOk() && item >= 0 && comValIndex < 0 )
|
if ( choices.IsOk() && item >= 0 && comValIndex < 0 )
|
||||||
{
|
{
|
||||||
const wxPGChoiceEntry& cell = choices.Item(item);
|
cell = &choices.Item(item);
|
||||||
wxPGCellRenderer* renderer = wxPGGlobalVars->m_defaultRenderer;
|
renderer = wxPGGlobalVars->m_defaultRenderer;
|
||||||
int imageOffset = renderer->PreDrawCell( dc, rect, cell, renderFlags );
|
int imageOffset = renderer->PreDrawCell(dc, rect, *cell,
|
||||||
|
renderFlags );
|
||||||
if ( imageOffset )
|
if ( imageOffset )
|
||||||
imageOffset += wxCC_CUSTOM_IMAGE_MARGIN1 + wxCC_CUSTOM_IMAGE_MARGIN2;
|
imageOffset += wxCC_CUSTOM_IMAGE_MARGIN1 +
|
||||||
|
wxCC_CUSTOM_IMAGE_MARGIN2;
|
||||||
pt.x += imageOffset;
|
pt.x += imageOffset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -768,6 +773,9 @@ void wxPropertyGrid::OnComboItemPaint( const wxPGComboBox* pCb,
|
|||||||
pt.x += 1;
|
pt.x += 1;
|
||||||
|
|
||||||
dc.DrawText( text, pt.x + wxPG_XBEFORETEXT, pt.y );
|
dc.DrawText( text, pt.x + wxPG_XBEFORETEXT, pt.y );
|
||||||
|
|
||||||
|
if ( renderer )
|
||||||
|
renderer->PostDrawCell(dc, this, *cell, renderFlags);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -149,6 +149,11 @@ int wxPGCellRenderer::PreDrawCell( wxDC& dc, const wxRect& rect, const wxPGCell&
|
|||||||
if ( !(flags & (Control|ChoicePopup)) )
|
if ( !(flags & (Control|ChoicePopup)) )
|
||||||
dc.DrawRectangle(rect);
|
dc.DrawRectangle(rect);
|
||||||
|
|
||||||
|
// Use cell font, if provided
|
||||||
|
const wxFont& font = cell.GetFont();
|
||||||
|
if ( font.IsOk() )
|
||||||
|
dc.SetFont(font);
|
||||||
|
|
||||||
const wxBitmap& bmp = cell.GetBitmap();
|
const wxBitmap& bmp = cell.GetBitmap();
|
||||||
if ( bmp.Ok() &&
|
if ( bmp.Ok() &&
|
||||||
// Do not draw oversized bitmap outside choice popup
|
// Do not draw oversized bitmap outside choice popup
|
||||||
@@ -165,6 +170,17 @@ int wxPGCellRenderer::PreDrawCell( wxDC& dc, const wxRect& rect, const wxPGCell&
|
|||||||
return imageWidth;
|
return imageWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxPGCellRenderer::PostDrawCell( wxDC& dc,
|
||||||
|
const wxPropertyGrid* propGrid,
|
||||||
|
const wxPGCell& cell,
|
||||||
|
int WXUNUSED(flags) ) const
|
||||||
|
{
|
||||||
|
// Revert font
|
||||||
|
const wxFont& font = cell.GetFont();
|
||||||
|
if ( font.IsOk() )
|
||||||
|
dc.SetFont(propGrid->GetFont());
|
||||||
|
}
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// wxPGDefaultRenderer
|
// wxPGDefaultRenderer
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
@@ -276,6 +292,8 @@ void wxPGDefaultRenderer::Render( wxDC& dc, const wxRect& rect,
|
|||||||
propertyGrid->GetFontHeight()+(wxPG_CAPRECTYMARGIN*2) );
|
propertyGrid->GetFontHeight()+(wxPG_CAPRECTYMARGIN*2) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PostDrawCell(dc, propertyGrid, *cell, preDrawFlags);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxSize wxPGDefaultRenderer::GetImageSize( const wxPGProperty* property,
|
wxSize wxPGDefaultRenderer::GetImageSize( const wxPGProperty* property,
|
||||||
@@ -362,6 +380,13 @@ void wxPGCell::SetFgCol( const wxColour& col )
|
|||||||
GetData()->SetFgCol(col);
|
GetData()->SetFgCol(col);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxPGCell::SetFont( const wxFont& font )
|
||||||
|
{
|
||||||
|
AllocExclusive();
|
||||||
|
|
||||||
|
GetData()->SetFont(font);
|
||||||
|
}
|
||||||
|
|
||||||
void wxPGCell::SetBgCol( const wxColour& col )
|
void wxPGCell::SetBgCol( const wxColour& col )
|
||||||
{
|
{
|
||||||
AllocExclusive();
|
AllocExclusive();
|
||||||
|
Reference in New Issue
Block a user