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 JXInputField::HandleKeyPress ( const int key, const JXKeyModifiers& modifiers ) { if (itsTable != NULL && itsTable->WantsInputFieldKey(key, modifiers)) { itsTable->HandleKeyPress(key, modifiers); return; } else if (itsTable != NULL) { JPoint cell; const JBoolean ok = itsTable->GetEditedCell(&cell); assert( ok ); itsTable->TableScrollToCell(cell); } if (key == JXCtrl('K') && modifiers.control() && HasSelection()) { Cut(); } else if (key == JXCtrl('K') && modifiers.control()) { JIndex i; const JBoolean ok = GetCaretLocation(&i); assert( ok ); SetSelection(i, GetTextLength()); Cut(); } else { JXTEBase::HandleKeyPress(key, 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 JXTable::BeginSelectionDrag ( const JPoint& cell, const JXMouseButton button, const JXKeyModifiers& modifiers ) { if (button != kJXMiddleButton) { const JBoolean extendSelection = JI2B((button == kJXLeftButton && modifiers.shift()) || button == kJXRightButton); const JBoolean selectDiscont = modifiers.control(); JTable::BeginSelectionDrag(cell, extendSelection, selectDiscont); } }
void JXTable::BeginSelectionDrag ( const JPoint& cell, const JXMouseButton button, const JXKeyModifiers& modifiers ) { if (button != kJXMiddleButton) { const JBoolean extendSelection = JI2B((button == kJXLeftButton && modifiers.shift()) || button == kJXRightButton); const JBoolean selectDiscont = // GetDisplay()->IsOSX() ? modifiers.meta() : // meta-dbl-click used in too many places modifiers.control(); JTable::BeginSelectionDrag(cell, extendSelection, selectDiscont); } }
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(); } }
JBoolean JX3DWidget::ZoomForWheel ( const JXMouseButton button, const JXKeyModifiers& modifiers ) { JCoordinate delta; if (button == kJXButton4) { delta = -1; } else if (button == kJXButton5) { delta = +1; } else { return kJFalse; } const JVector& o = itsCamera->GetAttentionPt(); const JVector& p = itsCamera->GetPosition(); JFloat scale = (modifiers.shift() ? kSmallZoomScale : (modifiers.control() ? kBigZoomScale : kZoomScale)); #ifdef _J_OSX scale /= 10.0; #endif itsCamera->SetPosition(o + (p - o) * (1.0 + delta * scale)); return kJTrue; }
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(); } }
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); } }
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 SVNListBase::HandleMouseDown ( const JPoint& pt, const JXMouseButton button, const JSize clickCount, const JXButtonStates& buttonStates, const JXKeyModifiers& modifiers ) { JTableSelection& s = GetTableSelection(); itsIsDraggingFlag = kJFalse; itsSavedSelection->CleanOut(); JPoint cell; if (button > kJXRightButton) { ScrollForWheel(button, modifiers); } else if (!GetCell(pt, &cell)) { s.ClearSelection(); } else if (button == kJXLeftButton && modifiers.shift()) { itsIsDraggingFlag = s.ExtendSelection(cell); } else if (button == kJXLeftButton && modifiers.control()) { s.InvertCell(cell); if (s.IsSelected(cell)) { s.SetBoat(cell); s.SetAnchor(cell); } else { s.ClearBoat(); s.ClearAnchor(); } } else if (button == kJXLeftButton) { s.ClearSelection(); s.SetBoat(cell); s.SetAnchor(cell); s.SelectCell(cell); itsIsDraggingFlag = kJTrue; if (clickCount == 2) { OpenSelectedItems(); } } else if (button == kJXRightButton && clickCount == 1) { if (CreateContextMenu()) { if (!s.IsSelected(cell)) { s.ClearSelection(); s.SetBoat(cell); s.SetAnchor(cell); s.SelectCell(cell); } itsContextMenu->PopUp(this, pt, buttonStates, modifiers); } } }