BControlLook: Add methods for getting insets
* Update the previously unused frame_type and background_type enums. * Add methods GetFrameInsets(), GetBackgroundInsets(), GetInsets() to get the insets for a given frame type, background type, or both respectively.
This commit is contained in:
@@ -35,16 +35,20 @@ public:
|
|||||||
|
|
||||||
enum frame_type {
|
enum frame_type {
|
||||||
B_BUTTON_FRAME,
|
B_BUTTON_FRAME,
|
||||||
B_MENU_FRAME,
|
B_GROUP_FRAME,
|
||||||
B_LISTVIEW_FRAME,
|
B_MENU_FIELD_FRAME,
|
||||||
B_INPUT_FRAME
|
B_SCROLL_VIEW_FRAME,
|
||||||
|
B_TEXT_CONTROL_FRAME,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum background_type {
|
enum background_type {
|
||||||
B_BUTTON_BACKGROUND,
|
B_BUTTON_BACKGROUND,
|
||||||
B_MENU_BACKGROUND,
|
B_MENU_BACKGROUND,
|
||||||
B_LISTVIEW_BACKGROUND,
|
B_MENU_BAR_BACKGROUND,
|
||||||
B_INPUT_BACKGROUND
|
B_MENU_FIELD_BACKGROUND,
|
||||||
|
B_MENU_ITEM_BACKGROUND,
|
||||||
|
B_HORIZONTAL_SCROLL_BAR_BACKGROUND,
|
||||||
|
B_VERTICAL_SCROLL_BAR_BACKGROUND,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@@ -332,6 +336,18 @@ public:
|
|||||||
const rgb_color& base, uint32 flags,
|
const rgb_color& base, uint32 flags,
|
||||||
const BPoint& where);
|
const BPoint& where);
|
||||||
|
|
||||||
|
virtual void GetFrameInsets(frame_type frameType,
|
||||||
|
uint32 flags, float& _left, float& _top,
|
||||||
|
float& _right, float& _bottom);
|
||||||
|
virtual void GetBackgroundInsets(
|
||||||
|
background_type backgroundType,
|
||||||
|
uint32 flags, float& _left, float& _top,
|
||||||
|
float& _right, float& _bottom);
|
||||||
|
void GetInsets(frame_type frameType,
|
||||||
|
background_type backgroundType,
|
||||||
|
uint32 flags, float& _left, float& _top,
|
||||||
|
float& _right, float& _bottom);
|
||||||
|
|
||||||
void SetBackgroundInfo(
|
void SetBackgroundInfo(
|
||||||
const BMessage& backgroundInfo);
|
const BMessage& backgroundInfo);
|
||||||
|
|
||||||
|
|||||||
@@ -1901,6 +1901,86 @@ BControlLook::DrawLabel(BView* view, const char* label, const rgb_color& base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
BControlLook::GetFrameInsets(frame_type frameType, uint32 flags, float& _left,
|
||||||
|
float& _top, float& _right, float& _bottom)
|
||||||
|
{
|
||||||
|
// All frames have the same inset on each side.
|
||||||
|
float inset = 0;
|
||||||
|
|
||||||
|
switch (frameType) {
|
||||||
|
case B_BUTTON_FRAME:
|
||||||
|
inset = (flags & B_DEFAULT_BUTTON) != 0 ? 6 : 3;
|
||||||
|
break;
|
||||||
|
case B_GROUP_FRAME:
|
||||||
|
case B_MENU_FIELD_FRAME:
|
||||||
|
inset = 3;
|
||||||
|
break;
|
||||||
|
case B_SCROLL_VIEW_FRAME:
|
||||||
|
case B_TEXT_CONTROL_FRAME:
|
||||||
|
inset = 2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
_left = inset;
|
||||||
|
_top = inset;
|
||||||
|
_right = inset;
|
||||||
|
_bottom = inset;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
BControlLook::GetBackgroundInsets(background_type backgroundType,
|
||||||
|
uint32 flags, float& _left, float& _top, float& _right, float& _bottom)
|
||||||
|
{
|
||||||
|
// Most backgrounds have the same inset on each side.
|
||||||
|
float inset = 0;
|
||||||
|
|
||||||
|
switch (backgroundType) {
|
||||||
|
case B_BUTTON_BACKGROUND:
|
||||||
|
case B_MENU_BACKGROUND:
|
||||||
|
case B_MENU_BAR_BACKGROUND:
|
||||||
|
case B_MENU_FIELD_BACKGROUND:
|
||||||
|
case B_MENU_ITEM_BACKGROUND:
|
||||||
|
inset = 1;
|
||||||
|
break;
|
||||||
|
case B_HORIZONTAL_SCROLL_BAR_BACKGROUND:
|
||||||
|
_left = 2;
|
||||||
|
_top = 0;
|
||||||
|
_right = 1;
|
||||||
|
_bottom = 0;
|
||||||
|
return;
|
||||||
|
case B_VERTICAL_SCROLL_BAR_BACKGROUND:
|
||||||
|
_left = 0;
|
||||||
|
_top = 2;
|
||||||
|
_right = 0;
|
||||||
|
_bottom = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_left = inset;
|
||||||
|
_top = inset;
|
||||||
|
_right = inset;
|
||||||
|
_bottom = inset;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
BControlLook::GetInsets(frame_type frameType, background_type backgroundType,
|
||||||
|
uint32 flags, float& _left, float& _top, float& _right, float& _bottom)
|
||||||
|
{
|
||||||
|
GetFrameInsets(frameType, flags, _left, _top, _right, _bottom);
|
||||||
|
|
||||||
|
float left, top, right, bottom;
|
||||||
|
GetBackgroundInsets(backgroundType, flags, left, top, right, bottom);
|
||||||
|
|
||||||
|
_left += left;
|
||||||
|
_top += top;
|
||||||
|
_right += right;
|
||||||
|
_bottom += bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BControlLook::SetBackgroundInfo(const BMessage& backgroundInfo)
|
BControlLook::SetBackgroundInfo(const BMessage& backgroundInfo)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user