Multi FXDataTarget


#1

Hello There
I’m trying to create a window that will display a line similar to what
datatarget.rb exemple does, except it would do it for an unknown number
of items, stocked in a given array.

Here is the code I would like to use except it doesn’t work:

#@repartition is a hash {string => [int,int]}
#tech is the array of items & item.name is one of the keys of
@repartition

@sum_current=FXDataTarget.new(0)

@current_techname=FXDataTarget.new("")

@sum_current.connect(SEL_CHANGED){
@sum=@sum_current.value
}

@repartition.each{|key,val|
@sum_current.value=@sum_current.value+val[1]
}

datas=[]
k=0

tech.each{|t|

  FXLabel.new(mtrix,"#{t.name}:")

  @repartition["#{t.name}"][0]=1

  datas.push(FXDataTarget.new(@repartition["#{t.name}"][1]))

  datas[k]

  datas[k].connect(SEL_CHANGED){

     @sum_current.value=@sum_current.value-@repartition["#{t.name}"][1]+datas[k].value
     @sum=@sum_current.value
     @repartition["#{t.name}"][1]= datas[k].value
  }

  FXSlider.new(mtrix, datas[k], FXDataTarget::ID_VALUE,
  LAYOUT_CENTER_Y|LAYOUT_FILL_ROW|LAYOUT_FIX_WIDTH, :width => 100)

  FXSpinner.new(mtrix,5, datas[k], FXDataTarget::ID_VALUE,
  SPIN_CYCLIC|FRAME_SUNKEN|FRAME_THICK|LAYOUT_CENTER_Y|LAYOUT_FILL_ROW)

  FXProgressBar.new(mtrix, datas[k], FXDataTarget::ID_VALUE,
  (LAYOUT_CENTER_Y|LAYOUT_FILL_X|FRAME_SUNKEN|FRAME_THICK|
  PROGRESSBAR_PERCENTAGE|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW))


k+=1

}

Thanks a lot for the time you will spend on this

EDIT: I tried to redefine a @data=FXDataTarget for each item, but this
way the messaging is all messed up…