[MonoDevelop] Task Class Wizard

Christian Hoff christian_hoff at gmx.net
Sun Sep 21 08:35:38 EDT 2008


You normally shouldn't do that. CellRenderers are designed to be used in 
various contexts, not just in TreeViews.

If you really want to do so, try to subclass CellRendererToggle and 
override the Render method with something like:

protected override void Render (Gdk.Drawable drawable, Gtk.Widget 
widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, 
Gdk.Rectangle expose_area, Gtk.CellRendererState flags)
{
    if (widget is Gtk.TreeView) {
       Gtk.TreePath CurrPath;
       Gtk.TreeViewColumn CurrColumn;
       if (!this.GetPathAtPos (cell_area.X, cell_area.Y, out CurrPath, 
out CurrColumn))
          // This should not occur
          throw (new System.ApplicationException ());
      
       if ((widget as Gtk.TreeView).Selection == null || (widget as 
Gtk.TreeView).Selection.PathIsSelected (CurrPath))
          base.Render (drawable, widget, background_area, cell_area, 
expose_area, flags);
       else { /* Do nothing; row is selected */ }
    } else
       base.Render (drawable, widget, background_area, cell_area, 
expose_area, flags);

dave schrieb:
> At last I have a question about TreeView.
> In http://www.student.tugraz.at/monichi/mono/form_version_4_5.png
> I marked the toggleBoxes in row 1 and row 3. Is it possible to hide
> the marked ToggleBoxes and let visible the other boxes?
>
> My code for the toggle boxes is:
>
> ---------------------------------------%<---------------------------------------------------
>      // create column
>      TreeViewColumn col_3 = new TreeViewColumn();
>      col_3.Title = "implement";
>      CellRendererToggle renderer_3 = new CellRendererToggle();
>      renderer_3.Xalign = 0.0f;
>      renderer_3.Xpad = 5;
>      renderer_3.Activatable = true;
>      renderer_3.Toggled +=new ToggledHandler(rendererToggle_Toggled);
>      renderer_3.Mode = CellRendererMode.Activatable;
>      col_3.PackStart(renderer_3, true);
>
>      treeview.AppendColumn(col_3);
>      col_3.AddAttribute (renderer_3, "active", 2);
> ---------------------------------------%<---------------------------------------------------
>
> maybe someone knows how to do this
>
> thx in advance
>
> cheers,
>
> david
>   



More information about the Monodevelop-list mailing list