class MyCellRendererCombo
this file is part of manqod manqod is distributed under the CDDL licence the author of manqod is Dobai-Pataky Balint(dpblnt@gmail.com)
Attributes
column[RW]
model_col_num[RW]
view[RW]
Public Class Methods
new(column)
click to toggle source
Calls superclass method
# File lib/ListHolder/EditableList/CellRenderers/Combo.rb, line 7 def initialize(column) @mycombomodel=Gtk::ListStore.new(String,String) @jump_to_next=false super() set_model(@mycombomodel) set_text_column(1) set_has_entry(false) set_ellipsize(column.pango_ellipsize) set_ellipsize_set(true) set_mode(Gtk::CellRenderer::MODE_EDITABLE) signal_connect("edited"){|me,path,new_text| if selected_combo_value=get_value_from_text(new_text) view.list_model.change_value_of_path(path,column.header['data'],selected_combo_value) end if @jump_to_next if next_col=view.next_editable_column(column) view.set_cursor(view.list_model.iter_at_cursor.path,next_col,true)# if next_col.header["type"]!="gtk_toggle" end @jump_to_next=false end true } signal_connect("editing-started"){|cell, editable_widget, path| if !editable_widget.nil? editable_widget.signal_connect("key-release-event"){|me,event| @jump_to_next= Gdk::Keyval.to_name(event.keyval) == "Return" false } end } end
Public Instance Methods
append_row(cdata,cdisplay)
click to toggle source
# File lib/ListHolder/EditableList/CellRenderers/Combo.rb, line 80 def append_row(cdata,cdisplay) iter=@mycombomodel.append iter[0]=cdata iter[1]=cdisplay end
caller()
click to toggle source
# File lib/ListHolder/EditableList/CellRenderers/Combo.rb, line 90 def caller view end
data()
click to toggle source
# File lib/ListHolder/EditableList/CellRenderers/Combo.rb, line 86 def data @header["data"] end
get_text_from_value(selected_combo_value)
click to toggle source
# File lib/ListHolder/EditableList/CellRenderers/Combo.rb, line 69 def get_text_from_value(selected_combo_value) selected_combo_text=nil @mycombomodel.each {|model, path, iter| if iter[0]==selected_combo_value selected_combo_text=iter[1] end } @text=selected_combo_text selected_combo_text end
get_value_from_text(selected_combo_text)
click to toggle source
# File lib/ListHolder/EditableList/CellRenderers/Combo.rb, line 59 def get_value_from_text(selected_combo_text) selected_combo_value=nil @mycombomodel.each {|model, path, iter| if iter[1]==selected_combo_text selected_combo_value=iter[0] end } return selected_combo_value end
set_column(column)
click to toggle source
# File lib/ListHolder/EditableList/CellRenderers/Combo.rb, line 45 def set_column(column) @column=column @view=column.list @model_col_num=column.colnum if column.header['admin'] then admin_rows(column.header['querySQL'],column.header['key'].include?(".")){|row| append_row(row[column.header['key']],row[column.header['display']])} else rows(column.header['querySQL'],column.header['key'].include?(".")){|row| append_row(row[column.header['key']],row[column.header['display']])} end unless column.header['querySQL'].length == 0 set_editable(column.header['editable']) end