void TestWidget::AdjustCursor ( const JPoint& pt, const JXKeyModifiers& modifiers ) { if (itsHomeRect.Contains(pt)) { DisplayCursor(kJXDefaultCursor); } else if (its2Rect.Contains(pt)) { DisplayCursor(itsGumbyCursor); } else if (its3Rect.Contains(pt)) { DisplayCursor(itsBogosityCursor); } else if (modifiers.meta()) { DisplayCursor(itsFleurCursor); } else { JXScrollableWidget::AdjustCursor(pt, modifiers); } }
void JXScrolltab::HandleMouseDown ( const JPoint& pt, const JXMouseButton button, const JSize clickCount, const JXButtonStates& buttonStates, const JXKeyModifiers& modifiers ) { const JBoolean shiftOn = modifiers.shift(); const JBoolean metaOn = modifiers.meta(); if (button == kJXLeftButton && metaOn && shiftOn) { itsScrollbar->RemoveAllScrolltabs(); } else if (button == kJXLeftButton && metaOn) { delete this; } else if (button == kJXLeftButton) { ScrollToTab(); } else if (button == kJXRightButton) { OpenActionMenu(pt, buttonStates, modifiers); } }
void JXHorizPartition::HandleMouseDown ( const JPoint& pt, const JXMouseButton button, const JSize clickCount, const JXButtonStates& buttonStates, const JXKeyModifiers& modifiers ) { itsDragType = kInvalidDrag; if (button != kJXLeftButton) { return; } if (modifiers.meta()) { itsDragType = kDragAll; PrepareToDragAll(pt.x, &itsMinDragX, &itsMaxDragX); } else { itsDragType = kDragOne; PrepareToDrag(pt.x, &itsMinDragX, &itsMaxDragX); } JPainter* p = CreateDragInsidePainter(); const JRect ap = GetAperture(); p->Line(pt.x, ap.top, pt.x, ap.bottom); itsPrevPt = pt; }
void JXInputField::HandleMouseDown ( const JPoint& pt, const JXMouseButton button, const JSize clickCount, const JXButtonStates& buttonStates, const JXKeyModifiers& modifiers ) { if (button == kJXRightButton) { // if (!PointInSelection(pt)) // { // JXTEBase::HandleMouseDown(pt, kJXLeftButton, 1, buttonStates, modifiers); // } CreateContextMenu(); itsContextMenu->PopUp(this, pt, buttonStates, modifiers); } else { ShouldAllowDragAndDrop(modifiers.meta()); JXTEBase::HandleMouseDown(pt, button, clickCount, buttonStates, modifiers); } }
void CBSymbolTable::HandleMouseDown ( const JPoint& pt, const JXMouseButton button, const JSize clickCount, const JXButtonStates& buttonStates, const JXKeyModifiers& modifiers ) { itsKeyBuffer.Clear(); JPoint cell; if (ScrollForWheel(button, modifiers)) { return; } else if (!GetCell(pt, &cell)) { (GetTableSelection()).ClearSelection(); } else if (button == kJXLeftButton && clickCount == 2 && !modifiers.shift() && modifiers.meta() && modifiers.control()) { SelectSingleCell(cell, kJFalse); DisplaySelectedSymbols(); (GetWindow())->Close(); return; } else if (clickCount == 2 && modifiers.meta()) { SelectSingleCell(cell, kJFalse); FindSelectedSymbols(button); } else if (button == kJXLeftButton && clickCount == 2 && !modifiers.shift() && !modifiers.control()) { DisplaySelectedSymbols(); } else { BeginSelectionDrag(cell, button, modifiers); } }
void JXTreeListWidget::HandleKeyPress ( const int key, const JXKeyModifiers& modifiers ) { if (key == kJLeftArrow && !IsEditing()) { CloseSelectedNodes(modifiers.shift(), modifiers.meta()); } else if (key == kJRightArrow && !IsEditing()) { OpenSelectedNodes(modifiers.shift(), modifiers.meta()); } else { JXStyleTable::HandleKeyPress(key, modifiers); } }
void JXHorizPartition::AdjustCursor ( const JPoint& pt, const JXKeyModifiers& modifiers ) { if (modifiers.meta()) { DisplayCursor(itsDragAllLineCursor); } else { JXPartition::AdjustCursor(pt, modifiers); } }
void JXExprEditor::HandleKeyPress ( const int key, const JXKeyModifiers& modifiers ) { if (0 < key && key <= 255 && !modifiers.meta() && !modifiers.control()) { EIPHandleKeyPress(key); } else { JXScrollableWidget::HandleKeyPress(key, modifiers); } }
void JXTreeListWidget::HandleMouseUp ( const JPoint& pt, const JXMouseButton button, const JXButtonStates& buttonStates, const JXKeyModifiers& modifiers ) { if (itsToggleDragIndex > 0 && itsMouseInToggleFlag) { ToggleNode(itsToggleDragIndex, modifiers.shift(), modifiers.meta()); Refresh(); } itsMouseInToggleFlag = kJFalse; itsToggleDragIndex = 0; }
void JXRowHeaderWidget::HandleMouseDown ( const JPoint& pt, const JXMouseButton button, const JSize clickCount, const JXButtonStates& buttonStates, const JXKeyModifiers& modifiers ) { itsDragType = kInvalidDrag; if (!itsAllowRowResizingFlag) { return; } const JBoolean inDragRegion = InDragRegion(pt, &itsDragCell); if (inDragRegion && button == kJXLeftButton) { itsDragCellRect = GetCellRect(itsDragCell); if (modifiers.meta()) { itsDragType = kDragAllRows; } else { itsDragType = kDragOneRow; } JPainter* p = CreateDragOutsidePainter(); JRect defClipRect = p->GetDefaultClipRect(); JRect apG = GetApertureGlobal(); defClipRect.top = apG.top; defClipRect.bottom = apG.bottom; p->SetDefaultClipRect(defClipRect); const JRect enclAp = JXContainer::GlobalToLocal((GetEnclosure())->GetApertureGlobal()); p->Line(enclAp.left, pt.y, enclAp.right, pt.y); itsPrevPt = pt; } }
Atom GMMessageDragSource::GetDNDAction ( const JXContainer* target, const JXButtonStates& buttonStates, const JXKeyModifiers& modifiers ) { if (modifiers.control()) { return GetDNDManager()->GetDNDActionAskXAtom(); } else if (modifiers.meta()) { return GetDNDManager()->GetDNDActionCopyXAtom(); } else { return GetDNDManager()->GetDNDActionMoveXAtom(); } }
void CMArray2DTable::HandleMouseDown ( const JPoint& pt, const JXMouseButton button, const JSize clickCount, const JXButtonStates& buttonStates, const JXKeyModifiers& modifiers ) { JTableSelection& s = GetTableSelection(); JPoint cell; if (ScrollForWheel(button, modifiers)) { // work has been done } else if (!GetCell(pt, &cell)) { s.ClearSelection(); } else if (button == kJXLeftButton && modifiers.meta()) { if (!s.IsSelected(cell)) { SelectSingleCell(cell, kJFalse); } const JString expr = itsArrayDir->GetExpression(cell); itsCmdDir->DisplayExpression(expr); } else if (button == kJXLeftButton && clickCount == 2) { BeginEditing(cell); } else if (button == kJXLeftButton && clickCount == 1) { SelectSingleCell(cell, kJFalse); } }
void JXRowHeaderWidget::AdjustCursor ( const JPoint& pt, const JXKeyModifiers& modifiers ) { JPoint cell; const JBoolean inDragRegion = InDragRegion(pt, &cell); if (itsAllowRowResizingFlag && inDragRegion && modifiers.meta()) { DisplayCursor(itsDragAllLineCursor); } else if (itsAllowRowResizingFlag && inDragRegion) { DisplayCursor(itsDragLineCursor); } else { JXEditTable::AdjustCursor(pt, modifiers); } }
void JXFSBindingTable::HandleKeyPress ( const int key, const JXKeyModifiers& modifiers ) { JPoint cell; if (GetEditedCell(&cell) && cell.x == kPatternColumn && (key == kJTabKey || (modifiers.meta() && (key == kJRightArrow || key == '6')))) { if (EndEditing() && (GetTableSelection()).GetSingleSelectedCell(&cell)) { BeginEditing(JPoint(kCommandColumn, cell.y)); } } else { JXEditTable::HandleKeyPress(key, modifiers); } }
JBoolean JXEditTable::WantsInputFieldKey ( const int key, const JXKeyModifiers& modifiers ) const { return JI2B( key == kJReturnKey || key == kJTabKey || key == kJEscapeKey || (modifiers.meta() && (key == kJUpArrow || key == '8' || key == kJDownArrow || key == '2' || key == kJLeftArrow || key == '4' || key == kJRightArrow || key == '6')) || // JXScrollableWidget (!JXTEBase::WillUseWindowsHomeEnd() && (key == XK_Home || key == XK_KP_Home || key == XK_End || key == XK_KP_End)) || key == XK_Page_Up || key == XK_KP_Page_Up || key == XK_Page_Down || key == XK_KP_Page_Down); }
void CBStylerTableInput::HandleMouseDown ( const JPoint& pt, const JXMouseButton button, const JSize clickCount, const JXButtonStates& buttonStates, const JXKeyModifiers& modifiers ) { if ((button == kJXLeftButton && modifiers.meta()) || button == kJXRightButton) { JPoint cell; const JBoolean ok = itsStylerTable->GetEditedCell(&cell); assert( ok ); itsStylerTable->DisplayFontMenu(cell, this, pt, buttonStates, modifiers); } else { JXInputField::HandleMouseDown(pt, button, clickCount, buttonStates, modifiers); } }
void JXEditTable::HandleKeyPress ( const int key, const JXKeyModifiers& modifiers ) { const JBoolean shiftOn = modifiers.shift(); const JBoolean metaOn = modifiers.meta(); JXWindow* window = GetWindow(); if (key == kJReturnKey && metaOn) { EndEditing(); } else if (key == kJReturnKey && shiftOn) { ShiftEditing(0,-1); } else if (key == kJReturnKey) { ShiftEditing(0,1); } else if (key == kJTabKey && shiftOn) { ShiftEditing(-1,0); } else if (key == kJTabKey) { ShiftEditing(1,0); } else if (metaOn && (key == kJUpArrow || key == '8')) { ShiftEditing(0,-1); } else if (metaOn && (key == kJDownArrow || key == '2')) { ShiftEditing(0,1); } else if (metaOn && (key == kJLeftArrow || key == '4')) { ShiftEditing(-1,0); } else if (metaOn && (key == kJRightArrow || key == '6')) { ShiftEditing(1,0); } else if (key == kJEscapeKey) { CancelEditing(); } else { JXTable::HandleKeyPress(key, modifiers); } }
void TestWidget::HandleMouseDown ( const JPoint& pt, const JXMouseButton button, const JSize clickCount, const JXButtonStates& buttonStates, const JXKeyModifiers& modifiers ) { if (button == kJXLeftButton && clickCount == 1 && itsHomeRect.Contains(pt)) { JString dir; if (JGetHomeDirectory(&dir)) { JPtrArray<JString> list(JPtrArrayT::kForgetAll); list.Append(&dir); // Normally, you should use the other constructor and then // override JXWidget::GetSelectionData(). JXFileSelection* data = jnew JXFileSelection(GetDisplay(), list); assert( data != NULL ); BeginDND(pt, buttonStates, modifiers, data); } } else if (button == kJXLeftButton && clickCount == 1) { JPainter* p = CreateDragInsidePainter(); p->Rect(JRect(pt, pt)); } else if (button == kJXMiddleButton && clickCount == 1) { itsAnimButton->Place(pt.x, pt.y); } else if (button == kJXRightButton && clickCount == 1 && !modifiers.meta()) { JRect r = itsAnimButton->GetFrame(); if (pt.x > r.left && pt.y > r.top) { itsAnimButton->SetSize(pt.x-r.left, pt.y-r.top); } } else if (button == kJXRightButton && clickCount == 1 && modifiers.meta()) { if (itsSecretMenu->PopUp(this, pt, buttonStates, modifiers)) { return; } else { (JGetUserNotification())->ReportError("Unable to open secret menu!"); } } else if (ScrollForWheel(button, modifiers)) { // work has been done } else if ((clickCount == 2 && its2Rect.Contains(pt)) || (clickCount == 3 && its3Rect.Contains(pt))) { GetNewSize(); } itsStartPt = itsPrevPt = pt; }
JBoolean JX3DWidget::HandleRotationKeyPress ( const int key, const JXKeyModifiers& modifiers ) { if (modifiers.meta() && key == kJUpArrow) { return ZoomForWheel(kJXButton4, modifiers); } else if (modifiers.meta() && key == kJDownArrow) { return ZoomForWheel(kJXButton5, modifiers); } const JVector& o = itsCamera->GetAttentionPt(); JVector v = itsCamera->GetPosition() - o; const JFloat r = v.GetLength(); JFloat lat = asin(v.GetElement(3) / r); JFloat lon = atan2(v.GetElement(2), v.GetElement(1)); const JFloat delta = (modifiers.shift() ? kSmallDeltaAngle : (modifiers.control() ? kBigDeltaAngle : kDeltaAngle)); JBoolean moved = kJFalse; if (key == kJUpArrow) { lat += delta; moved = kJTrue; } else if (key == kJDownArrow) { lat -= delta; moved = kJTrue; } else if (key == kJLeftArrow) { lon += delta; moved = kJTrue; } else if (key == kJRightArrow) { lon -= delta; moved = kJTrue; } if (moved) { itsCamera->SetPosition(JVector(3, r * cos(lat) * cos(lon), r * cos(lat) * sin(lon), r * sin(lat))); Redraw(); // key repeats can delay Refresh() return kJTrue; } else { return kJFalse; } }
void CBSymbolTable::HandleKeyPress ( const int key, const JXKeyModifiers& modifiers ) { JPoint topSelCell; JTableSelection& s = GetTableSelection(); const JBoolean hadSelection = s.GetFirstSelectedCell(&topSelCell); if (key == ' ') { ClearSelection(); } else if (key == kJReturnKey) { DisplaySelectedSymbols(); if (modifiers.meta() && modifiers.control()) { (GetWindow())->Close(); return; } } else if (key == kJUpArrow || key == kJDownArrow) { itsKeyBuffer.Clear(); if (!hadSelection && key == kJUpArrow && GetRowCount() > 0) { SelectSingleEntry(GetRowCount()); } else { HandleSelectionKeyPress(key, modifiers); } } else if ((key == 'c' || key == 'C') && modifiers.meta() && !modifiers.shift()) { CopySelectedSymbolNames(); } else if (JXIsPrint(key) && !modifiers.control() && !modifiers.meta()) { itsKeyBuffer.AppendCharacter(key); JIndex index; if (itsSymbolList->ClosestMatch(itsKeyBuffer, *itsVisibleList, &index)) { JString saveBuffer = itsKeyBuffer; SelectSingleEntry(index); itsKeyBuffer = saveBuffer; } } else { JXTable::HandleKeyPress(key, modifiers); } }
void CBShellEditor::HandleKeyPress ( const int key, const JXKeyModifiers& modifiers ) { const JBoolean controlOn = modifiers.control(); const JBoolean metaOn = modifiers.meta(); const JBoolean shiftOn = modifiers.shift(); if ((key == kJLeftArrow && metaOn && !controlOn && !shiftOn) || (key == JXCtrl('A') && controlOn && !metaOn && !shiftOn)) { const JIndex index = GetInsertionIndex(); const JRunArray<Font>& styles = GetStyles(); if (index > 1 && styles.GetElement(index-1) == GetDefaultFont()) { JIndex runIndex, firstIndexInRun; const JBoolean ok = styles.FindRun(index-1, &runIndex, &firstIndexInRun); SetCaretLocation(firstIndexInRun); return; } } if (key == kJReturnKey) { SetCurrentFont(itsInsertFont); } else { SetCurrentFont(GetDefaultFont()); } JBoolean sentCmd = kJFalse; if (key == kJReturnKey && !modifiers.shift() && !HasSelection()) { JIndex index; JBoolean ok = GetCaretLocation(&index); assert( ok ); JString cmd; const JRunArray<Font>& styles = GetStyles(); if (index > 1 && styles.GetElement(index-1) == GetDefaultFont()) { JIndex runIndex, firstIndexInRun; ok = styles.FindRun(index-1, &runIndex, &firstIndexInRun); const JIndex endIndex = firstIndexInRun + styles.GetRunLength(runIndex); cmd = (GetText()).GetSubstring(firstIndexInRun, endIndex - 1); SetCaretLocation(endIndex); if (cmd.BeginsWith("man ")) { cmd.ReplaceSubstring(1, 4, "jcc --man "); } else if (cmd.BeginsWith("apropos ")) { cmd.ReplaceSubstring(1, 8, "jcc --apropos "); } else if (cmd.BeginsWith("vi ")) { cmd.ReplaceSubstring(1, 3, "jcc "); } else if (cmd.BeginsWith("less ") || cmd.BeginsWith("more ")) { cmd.ReplaceSubstring(1, 5, "jcc "); } else if (cmd == "more" || cmd == "less" || cmd == "vi") { cmd = "jcc"; } } cmd += "\n"; itsShellDoc->SendCommand(cmd); sentCmd = kJTrue; } CBTextEditor::HandleKeyPress(key, modifiers); if (sentCmd) { itsInsertIndex = GetInsertionIndex(); } }