本文整理汇总了C++中View::GetMousePoint方法的典型用法代码示例。如果您正苦于以下问题:C++ View::GetMousePoint方法的具体用法?C++ View::GetMousePoint怎么用?C++ View::GetMousePoint使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类View
的用法示例。
在下文中一共展示了View::GetMousePoint方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CurAlpha
int Control::CurAlpha(DisplayDirector* director)
{
// find out where the mouse is and make sure it's in the window
View* windowView = director->WindowView();
BPoint mousePoint = windowView->GetMousePoint();
if (!windowView->Bounds().BRect::Contains(mousePoint))
return 0;
// calculate the alpha
BRect rect = GetRect();
int xDistance = 0;
if (mousePoint.x < rect.left)
xDistance = (int) (rect.left - mousePoint.x);
else if (mousePoint.x > rect.right)
xDistance = (int) (mousePoint.x - rect.right);
int yDistance = 0;
if (mousePoint.y < rect.top)
yDistance = (int) (rect.top - mousePoint.y);
else if (mousePoint.y > rect.bottom)
yDistance = (int) (mousePoint.y - rect.bottom);
float distance = sqrt(xDistance * xDistance + yDistance * yDistance);
if (distance > visibleZone)
distance = visibleZone;
float visibility = (visibleZone - distance) / visibleZone;
return (int) (visibility * 255);
}
示例2: FindSelection
void DisplayDirector::FindSelection()
{
//*** be_app->HideCursor();
View* view = WindowView();
BPoint point;
BPoint lastPoint(-1000000, -1000000);
bool scrolling = false;
for (;; lastPoint = point) {
// get & check mouse state
int buttons = view->GetMouseButtons();
if (buttons == 0)
break;
point = view->GetMousePoint();
bool autoscrolling = Autoscroll(point);
if (point == lastPoint && !autoscrolling && !scrolling) {
view->MouseTrackingPause();
continue;
}
// move the selection
StartRefreshCycle();
BPoint docPoint = ViewToDoc(point);
FindSelectionContext context(docPoint.x, docPoint.y);
Selection* newSelection = docDisplayNode->BlockFindSelection(&context);
SetSelection(newSelection);
scrolling = DoScrollStep();
FinishRefreshCycle();
ClearDeletedSelections();
}
//*** be_app->ShowCursor(); //*** didn't work
}
示例3: ExtendSelection
void DisplayDirector::ExtendSelection()
{
if (selection == NULL)
return;
View* view = WindowView();
BPoint lastPoint;
Selection* rootSelection = selection;
bool scrolling = false;
while (true) {
// get the mouse point and check if moved/finished
int buttons = view->GetMouseButtons();
if (buttons == 0)
break;
BPoint point = view->GetMousePoint();
Autoscroll(point);
point = ViewToDoc(point);
if (point == lastPoint && !scrolling) {
view->MouseTrackingPause();
continue;
}
// change the selection
Selection* newSelection = rootSelection->ExtendTo(point);
if (newSelection != selection) {
StartRefreshCycle();
RefreshSelection();
if (selection != rootSelection)
delete selection;
selection = newSelection;
scrolling = DoScrollStep();
RefreshSelection();
FinishRefreshCycle();
}
lastPoint = point;
}
// clean up root selection
if (selection != rootSelection)
delete rootSelection;
}
示例4: DragSelection
void DisplayDirector::DragSelection(BPoint startPoint)
{
if (selection == NULL)
return;
View* view = WindowView();
BPoint lastPoint = ViewToDoc(startPoint);
bool scrolling = false;
bool wasRightButton = false;
bool optionDown = false;
while (true) {
// get the mouse point and check if moved/finished
BPoint point = view->GetMousePoint();
int buttons = view->GetMouseButtons();
if (buttons == 0)
break;
wasRightButton = ((buttons & (B_SECONDARY_MOUSE_BUTTON | B_TERTIARY_MOUSE_BUTTON)) != 0);
optionDown = ((view->CurModifiers() & B_OPTION_KEY) != 0);
scrolling |= Autoscroll(point);
point = ViewToDoc(point);
if (point == lastPoint && !scrolling) {
view->MouseTrackingPause();
continue;
}
// change the destination
Destination* newDestination = NULL;
if (!selection->ContainsPoint(point)) {
FindDestinationContext destContext(selection, point.x, point.y);
newDestination = docDisplayNode->BlockFindDestination(&destContext);
}
if (newDestination != destination) {
StartRefreshCycle();
SetDestination(newDestination);
scrolling = DoScrollStep();
FinishRefreshCycle();
}
else
scrolling = DoScrollStep();
lastPoint = point;
}
// do the move/copy
if (destination) {
// figure out if it's a move or a copy
bool doing = true;
bool copying = false;
/***
if (wasRightButton) {
BPopUpMenu* menu = new BPopUpMenu("Move/Copy");
BMenuItem* moveItem = new BMenuItem("Move", NULL);
menu->AddItem(moveItem);
BMenuItem* copyItem = new BMenuItem("Copy", NULL);
menu->AddItem(copyItem);
BMenuItem* chosenItem = menu->Go(ConvertToScreen(DocToView(lastPoint)), false, true);
copying = (chosenItem == copyItem);
if (chosenItem == NULL)
doing = false;
delete menu;
}
else if (optionDown)
copying = true;
***/
if (optionDown)
copying = true;
if (doing) {
StartRefreshCycle();
// do the move or copy
Action* moveAction = NULL;
if (copying)
moveAction = destination->GetCopyAction();
else
moveAction = destination->GetMoveAction();
if (moveAction)
DoAction(moveAction);
SetDestination(NULL);
FinishRefreshCycle();
}
else
SetDestination(NULL);
}
}