本文整理汇总了C++中BSize::Height方法的典型用法代码示例。如果您正苦于以下问题:C++ BSize::Height方法的具体用法?C++ BSize::Height怎么用?C++ BSize::Height使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BSize
的用法示例。
在下文中一共展示了BSize::Height方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BButton
ThreeButtonsWindow(BRect frame)
:
BWindow(frame, "ALM Three Buttons", B_TITLED_WINDOW,
B_QUIT_ON_WINDOW_CLOSE)
{
BButton* button1 = new BButton("A");
BButton* button2 = new BButton("B");
BButton* button3 = new BButton("C");
button1->SetExplicitAlignment(BAlignment(B_ALIGN_USE_FULL_WIDTH,
B_ALIGN_USE_FULL_HEIGHT));
button1->SetExplicitMaxSize(BSize(500, 50));
button2->SetExplicitAlignment(BAlignment(B_ALIGN_USE_FULL_WIDTH,
B_ALIGN_USE_FULL_HEIGHT));
button2->SetExplicitMaxSize(BSize(500, 500));
button3->SetExplicitAlignment(BAlignment(B_ALIGN_USE_FULL_WIDTH,
B_ALIGN_USE_FULL_HEIGHT));
button3->SetExplicitMaxSize(BSize(500, 500));
// create a new BALMLayout and use it for this window
fLayout = new BALMLayout();
SetLayout(fLayout);
fLayout->AddView(button1, fLayout->Left(), fLayout->Top(),
fLayout->Right(), NULL);
fLayout->AddViewToBottom(button2);
fLayout->AddViewToBottom(button3, fLayout->Bottom());
// test size limits
BSize min = fLayout->MinSize();
BSize max = fLayout->MaxSize();
SetSizeLimits(min.Width(), max.Width(), min.Height(), max.Height());
}
示例2: TableDemoWindow
TableDemoWindow(BRect frame)
: BWindow(frame, "ALM Table Demo", B_TITLED_WINDOW, B_QUIT_ON_WINDOW_CLOSE)
{
// create a new BALMLayout and use it for this window
BALMLayout* layout = new BALMLayout();
SetLayout(layout);
Column* c1 = layout->AddColumn(layout->Left(), layout->Right());
Row* r1 = layout->AddRow(layout->Top(), NULL);
Row* r2 = layout->AddRow(r1->Bottom(), NULL);
Row* r3 = layout->AddRow(r2->Bottom(), layout->Bottom());
BButton* b1 = new BButton("A1");
layout->AddView(b1, r1, c1);
b1->SetExplicitAlignment(BAlignment(B_ALIGN_LEFT, B_ALIGN_TOP));
BButton* b2 = new BButton("A2");
layout->AddView(b2, r2, c1);
b2->SetExplicitAlignment(BAlignment(
B_ALIGN_HORIZONTAL_CENTER, B_ALIGN_VERTICAL_CENTER));
BButton* b3 = new BButton("A3");
layout->AddView(b3, r3, c1);
b3->SetExplicitAlignment(BAlignment(B_ALIGN_RIGHT, B_ALIGN_BOTTOM));
// test size limits
BSize min = layout->MinSize();
BSize max = layout->MaxSize();
SetSizeLimits(min.Width(), max.Width(), min.Height(), max.Height());
}
示例3: BButton
ThreeButtonsWindow(BRect frame)
:
BWindow(frame, "ALM Three Buttons", B_TITLED_WINDOW,
B_QUIT_ON_WINDOW_CLOSE)
{
BButton* button1 = new BButton("A");
BButton* button2 = new BButton("B");
BButton* button3 = new BButton("C");
button1->SetExplicitAlignment(BAlignment(B_ALIGN_USE_FULL_WIDTH,
B_ALIGN_USE_FULL_HEIGHT));
button1->SetExplicitMaxSize(BSize(500, 50));
button2->SetExplicitAlignment(BAlignment(B_ALIGN_USE_FULL_WIDTH,
B_ALIGN_USE_FULL_HEIGHT));
button2->SetExplicitMaxSize(BSize(500, 500));
button3->SetExplicitAlignment(BAlignment(B_ALIGN_USE_FULL_WIDTH,
B_ALIGN_USE_FULL_HEIGHT));
button3->SetExplicitMaxSize(BSize(500, 500));
fLayout = new BALMLayout(0, 0);
BALM::BALMLayoutBuilder(this, fLayout)
.Add(button1, fLayout->Left(), fLayout->Top(), fLayout->Right())
.StartingAt(button1)
.AddBelow(button2)
.AddBelow(button3, fLayout->Bottom());
// test size limits
BSize min = fLayout->MinSize();
BSize max = fLayout->MaxSize();
SetSizeLimits(min.Width(), max.Width(), min.Height(), max.Height());
}
示例4: BButton
PinwheelWindow(BRect frame)
:
BWindow(frame, "ALM Pinwheel", B_TITLED_WINDOW, B_QUIT_ON_WINDOW_CLOSE)
{
button1 = new BButton("1");
button2 = new BButton("2");
button3 = new BButton("3");
button4 = new BButton("4");
textView1 = new BTextView("textView1");
textView1->SetText("5");
button1->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED));
button2->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED));
button3->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED));
button4->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED));
// create a new BALMLayout and use it for this window
BALMLayout* layout = new BALMLayout(10, 10);
BReference<XTab> xTabs[2];
BReference<YTab> yTabs[2];
layout->AddXTabs(xTabs, 2);
layout->AddYTabs(yTabs, 2);
BALM::BALMLayoutBuilder(this, layout)
.SetInsets(5)
.Add(textView1, xTabs[0], yTabs[0], xTabs[1], yTabs[1])
.StartingAt(textView1)
.AddAbove(button1, layout->Top(), layout->Left())
.AddToRight(button2, layout->Right(), NULL, yTabs[1])
.AddBelow(button3, layout->Bottom(), xTabs[0])
.AddToLeft(button4, layout->Left(), yTabs[0]);
// alternative setup
/*
SetLayout(layout);
layout->SetInsets(5.);
// create extra tabs
BReference<XTab> x1 = layout->AddXTab();
BReference<XTab> x2 = layout->AddXTab();
BReference<YTab> y1 = layout->AddYTab();
BReference<YTab> y2 = layout->AddYTab();
layout->AddView(button1, layout->Left(), layout->Top(), x2,
y1);
layout->AddView(button2, x2, layout->Top(), layout->Right(), y2);
layout->AddView(button3, x1, y2, layout->Right(),
layout->Bottom());
layout->AddView(button4, layout->Left(), y1, x1, layout->Bottom());
layout->AddView(textView1, x1, y1, x2, y2);
*/
// test size limits
BSize min = layout->MinSize();
BSize max = layout->MaxSize();
SetSizeLimits(min.Width(), max.Width(), min.Height(), max.Height());
}
示例5: BView
MusicCollectionWindow::MusicCollectionWindow(BRect frame, const char* title)
:
BWindow(frame, title, B_DOCUMENT_WINDOW, B_AVOID_FRONT)
{
BView* rootView = new BView(Bounds(), NULL, B_FOLLOW_ALL, B_WILL_DRAW);
AddChild(rootView);
rootView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
fQueryField = new BTextControl("Search: ", "", NULL);
fQueryField->SetExplicitAlignment(BAlignment(B_ALIGN_HORIZONTAL_CENTER,
B_ALIGN_USE_FULL_HEIGHT));
fQueryField->SetModificationMessage(new BMessage(kMsgQueryInput));
fCountView = new BStringView("Count View", "Count:");
fFileListView = new MusicFileListView("File List View");
fFileListView->SetInvocationMessage(new BMessage(kMsgItemInvoked));
BScrollView* scrollView = new BScrollView("list scroll", fFileListView, 0,
true, true, B_PLAIN_BORDER);
float spacing = be_control_look->DefaultItemSpacing() / 2;
BALMLayout* layout = new BALMLayout(spacing);
layout->SetInset(spacing);
rootView->SetLayout(layout);
layout->AddView(fQueryField, layout->Left(), layout->Top());
layout->AddViewToRight(fCountView, layout->Right());
layout->AddView(scrollView, layout->Left(),
layout->AreaFor(fQueryField)->Bottom(), layout->Right(),
layout->Bottom());
Area* area = layout->AreaFor(scrollView);
area->SetLeftInset(0);
area->SetRightInset(0);
area->SetBottomInset(0);
BSize min = layout->MinSize();
BSize max = layout->MaxSize();
SetSizeLimits(min.Width(), max.Width(), min.Height(), max.Height());
fEntryViewInterface = new ListViewListener<FileListItem>(fFileListView,
fCountView);
fQueryHandler = new QueryHandler(fEntryViewInterface);
AddHandler(fQueryHandler);
fQueryReader = new QueryReader(fQueryHandler);
fQueryHandler->SetReadThread(fQueryReader);
// start initial query
PostMessage(kMsgQueryInput);
}
示例6: OperatorType
/**
* Sets Preferred size of the area's content.
* May be different from the preferred size of the area.
* Manual changes of PreferredContentSize are ignored unless
* autoPreferredContentSize is set to false.
*/
void
Area::SetPreferredContentSize(BSize preferred)
{
if (fChildArea == NULL) {
fPreferredContentSize = preferred;
if (fPreferredContentWidth == NULL) {
fPreferredContentWidth = fLS->AddConstraint(
-1.0, fLeft, 1.0, fRight, OperatorType(EQ),
fPreferredContentSize.Width(), fShrinkPenalties.Width(),
fGrowPenalties.Width());
fConstraints->AddItem(fPreferredContentWidth);
fPreferredContentHeight = fLS->AddConstraint(
-1.0, fTop, 1.0, fBottom, OperatorType(EQ),
fPreferredContentSize.Height(), fShrinkPenalties.Height(),
fGrowPenalties.Height());
fConstraints->AddItem(fPreferredContentHeight);
} else {
fPreferredContentWidth->SetRightSide(preferred.Width());
fPreferredContentHeight->SetRightSide(preferred.Height());
}
} else
fChildArea->SetPreferredContentSize(preferred);
fLS->InvalidateLayout();
}
示例7: BMessage
FolderConfigWindow::FolderConfigWindow(BRect parent, const BMessage& settings)
:
BWindow(BRect(0, 0, 300, 300), B_TRANSLATE("IMAP Folders"),
B_TITLED_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL,
B_NO_WORKSPACE_ACTIVATION | B_NOT_ZOOMABLE | B_AVOID_FRONT),
fSettings(settings)
{
BView* rootView = new BView(Bounds(), "root", B_FOLLOW_ALL, B_WILL_DRAW);
AddChild(rootView);
rootView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
float spacing = be_control_look->DefaultItemSpacing();
BALMLayout* layout = new BALMLayout(spacing);
rootView->SetLayout(layout);
layout->SetInset(spacing);
fFolderListView = new EditListView(B_TRANSLATE("IMAP Folders"));
fFolderListView->SetExplicitPreferredSize(BSize(B_SIZE_UNLIMITED,
B_SIZE_UNLIMITED));
fApplyButton = new BButton("Apply", B_TRANSLATE("Apply"),
new BMessage(kMsgApplyButton));
fQuotaView = new BStringView("quota view",
B_TRANSLATE("Failed to fetch available storage."));
fQuotaView->SetExplicitAlignment(BAlignment(B_ALIGN_LEFT,
B_ALIGN_VERTICAL_CENTER));
layout->AddView(fFolderListView, layout->Left(), layout->Top(),
layout->Right(), layout->Bottom());
GroupItem item = GroupItem(fQuotaView) / GroupItem(fFolderListView)
/ (GroupItem(BSpaceLayoutItem::CreateGlue())
| GroupItem(fApplyButton));
layout->BuildLayout(item);
PostMessage(kMsgInit);
BSize min = layout->MinSize();
BSize max = layout->MaxSize();
SetSizeLimits(min.Width(), max.Width(), min.Height(), max.Height());
CenterIn(parent);
}
示例8: SetShrinkPenalties
void Area::SetShrinkPenalties(BSize shrink) {
if (fChildArea == NULL) {
fShrinkPenalties = shrink;
if (fPreferredContentWidth != NULL) {
fPreferredContentWidth->SetPenaltyNeg(shrink.Width());
fPreferredContentHeight->SetPenaltyNeg(shrink.Height());
}
} else
fChildArea->SetShrinkPenalties(shrink);
fLS->InvalidateLayout();
}
示例9: BList
/**
* Initialize variables.
*/
void
Area::Init(BALMLayout* ls, XTab* left, YTab* top, XTab* right, YTab* bottom,
BView* content, BSize minContentSize)
{
fConstraints = new BList(2);
fMaxContentSize = kMaxSize;
fMaxContentWidth = NULL;
fMaxContentHeight = NULL;
fPreferredContentSize = kUndefinedSize;
fShrinkPenalties = BSize(2, 2);
fGrowPenalties = BSize(1, 1);
fContentAspectRatio = 0;
fContentAspectRatioC = NULL;
fAutoPreferredContentSize = false;
fPreferredContentWidth = NULL;
fPreferredContentHeight = NULL;
fChildArea = NULL;
fAlignment = BAlignment(B_ALIGN_USE_FULL_WIDTH, B_ALIGN_USE_FULL_HEIGHT);
fLeftInset = 0;
fTopInset = 0;
fRightInset = 0;
fBottomInset = 0;
fLeftConstraint = NULL;
fTopConstraint = NULL;
fRightConstraint = NULL;
fBottomConstraint = NULL;
fLS = ls;
fLeft = left;
fRight = right;
fTop = top;
fBottom = bottom;
SetContent(content);
fMinContentSize = minContentSize;
// adds the two essential constraints of the area that make sure that the left x-tab is
// really to the left of the right x-tab, and the top y-tab really above the bottom y-tab
fMinContentWidth = ls->AddConstraint(-1.0, left, 1.0, right, OperatorType(GE),
minContentSize.Width());
fConstraints->AddItem(fMinContentWidth);
fMinContentHeight = ls->AddConstraint(-1.0, top, 1.0, bottom, OperatorType(GE),
minContentSize.Height());
fConstraints->AddItem(fMinContentHeight);
}
示例10: LeftInset
void
Area::_UpdateMinSizeConstraint(BSize min)
{
float width = 0.;
float height = 0.;
if (min.width > 0)
width = min.Width() + LeftInset() + RightInset();
if (min.height > 0)
height = min.Height() + TopInset() + BottomInset();
fMinContentWidth->SetRightSide(width);
fMinContentHeight->SetRightSide(height);
}
示例11:
void
Area::SetGrowPenalties(BSize grow)
{
if (fChildArea == NULL) {
fGrowPenalties = grow;
if (fPreferredContentWidth != NULL) {
fPreferredContentWidth->SetPenaltyPos(grow.Width());
fPreferredContentHeight->SetPenaltyPos(grow.Height());
}
} else
fChildArea->SetGrowPenalties(grow);
fLS->InvalidateLayout();
}
示例12: rect
status_t
DataTranslationsWindow::_ShowConfigView(int32 id)
{
// Shows the config panel for the translator with the given id
if (id < 0)
return B_BAD_VALUE;
BTranslatorRoster *roster = BTranslatorRoster::Default();
// fConfigView is NULL the first time this function
// is called, prevent a segment fault
if (fConfigView)
fRightBox->RemoveChild(fConfigView);
BMessage emptyMsg;
BRect rect(0, 0, 200, 233);
status_t ret = roster->MakeConfigurationView(id, &emptyMsg, &fConfigView, &rect);
if (ret != B_OK) {
fRightBox->RemoveChild(fConfigView);
return ret;
}
BRect configRect(fRightBox->Bounds());
configRect.InsetBy(3, 3);
configRect.bottom -= 45;
float width = 0, height = 0;
if ((fConfigView->Flags() & B_SUPPORTS_LAYOUT) != 0) {
BSize configSize = fConfigView->ExplicitPreferredSize();
width = configSize.Width();
height = configSize.Height();
} else {
fConfigView->GetPreferredSize(&width, &height);
}
float widen = max_c(0, width - configRect.Width());
float heighten = max_c(0, height - configRect.Height());
if (widen > 0 || heighten > 0) {
ResizeBy(widen, heighten);
configRect.right += widen;
configRect.bottom += heighten;
}
fConfigView->MoveTo(configRect.left, configRect.top);
fConfigView->ResizeTo(configRect.Width(), configRect.Height());
fConfigView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
// force config views to all have the same color
fRightBox->AddChild(fConfigView);
return B_OK;
}
示例13: LeftInset
void
Area::_UpdateMinSizeConstraint(BSize min)
{
if (!fLayoutItem->IsVisible()) {
fMinContentHeight->SetRightSide(-1);
fMinContentWidth->SetRightSide(-1);
return;
}
float width = 0.;
float height = 0.;
if (min.width > 0)
width = min.Width() + LeftInset() + RightInset();
if (min.height > 0)
height = min.Height() + TopInset() + BottomInset();
fMinContentWidth->SetRightSide(width);
fMinContentHeight->SetRightSide(height);
}
示例14: BView
StatusWindow(const char* text)
:
BWindow(BRect(0, 0, 10, 10), B_TRANSLATE("status"), B_MODAL_WINDOW_LOOK,
B_MODAL_APP_WINDOW_FEEL, B_NO_WORKSPACE_ACTIVATION | B_NOT_ZOOMABLE
| B_AVOID_FRONT | B_NOT_RESIZABLE)
{
BView* rootView = new BView(Bounds(), "root", B_FOLLOW_ALL,
B_WILL_DRAW);
AddChild(rootView);
rootView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
float spacing = be_control_look->DefaultItemSpacing();
BALMLayout* layout = new BALMLayout(spacing);
rootView->SetLayout(layout);
layout->SetInset(spacing);
BStringView* string = new BStringView("text", text);
layout->AddView(string, layout->Left(), layout->Top(), layout->Right(),
layout->Bottom());
BSize min = layout->MinSize();
ResizeTo(min.Width(), min.Height());
CenterOnScreen();
}
示例15: CreateMenu
/*! \brief This function creates and updates the BPopUpMenu.
* \details The created menu is updated every time the TimeRepresentation
* changes.
*/
void CalendarControl::CreateMenu( void ) {
// The whole menu will be created in fixed font.
BFont fixedFont(be_fixed_font);
BFont plainFont(be_plain_font);
BRect rectangle;
BPoint topLeftCorner( 0, 0 );
BSize rectSize;
BString sb;
// Which month shall we represent?
map<int, BString> dayNames = fCalModule->GetDayNamesForLocalYearMonth(
this->fRepresentedTime.tm_year,
this->fRepresentedTime.tm_mon);
map<int, DoubleNames> monthNames = fCalModule->GetMonthNamesForLocalYear(
this->fRepresentedTime.tm_year);
int daysInMonth = dayNames.size();
int daysInWeek = ( int )fCalModule->GetDaysInWeek();
// We need to determine the bounding rectangle for the menu.
// For this, we need to obtain the maximum bounding rectangle for a string.
font_height fontHeightStruct;
fixedFont.GetHeight( &fontHeightStruct );
float fixedFontHeightString = fontHeightStruct.ascent +
fontHeightStruct.descent +
fontHeightStruct.leading + SPACING;
plainFont.GetHeight( &fontHeightStruct );
float plainFontHeightString = fontHeightStruct.ascent +
fontHeightStruct.descent +
fontHeightStruct.leading + SPACING;
// Now fixedFontHeightString is surely big enough to enclose every string in
// height. How many lines will we need? One for name of month and year,
// one for weekday names, and several more for the dates themselves. At the
// bottom, there is an additional line for "Return to today" option.
// tempDay is a running date in current month. Each day item will be initialized
// from the tempDay.
TimeRepresentation tempDay( this->fRepresentedTime );
tempDay.tm_mday = 1;
int firstDayOfMonthWD = fCalModule->GetWeekDayForLocalDateAsInt( tempDay );
int firstDayOfWeek = ( int )fFirstDayOfEveryWeek;
int firstDayOfMonthInFirstWeek =
(firstDayOfMonthWD + daysInWeek - firstDayOfWeek) % daysInWeek;
// This is the menu we're adding items to.
if ( fDateSelector ) {
BMenuItem* item = NULL;
while ( fDateSelector->ItemAt( 0 ) ) {
item = fDateSelector->RemoveItem( ( int32 )0 );
delete item;
}
} else {
fDateSelector = new BMenu("⇩", B_ITEMS_IN_MATRIX );
}
// Sanity check
if ( !fDateSelector )
{
// Panic!
fLastError = B_NO_MEMORY;
return;
}
fDateSelector->SetViewColor( ui_color( B_MENU_BACKGROUND_COLOR ) );
fDateSelector->SetFont( &fixedFont );
topLeftCorner.x = SPACING + 5;
topLeftCorner.y = SPACING;
// Build the list of months.
BPopUpMenu* listOfMonths = CreateMonthsMenu(monthNames);
//-----------------------------------------------------
// FIRST ROW.
//-----------------------------------------------------
/*----------------------------------------------------------------------------
* Adding months menu with option to scroll forward and backward
*----------------------------------------------------------------------------*/
// Add the item to scroll list of months back
BMessage* messageOfItem = new BMessage( kMonthDecreased );
DayItem* itemToAdd = new DayItem("‹", messageOfItem);
if ( !itemToAdd ) {
/* Panic! */
fLastError = B_NO_MEMORY;
return;
}
itemToAdd->SetServiceItem( true );
itemToAdd->SetFrontColor( fColorForServiceItems );
itemToAdd->SetBackColor( ui_color( B_MENU_BACKGROUND_COLOR ) );
itemToAdd->SetEnabled( true );
rectSize.SetHeight( fixedFontHeightString );
//.........这里部分代码省略.........