- // vertical alignment:
- item_rect.y = cell_rect.y;
- if (align & wxALIGN_CENTER_VERTICAL)
- item_rect.y = cell_rect.y + (cell_rect.height / 2) - (size.y / 2);
- else if (align & wxALIGN_BOTTOM)
- item_rect.y = cell_rect.y + cell_rect.height - size.y;
- // else: wxALIGN_TOP is the default
+ if ( size.x < cell_rect.width )
+ {
+ if (align & wxALIGN_CENTER_HORIZONTAL)
+ item_rect.x += (cell_rect.width - size.x)/2;
+ else if (align & wxALIGN_RIGHT)
+ item_rect.x += cell_rect.width - size.x;
+ // else: wxALIGN_LEFT is the default
+
+ item_rect.width = size.x;
+ }
+
+ if ( size.y < cell_rect.height )
+ {
+ if (align & wxALIGN_CENTER_VERTICAL)
+ item_rect.y += (cell_rect.height - size.y)/2;
+ else if (align & wxALIGN_BOTTOM)
+ item_rect.y += cell_rect.height - size.y;
+ // else: wxALIGN_TOP is the default