本文整理汇总了C++中BStringView::ResizeTo方法的典型用法代码示例。如果您正苦于以下问题:C++ BStringView::ResizeTo方法的具体用法?C++ BStringView::ResizeTo怎么用?C++ BStringView::ResizeTo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BStringView
的用法示例。
在下文中一共展示了BStringView::ResizeTo方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Bounds
void
TSignatureView::AttachedToWindow()
{
BRect rect = Bounds();
float name_text_length = StringWidth(kNameText);
float sig_text_length = StringWidth(kSigText);
float divide_length;
if (name_text_length > sig_text_length)
divide_length = name_text_length;
else
divide_length = sig_text_length;
rect.InsetBy(8,0);
rect.top+= 8;
fName = new TNameControl(rect, kNameText, new BMessage(NAME_FIELD));
AddChild(fName);
fName->SetDivider(divide_length + 10);
fName->SetAlignment(B_ALIGN_RIGHT, B_ALIGN_LEFT);
rect.OffsetBy(0,fName->Bounds().Height()+5);
rect.bottom = rect.top + kSigHeight;
rect.left = fName->TextView()->Frame().left;
BRect text = rect;
text.OffsetTo(10,0);
fTextView = new TSigTextView(rect, text);
BScrollView *scroller = new BScrollView("SigScroller", fTextView, B_FOLLOW_ALL, 0, false, true);
AddChild(scroller);
scroller->ResizeBy(-1 * scroller->ScrollBar(B_VERTICAL)->Frame().Width() - 9, 0);
scroller->MoveBy(7,0);
/* back up a bit to make room for the label */
rect = scroller->Frame();
BStringView *stringView = new BStringView(rect, "SigLabel", kSigText);
AddChild(stringView);
float tWidth, tHeight;
stringView->GetPreferredSize(&tWidth, &tHeight);
/* the 5 is for the spacer in the TextView */
rect.OffsetBy(-1 *(tWidth) - 5, 0);
rect.right = rect.left + tWidth;
rect.bottom = rect.top + tHeight;
stringView->MoveTo(rect.LeftTop());
stringView->ResizeTo(rect.Width(), rect.Height());
/* Resize the View to the correct height */
scroller->SetResizingMode(B_FOLLOW_NONE);
ResizeTo(Frame().Width(), scroller->Frame().bottom + 8);
scroller->SetResizingMode(B_FOLLOW_ALL);
}
示例2: AttachedToWindow
void AttachedToWindow()
{
if (Parent()) {
SetViewColor(Parent()->ViewColor());
SetHighColor(Parent()->HighColor());
SetLowColor (Parent()->LowColor() );
}
BRect rect;
rect = Bounds();
rect.bottom = rect.top + B_H_SCROLL_BAR_HEIGHT - 1;
mTotalCount_->ResizeTo(rect.Width(), rect.Height());
mTotalCount_->MoveTo(rect.left, rect.top);
rect = Bounds();
rect.top = rect.top + B_H_SCROLL_BAR_HEIGHT;
mMarkedCount_->ResizeTo(rect.Width(), rect.Height());
mMarkedCount_->MoveTo(rect.left, rect.top);
}
示例3: AttachedToWindow
void VisualColorControl::AttachedToWindow()
{
BPoint *points = new BPoint[3];
points[0] = BPoint(0,0);
points[1] = BPoint(-4,-4);
points[2] = BPoint(4,-4);
// calculate the initial ramps
CalcRamps();
// create the arrow-pictures
BeginPicture(new BPicture());
SetHighColor(100,100,255);
FillPolygon(points,3);
SetHighColor(0,0,0);
StrokePolygon(points,3);
down_arrow = EndPicture();
if (Parent() != NULL)
SetViewColor(Parent()->ViewColor());
BStringView *sv = new BStringView(BRect(0,COLOR_HEIGHT/2,1,COLOR_HEIGHT/2),"label view",label1);
AddChild(sv);
float sv_width = sv->StringWidth(label1);
sv_width = max_c(sv_width,sv->StringWidth(label2));
sv_width = max_c(sv_width,sv->StringWidth(label3));
font_height fHeight;
sv->GetFontHeight(&fHeight);
sv->ResizeTo(sv_width,fHeight.ascent+fHeight.descent);
sv->MoveBy(0,-(fHeight.ascent+fHeight.descent)/2.0);
BRect sv_frame = sv->Frame();
sv_frame.OffsetBy(0,COLOR_HEIGHT);
sv->SetAlignment(B_ALIGN_CENTER);
sv = new BStringView(sv_frame,"label view",label2);
AddChild(sv);
sv->SetAlignment(B_ALIGN_CENTER);
sv_frame.OffsetBy(0,COLOR_HEIGHT);
sv = new BStringView(sv_frame,"label view",label3);
AddChild(sv);
sv->SetAlignment(B_ALIGN_CENTER);
sv_frame.OffsetBy(0,COLOR_HEIGHT);
sv = new BStringView(sv_frame,"label view",label4);
AddChild(sv);
sv->SetAlignment(B_ALIGN_CENTER);
ramp_left_edge = sv->Bounds().IntegerWidth()+2;
ResizeBy(ramp_left_edge,0);
delete[] points;
}
示例4: BWindow
//.........这里部分代码省略.........
fStatusLookField = new BMenuField(rect,"status look",
MDR_DIALECT_CHOICE ("Window Look:","ウィンドウ外観:"),lookPopUp);
fStatusLookField->SetDivider(labelWidth);
box->AddChild(fStatusLookField);
BPopUpMenu *workspacesPopUp = new BPopUpMenu(B_EMPTY_STRING);
workspacesPopUp->AddItem(item = new BMenuItem(
MDR_DIALECT_CHOICE ("Current Workspace","使用中ワークスペース"),
msg = new BMessage(kMsgStatusWorkspaceChanged)));
msg->AddInt32("StatusWindowWorkSpace", 0);
workspacesPopUp->AddItem(item = new BMenuItem(
MDR_DIALECT_CHOICE ("All Workspaces","全てのワークスペース"),
msg = new BMessage(kMsgStatusWorkspaceChanged)));
msg->AddInt32("StatusWindowWorkSpace", -1);
rect.OffsetBy(0,height + 6);
fStatusWorkspaceField = new BMenuField(rect,"status workspace",
MDR_DIALECT_CHOICE ("Window visible on:","表示場所:"),workspacesPopUp);
fStatusWorkspaceField->SetDivider(labelWidth);
box->AddChild(fStatusWorkspaceField);
rect = box->Frame(); rect.bottom = rect.top + 3*height + 13;
box = new BBox(rect);
box->SetLabel(MDR_DIALECT_CHOICE ("Deskbar Icon","デスクバーアイコンリンク"));
view->AddChild(box);
rect = box->Bounds().InsetByCopy(8,8);
rect.top += 7; rect.bottom = rect.top + height + 5;
BStringView *stringView = new BStringView(rect,B_EMPTY_STRING, MDR_DIALECT_CHOICE (
"The menu links are links to folders in a real folder like the Be menu.",
"デスクバーで表示する項目の設定"));
box->AddChild(stringView);
stringView->SetAlignment(B_ALIGN_CENTER);
stringView->ResizeToPreferred();
// BStringView::ResizeToPreferred() changes the width, so that the
// alignment has no effect anymore
stringView->ResizeTo(rect.Width(), stringView->Bounds().Height());
rect.left += 100; rect.right -= 100;
rect.OffsetBy(0,height + 1);
BButton *button = new BButton(rect,B_EMPTY_STRING,
MDR_DIALECT_CHOICE ("Configure Menu Links","メニューリンクの設定"),
msg = new BMessage(B_REFS_RECEIVED));
box->AddChild(button);
button->SetTarget(BMessenger("application/x-vnd.Be-TRAK"));
BPath path;
find_directory(B_USER_SETTINGS_DIRECTORY, &path);
path.Append("Mail/Menu Links");
BEntry entry(path.Path());
if (entry.InitCheck() == B_OK && entry.Exists()) {
entry_ref ref;
entry.GetRef(&ref);
msg->AddRef("refs", &ref);
}
else
button->SetEnabled(false);
rect = box->Frame(); rect.bottom = rect.top + 2*height + 6;
box = new BBox(rect);
box->SetLabel(MDR_DIALECT_CHOICE ("Misc.","その他の設定"));
view->AddChild(box);
rect = box->Bounds().InsetByCopy(8,8);
rect.top += 7; rect.bottom = rect.top + height + 5;
fAutoStartCheckBox = new BCheckBox(rect,"start daemon",
示例5:
//calculate the view positions of all the MatrixLayoutItems
//on the items list with offsets based upon matrixLeft
//and matrixTop
void
LayoutMatrix :: Calc( const float paramMatrixLeft,
const float paramMatrixTop,
sem_id paramSemID)
{
int32 numItems = mpItemsList->CountItems();
if (!numItems) return;
if (acquire_sem(paramSemID) != B_NO_ERROR)
{
warning(myPrefs->FailAqSem);
return;
}
bool hasPopUpMenu = false;
TextItem * scratchTextItem;
for ( int i = 0;
i < numItems;
i++)
{
((LayoutMatrixItem *)(mpItemsList->ItemAt(i)))->Calc();
}
float widest = 0;
float tallest = 0;
int32 index = 0;
for ( int i = 0;
i < numItems;
i++)
{
LayoutMatrixItem * lmi = (LayoutMatrixItem *)mpItemsList->ItemAt(index++);
if (lmi->mfWidthPref > widest)
{
widest = lmi->mfWidthPref;
}
if (lmi->mfHeightPref > tallest)
{
tallest = lmi->mfHeightPref;
}
}
if (mui32Flags & SAMESIZE)
{//SAMESIZE makes all items the same size as the largest
index = 0;
//Resize all items to match largest:
for ( uint32 i = 0;
i < mui32Rows;
i++)
{
for ( uint32 j = 0;
j < mui32Columns;
j++)
{
LayoutMatrixItem * lmi = (LayoutMatrixItem *)mpItemsList->ItemAt(index++);
switch (lmi->mui32Kind)
{
case KIND_MYSPACER:
{
MySpacer * scratchMySpacer = (MySpacer *)lmi->mpItem;
if (scratchMySpacer->mbSAMEFromWidest)
{
scratchMySpacer->ResizeTo(widest, tallest);
}
}
break;
case KIND_MYBUTTON:
{
BButton * scratchMyButton = (BButton *)lmi->mpItem;
scratchMyButton->ResizeTo(widest, tallest);
}
break;
case KIND_MYSLIDER:
{
BSlider * scratchMySlider = (BSlider *)lmi->mpItem;
scratchMySlider->ResizeTo(widest, tallest);
}
break;
case KIND_STRINGDRAWER:
{
BStringView * scratchMyStringView = (BStringView *)lmi->mpItem;
scratchMyStringView->ResizeTo(widest, tallest);
}
break;
case KIND_MYCHECKBOX:
{
BCheckBox * scratchMyCheckBox = (BCheckBox *)lmi->mpItem;
scratchMyCheckBox->ResizeTo(widest, tallest);
}
break;
case KIND_MYPICTUREBUTTON:
{
BPictureButton * scratchMyPictureButton = (BPictureButton *)lmi->mpItem;
scratchMyPictureButton->ResizeTo(widest, tallest);
}
break;
case KIND_MYCOLORCONTROL:
{
BColorControl * scratchMyColorControl = (BColorControl *)lmi->mpItem;
scratchMyColorControl->ResizeTo(widest, tallest);
}
break;
//.........这里部分代码省略.........
示例6: locker
//.........这里部分代码省略.........
const char *type = B_TRANSLATE("Unknown type");
switch (fEditor.Type()) {
case B_MINI_ICON_TYPE:
case B_LARGE_ICON_TYPE:
#ifdef HAIKU_TARGET_PLATFORM_HAIKU
case B_VECTOR_ICON_TYPE:
#endif
type = B_TRANSLATE("Icon");
break;
case B_PNG_FORMAT:
type = B_TRANSLATE("PNG format");
break;
case B_MESSAGE_TYPE:
type = B_TRANSLATE("Flattened bitmap");
break;
default:
break;
}
const char *colorSpace;
switch (fBitmap->ColorSpace()) {
case B_GRAY1:
case B_GRAY8:
colorSpace = B_TRANSLATE("Grayscale");
break;
case B_CMAP8:
colorSpace = B_TRANSLATE("8 bit palette");
break;
case B_RGB32:
case B_RGBA32:
case B_RGB32_BIG:
case B_RGBA32_BIG:
colorSpace = B_TRANSLATE("32 bit");
break;
case B_RGB15:
case B_RGBA15:
case B_RGB15_BIG:
case B_RGBA15_BIG:
colorSpace = B_TRANSLATE("15 bit");
break;
case B_RGB16:
case B_RGB16_BIG:
colorSpace = B_TRANSLATE("16 bit");
break;
default:
colorSpace = B_TRANSLATE("Unknown format");
break;
}
snprintf(buffer, sizeof(buffer), "%s, %g x %g, %s", type,
fBitmap->Bounds().Width() + 1, fBitmap->Bounds().Height() + 1,
colorSpace);
fDescriptionView->SetText(buffer);
} else
fDescriptionView->SetText(B_TRANSLATE_COMMENT("Could not read image",
"Image means here a picture file, not a disk image."));
// Update the view size to match the image and its description
float width, height;
fDescriptionView->GetPreferredSize(&width, &height);
fDescriptionView->ResizeTo(width, height);
BRect rect = fDescriptionView->Bounds();
if (fBitmap != NULL) {
BRect bounds = fBitmap->Bounds();
rect.bottom += bounds.Height() + 5;
if (fScaleSlider != NULL && rect.Width() < fScaleSlider->Bounds().Width())
rect.right = fScaleSlider->Bounds().right;
if (bounds.Width() > rect.Width())
rect.right = bounds.right;
// center description below the bitmap
fDescriptionView->MoveTo((rect.Width() - fDescriptionView->Bounds().Width()) / 2,
bounds.Height() + 5);
if (fScaleSlider != NULL) {
// center slider below description
rect.bottom += fScaleSlider->Bounds().Height() + 5;
fScaleSlider->MoveTo((rect.Width() - fScaleSlider->Bounds().Width()) / 2,
fDescriptionView->Frame().bottom + 5);
if (fScaleSlider->IsHidden())
fScaleSlider->Show();
}
} else if (fScaleSlider != NULL && !fScaleSlider->IsHidden())
fScaleSlider->Hide();
ResizeTo(rect.Width(), rect.Height());
if (Parent()) {
// center within parent view
BRect parentBounds = Parent()->Bounds();
MoveTo((parentBounds.Width() - rect.Width()) / 2,
(parentBounds.Height() - rect.Height()) / 2);
}
Invalidate();
// restore old view size
fEditor.SetViewSize(viewSize);
}
示例7: _
// constructor
NavigationInfoPanel::NavigationInfoPanel(BWindow* parent,
const BMessage& message, const BMessenger& target)
: BWindow(BRect(0, 0, 200, 30), "Navigation Info", B_FLOATING_WINDOW_LOOK,
B_FLOATING_SUBSET_WINDOW_FEEL,
B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE | B_NOT_V_RESIZABLE)
, fMessage(message)
, fTarget(target)
{
// create the interface and resize to fit
BRect frame = Bounds();
frame.InsetBy(5, 5);
frame.bottom = frame.top + 15;
// label string view
fLabelView = new BStringView(frame, "label", kLabel,
B_FOLLOW_LEFT_RIGHT | B_FOLLOW_TOP);
fLabelView->ResizeToPreferred();
frame = fLabelView->Frame();
// target clip text control
frame.OffsetBy(0, frame.Height() + 5);
fTargetClipTC = new BTextControl(frame, "clip id",
"Target Playlist ID", "", new BMessage(MSG_INVOKE),
B_FOLLOW_TOP | B_FOLLOW_LEFT_RIGHT);
fTargetClipTC->ResizeToPreferred();
frame = fTargetClipTC->Frame();
// help string view
frame.OffsetBy(0, frame.Height() + 5);
BStringView* helpView = new BStringView(frame, "help",
"Drag and drop a playlist clip here.",
B_FOLLOW_LEFT_RIGHT | B_FOLLOW_TOP);
BFont font;
helpView->GetFont(&font);
font.SetFace(B_ITALIC_FACE);
font.SetSize(font.Size() * 0.9);
helpView->SetFont(&font);
helpView->SetAlignment(B_ALIGN_CENTER);
helpView->ResizeToPreferred();
// parent view
frame = fLabelView->Frame() | fTargetClipTC->Frame() | helpView->Frame();
frame.InsetBy(-5, -5);
fInfoView = new InfoView(frame, this);
fInfoView->AddChild(fLabelView);
fInfoView->AddChild(fTargetClipTC);
fInfoView->AddChild(helpView);
// resize to fit and adjust size limits
ResizeTo(fInfoView->Frame().Width(), fInfoView->Frame().Height());
AddChild(fInfoView);
float minWidth, maxWidth, minHeight, maxHeight;
GetSizeLimits(&minWidth, &maxWidth, &minHeight, &maxHeight);
minWidth = Frame().Width();
minHeight = maxHeight = Frame().Height();
SetSizeLimits(minWidth, maxWidth, minHeight, maxHeight);
// modify the high color after the help view is attached to a window
helpView->SetHighColor(tint_color(helpView->LowColor(),
B_DISABLED_LABEL_TINT));
helpView->SetFlags(helpView->Flags() | B_FULL_UPDATE_ON_RESIZE);
// help the buggy BeOS BStringView (when text alignment != left...)
fInfoView->SetEventMask(B_POINTER_EVENTS);
// resize controls to the same (maximum) width
float maxControlWidth = fLabelView->Frame().Width();
maxControlWidth = max_c(maxControlWidth, fTargetClipTC->Frame().Width());
maxControlWidth = max_c(maxControlWidth, helpView->Frame().Width());
fLabelView->ResizeTo(maxControlWidth, fLabelView->Frame().Height());
fTargetClipTC->ResizeTo(maxControlWidth, fTargetClipTC->Frame().Height());
helpView->ResizeTo(maxControlWidth, helpView->Frame().Height());
// center above parent window
BAutolock _(parent);
frame = Frame();
BRect parentFrame = parent->Frame();
MoveTo((parentFrame.left + parentFrame.right - frame.Width()) / 2,
(parentFrame.top + parentFrame.bottom - frame.Height()) / 2);
AddToSubset(parent);
}