/// <summary> /// </summary> /// <param name="item"></param> /// <param name="GuiColumnIdx"></param> /// <returns></returns> internal LgList getColumnChildren(int GuiColumnIdx, ColumnsManager columnsManager) { var tableChildren = Controls; if (tableChildren == null) { return(null); } else { if (GuiColumnIdx == TableControl.TAIL_COLUMN_IDX) { return(null); } int column = columnsManager.getMagicColumnIndex(GuiColumnIdx); if (column == -1) { return(null); } else { return(tableChildren[column]); } } }
/// <summary> /// paint table cell background /// </summary> public void PaintCellBackground(TableChildRendererBase tableChildRenderer, CellData cellData, Graphics g, TableItem item, bool isRowMarked, bool isSelected, ColumnsManager columnsManager) { using (var cellRegion = new Region(cellData.Rect)) { g.Clip = GetClippingArea(cellRegion, g); //The paining of table rows is done from TableControl.OnPaint(). We should paint selected and marked rows from here. if (isRowMarked) { if (tableChildRenderer.RowHighlitingStyle == RowHighlightType.BackgroundControls || tableChildRenderer.RowHighlitingStyle == RowHighlightType.Background) { Color color = tableChildRenderer.HightlightBgColor; //paint cell background Brush brush = SolidBrushCache.GetInstance().Get(Utils.GetNearestColor(g, color)); g.FillRectangle(brush, cellData.Rect); } } } }
/// <summary> /// paint table row /// </summary> public abstract void PaintRow(TableChildRendererBase tableChildRenderer, TablePaintRowArgs ea, bool isRowMarked, bool isSelected, ColumnsManager columnsManager);
/// <summary> /// Gets list of column childrens /// </summary> /// <param name="item"></param> /// <param name="column"></param> /// <returns></returns> public virtual LgList GetColumnChildren(TableItem item, int column, ColumnsManager columnsManager) { return(item.getColumnChildren(column, columnsManager)); }
/// <summary> /// Paint table controls for row /// </summary> /// <param name="tableRenderer"></param> /// <param name="g"></param> /// <param name="item"></param> /// <param name="isRowMarked"></param> /// <param name="isSelected"></param> /// <param name="columnsManager"></param> private void PaintRowControls(TableChildRendererBase tableChildRenderer, Graphics g, TableItem item, bool isRowMarked, bool isSelected, ColumnsManager columnsManager) { if (item != null) { item.ZOrderSortedControls = item.ZOrderSortedControls != null && item.ZOrderSortedControls.Count > 0 ? item.ZOrderSortedControls : item.GetAllColumnsControlsByZOrder(); if (item.ZOrderSortedControls != null) { foreach (PlacementDrivenLogicalControl lg in item.ZOrderSortedControls) { tableChildRenderer.PaintControl(lg, tableChildRenderer.GetCellRect(lg), g, isRowMarked, isSelected, columnsManager); } } } }
public override void PaintRow(TableChildRendererBase tableChildRenderer, TablePaintRowArgs ea, bool isRowMarked, bool isSelected, ColumnsManager columnsManager) { Region orgRegion = ea.Graphics.Clip; Region tableRegion = tableControl.isHscrollShown() ? orgRegion : GetTableColumnsRegion(); for (int i = ea.CellsData.Count - 1; i >= 0; i--) { PaintCellBackground(tableChildRenderer, ea.CellsData[i], ea.Graphics, ea.Item, isRowMarked, isSelected, columnsManager); } ea.Graphics.Clip = tableRegion; PaintRowControls(tableChildRenderer, ea.Graphics, ea.Item, isRowMarked, isSelected, columnsManager); ea.Graphics.Clip = orgRegion; tableRegion.Dispose(); }
public override LgList GetColumnChildren(TableItem item, int column, ColumnsManager columnsManager) { return(item.GetAllColumnsControlsByZOrder()); }
protected virtual Color GetColumnBackgroundColor(PlacementDrivenLogicalControl logicalControl, ColumnsManager columnsManager) { return(Color.Empty); }
/// <summary> compute control background color /// </summary> /// <param name="child">table child</param> /// <param name="control">editor control, can be null for painting control without editor</param> /// <param name="isRowMarked">is row marked</param> /// <param name="recievingFocus">TODO</param> /// <param name="guiRow">gui row number</param> /// <returns></returns> public Color computeControlBgColor(PlacementDrivenLogicalControl child, ColumnsManager columnsManager, Control control, bool isRowMarked, bool isFocusedControl, int guiRow, bool ownerDraw, out bool keepColor) { Color bgColor; keepColor = false; //QCR #320284. PushButton is a special case. For all other controls, alternate and //highlight (if RowHighlightStyle=BG & Controls) has precedence over control's //own color. But for PushButtons, it is the other way round. if (IsButtonControl(child)) { return(GetBackgroundColor(child, ownerDraw)); } if (isRowMarked) { if (RowHighlitingStyle == RowHighlightType.BackgroundControls) { if (control != null) { // if the control is in the selected row // check if controls is in focus, we do not use display.getfocusedContol, cause sometimes // it takes time for display.getfocusedContol() to be set and wrong results are recieved //bool isFocusedControl = false;// TODO: ((getFocusedControl(table.getDisplay()) == control) || recievingFocus); // if control is modifable and is focused take the BG color of the control if ((IsControlModifiable(child) && isFocusedControl) || IsComboControl(child)) { bgColor = GetBackgroundColor(child, ownerDraw); keepColor = true; } else { bgColor = HightlightBgColor; } } else { bgColor = HightlightBgColor; } } else if (_tableControl.HasAlternateColor && !(IsControlModifiable(child) && isFocusedControl)) { bgColor = _tableControl.GetColorbyRow(guiRow); } else { bgColor = GetBackgroundColor(child, ownerDraw); keepColor = true; } } else if (_tableControl.HasAlternateColor) { bgColor = _tableControl.GetColorbyRow(guiRow); } else { bgColor = GetBackgroundColor(child, ownerDraw); if (_tableControl.ColorBy == TableColorBy.Column && bgColor == null) { //transparent control, should have column color bgColor = GetColumnBackgroundColor(child, columnsManager); } else { keepColor = true; } } return(bgColor); }
/// <summary> /// Paints logical control /// </summary> /// <param name="lg"></param> /// <param name="cellRect"></param> /// <param name="g"></param> /// <param name="isRowMarked"></param> /// <param name="isSelected"></param> /// <param name="columnsManager"></param> public virtual void PaintControl(PlacementDrivenLogicalControl lg, Rectangle cellRect, Graphics g, bool isRowMarked, bool isSelected, ColumnsManager columnsManager) { }
/// <summary> /// Paint table cells controls /// </summary> /// <param name="tableRenderer"></param> /// <param name="item"></param> /// <param name="g"></param> /// <param name="cellData"></param> /// <param name="columnsManager"></param> /// <param name="isRowMarked"></param> /// <param name="isSelected"></param> private void PaintCellControls(TableChildRendererBase tableChildRenderer, TableItem item, Graphics g, CellData cellData, ColumnsManager columnsManager, bool isRowMarked, bool isSelected) { //paint cell's controls if (item != null) { LgList tableChildren = getColumnChildren(item, cellData.ColumnIdx, columnsManager); if (tableChildren != null) { foreach (PlacementDrivenLogicalControl lg in tableChildren) { tableChildRenderer.PaintControl(lg, cellData.Rect, g, isRowMarked, isSelected, columnsManager); } } } }
public override void PaintRow(TableChildRendererBase tableChildRenderer, TablePaintRowArgs ea, bool isRowMarked, bool isSelected, ColumnsManager columnsManager) { Region orgRegion = ea.Graphics.Clip; for (int i = ea.CellsData.Count - 1; i >= 0; i--) { PaintCellBackground(tableChildRenderer, ea.CellsData[i], ea.Graphics, ea.Item, isRowMarked, isSelected, columnsManager); PaintCellControls(tableChildRenderer, ea.Item, ea.Graphics, ea.CellsData[i], columnsManager, isRowMarked, isSelected); } ea.Graphics.Clip = orgRegion; }