Esempio n. 1
0
 public static DrawableCellStates ToEto(this Gtk.CellRendererState value)
 {
     if (value.HasFlag(Gtk.CellRendererState.Selected))
     {
         return(DrawableCellStates.Selected);
     }
     return(DrawableCellStates.None);
 }
Esempio n. 2
0
            public override Gtk.CellEditable StartEditing(Gdk.Event evnt, Gtk.Widget widget, string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags)
            {
                this.cell_area = cell_area;
                var result = base.StartEditing(evnt ?? new Gdk.Event(IntPtr.Zero), widget, path, background_area, cell_area, flags);

                ConfigureEntry(result as Gtk.Entry);
                return(result);
            }
Esempio n. 3
0
            protected override Gtk.ICellEditable OnStartEditing(Gdk.Event evnt, Gtk.Widget widget, string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags)
            {
                this.cell_area = cell_area;
                var result = base.OnStartEditing(evnt, widget, path, background_area, cell_area, flags);

                ConfigureEntry(result as Gtk.Entry);
                return(result);
            }
Esempio n. 4
0
            protected override void OnRender(Cairo.Context cr, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags)
            {
                if (!HasValue)
                {
                    return;
                }

                base.OnRender(cr, widget, background_area, cell_area, flags);
            }
Esempio n. 5
0
            protected override void Render(Gdk.Drawable window, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, Gtk.CellRendererState flags)
            {
                if (!HasValue)
                {
                    return;
                }

                // calling base crashes on windows
                GtkCell.gtksharp_cellrenderer_invoke_render(Gtk.CellRendererProgress.GType.Val, Handle, window.Handle, widget.Handle, ref background_area, ref cell_area, ref expose_area, flags);
                //base.Render (window, widget, background_area, cell_area, expose_area, flags);
            }
Esempio n. 6
0
 internal static extern void gtksharp_cellrenderer_invoke_render(IntPtr gtype, IntPtr handle, IntPtr window, IntPtr widget, ref Gdk.Rectangle backgroundArea, ref Gdk.Rectangle cellArea, ref Gdk.Rectangle exposeArea, Gtk.CellRendererState flags);
Esempio n. 7
0
 protected override void Render(Gdk.Drawable window, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, Gtk.CellRendererState flags)
 {
     base.Render(window, widget, background_area, cell_area, expose_area, flags);
 }
Esempio n. 8
0
 protected override void OnRender(Cairo.Context cr, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags)
 {
     if (Handler.FormattingEnabled)
     {
         Handler.Format(new GtkGridCellFormatEventArgs <Renderer> (this, Handler.Column.Widget, Item, Row));
     }
     base.OnRender(cr, widget, background_area, cell_area, flags);
 }
Esempio n. 9
0
            protected override unsafe void OnRender(Cairo.Context cr, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags)
            {
#if GTKCORE
                RenderNativeDelegate renderNativeDelegate = null;
                IntPtr *ptr = (IntPtr *)((long)LookupGType().GetThresholdType().GetClassPtr() + class_abi.GetFieldOffset("render"));
                if (*ptr != IntPtr.Zero)
                {
                    renderNativeDelegate = (RenderNativeDelegate)Marshal.GetDelegateForFunctionPointer(*ptr, typeof(RenderNativeDelegate));
                    if (renderNativeDelegate != null)
                    {
                        IntPtr intPtr  = GLib.Marshaller.StructureToPtrAlloc(background_area);
                        IntPtr intPtr2 = GLib.Marshaller.StructureToPtrAlloc(cell_area);
                        renderNativeDelegate(base.Handle, cr?.Handle ?? IntPtr.Zero, widget?.Handle ?? IntPtr.Zero, intPtr, intPtr2, (int)flags);
                        Marshal.FreeHGlobal(intPtr);
                        Marshal.FreeHGlobal(intPtr2);
                    }
                }
#endif

                if (editingRow == row)
                {
                    return;
                }
                using (var graphics = new Graphics(new GraphicsHandler(widget, cr)))
                {
                    var item = Handler.Source.GetItem(Row);
                    var args = new CellPaintEventArgs(graphics, cell_area.ToEto(), flags.ToEto(), item);
                    Handler.Callback.OnPaint(Handler.Widget, args);
                }
            }
Esempio n. 10
0
            protected override void Render(Gdk.Drawable window, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, Gtk.CellRendererState flags)
            {
                var h = Handler;

                if (h == null)
                {
                    return;
                }

                if (editingRow == row)
                {
                    return;
                }
                using (var graphics = new Graphics(new GraphicsHandler(widget, window)))
                {
                    var item = h.Source.GetItem(Row);
                    var args = new CellPaintEventArgs(graphics, cell_area.ToEto(), flags.ToEto(), item);
                    h.Callback.OnPaint(h.Widget, args);
                }
            }
Esempio n. 11
0
 protected override void OnRender(Cairo.Context cr, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags)
 {
 }
Esempio n. 12
0
        protected override void Render(Gdk.Drawable window, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, Gtk.CellRendererState flags)
        {
            var img = GetImage();

            if (img == null)
            {
                return;
            }

            using (var ctx = Gdk.CairoHelper.Create(window)) {
                var x = cell_area.X + cell_area.Width / 2 - (int)(img.Width / 2);
                var y = cell_area.Y + cell_area.Height / 2 - (int)(img.Height / 2);
                ctx.DrawImage(widget, img, x, y);
            }
        }
Esempio n. 13
0
 protected override void OnRender(Cairo.Context cr, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags)
 {
     if (Handler.FormattingEnabled)
     {
         Handler.Format(new GtkGridCellFormatEventArgs <Renderer> (this, Handler.Column.Widget, Item, Row));
     }
     using (var graphics = new Graphics(new GraphicsHandler(cr, null, false)))
     {
         var args = new DrawableCellPaintEventArgs(graphics, cell_area.ToEto(), flags.ToEto(), Item);
         Handler.Callback.OnPaint(Handler.Widget, args);
     }
 }
Esempio n. 14
0
        protected override void Render(Gdk.Drawable window, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, Gtk.CellRendererState flags)
        {
            var img = GetImage();

            if (img == null)
            {
                return;
            }

            if ((flags & Gtk.CellRendererState.Selected) != 0)
            {
                img = img.WithStyles("sel");
            }
            if (!img.HasFixedSize)
            {
                img = img.WithSize(Gtk.IconSize.Menu);
            }

            using (var ctx = Gdk.CairoHelper.Create(window)) {
                var x = cell_area.X + cell_area.Width / 2 - (int)(img.Width / 2);
                var y = cell_area.Y + cell_area.Height / 2 - (int)(img.Height / 2);
                ctx.DrawImage(widget, img, x, y);
            }
        }
Esempio n. 15
0
 protected override IGtkCellEditable OnStartEditing(Gdk.Event evnt, Gtk.Widget widget, string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags)
 {
     return(CreateEditable(cell_area));
 }
Esempio n. 16
0
            protected override void Render(Gdk.Drawable window, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, Gtk.CellRendererState flags)
            {
                if (Handler.FormattingEnabled)
                {
                    Handler.Format(new GtkGridCellFormatEventArgs <Renderer> (this, Handler.Column.Widget, Item, Row));
                }

                // calling base crashes on windows
                GtkCell.gtksharp_cellrenderer_invoke_render(Gtk.CellRendererPixbuf.GType.Val, Handle, window.Handle, widget.Handle, ref background_area, ref cell_area, ref expose_area, flags);
                //base.Render (window, widget, background_area, cell_area, expose_area, flags);
            }
Esempio n. 17
0
            protected override void OnRender(Cairo.Context cr, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags)
            {
                if (float.IsNaN((float)Handler.GetValueInternal(Item, Handler.ColumnIndex, Row).Val))
                {
                    return;
                }

                if (Handler.FormattingEnabled)
                {
                    Handler.Format(new GtkGridCellFormatEventArgs <Renderer> (this, Handler.Column.Widget, Item, Row));
                }
                base.OnRender(cr, widget, background_area, cell_area, flags);
            }
Esempio n. 18
0
            protected override void OnRender(Cairo.Context cr, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags)
            {
                using (var graphics = new Graphics(new GraphicsHandler(cr, null, false)))
                {
                    var item = Handler.Source.GetItem(Row);
#pragma warning disable 618
                    var args = new DrawableCellPaintEventArgs(graphics, cell_area.ToEto(), flags.ToEto(), item);
                    Handler.Callback.OnPaint(Handler.Widget, args);
#pragma warning restore 618
                }
            }
Esempio n. 19
0
        protected override void Render(Gdk.Drawable window, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, Gtk.CellRendererState flags)
        {
            // In light theme:
            // On the Mac, the default unfocused selection background is lighter, so the icon should be black
            // but our `sel` icons are white.
            //
            // Except in the solution treeview, because the Mac's default unfocused selection background is too light for the
            // custom treeview background
            if (!ignoreSelection.HasValue)
            {
                if (Platform.IsMac)
                {
                    if (IdeTheme.UserInterfaceTheme == Theme.Light)
                    {
                        var baseColor = widget.Style.Base(widget.State).ToXwtColor();
                        ignoreSelection = baseColor.Brightness == 1;
                    }
                    else
                    {
                        ignoreSelection = false;
                    }
                }
                else
                {
                    ignoreSelection = false;
                }
            }

            var img = GetImage();

            if (img == null)
            {
                return;
            }

            var shouldIgnoreSelection = ignoreSelection.GetValueOrDefault() && !widget.HasFocus;

            if (!shouldIgnoreSelection && ((flags & Gtk.CellRendererState.Selected) != 0))
            {
                img = img.WithStyles("sel");
            }
            if (!img.HasFixedSize)
            {
                img = img.WithSize(Gtk.IconSize.Menu);
            }

            using (var ctx = Gdk.CairoHelper.Create(window)) {
                var x = cell_area.X + cell_area.Width / 2 - (int)(img.Width / 2);
                var y = cell_area.Y + cell_area.Height / 2 - (int)(img.Height / 2);
                ctx.DrawImage(widget, img, x, y);
            }
        }