/// <summary> /// Automatski pravi value read zonu na mestu gde je stao kursor /// </summary> /// <returns></returns> protected selectZone autoValueReadZone() { var sr = selectToCorner(textCursorZoneCorner.Right); selectZone output = new selectZone(x, y, sr.x, 1); return(output); }
// ------------ /// <summary> /// Pravi selectZone na osnovu sadrzaja trenutne linije. Trazi [ i ] kao granicnike zone. Ako ih ima vise, upotrebice prvi par. /// </summary> /// <param name="zoneHeight">Height of the zone.</param> /// <param name="zoneWidth">Width of the zone.</param> /// <param name="option">The option.</param> /// <returns> /// selectZone objekat koji treba upotrebiti kao inputReadZone ili za nesto drugo /// </returns> /// <remarks> /// Ako u trenutnoj liniji: /// - ima vise [ ] parova: upotrebice prvi /// - je sve prazno ili popunjeno razmacima: upotrebice celu liniju kao zonu /// - ako je od x-a do desnog inner x-a prazno /// </remarks> public selectZone getSelectZone(Int32 zoneHeight = -1, Int32 zoneWidth = -1, params selectZoneOption[] option) { var optionList = option.ToList(); selectZone output = new selectZone(); output.y = y; if (zoneHeight == -1) { zoneHeight = 1; output.height = zoneHeight; } selectZoneOption takeOption = option.takeFirstFromList(selectZoneOption.takeDefinedWidth, selectZoneOption.takeFromPositionToRightEnd, selectZoneOption.takeBracetDefinedArea, selectZoneOption.takeCompleteLine); if (takeOption == selectZoneOption.takeDefinedWidth) { if (zoneWidth == -1) { takeOption = selectZoneOption.takeFromPositionToRightEnd; } } if (takeOption == selectZoneOption.takeBracetDefinedArea) { //if (target is ISupportsCursorWriteAndSelect) //{ // ISupportsCursorWriteAndSelect target2 = target as ISupportsCursorWriteAndSelect; // String lastLine = target2.select(this, -1, true); // Int32 si = lastLine.IndexOf("["); // if (si == -1) // { // prevLine(); // lastLine = target2.select(this, -1, true); // if (lastLine.IndexOf("[") == -1) // { // nextLine(); // } else // { // si = lastLine.IndexOf("["); // } // } // Int32 ln = lastLine.IndexOf("]") - si; // if (ln < 0) // { // takeOption = selectZoneOption.takeFromPositionToRightEnd; // } else // { // output.y = y; // output.x = si; // output.weight = ln; // } //} } switch (takeOption) { case selectZoneOption.takeFromPositionToRightEnd: output.x = x; output.width = selectToCorner(textCursorZoneCorner.Right).x; break; case selectZoneOption.takeCompleteLine: output.x = frame.innerLeftPosition; output.width = frame.innerWidth; break; } var moveOption = option.takeFirstFromList(selectZoneOption.none, selectZoneOption.moveCursorToBottomEndOfZone, selectZoneOption.moveCursorToBeginningOfZone); switch (moveOption) { case selectZoneOption.moveCursorToBeginningOfZone: moveLineTo(output.y); moveXTo(output.x); break; case selectZoneOption.moveCursorToBottomEndOfZone: moveLineTo(output.y + output.height); break; } return(output); }