示例#1
0
            protected override void Render(Gdk.Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags)
            {
                using (Cairo.Context cr = Gdk.CairoHelper.Create(window)) {
                    cr.LineWidth = 2.0;
                    double center_x = cell_area.X + Math.Round((double)(cell_area.Width / 2d));
                    double center_y = cell_area.Y + Math.Round((double)(cell_area.Height / 2d));
                    cr.Arc(center_x, center_y, 5, 0, 2 * Math.PI);
                    var state = StateType.Normal;
                    if (!base.Sensitive)
                    {
                        state = StateType.Insensitive;
                    }
                    else if (flags.HasFlag(CellRendererState.Selected))
                    {
                        if (widget.HasFocus)
                        {
                            state = StateType.Selected;
                        }
                        else
                        {
                            state = StateType.Active;
                        }
                    }
                    else if (flags.HasFlag(CellRendererState.Prelit))
                    {
                        state = StateType.Prelight;
                    }
                    else if (widget.State == StateType.Insensitive)
                    {
                        state = StateType.Insensitive;
                    }

                    cr.SetSourceColor(widget.Style.Text(state).ToCairoColor());
                    cr.Stroke();
                    if (!FirstNode)
                    {
                        cr.MoveTo(center_x, cell_area.Y - 2);
                        cr.LineTo(center_x, center_y - 5);
                        cr.Stroke();
                    }

                    if (!LastNode)
                    {
                        cr.MoveTo(center_x, cell_area.Y + cell_area.Height + 2);
                        cr.LineTo(center_x, center_y + 5);
                        cr.Stroke();
                    }
                }
            }
 string GetPackageSourceErrorMarkup(CellRendererState flags = CellRendererState.Focused)
 {
     return(MarkupString.Format(
                "<span foreground='{0}'>{1}</span>",
                Ide.Gui.Styles.ColorGetHex(flags.HasFlag(CellRendererState.Selected) ? Styles.PackageSourceErrorSelectedTextColor : Styles.PackageSourceErrorTextColor),
                PackageSourceViewModel.ValidationFailureMessage));
 }
示例#3
0
        protected override void Render(Gdk.Drawable window, Widget widget, Gdk.Rectangle backgroundArea,
                                       Gdk.Rectangle cellArea, Gdk.Rectangle exposeArea, CellRendererState flags)
        {
            IDrawingToolkit tk = App.Current.DrawingToolkit;

            using (IContext context = new CairoContext(window)) {
                cellWidth  = cellArea.Width;
                cellHeight = cellArea.Height;

                Point pos = new Point(cellArea.X + backgroundArea.Width / 2 - BUTTON_WIDTH / 2,
                                      cellArea.Y + Sizes.FilterTreeViewOnlyTopOffset);

                Point imagePos = new Point(pos.X + SPACING, pos.Y + Sizes.FilterTreeViewOnlyTopOffset);

                //Get the offset to properly calculate if needs tooltip or redraw
                offsetX = pos.X - backgroundArea.X;
                offsetY = pos.Y - backgroundArea.Y;

                tk.Context = context;
                tk.Begin();
                tk.StrokeColor = App.Current.Style.ThemeBase;
                tk.FillColor   = Color.Transparent;
                if (flags.HasFlag(CellRendererState.Prelit) && cursor.IsInsideArea(pos, BUTTON_WIDTH, BUTTON_HEIGHT))
                {
                    tk.StrokeColor = App.Current.Style.ColorPrimary;
                    tk.LineWidth   = LINE_WIDTH;
                }

                tk.DrawRectangle(pos, BUTTON_WIDTH, BUTTON_HEIGHT);
                tk.DrawImage(imagePos, BUTTON_WIDTH - (SPACING * 2), BUTTON_HEIGHT - (Sizes.FilterTreeViewOnlyTopOffset * 2), Icon, ScaleMode.AspectFit);
                tk.End();
                tk.Context = null;
            }
        }
        void SetupLayout(Widget widget, CellRendererState flags = 0)
        {
            if (layout == null || layout.Context != widget.PangoContext)
            {
                if (layout != null)
                {
                    layout.Dispose();
                }
                layout           = new Pango.Layout(widget.PangoContext);
                layout.Ellipsize = Ellipsize;
            }

            string newmarkup = TextMarkup;

            if (!string.IsNullOrEmpty(SecondaryTextMarkup))
            {
                if (Platform.IsMac && flags.HasFlag(CellRendererState.Selected))
                {
                    newmarkup += "\n<span foreground='" + Gui.Styles.SecondarySelectionTextColor.ToHexString(false) + "'><small>" + SecondaryTextMarkup + "</small></span>";
                }
                else
                {
                    newmarkup += "\n<span foreground='" + Gui.Styles.SecondaryTextColor.ToHexString(false) + "'><small>" + SecondaryTextMarkup + "</small></span>";
                }
            }

            layout.SetMarkup(newmarkup);
        }
 string GetPackageSourceDescriptionMarkup(CellRendererState flags = CellRendererState.Focused)
 {
     return(MarkupString.Format(
                "<b>{0}</b>\n<span foreground='{2}'>{1}</span>",
                PackageSourceViewModel.Name,
                PackageSourceViewModel.Source,
                Ide.Gui.Styles.ColorGetHex(flags.HasFlag(CellRendererState.Selected) ? Styles.PackageSourceUrlSelectedTextColor : Styles.PackageSourceUrlTextColor)));
 }
		StateType GetState (Widget widget, CellRendererState flags)
		{
			if (flags.HasFlag (CellRendererState.Selected)) {
				if (widget.IsFocus) {
					return StateType.Selected;
				}
				return StateType.Active;
			}
			return StateType.Normal;
		}
 StateType GetState(Widget widget, CellRendererState flags)
 {
     if (flags.HasFlag(CellRendererState.Selected))
     {
         if (widget.IsFocus)
         {
             return(StateType.Selected);
         }
         return(StateType.Active);
     }
     return(StateType.Normal);
 }
		protected override void Render (Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags)
		{
			try{
				Gdk.Rectangle text_area1 = new Gdk.Rectangle();
			Gdk.Rectangle text_area2 = new Gdk.Rectangle();
			Gdk.Rectangle text_area3 = new Gdk.Rectangle();
				text_area1.Y= cell_area.Y;
				text_area2.Y= cell_area.Y+33;

				text_area3.X = cell_area.Width-20;
				text_area3.Y= cell_area.Y+33;
				text_area3.Width = 75;

				Pango.Layout text_l1 = new Pango.Layout(widget.PangoContext);
				text_l1.FontDescription = Pango.FontDescription.FromString ("Meiryo,Arial 10.5");
				text_l1.SetText(text1);

				Pango.Layout text_l2 = new Pango.Layout(widget.PangoContext);
				text_l2.FontDescription = Pango.FontDescription.FromString ("Meiryo,MS Gothic,Arial 8");
				text_l2.SetText(text2);
				text_l2.Alignment = Pango.Alignment.Right;


				Pango.Layout text_l3 = new Pango.Layout(widget.PangoContext);
				text_l3.Width = Pango.Units.FromPixels(text_area3.Width);
				text_l3.FontDescription = Pango.FontDescription.FromString ("Meiryo,MS Gothic,Arial 8");
				text_l3.Alignment = Pango.Alignment.Right;
				text_l3.SetText(text3);
				text_l2.Width = Pango.Units.FromPixels(cell_area.Width-text_l3.Text.Length*8-13);

				StateType state = flags.HasFlag(CellRendererState.Selected) ?
				widget.IsFocus ? StateType.Selected : StateType.Active : StateType.Normal;
				text_l3.SetMarkup("<span color=" + (char)34 + "grey" + (char)34 + ">" + text_l3.Text + "</span>");;
				window.DrawLayout(widget.Style.TextGC(state), 55, text_area1.Y, text_l1);
				window.DrawLayout(widget.Style.TextGC(state), 55, text_area2.Y, text_l2);
				window.DrawLayout(widget.Style.TextGC(state), text_area3.X, text_area3.Y, text_l3);

				text_l1.Dispose ();
				text_l2.Dispose ();
				text_l3.Dispose ();

			}catch(Exception e){
				Console.WriteLine (e);
			}

		}
示例#9
0
        protected override void Render(Gdk.Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags)
        {
            base.Render (window, widget, background_area, cell_area, expose_area, flags);
            int xPos = cell_area.X;
            if(this.Pixbuf != null){
                window.DrawPixbuf(widget.Style.MidGC( StateType.Normal), this.Pixbuf, 0, 0, xPos + 1, cell_area.Y + 1, 16, 16, Gdk.RgbDither.Normal, 0, 0);
                xPos += 20;
            }
            using (var layout = new Pango.Layout(widget.PangoContext)) {
                layout.Alignment = Pango.Alignment.Left;
                layout.SetText(this.Text ?? "");

                StateType state = flags.HasFlag(CellRendererState.Selected) ?
                    widget.IsFocus ? StateType.Selected : StateType.Active : StateType.Normal;

                window.DrawLayout(widget.Style.TextGC(state), xPos, cell_area.Y + 2, layout);
            }
        }
示例#10
0
        protected override void Render(Gdk.Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags)
        {
            base.Render(window, widget, background_area, cell_area, expose_area, flags);
            int xPos = cell_area.X;

            if (this.Pixbuf != null)
            {
                window.DrawPixbuf(widget.Style.MidGC(StateType.Normal), this.Pixbuf, 0, 0, xPos + 1, cell_area.Y + 1, 16, 16, Gdk.RgbDither.Normal, 0, 0);
                xPos += 20;
            }
            using (var layout = new Pango.Layout(widget.PangoContext)) {
                layout.Alignment = Pango.Alignment.Left;
                layout.SetText(this.Text ?? "");

                StateType state = flags.HasFlag(CellRendererState.Selected) ?
                                  widget.IsFocus ? StateType.Selected : StateType.Active : StateType.Normal;

                window.DrawLayout(widget.Style.TextGC(state), xPos, cell_area.Y + 2, layout);
            }
        }
示例#11
0
			protected override void Render (Gdk.Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags)
			{
				using (Cairo.Context cr = Gdk.CairoHelper.Create (window)) {
					cr.LineWidth = 2.0;
					double center_x = cell_area.X + Math.Round ((double) (cell_area.Width / 2d));
					double center_y = cell_area.Y + Math.Round ((double) (cell_area.Height / 2d));
					cr.Arc (center_x, center_y, 5, 0, 2 * Math.PI);
					var state = StateType.Normal;
					if (!base.Sensitive)
						state = StateType.Insensitive;
					else if (flags.HasFlag (CellRendererState.Selected)) {
						if (widget.HasFocus)
							state = StateType.Selected;
						else
							state = StateType.Active;
					}
					else if (flags.HasFlag (CellRendererState.Prelit))
						state = StateType.Prelight;
					else if (widget.State == StateType.Insensitive)
						state = StateType.Insensitive;

					cr.SetSourceColor (widget.Style.Text (state).ToCairoColor ());
					cr.Stroke ();
					if (!FirstNode) {
						cr.MoveTo (center_x, cell_area.Y - 2);
						cr.LineTo (center_x, center_y - 5);
						cr.Stroke ();
					}
					
					if (!LastNode) {
						cr.MoveTo (center_x, cell_area.Y + cell_area.Height + 2);
						cr.LineTo (center_x, center_y + 5);
						cr.Stroke ();
					}
				}
			}
示例#12
0
        protected override void Render(Gdk.Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags)
        {
            m_Tree = widget as TreeView;
            m_TextXOffset = 0;

            Gdk.Rectangle pix_rect = Gdk.Rectangle.Zero;
            bool isSelected = flags.HasFlag(CellRendererState.Selected);
            m_FontDesc = widget.PangoContext.FontDescription;

            this.GetSize (widget, ref cell_area, out pix_rect.X, out pix_rect.Y, out pix_rect.Width, out pix_rect.Height);

            // Take care of padding
            pix_rect.X += cell_area.X + (int)this.Xpad;
            pix_rect.Y += cell_area.Y + (int)this.Ypad;
            // Remove left, right, top and buttom borders which were added to the returned width
            pix_rect.Width -= (int)this.Xpad * 2;
            pix_rect.Height -= (int)this.Ypad * 2;

            // Create Context
            Cairo.Context context = Gdk.CairoHelper.Create(window);
            context.SelectFontFace(m_FontDesc.Family, FontSlant.Normal, FontWeight.Normal);

            // Draw backdrop
            //if (IsHeading)
            {
                context.Save ();

                Color col = IsHeading ? m_BackdropHeadingColour : m_BackdropItemColour;

                context.Color = col;
                context.SetSourceRGB (col.R, col.G, col.B);

                context.Rectangle (background_area.X, background_area.Y, background_area.Width, background_area.Height);

                // Fill the path with pattern
                context.Fill ();

                // We "undo" the pattern setting here
                context.Restore ();
            }

            // Draw expander
            if (IsExpander)
            {
                RenderExpander(context, pix_rect);
            }
            else if (!IsHeading && RenderInfo)
            {
                context.Save();
                Gdk.Pixbuf expander = new Gdk.Pixbuf(ECM.Core.Info16PNG);
                Gdk.CairoHelper.SetSourcePixbuf(context, expander, pix_rect.Right - 16, pix_rect.Y);

                context.Paint();
                context.Restore();
            }

            RenderCell(context, pix_rect, isSelected);

            // Draw line under cell
            int bottom = background_area.Bottom;

            if (ECM.Helper.CurrentPlatform != ECM.Helper.Platform.Windows)
                bottom += 1;
            else
                bottom -= 1;

            context.Save();
            context.Antialias = Antialias.None;
            context.LineWidth = 1;
            context.Color = DarkGray;
            context.MoveTo(background_area.Left, bottom);
            context.LineTo(background_area.Right, bottom);
            context.Stroke();
            context.Restore();

            (context.Target as System.IDisposable).Dispose();
            (context as System.IDisposable).Dispose();
        }
		string GetPackageSourceErrorMarkup (CellRendererState flags = CellRendererState.Focused)
		{
			return MarkupString.Format (
				"<span foreground='{0}'>{1}</span>",
				Ide.Gui.Styles.ColorGetHex (flags.HasFlag (CellRendererState.Selected) ? Styles.PackageSourceErrorSelectedTextColor : Styles.PackageSourceErrorTextColor),
				PackageSourceViewModel.ValidationFailureMessage);
		}
		string GetPackageSourceDescriptionMarkup (CellRendererState flags = CellRendererState.Focused)
		{
			return MarkupString.Format (
				"<b>{0}</b>\n<span foreground='{2}'>{1}</span>",
				PackageSourceViewModel.Name,
				PackageSourceViewModel.Source,
				Ide.Gui.Styles.ColorGetHex (flags.HasFlag (CellRendererState.Selected) ? Styles.PackageSourceUrlSelectedTextColor : Styles.PackageSourceUrlTextColor));
		}