Class: Gtk::CellRenderer
Defined Under Namespace
Classes: CairoRectangleInt, GObjectClass, GtkCellRendererClass
Constant Summary
collapse
- GetProperty =
FFI::Function.new(:void,[:pointer, :uint, :pointer, :pointer]) do |_object,property_id,_value,_pspec|
raise "get_property"
end
- SetProperty =
FFI::Function.new(:void,[:pointer, :uint, :pointer, :pointer]) do |_object,property_id,_value,_pspec|
raise "set_property"
end
- InstanceInit =
FFI::Function.new(:void,[:pointer]) do |_klass|
Gtk::CellRenderer.new(FFI::Pointer.new(_klass)).set_padding 2,2
end
- Render =
FFI::Function.new(:void,[:pointer, :pointer, :pointer, :pointer, :pointer, :int]) do |_cell,_cr,_widget,_background_area,_cell_area,flags|
Cairo::Context.new(FFI::Pointer.new(_cr)) do |cr|
instances[_cell.address].render(
cr,
Gtk::Widget.new(FFI::Pointer.new(_widget)),
CairoRectangleInt.new(FFI::Pointer.new(_background_area)),
CairoRectangleInt.new(FFI::Pointer.new(_cell_area)),
flags
)
end
end
- GetSize =
FFI::Function.new(:void,[:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer]) do |_cell,_widget,_cell_area,_x_offset,_y_offset,_width,_height|
x_offset,y_offset,width,height = instances[_cell.address].get_size(
Gtk::Widget.new(FFI::Pointer.new(_widget)),
_cell_area.null? ? nil : CairoRectangleInt.new(FFI::Pointer.new(_cell_area))
)
_x_offset.write_int(x_offset) if x_offset
_y_offset.write_int(x_offset) if y_offset
_width.write_int(width) unless _width.null?
_height.write_int(height) unless _height.null?
end
Instance Attribute Summary
Attributes inherited from GObject
#native, #type
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Widget
#get_style_context
Methods inherited from GObject
#method_missing, #signal_connect, type_register, #unref
Constructor Details
Returns a new instance of CellRenderer.
133
134
135
136
137
|
# File 'lib/gtk/cell_renderer.rb', line 133
def initialize pointer
raise "hell" unless pointer.is_a?(FFI::Pointer)
@native = pointer
instances[native.address] = self
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class Gtk::GObject
Class Method Details
.inherited(sub) ⇒ Object
72
73
74
75
76
77
78
79
80
81
82
|
# File 'lib/gtk/cell_renderer.rb', line 72
def self.inherited sub
sub.const_set(:ClassInit,FFI::Function.new(:void,[:pointer]) do |_klass|
cell_class = GtkCellRendererClass.new(_klass)
object_class = GObjectClass.new(_klass)
cell_class[:render] = Render
cell_class[:get_size] = GetSize
object_class[:set_property] = SetProperty
object_class[:get_property] = GetProperty
sub.init(cell_class,object_class)
end)
end
|
.instances ⇒ Object
126
127
128
|
# File 'lib/gtk/cell_renderer.rb', line 126
def self.instances
@@instances ||= {}
end
|
.type ⇒ Object
def initialize
@native = Lib.gtk_cell_renderer_new()
end
159
160
161
|
# File 'lib/gtk/cell_renderer.rb', line 159
def self.type
@type ||= Lib.gtk_cell_renderer_text_get_type()
end
|
.type_info ⇒ Object
88
89
90
91
92
93
94
95
96
97
|
# File 'lib/gtk/cell_renderer.rb', line 88
def self.type_info
@type_info ||= begin
type_info = Gtk::Lib::GTypeInfo.new
type_info[:class_size] = 264
type_info[:class_init] = self.const_get(:ClassInit)
type_info[:instance_init] = InstanceInit
type_info[:instance_size] = 40
type_info
end
end
|
Instance Method Details
#get_alignment ⇒ Object
150
151
152
153
154
155
|
# File 'lib/gtk/cell_renderer.rb', line 150
def get_alignment
xpad = FFI::MemoryPointer.new(:int,1)
ypad = FFI::MemoryPointer.new(:int,1)
Lib.gtk_cell_renderer_get_alignment(native,xpad,ypad)
[xpad.read_int,ypad.read_int]
end
|
#get_padding ⇒ Object
141
142
143
144
145
146
|
# File 'lib/gtk/cell_renderer.rb', line 141
def get_padding
xpad = FFI::MemoryPointer.new(:int,1)
ypad = FFI::MemoryPointer.new(:int,1)
Lib.gtk_cell_renderer_get_padding(native,xpad,ypad)
[xpad.read_int,ypad.read_int]
end
|
#instances ⇒ Object
129
130
131
|
# File 'lib/gtk/cell_renderer.rb', line 129
def instances
self.class.instances
end
|
#set_padding(xpad, ypad) ⇒ Object
147
148
149
|
# File 'lib/gtk/cell_renderer.rb', line 147
def set_padding xpad,ypad
Lib.gtk_cell_renderer_set_padding(native,xpad,ypad)
end
|