protected override void Render(Drawable window, Widget widget, Gdk.Rectangle backgroundArea, Gdk.Rectangle cellArea, Gdk.Rectangle exposeArea, CellRendererState flags) { Gdk.GC gc = widget.Style.TextGC(StateType.Normal); var rendererHelper = new RendererHelper(gc, window, widget, exposeArea); var MARGIN = 40; var STEP = exposeArea.Width / 4; var x = MARGIN; rendererHelper.Label( LogEntryItem.Date, x, 20, Constants.Fonts.LogText, STEP, Constants.Colors.Text ); x += STEP; rendererHelper.Image(icons[LogEntryItem.Direction == DirectionEnum.Recieved ? 0 : 1], x + 2, 22); rendererHelper.Label( LogEntryItem.Amount, x + 30, 20, Constants.Fonts.LogText, STEP, LogEntryItem.Direction == DirectionEnum.Recieved ? Constants.Colors.LogReceived : Constants.Colors.LogSent ); x += STEP; rendererHelper.Label( LogEntryItem.Id, x, 20, Constants.Fonts.LogText, 157, Constants.Colors.Text ); x += STEP; rendererHelper.Label( LogEntryItem.Balance, x, 20, Constants.Fonts.LogText, STEP, Constants.Colors.TextBlue ); }
protected override void Render(Drawable window, Widget widget, Gdk.Rectangle backgroundArea, Gdk.Rectangle cellArea, Gdk.Rectangle exposeArea, CellRendererState flags) { Gdk.GC gc = widget.Style.TextGC(StateType.Normal); // hey, what's this? another way to set color. /*Gdk.PangoRenderer renderer = Gdk.PangoRenderer.GetDefault(gc.Screen); * renderer.Drawable = drawingArea.GdkWindow; * renderer.Gc = drawingArea.Style.BlackGC; * renderer.SetOverrideColor(RenderPart.Foreground, new Gdk.Color(200, 30, 30)); * layout.Alignment = Pango.Alignment.Center; * renderer.DrawLayout(layout, 0, 0); * * renderer.SetOverrideColor(RenderPart.Foreground, Gdk.Color.Zero); * renderer.Drawable = null; * renderer.Gc = null; */ //gc.RgbFgColor = Constants.Colors.Text.Gdk; //gc.RgbBgColor = new Gdk.Color (0, 0, 0); RendererHelper rendererHelper = new RendererHelper(gc, window, widget, exposeArea); rendererHelper.Image(icons[TransactionItem.Direction == DirectionEnum.Recieved ? 0 : 1], 10, 10); TextRenderer textRenderer = new TextRenderer(widget); Cairo.Context context = Gdk.CairoHelper.Create(window); int TEXT_PADDING = 12; int TEXT_PADDING_LEFT = 70; textRenderer.RenderLayoutText(context, TransactionItem.Date.TimeAgo(), 0, TEXT_PADDING + exposeArea.Y, exposeArea.Width, 20, Constants.Colors.Text, Pango.Alignment.Right, Pango.EllipsizeMode.End, -20); textRenderer.RenderLayoutText(context, GetDescrption(), TEXT_PADDING_LEFT, TEXT_PADDING + exposeArea.Y, exposeArea.Width, 20, Constants.Colors.Text, Pango.Alignment.Left, Pango.EllipsizeMode.End); int EXPANTION_SPACE = 50; int ROW_SPACE = 30; int ROW_SPACE2 = 50; int TEXT_PADDING_RIGHT = 20; int HEADER_SIZE = 16; int TEXT_SIZE = 14; if (Expanded) { textRenderer.RenderLayoutText(context, "DATE", TEXT_PADDING_LEFT, EXPANTION_SPACE + TEXT_PADDING + exposeArea.Y, exposeArea.Width, HEADER_SIZE, Constants.Colors.SubText, Pango.Alignment.Left, Pango.EllipsizeMode.End); textRenderer.RenderLayoutText(context, "TO", exposeArea.Width / 2, EXPANTION_SPACE + TEXT_PADDING + exposeArea.Y, exposeArea.Width, HEADER_SIZE, Constants.Colors.SubText, Pango.Alignment.Left, Pango.EllipsizeMode.End); //http://www.csharp-examples.net/string-format-datetime/ textRenderer.RenderLayoutText(context, TransactionItem.Date.ToLongDateString(), TEXT_PADDING_LEFT, EXPANTION_SPACE + ROW_SPACE + TEXT_PADDING + exposeArea.Y, exposeArea.Width, TEXT_SIZE, Constants.Colors.Text, Pango.Alignment.Left, Pango.EllipsizeMode.End); textRenderer.RenderLayoutText(context, TransactionItem.To, exposeArea.Width / 2, EXPANTION_SPACE + ROW_SPACE + TEXT_PADDING + exposeArea.Y, exposeArea.Width, TEXT_SIZE, Constants.Colors.Text, Pango.Alignment.Left, Pango.EllipsizeMode.End); textRenderer.RenderLayoutText(context, "TRANSACTION ID", TEXT_PADDING_LEFT, EXPANTION_SPACE + ROW_SPACE + ROW_SPACE2 + TEXT_PADDING + exposeArea.Y, exposeArea.Width, HEADER_SIZE, Constants.Colors.SubText, Pango.Alignment.Left, Pango.EllipsizeMode.End); textRenderer.RenderLayoutText(context, "FEE", exposeArea.Width / 2, EXPANTION_SPACE + ROW_SPACE + ROW_SPACE2 + TEXT_PADDING + exposeArea.Y, exposeArea.Width, HEADER_SIZE, Constants.Colors.SubText, Pango.Alignment.Left, Pango.EllipsizeMode.End); textRenderer.RenderLayoutText(context, TransactionItem.Id, TEXT_PADDING_LEFT, EXPANTION_SPACE + ROW_SPACE * 2 + ROW_SPACE2 + TEXT_PADDING + exposeArea.Y, exposeArea.Width / 2 - TEXT_PADDING_LEFT - TEXT_PADDING_RIGHT, TEXT_SIZE, Constants.Colors.Text, Pango.Alignment.Left, Pango.EllipsizeMode.End); textRenderer.RenderLayoutText(context, TransactionItem.Fee.ToString() + " " + TransactionItem.Asset, exposeArea.Width / 2, EXPANTION_SPACE + ROW_SPACE * 2 + ROW_SPACE2 + TEXT_PADDING + exposeArea.Y, exposeArea.Width, TEXT_SIZE, Constants.Colors.Text, Pango.Alignment.Left, Pango.EllipsizeMode.End); } context.Dispose(); }