| Class | FutureLineDialog |
| In: |
dialogs.rb
|
| Parent: | FXDialogBox |
| axis | [RW] | |
| axisswitch | [RW] | |
| csys | [RW] | |
| okButton | [RW] | |
| radius | [RW] | |
| ref | [RW] | |
| refLabel | [RW] | |
| refattr | [RW] | |
| reftext | [RW] | |
| selection | [RW] | For 2 point referenced line |
| xaxis | [RW] | |
| yaxis | [RW] | |
| zaxis | [RW] |
# File dialogs.rb, line 399 def initialize(owner,title) super(owner, title) # Set up its contents frame1=FXVerticalFrame.new(self, LAYOUT_FILL_X|LAYOUT_FILL_Y) frame2 = FXHorizontalFrame.new(frame1, LAYOUT_FILL_X) matrix1 = FXMatrix.new(frame1, 2, MATRIX_BY_COLUMNS|LAYOUT_SIDE_TOP|LAYOUT_FILL_X|LAYOUT_FILL_Y) frame3 = FXHorizontalFrame.new(frame1, LAYOUT_FILL_X) matrix2 = FXMatrix.new(frame1, 2, MATRIX_BY_COLUMNS|LAYOUT_SIDE_TOP|LAYOUT_FILL_X|LAYOUT_FILL_Y) frame4 = FXHorizontalFrame.new(frame1, LAYOUT_FILL_X) frame5 = FXHorizontalFrame.new(frame1, LAYOUT_FILL_X) frame6 = FXHorizontalFrame.new(frame1, LAYOUT_FILL_X) # label FXLabel.new(frame2, "Line attributes:", nil, LAYOUT_SIDE_BOTTOM|LAYOUT_CENTER_Y) FXLabel.new(matrix1, "radius: ", nil, LAYOUT_SIDE_LEFT|LAYOUT_CENTER_Y) @radius = FXTextField.new(matrix1, 8, nil, 0, JUSTIFY_RIGHT|FRAME_SUNKEN|FRAME_THICK|LAYOUT_SIDE_LEFT|LAYOUT_CENTER_Y) #FXLabel.new(frame3, "Radius axis (of ref csys):", nil, LAYOUT_SIDE_BOTTOM|LAYOUT_CENTER_Y) # # Maybe I should not give this possibility, just make it possible to select # axis (x, y, z -> cartesian definition) # @axisswitch = FXDataTarget.new(0) gp = FXGroupBox.new(frame4, "Radius axis (of ref csys)", LAYOUT_SIDE_TOP|FRAME_GROOVE|LAYOUT_FILL_X, 0, 0, 0, 0) FXRadioButton.new(gp, "x axis\tChoose axis of reference\ncoordinate system.\tx axis", @axisswitch, FXDataTarget::ID_OPTION+0, ICON_BEFORE_TEXT|LAYOUT_SIDE_TOP) FXRadioButton.new(gp, "y axis\tChoose axis of reference\ncoordinate system.\ty axis", @axisswitch, FXDataTarget::ID_OPTION+1, ICON_BEFORE_TEXT|LAYOUT_SIDE_TOP) FXRadioButton.new(gp, "z axis\tChoose axis of reference\ncoordinate system.\tz axis", @axisswitch, FXDataTarget::ID_OPTION+2, JUSTIFY_LEFT|JUSTIFY_TOP|ICON_BEFORE_TEXT|LAYOUT_SIDE_TOP) ?? FXLabel.new(matrix1, "flip radius? (0,1):", nil, LAYOUT_SIDE_LEFT|LAYOUT_CENTER_Y) @refattr = FXTextField.new(matrix1, 8, nil, 0, JUSTIFY_RIGHT|FRAME_SUNKEN|FRAME_THICK|LAYOUT_SIDE_LEFT|LAYOUT_CENTER_Y) # ref info FXLabel.new(frame5, "Reference: ", nil, LAYOUT_SIDE_BOTTOM|LAYOUT_CENTER_Y) @reftext = FXLabel.new(frame5, "csysX, lX", nil, LAYOUT_SIDE_BOTTOM|LAYOUT_CENTER_Y) #buttons @okButton = FXButton.new(frame6, " OK ", nil, self, FXDialogBox::ID_ACCEPT, FRAME_RAISED|FRAME_THICK|LAYOUT_SIDE_RIGHT|LAYOUT_RIGHT|LAYOUT_CENTER_Y) FXButton.new(frame6, "Cancel", nil, self, FXDialogBox::ID_CANCEL, FRAME_RAISED|FRAME_THICK|LAYOUT_SIDE_RIGHT|LAYOUT_RIGHT|LAYOUT_CENTER_Y) # default values in text fields @radius.text = "20.0" @xaxis = "0.0" @yaxis = "0.0" @zaxis = "1.0" @refattr.text = "0" @axisswitch.handle(self, MKUINT(FXDataTarget::ID_OPTION+2, SEL_COMMAND), nil) @axisswitch.connect(SEL_COMMAND, method(:onAxisChange)) end
# File dialogs.rb, line 463 def onAxisChange(sender,sel,ptr) # puts "axis change sender #{sender}, sel #{sel}, obj #{ptr}" case sender.to_s when "0" #puts "x" #puts "cys x axis x: #{csys.x.x1-csys.x.x0}, y: #{csys.x.y1-csys.x.y0}, z: #{csys.x.z1-csys.x.z0}" if @csys != nil @axis = "x" @xaxis = @csys.x.x1-@csys.x.x0 if @csys != nil @yaxis = @csys.x.y1-@csys.x.y0 if @csys != nil @zaxis = @csys.x.z1-@csys.x.z0 if @csys != nil when "1" #puts "y" #puts "cys y axis x: #{csys.y.x1-csys.y.x0}, y: #{csys.y.y1-csys.y.y0}, z: #{csys.y.z1-csys.y.z0}" if @csys != nil @axis = "y" @xaxis = @csys.y.x1-@csys.y.x0 if @csys != nil @yaxis = @csys.y.y1-@csys.y.y0 if @csys != nil @zaxis = @csys.y.z1-@csys.y.z0 if @csys != nil when "2" #puts "z" #puts "cys z axis x: #{csys.z.x1-csys.z.x0}, y: #{csys.z.y1-csys.z.y0}, z: #{csys.z.z1-csys.z.z0}" if @csys != nil @axis = "z" @xaxis = @csys.z.x1-@csys.z.x0 if @csys != nil @yaxis = @csys.z.y1-@csys.z.y0 if @csys != nil @zaxis = @csys.z.z1-@csys.z.z0 if @csys != nil end end
# File dialogs.rb, line 499 def setdefault # default values in text fields @radius.text = $defaults['lineradius'].to_s @xaxis = $defaults['linexaxis'].to_f @yaxis = $defaults['lineyaxis'].to_f @zaxis = $defaults['linezaxis'].to_f @refattr.text = $defaults['linerefattr'].to_s # this ensures that the dialog is not out of sync @axisswitch.handle(self, MKUINT(FXDataTarget::ID_OPTION+2, SEL_COMMAND), nil) @axis = "z" @csys = $defaultcsys end
# File dialogs.rb, line 489 def updateAxis case @axis when "x" @axisswitch.handle(self, MKUINT(FXDataTarget::ID_OPTION+0, SEL_COMMAND), nil) when "y" @axisswitch.handle(self, MKUINT(FXDataTarget::ID_OPTION+1, SEL_COMMAND), nil) when "z" @axisswitch.handle(self, MKUINT(FXDataTarget::ID_OPTION+2, SEL_COMMAND), nil) end end