gtk-sharp2.12.0.0Gtk# is thread aware, but not thread safe; See the Gtk# Thread Programming for details.An object for rendering a single cell on a
The is a base class of a set of objects used for rendering a cell to a .
These objects are used primarily by the widget, though they are not tied to them in any specific way.
It is worth noting that is not a and cannot be treated as such.
The primary use of a is for drawing a certain graphical elements on a .
Typically, one is used to draw many cells on the screen.
To this extent, it is not expected that a keep any permanent state around.
Instead, any state is set just prior to use.
Then, the cell is measured using .
Finally, the cell is rendered in the correct location using .
There are a number of rules that must be followed when writing a new .
First and foremost, it is important that a certain set of properties will always yield a of the same size, barring a change.
The also has a number of generic properties that are expected to be honored by all children.
Gtk.ObjectMethodSystem.VoidInvokes the virtual render function of the .
an object of type
an object of type
an object of type
an object of type
an object of type
an object of type
The three passed-in rectangles are areas of .
Most renderers will draw within ;
includes the blank space around the cell, and also the area containing the tree expander; so the rectangles for all cells tile to cover the entire window.
is a clip rectangle.
MethodSystem.VoidSets the renderer size to be explicit, independent of the properties set.
an object of type
an object of type MethodSystem.BooleanPasses an activate event to the for possible processing.
an object of type
an object of type
an object of type
an object of type
an object of type
an object of type an object of type Some s may use events; for example, toggles when it gets a mouse click.ConstructorInternal constructor
Pointer to the C object.
This is an internal constructor, and should not be used by user code.PropertySystem.Int32The fixed height.an object of type GLib.Property("height")PropertySystem.BooleanDisplay the cell.an object of type GLib.Property("visible")PropertySystem.SingleThe x-align.an object of type GLib.Property("xalign")PropertySystem.Int32The fixed width.an object of type GLib.Property("width")PropertySystem.SingleThe y-align.an object of type GLib.Property("yalign")PropertySystem.BooleanRow has children.an object of type GLib.Property("is-expander")PropertySystem.UInt32The ypad.an object of type GLib.Property("ypad")PropertySystem.UInt32The xpad.an object of type GLib.Property("xpad")PropertySystem.BooleanRow is an expander row, and is expanded.an object of type GLib.Property("is-expanded")PropertyGtk.CellRendererModeEditable mode of the CellRenderer.an object of type GLib.Property("mode")PropertyGdk.ColorCell background color as a .a GLib.Property("cell-background-gdk")PropertySystem.StringCell background color as a .a GLib.Property("cell-background")PropertyGLib.GTypeGType Property.a Returns the native value for .ConstructorProtected Constructor.
a Chain to this constructor if you have manually registered a native value for your subclass.System.ObsoleteConstructorProtected constructor.MethodSystem.VoidObtains the and needed to render the cell.
a
a
a
a
a
a Used by view widgets to determine the appropriate size for the passed to gtk_cell_renderer_render(). If is not , fills in the x and y offsets (if set) of the cell relative to this location. Please note that the values set in and , as well as those in and are inclusive of the xpad and ypad properties.MethodSystem.VoidInvokes the virtual render function of the . The three passed-in rectangles are areas of window. Most renderers will draw within ; the xalign, yalign, xpad, and ypad fields of the should be honored with respect to . includes the blank space around the cell, and also the area containing the tree expander; so the rectangles for all cells tile to cover the entire window. is a clip rectangle.
a to render to
a , the widget that owns
a , entire cell area (including tree expanders and maybe padding on the sides)
a , area normally rendered by a cell renderer
a , area that needs updating
a , flags that affect rendering
MethodGtk.CellEditablePasses an activate event to the for possible processing.
a
a
a
a
a
a a Some cell renderers may use events; for example, toggles when it gets a mouse click.
The following example illustrates a CellRenderText derived class that implements auto-completion in the entry widget.
public class CellRendererCompletion : CellRendererText
{
public delegate ListStore CompletionStoreNeededDelegate(TreeView tree, out int textColumn);
// Delegate that is called to obtain a ListStore that contains entries
// for the column being editted. TreeView.GetCursor(out path, out column)
// can be used to determine the column being editted.
public static CompletionStoreNeededDelegate CompletionStoreNeededEventHandler;
// Required constructor that may be called by the framework.
public CellRendererCompletion(System.IntPtr raw) : base(raw)
{
}
public CellRendererCompletion()
{
}
public override CellEditable StartEditing(Gdk.Event evnt, Widget widget, string path,
Gdk.Rectangle background_area, Gdk.Rectangle cell_area, CellRendererState flags)
{
// get the entry widget
Entry entry = base.StartEditing (evnt, widget, path, background_area, cell_area, flags) as Gtk.Entry;
// make it auto-complete
TreeView treeview = widget as TreeView;
int textColumn = 0;
entry.Completion = new EntryCompletion();
entry.Completion.Model = CreateCompletionModel(treeview, out textColumn);
entry.Completion.TextColumn = textColumn;
return entry;
}
// Gets the ListStore that contains the auto-complete entries
// to be shown when editting this cell. Typical use might use
// TreeView.GetCursor(out path, out column) to get the column name
// being editted to build an appropriate list.
private static TreeModel CreateCompletionModel(TreeView treeview, out int textColumn)
{
textColumn = 0;
if (CompletionStoreNeededEventHandler != null)
return CompletionStoreNeededEventHandler(treeview, out textColumn);
return null;
}
}
EventSystem.EventHandler
This event is raised when the user cancels the process of
editing a cell.
For example, an editable cell renderer could be written to cancel
editing when the user presses Escape.
GLib.Signal("editing-canceled")MethodSystem.VoidDefault handler for the event.Override this method in a subclass to provide a default handler for the event.MethodSystem.VoidCauses the cell renderer to fire an event.
This function is for use only by implementations of cell renderers that need to
notify the client program that an editing process was canceled and the
changes were not committed.
PropertySystem.BooleanDisplay the cell sensitive.A .The default value is .GLib.Property("sensitive")EventGtk.EditingStartedHandlerThis signal gets emitted when a cell starts to be edited.
The intended use of this signal is to do special setup on editable cell, e.g. adding a or setting up additional columns in a .
Note that GTK# doesn't guarantee that cell renderers will continue to use the same kind of widget for editing in future releases, therefore you should check the type of the cell before doing any specifi setup.
GLib.Signal("editing-started")MethodSystem.VoidDefault handler for the event.
a
a Override this method in a subclass to provide a default handler for the event.MethodSystem.VoidInforms the cell renderer that the editing is stopped.
a If is , the cell renderer will emit the event. This method should be called by cell renderer implementations in response to the event of .MethodSystem.Void
Location to fill in with the fixed width of the widget, or .
Location to fill in with the fixed height of the widget, or .
Fills in and with the appropriate size.