Class FutureLineDialog
In: dialogs.rb
Parent: FXDialogBox

Methods

Attributes

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] 

Public Class methods

[Source]

# 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

Public Instance methods

[Source]

# 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

[Source]

# 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

[Source]

# 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

[Validate]