[#408634] How do I make lots of classes aware of each other? — "Andrew S." <lists@...>

I'm apparently missing something fundamental in my knowledge of classes

10 messages 2013/07/02

[#408712] Ruby web service with REST support — "Shubhada S." <lists@...>

Hi All,

17 messages 2013/07/05

[#408812] create variables depending on counter — stefan heinrich <lists@...>

Hi community,

21 messages 2013/07/09

[#408854] execute commands within SMTP email code: send content in variables and not actual variables — dJD col <lists@...>

I am trying to send an email using the code below. I am able to send the

9 messages 2013/07/10

[#409031] tap { break } idiom deserves its own Kernel method? — Andy Lowry <lists@...>

I use this idiom from time to time:

13 messages 2013/07/22

[#409072] Link To Masses Of External Data In Openoffice? — "Austin J." <lists@...>

This is what I want to do.

19 messages 2013/07/23
[#409102] Re: Link To Masses Of External Data In Openoffice? — Tamara Temple <tamouse.lists@...> 2013/07/24

[#409103] Re: Link To Masses Of External Data In Openoffice? — "Austin J." <lists@...> 2013/07/25

tamouse m. wrote in post #1116598:

[#409122] Re: Link To Masses Of External Data In Openoffice? — Tamara Temple <tamouse.lists@...> 2013/07/26

[#409142] Re: Link To Masses Of External Data In Openoffice? — "Austin J." <lists@...> 2013/07/26

tamouse m. wrote in post #1116750:

[#409073] class <=> module — Bráulio Bhavamitra <lists@...>

Hello all,

17 messages 2013/07/23

[#409104] Ruby newbie question on Methods (NoMethoderror) — "Crispian A." <lists@...>

I have recently started learning ruby and so I am writing a small little

10 messages 2013/07/25

[#409170] Working through Ch.10 for learning to program 2.0 (Chris Pine) — JD JD <lists@...>

So, I have been working through this book, and have been doing ok up

33 messages 2013/07/28
[#409195] Re: Working through Ch.10 for learning to program 2.0 (Chris Pine) — Harry Kakueki <list.push@...> 2013/07/29

I tried this and came up with a one-liner that seems to do it. It sorts the

[#409258] WATIR - ScriptError popup on IE - Unable to get rid of! — Graeme Halls <lists@...>

I am new to Ruby & Watir, and I am having a nightmare with IE and Script

11 messages 2013/07/31

How to register get_size etc when extends Gtk::CellRenderer in ruby

From: wels xiong <lists@...>
Date: 2013-07-13 06:12:09 UTC
List: ruby-talk #408903
Hi, all

When i extends Gtk::CellRenderer from the gems of
http://rubygems.org/gems/gtk2 =EF=BC=88MS Windows), i got some error mess=
ages as
followed:
Gtk-CRITICAL **:gtk_cell_renderer_get_size: assertion
`GTK_CELL_RENDERER_GET_CLASS (cell)->get_size !=3D NULL' failed
Gtk-CRITICAL **:gtk_cell_renderer_render: assertion
`GTK_CELL_RENDERER_GET_CLASS (cell)->render !=3D NULL' failed

I think they must caused by the methods such as
gtk_cell_renderer_get_size of GTK+:
g_return_if_fail (GTK_IS_CELL_RENDERER (cell));
g_return_if_fail (GTK_CELL_RENDERER_GET_CLASS (cell)->get_size !=3D NULL)=
;

Maybe that means my custom cell renderer(Here as CellRendererRow, for
different cell renderer per row in the same column)'s get_size cann't be
recognized by GTK+.

I know i have use the 'type_register ' to register the CellRendererRow
to GTK+, but has there some way to register the methods such as
get_size, or we only need to name the method as do_get_size like
Python/GTK, but how to name the method in Ruby?

The followed is my source code(CellRendererRow.rb):


begin
  require 'rubygems'
rescue LoadError
end

require 'gtk2'
require 'glib2'

class CellRendererRow < Gtk::CellRenderer
  type_register

  install_property(GLib::Param::String.new(
                           "cell_type",
                           "cell_type",
                           "The type of the cell renderer",
                           "",
                           GLib::Param::READABLE|GLib::Param::WRITABLE))

  install_property(GLib::Param::String.new(
                       "cell_value",
                       "cell_value",
                       "The value of the cell renderer",
                       "",
                       GLib::Param::READABLE|GLib::Param::WRITABLE))

  PIXBUF   =3D "1"
  PROGRESS =3D "2"
  SPIN     =3D "3"
  TEXT     =3D "4"
  TOGGLE   =3D "5"

  attr_reader :cell_type, :cell_value

  def initialize(treeview)
    super()
    @treeview =3D treeview
    @comb_renderers =3D Hash.new
    @pixbuf =3D Gtk::CellRendererPixbuf.new
    @spin =3D Gtk::CellRendererSpin.new
    @text =3D Gtk::CellRendererText.new
    @toggle =3D Gtk::CellRendererToggle.new
  end

  def cell_type=3D (s)
    puts "cell type is: " + s
    @cell_type =3D s
  end

  def cell_value=3D (s)
    puts "cell value is: " + s

    @s =3D s
    case cell_type
      when  PIXBUF
        @pixbuf.pixbuf =3D s
      when  SPIN
        @spin.adjustment =3D s
      when  TEXT
        @text.text =3D s
      when  TOGGLE
        @toggle.active =3D s
      else
        cellrenderer =3D @comb_renderers.fetch(cell_type, @text)
        cellrenderer.text =3D s
    end
  end

  def renderer
    cellrenderer =3D case cell_type
                     when  PIXBUF
                       @pixbuf
                     when  SPIN
                       @spin
                     when  TEXT
                       @text
                     when  TOGGLE
                       @toggle
                     else  @comb_renderers.fetch(cell_type, @text)
                   end
  end

  def get_size(widget, cell_area)
    cellrenderer =3D renderer
    puts cellrenderer.class
    cellrenderer.get_size(widget, cell_area)
  end

  def render(window, widget, background_area, cell_area, expose_area,
flags)
    cellrenderer =3D renderer
    puts cellrenderer.class
    cellrenderer.render(window, widget, background_area, cell_area,
expose_area, flags)
 end

end

Attachments:
http://www.ruby-forum.com/attachment/8599/CellRendererRow.rb


-- =

Posted via http://www.ruby-forum.com/.=

In This Thread

Prev Next