NxWidget::CImage: Now supports helper methods to align images in the widget region
This commit is contained in:
parent
636e61b639
commit
322a3df832
@ -232,6 +232,39 @@ namespace NXWidgets
|
|||||||
|
|
||||||
void setImageLeft(nxgl_coord_t column);
|
void setImageLeft(nxgl_coord_t column);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Align the image at the left of the widget region.
|
||||||
|
*
|
||||||
|
* NOTE: The CImage widget does not support any persistent alignment
|
||||||
|
* attribute (at least not at the moment). As a result, this alignment
|
||||||
|
* can be lost if the image is changed or if the widget is resized.
|
||||||
|
*/
|
||||||
|
|
||||||
|
inline void alignHorizontalLeft(void)
|
||||||
|
{
|
||||||
|
setImageLeft(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Align the image at the left of the widget region.
|
||||||
|
*
|
||||||
|
* NOTE: The CImage widget does not support any persistent alignment
|
||||||
|
* attribute (at least not at the moment). As a result, this alignment
|
||||||
|
* can be lost if the image is changed or if the widget is resized.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void alignHorizontalCenter(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Align the image at the left of the widget region.
|
||||||
|
*
|
||||||
|
* NOTE: The CImage widget does not support any persistent alignment
|
||||||
|
* attribute (at least not at the moment). As a result, this alignment
|
||||||
|
* can be lost if the image is changed or if the widget is resized.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void alignHorizontalRight(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the vertical position of the bitmap. Zero is the top edge
|
* Set the vertical position of the bitmap. Zero is the top edge
|
||||||
* of the bitmap and values >0 will move the bit map down.
|
* of the bitmap and values >0 will move the bit map down.
|
||||||
@ -241,6 +274,39 @@ namespace NXWidgets
|
|||||||
|
|
||||||
void setImageTop(nxgl_coord_t row);
|
void setImageTop(nxgl_coord_t row);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Align the image at the top of the widget region.
|
||||||
|
*
|
||||||
|
* NOTE: The CImage widget does not support any persistent alignment
|
||||||
|
* attribute (at least not at the moment). As a result, this alignment
|
||||||
|
* can be lost if the image is changed or if the widget is resized.
|
||||||
|
*/
|
||||||
|
|
||||||
|
inline void alignVerticalTop(void)
|
||||||
|
{
|
||||||
|
setImageTop(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Align the image at the middle of the widget region.
|
||||||
|
*
|
||||||
|
* NOTE: The CImage widget does not support any persistent alignment
|
||||||
|
* attribute (at least not at the moment). As a result, this alignment
|
||||||
|
* can be lost if the image is changed or if the widget is resized.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void alignVerticalCenter(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Align the image at the left of the widget region.
|
||||||
|
*
|
||||||
|
* NOTE: The CImage widget does not support any persistent alignment
|
||||||
|
* attribute (at least not at the moment). As a result, this alignment
|
||||||
|
* can be lost if the image is changed or if the widget is resized.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void alignVerticalBottom(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Control the highlight state.
|
* Control the highlight state.
|
||||||
*
|
*
|
||||||
|
@ -455,12 +455,57 @@ void CImage::onReleaseOutside(nxgl_coord_t x, nxgl_coord_t y)
|
|||||||
|
|
||||||
void CImage::setImageLeft(nxgl_coord_t column)
|
void CImage::setImageLeft(nxgl_coord_t column)
|
||||||
{
|
{
|
||||||
if (m_bitmap && column >= 0 && column < getWidth())
|
// Get the the drawable region
|
||||||
|
|
||||||
|
CRect rect;
|
||||||
|
getRect(rect);
|
||||||
|
|
||||||
|
if (m_bitmap && column >= 0 && column < rect.getWidth())
|
||||||
{
|
{
|
||||||
m_origin.x = column;
|
m_origin.x = column;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Align the image at the left of the widget region.
|
||||||
|
*
|
||||||
|
* NOTE: The CImage widget does not support any persistent alignment
|
||||||
|
* attribute (at least not at the moment). As a result, this alignment
|
||||||
|
* can be lost if the image is changed or if the widget is resized.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void CImage::alignHorizontalCenter(void)
|
||||||
|
{
|
||||||
|
// Get the the drawable region
|
||||||
|
|
||||||
|
CRect rect;
|
||||||
|
getRect(rect);
|
||||||
|
|
||||||
|
// Center the image
|
||||||
|
|
||||||
|
setImageLeft((rect.getWidth() - m_bitmap->getWidth()) >> 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Align the image at the left of the widget region.
|
||||||
|
*
|
||||||
|
* NOTE: The CImage widget does not support any persistent alignment
|
||||||
|
* attribute (at least not at the moment). As a result, this alignment
|
||||||
|
* can be lost if the image is changed or if the widget is resized.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void CImage::alignHorizontalRight(void)
|
||||||
|
{
|
||||||
|
// Get the the drawable region
|
||||||
|
|
||||||
|
CRect rect;
|
||||||
|
getRect(rect);
|
||||||
|
|
||||||
|
// Position the image at the right of the widget region
|
||||||
|
|
||||||
|
setImageLeft(rect.getWidth() - m_bitmap->getWidth());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the vertical position of the bitmap. Zero is the top edge
|
* Set the vertical position of the bitmap. Zero is the top edge
|
||||||
* of the bitmap and values >0 will move the bit map down.
|
* of the bitmap and values >0 will move the bit map down.
|
||||||
@ -472,9 +517,55 @@ void CImage::setImageLeft(nxgl_coord_t column)
|
|||||||
|
|
||||||
void CImage::setImageTop(nxgl_coord_t row)
|
void CImage::setImageTop(nxgl_coord_t row)
|
||||||
{
|
{
|
||||||
if (m_bitmap && row >= 0 && row < getHeight())
|
// Get the the drawable region
|
||||||
|
|
||||||
|
CRect rect;
|
||||||
|
getRect(rect);
|
||||||
|
|
||||||
|
// Check the attempted Y position
|
||||||
|
|
||||||
|
if (m_bitmap && row >= 0 && row < rect.getHeight())
|
||||||
{
|
{
|
||||||
m_origin.y = row;
|
m_origin.y = row;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Align the image at the middle of the widget region.
|
||||||
|
*
|
||||||
|
* NOTE: The CImage widget does not support any persistent alignment
|
||||||
|
* attribute (at least not at the moment). As a result, this alignment
|
||||||
|
* can be lost if the image is changed or if the widget is resized.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void CImage::alignVerticalCenter(void)
|
||||||
|
{
|
||||||
|
// Get the the drawable region
|
||||||
|
|
||||||
|
CRect rect;
|
||||||
|
getRect(rect);
|
||||||
|
|
||||||
|
// Center the image
|
||||||
|
|
||||||
|
setImageTop((rect.getHeight() - m_bitmap->getHeight()) >> 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Align the image at the left of the widget region.
|
||||||
|
*
|
||||||
|
* NOTE: The CImage widget does not support any persistent alignment
|
||||||
|
* attribute (at least not at the moment). As a result, this alignment
|
||||||
|
* can be lost if the image is changed or if the widget is resized.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void CImage::alignVerticalBottom(void)
|
||||||
|
{
|
||||||
|
// Get the the drawable region
|
||||||
|
|
||||||
|
CRect rect;
|
||||||
|
getRect(rect);
|
||||||
|
|
||||||
|
// Position the image at the bottom of the widget region
|
||||||
|
|
||||||
|
setImageTop(rect.getHeight() - m_bitmap->getHeight());
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user