void TextManip::DeleteCharacter (int count) { if (_dot != _mark) { DeleteSelection(); } else { DeleteText(count); } }
//================================================================================================================ void MenuEditorSystem::OnMouseDown(WPARAM btnState, int x, int y) { // Start a left button drag of an item if ((btnState & MK_LBUTTON) != 0) { if (dragStartX == -1) { dragStartX = x; dragStartY = y; } dragPrevX = x; dragPrevY = y; stampPressed = true; CalculateSelectedMousePosition(x, y); // Adds a new button to the menu from the selected button image in the button cache if in button // place mode AddButton(); // Selects a button so it can be moved, if it is moving then this will be skipped // so that the button can be placed back on the menu with a left click bool goingToMove = MoveButtonStart(); // If a button is being moved place the button at the clicked position if in button move mode if (!goingToMove) MoveButtonEnd(); // Selects a button so it can be cloned, if it is moving then this will be skipped // so that the button clone can be added to the menu with a left click bool goingToClone = CloneButtonStart(); // If a button is being moved place the button at the clicked position if in button clone mode if (!goingToClone) CloneButtonEnd(); // Selects a button on the menu and deletes it if in button delete mode DeleteButton(); // Selects the button to be resized if in button resize mode ResizeButtonStart(); // If applicable, Add a text if in text mode AddText(); // Selects a text so it can be moved, if it is moving then this will be skipped // so that the text can be placed back on the menu with a left click goingToMove = MoveTextStart(); // If a text is being moved place the text at the clicked position if in text move mode if (!goingToMove) MoveTextEnd(); // Selects a text so it can be cloned, if it is moving then this will be skipped // so that the text clone can be added to the menu with a left click goingToClone = CloneTextStart(); // If a text is being moved place the text at the clicked position if in text clone mode if (!goingToClone) CloneTextEnd(); // Selects a text on the menu and deletes it if in text delete mode DeleteText(); } }
//================================================================================================================ void HUDEditorSystem::OnMouseDown(WPARAM btnState, int x, int y) { // Start a left button drag of an item if ((btnState & MK_LBUTTON) != 0) { stampPressed = true; CalculateSelectedMousePosition(x, y); // Adds a new image to the hud from the selected image image in the image cache if in image // place mode AddImage(); // Selects a image so it can be moved, if it is moving then this will be skipped // so that the image can be placed back on the hud with a left click bool goingToMove = MoveImageStart(); // If a image is being moved place the image at the clicked position if in image move mode if (!goingToMove) MoveImageEnd(); // Selects a image so it can be cloned, if it is moving then this will be skipped // so that the image clone can be added to the hud with a left click bool goingToClone = CloneImageStart(); // If a image is being moved place the image at the clicked position if in image clone mode if (!goingToClone) CloneImageEnd(); // Selects a image on the hud and deletes it if in image delete mode DeleteImage(); // Selects the button to be resized if in button resize mode ResizeImageStart(); // If applicable, Add a text if in text mode AddText(); // Selects a text so it can be moved, if it is moving then this will be skipped // so that the text can be placed back on the hud with a left click goingToMove = MoveTextStart(); // If a text is being moved place the text at the clicked position if in text move mode if (!goingToMove) MoveTextEnd(); // Selects a text so it can be cloned, if it is moving then this will be skipped // so that the text clone can be added to the hud with a left click goingToClone = CloneTextStart(); // If a text is being moved place the text at the clicked position if in text clone mode if (!goingToClone) CloneTextEnd(); // Selects a text on the hud and deletes it if in text delete mode DeleteText(); } }
void FindTextView::_HexReformat(int32 oldCursor, int32& newCursor) { const char* text = Text(); int32 textLength = TextLength(); char* insert = (char*)malloc(textLength * 2); if (insert == NULL) return; newCursor = TextLength(); int32 out = 0; for (int32 i = 0; i < textLength; i++) { if (i == oldCursor) { // this is the end of the inserted text newCursor = out; } char c = text[i]; if (c >= 'A' && c <= 'F') c += 'a' - 'A'; if ((c >= 'a' && c <= 'f') || (c >= '0' && c <= '9')) insert[out++] = c; if ((out % 48) == 47) insert[out++] = '\n'; else if ((out % 3) == 2) insert[out++] = ' '; } insert[out] = '\0'; DeleteText(0, textLength); // InsertText() does not work here, as we need the text // to be reformatted as well (newlines, breaks, whatever). // IOW the BTextView class is not very nicely done. // BTextView::InsertText(insert, out, 0, NULL); fMode = kAsciiMode; Insert(0, insert, out); fMode = kHexMode; free(insert); }
void TextEditor::DeleteSelection () { if (mark != dot) { DeleteText(mark - dot); } }
//================================================================================================================ void MenuEditorSystem::OnMouseMove(WPARAM btnState, int x, int y) { int dX, dY, tdX, tdY; // Calculate movement delta from previous frame if (dragPrevX != -1) { dX = x - dragPrevX; dY = y - dragPrevY; tdX = x - dragStartX; tdY = y - dragStartY; } if (gridMode == GM_Snap) { XMFLOAT2 selToolPoint = SnapToGrid(x, y); m_StampNormal->TopLeftPosition() = XMFLOAT3(selToolPoint.x, selToolPoint.y, 0); m_StampHighlight->TopLeftPosition() = XMFLOAT3(selToolPoint.x, selToolPoint.y, 0); // Move a button display cover if in button mode UpdateDisplaySprite(selToolPoint.x, selToolPoint.y); // If a button or text is being moved then continue to move it MoveButton(selToolPoint.x, selToolPoint.y); MoveText(selToolPoint.x, selToolPoint.y); HighlightButton(selToolPoint.x, selToolPoint.y); HighlightText(selToolPoint.x, selToolPoint.y); } else { // Move a button display cover if in button mode UpdateDisplaySprite(x, y); // If a button or text is being moved then continue to move it MoveButton(x, y); MoveText(x, y); HighlightButton(x, y); HighlightText(x, y); } // Start a left button drag of an item if ((btnState & MK_LBUTTON) != 0) { CalculateSelectedMousePosition(x, y); stampPressed = true; // If applicable, Add a button AddButton(); // If applicable, Add a text AddText(); // Selects a button on the map and deletes it if in button delete mode DeleteButton(); // Selects a text on the map and deletes it if in text delete mode DeleteText(); } // Remember current mouse co-ordinates for next frame if (dragPrevX != -1) { dragPrevX = x; dragPrevY = y; } }
void TextManip::DeleteSelection () { if (_mark != _dot) { DeleteText(_mark - _dot); } }
//================================================================================================================ void HUDEditorSystem::OnMouseMove(WPARAM btnState, int x, int y) { if (gridMode == GM_Snap) { XMFLOAT2 selToolPoint = SnapToGrid(x, y); m_StampNormal->TopLeftPosition() = XMFLOAT3(selToolPoint.x, selToolPoint.y, 0); m_StampHighlight->TopLeftPosition() = XMFLOAT3(selToolPoint.x, selToolPoint.y, 0); // Move a image display cover if in image mode UpdateDisplaySprite(selToolPoint.x, selToolPoint.y); // If a image or text is being moved then continue to move it MoveImage(selToolPoint.x, selToolPoint.y); MoveText(selToolPoint.x, selToolPoint.y); HighlightImage(selToolPoint.x, selToolPoint.y); HighlightText(selToolPoint.x, selToolPoint.y); } else { // Move a image display cover if in image mode UpdateDisplaySprite(x, y); // If a image or text is being moved then continue to move it MoveImage(x, y); MoveText(x, y); HighlightImage(x, y); HighlightText(x, y); } // Start a left button drag of an item if ((btnState & MK_LBUTTON) != 0) { CalculateSelectedMousePosition(x, y); stampPressed = true; // If applicable, Add a image AddImage(); // If applicable, Add a text AddText(); // Selects a image on the map and deletes it if in image delete mode DeleteImage(); // Selects a text on the map and deletes it if in text delete mode DeleteText(); } // Move a button or text display cover /*if (editMode == ET_Button && (action == A_Place || action == A_Move)) { XMFLOAT2 selToolPoint = SnapToGrid(x, y); m_StampNormal->TopLeftPosition() = XMFLOAT3(selToolPoint.x, selToolPoint.y, 0); m_StampHighlight->TopLeftPosition() = XMFLOAT3(selToolPoint.x, selToolPoint.y, 0); }*/ }
BOOL Delete( LPCLASSDATA lpcd ) { /* * Read only? */ if ( ISREADONLY ) return TRUE; /* * Do we have a mark and * is it valid? */ if ( HasMark( lpcd )) { /* * Remove the text. */ DeleteText( lpcd, &lpcd->ptSelStart, &lpcd->ptSelEnd, TRUE ); /* * We _must_ have atleast one * empty line. */ if ( ArrayGetSize( lpcd->lpLines ) == 0 ) { if ( InsertLine( lpcd, NULL, 0, -1, TRUE ) == FALSE ) return FALSE; } /* * Hide the caret. */ DisplayCaret( lpcd, FALSE ); /* * Move to the start position. */ lpcd->ptCaretPos = lpcd->ptSelStart; /* * Update column position. */ lpcd->nLastColumnPos = GetCaretOffset( lpcd, lpcd->ptCaretPos.x ); /* * Invalidate marks. */ lpcd->ptSelStart.x = lpcd->ptSelStart.y = -1; lpcd->ptSelEnd.x = lpcd->ptSelEnd.y = -1; /* * Is the caret inside * the view? */ if ( CaretInView( lpcd ) == FALSE ) /* * No. Move the view to * make it visible. */ MakeCaretVisibleNoRedraw( lpcd ); /* * Re-render. */ InvalidateRect( lpcd->hWnd, NULL, FALSE ); /* * Setup scrollers. */ SetupHScroller( lpcd ); SetupVScroller( lpcd ); /* * We are modified. */ SetModified( lpcd, TRUE ); /* * Send status message. */ SendStatusMessage( lpcd ); /* * Show the caret. */ DisplayCaret( lpcd, TRUE ); } return TRUE; }
static int CreateText( Tcl_Interp *interp, /* Interpreter for error reporting. */ Tk_Canvas canvas, /* Canvas to hold new item. */ Tk_Item *itemPtr, /* Record to hold new item; header has been * initialized by caller. */ int objc, /* Number of arguments in objv. */ Tcl_Obj *const objv[]) /* Arguments describing rectangle. */ { TextItem *textPtr = (TextItem *) itemPtr; int i; if (objc == 0) { Tcl_Panic("canvas did not pass any coords"); } /* * Carry out initialization that is needed in order to clean up after * errors during the the remainder of this function. */ textPtr->textInfoPtr = Tk_CanvasGetTextInfo(canvas); textPtr->insertPos = 0; textPtr->anchor = TK_ANCHOR_CENTER; textPtr->tsoffset.flags = 0; textPtr->tsoffset.xoffset = 0; textPtr->tsoffset.yoffset = 0; textPtr->color = NULL; textPtr->activeColor = NULL; textPtr->disabledColor = NULL; textPtr->tkfont = NULL; textPtr->justify = TK_JUSTIFY_LEFT; textPtr->stipple = None; textPtr->activeStipple = None; textPtr->disabledStipple = None; textPtr->text = NULL; textPtr->width = 0; textPtr->underline = -1; textPtr->angle = 0.0; textPtr->numChars = 0; textPtr->numBytes = 0; textPtr->textLayout = NULL; textPtr->actualWidth = 0; textPtr->drawOrigin[0] = textPtr->drawOrigin[1] = 0.0; textPtr->gc = NULL; textPtr->selTextGC = NULL; textPtr->cursorOffGC = NULL; textPtr->sine = 0.0; textPtr->cosine = 1.0; /* * Process the arguments to fill in the item record. Only 1 (list) or 2 (x * y) coords are allowed. */ if (objc == 1) { i = 1; } else { const char *arg = Tcl_GetString(objv[1]); i = 2; if ((arg[0] == '-') && (arg[1] >= 'a') && (arg[1] <= 'z')) { i = 1; } } if ((TextCoords(interp, canvas, itemPtr, i, objv) != TCL_OK)) { goto error; } if (ConfigureText(interp, canvas, itemPtr, objc-i, objv+i, 0) == TCL_OK) { return TCL_OK; } error: DeleteText(canvas, itemPtr, Tk_Display(Tk_CanvasTkwin(canvas))); return TCL_ERROR; }