Class: FXSVGMapExporterOptionsDialogBox

Inherits:
FXDialogBox
  • Object
show all
Defined in:
lib/IFMapper/FXSVGMapExporterOptionsDialogBox.rb

Instance Method Summary collapse

Constructor Details

#initialize(parent, title, map) ⇒ FXSVGMapExporterOptionsDialogBox

Returns a new instance of FXSVGMapExporterOptionsDialogBox.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/IFMapper/FXSVGMapExporterOptionsDialogBox.rb', line 3

def initialize(parent, title, map)
      
  decor = DECOR_TITLE|DECOR_BORDER|DECOR_CLOSE

  super( parent, title, decor, 40, 40, 0, 0 )
  mainFrame = FXVerticalFrame.new(self,
                  FRAME_SUNKEN|FRAME_THICK|
                  LAYOUT_FILL_X|LAYOUT_FILL_Y)

  @locationnos = FXCheckButton.new(mainFrame, BOX_SVG_LOCATIONNOS, nil, 0,
                ICON_BEFORE_TEXT|LAYOUT_SIDE_TOP|
                LAYOUT_SIDE_RIGHT)
  @locationnos.setCheck(true)
  map.options['print_room_nums'] = true

  @interactive = FXCheckButton.new(mainFrame, BOX_SVG_INTERACTIVE, nil, 0,
                ICON_BEFORE_TEXT|LAYOUT_SIDE_TOP|
                LAYOUT_SIDE_RIGHT)
  @interactive.setCheck(true)
  map.options['draw_interactive'] = true
  
  @connections = FXCheckButton.new(mainFrame, BOX_SVG_CONNECTIONS, nil, 0,
          ICON_BEFORE_TEXT|LAYOUT_SIDE_TOP|
          LAYOUT_SIDE_RIGHT)
  @connections.setCheck(true)
  map.options['draw_connections'] = true

  @roomnames = FXCheckButton.new(mainFrame, BOX_SVG_ROOMNAMES, nil, 0,
          ICON_BEFORE_TEXT|LAYOUT_SIDE_TOP|
          LAYOUT_SIDE_RIGHT)
  @roomnames.setCheck(true)
  map.options['draw_roomnames'] = true
  
  @sectioncomments = FXCheckButton.new(mainFrame, BOX_SVG_SECTIONCOMMENTS, nil, 0,
          ICON_BEFORE_TEXT|LAYOUT_SIDE_TOP|
          LAYOUT_SIDE_RIGHT)
  @sectioncomments.setCheck(true)
  map.options['draw_sectioncomments'] = true
  
  @splitsections = FXCheckButton.new(mainFrame, BOX_SVG_SPLITSECTIONS, nil, 0,
          ICON_BEFORE_TEXT|LAYOUT_SIDE_TOP|
          LAYOUT_SIDE_RIGHT)
  @splitsections.setCheck(false)
  map.options['split_sections'] = false

  compassframe = FXHorizontalFrame.new(mainFrame, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
  FXLabel.new(compassframe, BOX_SVG_COMPASS_SIZE, nil, 0, LAYOUT_SIDE_RIGHT)
  @compasssize = FXSlider.new(compassframe, nil, 0, 
                SLIDER_HORIZONTAL|LAYOUT_FIX_WIDTH|
                SLIDER_TICKS_TOP|LAYOUT_SIDE_TOP|LAYOUT_SIDE_RIGHT,
                :width => 100)
  @compasssize.range = (0..15)
  @compasssize.value = 3
  map.options['compass_size'] = 3

  thicknessframe = FXHorizontalFrame.new(mainFrame, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
  FXLabel.new(thicknessframe, BOX_SVG_LINE_THICKNESS, nil, 0, LAYOUT_SIDE_RIGHT)
  @linethickness = FXSlider.new(thicknessframe, nil, 0, 
                SLIDER_HORIZONTAL|LAYOUT_FIX_WIDTH|
                SLIDER_TICKS_TOP|LAYOUT_SIDE_TOP|LAYOUT_SIDE_RIGHT,
                :width => 100)
  @linethickness.range = (1..5)
  @linethickness.value = 2
  map.options['room_line_width'] = 2
  map.options['conn_line_width'] = 2
  map.options['door_line_width'] = 2
  
  colourframe = FXHorizontalFrame.new(mainFrame, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
  
  FXLabel.new(colourframe, BOX_SVG_COLOUR_SCHEME, nil, 0, LAYOUT_FILL_X)
  pane = FXPopup.new(self)
  BOX_SVG_COLOUR_SCHEME_TEXT.each { |t|
    FXOption.new(pane, t, nil, nil, 0, JUSTIFY_HZ_APART|ICON_AFTER_TEXT)
  }
  @colourscheme = FXOptionMenu.new(colourframe, pane, FRAME_RAISED|FRAME_THICK|
              JUSTIFY_HZ_APART|ICON_AFTER_TEXT|
              LAYOUT_CENTER_X|LAYOUT_CENTER_Y|LAYOUT_FIX_WIDTH, :width => 100)
  @colourscheme.currentNo = 1
  map.options['objs_fill_colour'] = "lightgreen"
  map.options['corner_fill_colour'] = "lightgreen"
  map.options['num_fill_colour'] = "lightgreen"
  map.options['door_line_colour'] = "forestgreen"
  
              
  buttons = FXHorizontalFrame.new(mainFrame, 
                  LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_X|
                  PACK_UNIFORM_WIDTH)

  @locationnos.connect(SEL_COMMAND) { 
      map.options['print_room_nums'] = (@locationnos.check == true)
  }
  @interactive.connect(SEL_COMMAND) {
      map.options['draw_interactive'] = (@interactive.check == true)
  }
  @connections.connect(SEL_COMMAND) {
      map.options['draw_connections'] = (@connections.check == true)
  }
  @roomnames.connect(SEL_COMMAND) {
      map.options['draw_roomnames'] = (@roomnames.check == true)
  }
  @sectioncomments.connect(SEL_COMMAND) {
      map.options['draw_sectioncomments'] = (@sectioncomments.check == true)
  }
  @splitsections.connect(SEL_COMMAND) {
      map.options['split_sections'] = (@splitsections.check == true)
  }
  @linethickness.connect(SEL_COMMAND) {
      map.options['room_line_width'] = (@linethickness.value)
      map.options['conn_line_width'] = (@linethickness.value)
      map.options['door_line_width'] = (@linethickness.value)
  }
  @compasssize.connect(SEL_COMMAND) {
      map.options['compass_size'] = (@compasssize.value)
  }
  
  @colourscheme.connect(SEL_COMMAND) {
      case @colourscheme.currentNo
          when 0
              map.options['objs_fill_colour'] = "lightpink"
              map.options['corner_fill_colour'] = "lightpink"
              map.options['num_fill_colour'] = "lightpink"
              map.options['door_line_colour'] = "firebrick"
          when 1
              map.options['objs_fill_colour'] = "lightgreen"
              map.options['corner_fill_colour'] = "lightgreen"
              map.options['num_fill_colour'] = "lightgreen"
              map.options['door_line_colour'] = "forestgreen"
          when 2
              map.options['objs_fill_colour'] = "yellow"
              map.options['corner_fill_colour'] = "yellow"
              map.options['num_fill_colour'] = "yellow"
              map.options['door_line_colour'] = "goldenrod"            
          when 3
              map.options['objs_fill_colour'] = "lightblue"
              map.options['corner_fill_colour'] = "lightblue"
              map.options['num_fill_colour'] = "lightblue"
              map.options['door_line_colour'] = "darkslateblue"
      end
  }
  
  # Accept
  FXButton.new(buttons, "&OK", nil, self, FXDialogBox::ID_ACCEPT,
       FRAME_RAISED|LAYOUT_FILL_X|FRAME_THICK|LAYOUT_RIGHT|LAYOUT_CENTER_Y)

  create
  
end