本文整理汇总了C++中BView::MoveBy方法的典型用法代码示例。如果您正苦于以下问题:C++ BView::MoveBy方法的具体用法?C++ BView::MoveBy怎么用?C++ BView::MoveBy使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BView
的用法示例。
在下文中一共展示了BView::MoveBy方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Expand
/*=============================================================================================*\
| Expand |
+-----------------------------------------------------------------------------------------------+
| Effet: Reduire la view, la fenetre mere et deplacer les autre view si necessaire. |
\*=============================================================================================*/
void ShrinkView::Expand()
{
BView * pTempView; //Utiliser pour parcourir les View attacher a la meme fenetre mere.
//Agradir la View.
ResizeTo(Frame().Width(), m_fFullHeight);
m_bShrink = false;
//Redimentionner la fenetre mere
if( Window() != NULL )
{
Window()->ResizeBy(0, m_fFullHeight - 15.0 );
}
//Deplacer, si necessaire, les autre View.
pTempView = this;
while( pTempView->PreviousSibling() != NULL)
{
pTempView = pTempView->PreviousSibling();
}
while(pTempView != NULL)
{
if(Frame().top + 16.0 <= pTempView->Frame().top )
{
pTempView->MoveBy(0, m_fFullHeight - 15.0);
}
pTempView = pTempView->NextSibling();
}
Draw(Bounds());
}//End of Expand.
示例2: moveSelectedFieldsBy
void MainView::moveSelectedFieldsBy(const BPoint& point)
{
for(int i = 0; i < selected_fields.CountItems(); i++)
{
BView *field = (BView *)selected_fields.ItemAt(i);
field->MoveBy(point.x, point.y);
}
sel_bounds.OffsetBy(point);
}
示例3: MoveSplitter
/**
Resizes a child view (pane) and its sibling.
*/
void SplitView::MoveSplitter(BView *pane, BPoint d)
{
pane->ResizeBy(d.x, d.y);
BView *sibling = pane->NextSibling();
if (sibling) {
// Don't overlap the next view (a smaller update rect).
if (d.x > 0 || d.y > 0)
sibling->ResizeBy(-d.x, -d.y);
sibling->MoveBy(d.x, d.y);
if (d.x < 0 || d.y < 0)
sibling->ResizeBy(-d.x, -d.y);
}
Draw(Bounds());
}
示例4: BWindow
AddOnListInfo::AddOnListInfo(BRect frame,BView *mother)
: BWindow(frame,"DontWorryWindow",B_BORDERED_WINDOW_LOOK, B_MODAL_SUBSET_WINDOW_FEEL,B_AVOID_FOCUS ),
_motherMessenger(mother)
{
CPreferences prefs(PREF_FILE_NAME,PREF_PATH_NAME);
BRect listRect = Bounds();
BScrollView *scrollinfo;
BView *scrollHBar;
float scrollHsize;
_lastClass = NULL;
_typeRequested = -1;
// initialisees les images
prefs.Load();
_classesBitmap = prefs.GetBitmap("classes");
_metodesBitmap = prefs.GetBitmap("metodes");
_variablesBitmap = prefs.GetBitmap("variables");
_privateBitmap = prefs.GetBitmap("private");
_protectedBitmap = prefs.GetBitmap("protected");
_virtualBitmap = prefs.GetBitmap("virtual");
listRect.right -= 15;
listRect.bottom -=15;
_listOfInfos = new AddOnListView(listRect);
scrollinfo = new BScrollView("scroll-info",_listOfInfos,B_FOLLOW_ALL_SIDES,0,true,true);
// deplace la scroll bar du bas
scrollHBar = scrollinfo->FindView("_HSB_");
scrollHBar->ResizeBy(-70,0);
scrollHBar->MoveBy(70,0);
scrollHsize = (scrollHBar->Bounds()).Height()+1;
listRect = scrollinfo->Bounds();
_progress = new AddOnProgressView(BRect(2,listRect.bottom-scrollHsize,70,listRect.bottom-1));
scrollinfo->AddChild(_progress);
AddChild(scrollinfo);
// place le focus sur la liste
_listOfInfos->MakeFocus(true);
// envoyer le pointer de la fenetre a la vue pour les deplacement
BMessage moveMsg(MOVE_WINDOW_PTR);
moveMsg.AddPointer(WINDOW_RESULT_PTR,this);
_motherMessenger.SendMessage(&moveMsg);
}
示例5: bounds
void
DCCFileWindow::MessageReceived (BMessage *msg)
{
switch (msg->what)
{
case M_DCC_FILE_WIN:
{
BRect bounds (Bounds());
BPoint point (0.0, 0.0);
DCCConnect *view;
if (ChildAt (0))
{
point.y = bounds.bottom + 1;
}
msg->FindPointer ("view", reinterpret_cast<void **>(&view));
view->MoveTo (point);
AddChild (view);
ResizeTo (bounds.Width(), view->Frame().bottom);
if (IsHidden())
{
Show();
}
}
break;
case M_DCC_FINISH:
{
bool success, stopped;
msg->FindBool ("success", &success);
msg->FindBool ("stopped", &stopped);
if (success || stopped)
{
BView *view;
msg->FindPointer ("source", reinterpret_cast<void **>(&view));
for (int32 i = 0; i < CountChildren(); ++i)
{
BView *child (ChildAt (i));
if (child == view)
{
float height (view->Frame().Height());
RemoveChild (view);
delete view;
for (int32 j = i; j < CountChildren(); ++j)
{
child = ChildAt (j);
child->MoveBy (0.0, -(height + 1));
}
if (CountChildren() == 0)
{
BMessenger(this).SendMessage(B_QUIT_REQUESTED);
}
else
{
ResizeBy (0.0, -(height + 1));
}
break;
}
}
}
}
break;
case M_ADD_RESUME_DATA:
{
const char *nick (NULL);
const char *file (NULL);
const char *port (NULL);
bool hit (false);
off_t pos (0);
msg->FindString ("vision:nick", &nick);
msg->FindString ("vision:file", &file);
msg->FindString ("vision:port", &port);
msg->FindInt64 ("vision:pos", &pos);
for (int32 i = 0; i < CountChildren(); ++i)
{
DCCSend *view (dynamic_cast<DCCSend *>(ChildAt (i)));
if (view && view->IsMatch (nick, port))
{
view->SetResume (pos);
hit = true;
break;
}
}
BMessage reply (B_REPLY);
reply.AddBool ("hit", hit);
msg->SendReply (&reply);
}
break;
//.........这里部分代码省略.........
示例6: BMessage
// SavePanel class
SavePanel::SavePanel(const char* name,
BMessenger* target,
entry_ref* startDirectory,
uint32 nodeFlavors,
bool allowMultipleSelection,
BMessage* message,
BRefFilter* filter,
bool modal,
bool hideWhenDone)
: BFilePanel(B_SAVE_PANEL, target, startDirectory,
nodeFlavors, allowMultipleSelection,
message, filter, modal, hideWhenDone),
BHandler(name),
fConfigWindow(NULL),
fFormatM(NULL),
fExportMode(EXPORT_MODE_ICON_RDEF)
{
BWindow* window = Window();
if (!window || !window->Lock())
return;
window->SetTitle(B_TRANSLATE("Save image"));
// add this instance as BHandler to the window's looper
window->AddHandler(this);
// find a couple of important views and mess with their layout
BView* background = Window()->ChildAt(0);
BButton* cancel = dynamic_cast<BButton*>(background->FindView("cancel button"));
BView* textview = background->FindView("text view");
BScrollBar* hscrollbar = dynamic_cast<BScrollBar*>(background->FindView("HScrollBar"));
if (!background || !cancel || !textview || !hscrollbar) {
printf("SavePanel::SavePanel() - couldn't find necessary controls.\n");
return;
}
_BuildMenu();
BRect rect = textview->Frame();
rect.top = cancel->Frame().top;
font_height fh;
be_plain_font->GetHeight(&fh);
rect.bottom = rect.top + fh.ascent + fh.descent + 5.0;
fFormatMF = new BMenuField(rect, "format popup", B_TRANSLATE("Format"),
fFormatM, true,
B_FOLLOW_LEFT | B_FOLLOW_BOTTOM,
B_WILL_DRAW | B_NAVIGABLE);
fFormatMF->SetDivider(be_plain_font->StringWidth(
B_TRANSLATE("Format")) + 7);
fFormatMF->MenuBar()->ResizeToPreferred();
fFormatMF->ResizeToPreferred();
float height = fFormatMF->Bounds().Height() + 8.0;
// find all the views that are in the way and
// move up them up the height of the menu field
BView *poseview = background->FindView("PoseView");
if (poseview) poseview->ResizeBy(0, -height);
BButton *insert = (BButton *)background->FindView("default button");
if (hscrollbar) hscrollbar->MoveBy(0, -height);
BScrollBar *vscrollbar = (BScrollBar *)background->FindView("VScrollBar");
if (vscrollbar) vscrollbar->ResizeBy(0, -height);
BView *countvw = (BView *)background->FindView("CountVw");
if (countvw) countvw->MoveBy(0, -height);
textview->MoveBy(0, -height);
#if HAIKU_TARGET_PLATFORM_DANO
fFormatMF->MoveTo(textview->Frame().left, fFormatMF->Frame().top + 2);
#else
fFormatMF->MoveTo(textview->Frame().left, fFormatMF->Frame().top);
#endif
background->AddChild(fFormatMF);
// Build the "Settings" button relative to the format menu
rect = cancel->Frame();
rect.OffsetTo(fFormatMF->Frame().right + 5.0, rect.top);
fSettingsB = new BButton(rect, "settings",
B_TRANSLATE("Settings"B_UTF8_ELLIPSIS),
new BMessage(MSG_SETTINGS),
B_FOLLOW_LEFT | B_FOLLOW_BOTTOM,
B_WILL_DRAW | B_NAVIGABLE);
fSettingsB->ResizeToPreferred();
background->AddChild(fSettingsB);
fSettingsB->SetTarget(this);
textview->ResizeTo(fSettingsB->Frame().right - fFormatMF->Frame().left,
textview->Frame().Height());
// Make sure the smallest window won't draw the "Settings" button over anything else
float minWindowWidth = textview->Bounds().Width()
+ cancel->Bounds().Width()
+ (insert ? insert->Bounds().Width() : 0.0)
+ 90;
Window()->SetSizeLimits(minWindowWidth, 10000, 250, 10000);
if (Window()->Bounds().IntegerWidth() + 1 < minWindowWidth)
Window()->ResizeTo(minWindowWidth, Window()->Bounds().Height());
//.........这里部分代码省略.........
示例7: DynamicScrollView
BView *
DefaultMediaTheme::MakeViewFor(BParameterWeb *web, const BRect *hintRect)
{
CALLED();
if (web == NULL)
return NULL;
BRect rect;
if (hintRect)
rect = *hintRect;
BRect bestRect;
// do we have more than one attached parameter group?
// if so, use a tabbed view with a tab for each group
TabView *tabView = NULL;
if (web->CountGroups() > 1)
tabView = new TabView(rect, "web");
rect.OffsetTo(B_ORIGIN);
for (int32 i = 0; i < web->CountGroups(); i++) {
BParameterGroup *group = web->GroupAt(i);
if (group == NULL)
continue;
BView *groupView = MakeViewFor(*group, hintRect ? &rect : NULL);
if (groupView == NULL)
continue;
if (GroupView *view = dynamic_cast<GroupView *>(groupView)) {
// the top-level group views must not be larger than their hintRect,
// but unlike their children, they should follow all sides when
// their parent is resized
if (hintRect != NULL)
view->ResizeTo(rect.Width() - 10, rect.Height() - 10);
view->SetResizingMode(B_FOLLOW_ALL);
}
if (tabView == NULL) {
// if we don't need a container to put that view into,
// we're done here (but the groupView may span over the
// whole hintRect)
if (groupView->Frame().LeftTop() == BPoint(5, 5)) {
// remove insets, as they are not needed
groupView->MoveBy(-5, -5);
groupView->ResizeBy(10, 10);
}
return new DynamicScrollView(groupView->Name(), groupView);
}
DynamicScrollView *scrollView = new DynamicScrollView(groupView->Name(), groupView);
tabView->AddTab(scrollView);
if (!hintRect) {
bestRect = bestRect | scrollView->Bounds();
}
}
if (tabView != NULL) {
// this adjustment must be kept in sync with TabView::FrameResized
bestRect.bottom += tabView->TabHeight();
bestRect.InsetBy(-3.0,-3.0);
tabView->ResizeTo(bestRect.Width(), bestRect.Height());
tabView->FrameResized(bestRect.Width(), bestRect.Height());
//needed since we're not attached to a window yet
}
return tabView;
}
示例8: fnr
PrefsWindow::PrefsWindow(uint32 msg) : BWindow(BRect(0, 0, 400, 289), GetString(STR_PREFS_TITLE), B_TITLED_WINDOW, B_NOT_RESIZABLE | B_NOT_ZOOMABLE | B_ASYNCHRONOUS_CONTROLS), this_messenger(this)
{
int i;
ok_message = msg;
send_quit_on_close = true;
get_system_info(&sys_info);
// Move window to right position
Lock();
MoveTo(80, 80);
// Set up menus
BMenuBar *bar = new BMenuBar(Bounds(), "menu");
BMenu *menu = new BMenu(GetString(STR_PREFS_MENU));
menu->AddItem(new BMenuItem(GetString(STR_PREFS_ITEM_ABOUT), new BMessage(B_ABOUT_REQUESTED)));
menu->AddItem(new BSeparatorItem);
menu->AddItem(new BMenuItem(GetString(STR_PREFS_ITEM_START), new BMessage(MSG_OK)));
menu->AddItem(new BMenuItem(GetString(STR_PREFS_ITEM_ZAP_PRAM), new BMessage(MSG_ZAP_PRAM)));
menu->AddItem(new BSeparatorItem);
menu->AddItem(new BMenuItem(GetString(STR_PREFS_ITEM_QUIT), new BMessage(MSG_CANCEL), 'Q'));
bar->AddItem(menu);
AddChild(bar);
SetKeyMenuBar(bar);
int mbar_height = int(bar->Bounds().bottom) + 1;
// Resize window to fit menu bar
ResizeBy(0, mbar_height);
// Light gray background
BRect b = Bounds();
top = new BView(BRect(0, mbar_height, b.right, b.bottom), "top", B_FOLLOW_NONE, B_WILL_DRAW);
AddChild(top);
top->SetViewColor(fill_color);
top_frame = top->Bounds();
// Create panes
panes[0] = create_volumes_pane();
panes[1] = create_graphics_pane();
panes[2] = create_serial_pane();
panes[3] = create_memory_pane();
// Prefs item tab view
pane_tabs = new BTabView(BRect(10, 10, top_frame.right-10, top_frame.bottom-50), "items", B_WIDTH_FROM_LABEL);
for (i=0; i<NUM_PANES; i++)
pane_tabs->AddTab(panes[i]);
top->AddChild(pane_tabs);
volume_list->Select(0);
// Create volume file panels
add_volume_panel = new BFilePanel(B_OPEN_PANEL, &this_messenger, NULL, B_FILE_NODE | B_DIRECTORY_NODE, false, new BMessage(MSG_ADD_VOLUME_PANEL));
add_volume_panel->SetButtonLabel(B_DEFAULT_BUTTON, GetString(STR_ADD_VOLUME_PANEL_BUTTON));
add_volume_panel->Window()->SetTitle(GetString(STR_ADD_VOLUME_TITLE));
create_volume_panel = new BFilePanel(B_SAVE_PANEL, &this_messenger, NULL, B_FILE_NODE | B_DIRECTORY_NODE, false, new BMessage(MSG_CREATE_VOLUME_PANEL));
create_volume_panel->SetButtonLabel(B_DEFAULT_BUTTON, GetString(STR_CREATE_VOLUME_PANEL_BUTTON));
create_volume_panel->Window()->SetTitle(GetString(STR_CREATE_VOLUME_TITLE));
create_volume_panel->Window()->Lock();
BView *background = create_volume_panel->Window()->ChildAt(0);
background->FindView("PoseView")->ResizeBy(0, -30);
background->FindView("VScrollBar")->ResizeBy(0, -30);
background->FindView("CountVw")->MoveBy(0, -30);
BView *v = background->FindView("HScrollBar");
if (v)
v->MoveBy(0, -30);
else {
i = 0;
while ((v = background->ChildAt(i++)) != NULL) {
if (v->Name() == NULL || v->Name()[0] == 0) {
v->MoveBy(0, -30); // unnamed horizontal scroll bar
break;
}
}
}
BView *filename = background->FindView("text view");
BRect fnr(filename->Frame());
fnr.OffsetBy(0, -30);
NumberControl *nc = new NumberControl(fnr, 80, "hardfile_size", GetString(STR_HARDFILE_SIZE_CTRL), 40, NULL);
background->AddChild(nc);
create_volume_panel->Window()->Unlock();
// "Start" button
BButton *button = new BButton(BRect(20, top_frame.bottom-35, 90, top_frame.bottom-10), "start", GetString(STR_START_BUTTON), new BMessage(MSG_OK));
top->AddChild(button);
SetDefaultButton(button);
// "Quit" button
top->AddChild(new BButton(BRect(top_frame.right-90, top_frame.bottom-35, top_frame.right-20, top_frame.bottom-10), "cancel", GetString(STR_QUIT_BUTTON), new BMessage(MSG_CANCEL)));
Unlock();
Show();
}
示例9: CaptionView
// Private function to add the config view of the currently
// selected output format to our window
void
OutputFormatView::AddConfigView()
{
the_window->Lock();
// Remove the window size limits,
// so we are free to do whatever we like
the_window->SetSizeLimits(0.0, 32767.0, 0.0, 32767.0);
// The current views must stay put while we resize
// the window to make room for the config view
MakeFollowBottom(false);
// Remove the old config view if there is one
if (config_view)
{
RemoveChild(config_view);
delete config_view;
config_view = 0;
}
BRect config_rect;
if (the_roster->MakeConfigurationView(
output_list[index].translator,
0,
&config_view,
&config_rect) == B_NO_ERROR &&
config_view != 0)
{
// Create a caption for the config view
// if there wasn't one already
if (!config_caption)
{
config_caption = new CaptionView(
BRect(8.0, info_view->Frame().bottom + 1.0, Bounds().right - 8.0, 0.0),
"config caption",
StringsRsrc[STR_TRANSLATOR_SETTINGS]);
config_caption->SetResizingMode(B_FOLLOW_LEFT_RIGHT | B_FOLLOW_TOP);
AddChild(config_caption);
}
// Move the config view to just below the config caption
config_view->MoveBy(
16.0 - config_view->Frame().left,
config_caption->Frame().bottom + 1.0 - config_view->Frame().top);
// Colour it gray
config_view->SetViewColor(222, 222, 222);
config_view->SetLowColor(222, 222, 222);
// First resize the window so that the config view will fit,
// otherwise the config view may want to change with us
float width_diff = config_view->Frame().right + 16.0 - Bounds().Width();
the_window->ResizeTo(
Bounds().Width() + (width_diff > 0.0 ? width_diff : 0.0),
config_view->Frame().bottom + 8.0);
// Add it to the main view
AddChild(config_view);
// Make the config_view and its children follow the bottom of the window
RecursiveSetMode(config_view);
}
else
{
// This translator doesn't have a config view
if (config_caption)
{
RemoveChild(config_caption);
delete config_caption;
config_caption = 0;
}
the_window->ResizeTo(Bounds().right, info_view->Frame().bottom + 8.0);
}
// Make all views follow the bottom of the window again
MakeFollowBottom();
// Set the window's minimum size
float min_width = (config_view ? config_view->Frame().right : 200.0);
if (min_width < 200.0)
min_width = 200.0;
the_window->SetSizeLimits(
min_width,
32767.0,
Bounds().Height() - scroll_view->Bounds().Height() + 50.0,
32767.0);
the_window->Unlock();
}