Normand Briere
2019-04-29 bed42c663d286d76a32f155049f9efabc2fdb73f
ObjEditor.java
....@@ -19,6 +19,8 @@
1919 import //weka.core.
2020 matrix.Matrix;
2121
22
+import grafeme.ui.*;
23
+
2224 class ObjEditor /*extends JFrame*/ implements iCallBack, ObjectUI,
2325 ActionListener, ChangeListener,
2426 InputMethodListener,
....@@ -28,7 +30,12 @@
2830 iSendInfo
2931 //KeyListener
3032 {
33
+ boolean timeline;
34
+ boolean wasFullScreen;
3135
36
+ GroupEditor callee;
37
+ JFrame frame;
38
+
3239 // SCRIPT
3340
3441 transient JFrame textpanel = null;
....@@ -119,14 +126,13 @@
119126 void keyPressed(int key, int modifiers)
120127 {
121128 System.out.println("KEY PRESSED");
122
- CameraPane.theRenderer.keyPressed(key, modifiers);
129
+ Globals.theRenderer.keyPressed(key, modifiers);
123130 }
124131 */
125132
126133 static GridBagConstraints aConstraints;
127134 static GridBagConstraints aWindowConstraints;
128
- GroupEditor callee;
129
- JFrame frame;
135
+
130136 static int GRIDWIDTH = 100; // 4;
131137
132138 public void closeUI()
....@@ -158,12 +164,16 @@
158164 objEditor.ctrlPanel.remove(slowerButton);
159165 objEditor.ctrlPanel.remove(fasterButton);
160166 objEditor.ctrlPanel.remove(remarkButton);
167
+
168
+ Remove(normalpushField);
161169 }
162170
163171 public ObjEditor GetEditor()
164172 {
165173 return objEditor; //.GetEditor();
166174 }
175
+
176
+ // Sometimes myself, sometimes my callee's.
167177 ObjEditor objEditor;
168178
169179 /*
....@@ -238,7 +248,7 @@
238248 //if (!isDisplayable())
239249 //setUndecorated(true);
240250
241
- System.out.println("getFullScreenWindow? " + gd.getFullScreenWindow());
251
+ //System.out.println("getFullScreenWindow? " + gd.getFullScreenWindow());
242252 client = inClient;
243253 copy = localCopy;
244254 copy.editWindow = this;
....@@ -292,16 +302,18 @@
292302 //normalLensItem.addActionListener(this);
293303 cameraMenu.add(revertCameraItem = new MenuItem("Revert Camera"));
294304 revertCameraItem.addActionListener(this);
295
- cameraMenu.add(toggleFullItem = new CheckboxMenuItem("Full Screen"));
296
- toggleFullItem.addItemListener(this);
297
- toggleFullItem.setState(CameraPane.FULLSCREEN);
305
+ cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline"));
306
+ toggleTimelineItem.addItemListener(this);
307
+ cameraMenu.add(toggleFullScreenItem = new CheckboxMenuItem("Full Screen"));
308
+ toggleFullScreenItem.addItemListener(this);
309
+ toggleFullScreenItem.setState(CameraPane.FULLSCREEN);
298310 cameraMenu.add("-");
299311 cameraMenu.add(toggleTextureItem = new CheckboxMenuItem("Texture"));
300312 toggleTextureItem.addItemListener(this);
301313 toggleTextureItem.setState(CameraPane.textureon);
302314 cameraMenu.add(toggleLiveItem = new CheckboxMenuItem("Live"));
303315 toggleLiveItem.addItemListener(this);
304
- toggleLiveItem.setState(CameraPane.isLIVE());
316
+ toggleLiveItem.setState(Globals.isLIVE());
305317 cameraMenu.add(stepItem = new MenuItem("Step"));
306318 stepItem.addActionListener(this);
307319 // cameraMenu.add(toggleDLItem = new CheckboxMenuItem("Display List"));
....@@ -594,6 +606,22 @@
594606 }
595607 }
596608
609
+ void ToggleFullScreen()
610
+ {
611
+ if (CameraPane.FULLSCREEN)
612
+ {
613
+ frame.getContentPane().remove(/*"Center",*/bigThree);
614
+ framePanel.add(bigThree);
615
+ frame.getContentPane().add(/*"Center",*/framePanel);
616
+ } else
617
+ {
618
+ frame.getContentPane().remove(/*"Center",*/framePanel);
619
+ framePanel.remove(bigThree);
620
+ frame.getContentPane().add(/*"Center",*/bigThree);
621
+ }
622
+ cameraView.ToggleFullScreen();
623
+ }
624
+
597625 private JTextArea createTextPane()
598626 {
599627 String[] initString =
....@@ -794,7 +822,7 @@
794822
795823 aConstraints.fill = GridBagConstraints.VERTICAL;
796824 jlabel.setHorizontalAlignment(SwingConstants.TRAILING);
797
- aConstraints.gridwidth = 2;
825
+ aConstraints.gridwidth = 1;
798826 ctrlPanel.add(jlabel, aConstraints); //, oe.ctrlPanel.getComponentCount()-1);
799827 aConstraints.gridx += 1;
800828 aConstraints.fill = GridBagConstraints.HORIZONTAL;
....@@ -963,6 +991,9 @@
963991
964992 Return();
965993
994
+ normalpushField = AddSlider(oe.ctrlPanel, "Push", -10, 10, 0, -1);
995
+ Return();
996
+
966997 // oe.ctrlPanel.add(stepButton = new cButton("Step"), ObjEditor.aConstraints, oe.ctrlPanel.getComponentCount() - 2);
967998 // ObjEditor.aConstraints.gridx += 1;
968999
....@@ -1158,10 +1189,21 @@
11581189 //JPanel worldPanel =
11591190 // new gov.nasa.worldwind.examples.ApplicationTemplate.AppPanel(null, true);
11601191 //worldPanel.setName("World");
1161
- /*JPanel*/ cameraPanel =
1162
- new JPanel(new BorderLayout());
1163
- cameraPanel.add(cameraView);
1192
+ centralPanel = new JPanel(new BorderLayout());
1193
+ timelinePanel = new JPanel(new BorderLayout());
1194
+ timelineMenubar = new timeflow.app.TimeflowApp().TimeFlowWindow(timelinePanel);
11641195
1196
+ cameraPanel = new JSplitPane(JSplitPane.VERTICAL_SPLIT, cameraView, timelinePanel);
1197
+ cameraPanel.setContinuousLayout(true);
1198
+ cameraPanel.setOneTouchExpandable(true);
1199
+// cameraPanel.setDividerLocation(0.9);
1200
+// cameraPanel.setDividerSize(9);
1201
+ cameraPanel.setResizeWeight(1.0);
1202
+
1203
+ centralPanel.add(cameraView);
1204
+ //frame.setJMenuBar(timelineMenubar);
1205
+ //centralPanel.add(timelinePanel);
1206
+
11651207 //topView.camera = ;
11661208 //frontView.camera = new Camera(2);
11671209 //sideView.camera = new Camera(3);
....@@ -1177,12 +1219,12 @@
11771219 //frontView.object = copy;
11781220 //sideView.object = copy;
11791221
1180
- XYZPanel = new JPanel();
1181
- XYZPanel.setLayout(new GridLayout(3, 1, 5, 5));
1222
+ XYZPanel = new cGridBag().setVertical(true);
1223
+ //XYZPanel.setLayout(new GridLayout(3, 1, 5, 5));
11821224
1183
- XYZPanel.add(/*BorderLayout.SOUTH,*/sideView); // Scroll);
1184
- XYZPanel.add(/*BorderLayout.CENTER,*/frontView); // Scroll);
1185
- XYZPanel.add(/*BorderLayout.NORTH,*/topView); // Scroll);
1225
+ XYZPanel.addComponent(/*BorderLayout.SOUTH,*/sideView); // Scroll);
1226
+ XYZPanel.addComponent(/*BorderLayout.CENTER,*/frontView); // Scroll);
1227
+ XYZPanel.addComponent(/*BorderLayout.NORTH,*/topView); // Scroll);
11861228
11871229 /*
11881230 gridPanel = new JPanel(); //new BorderLayout());
....@@ -1191,7 +1233,7 @@
11911233 gridPanel.add(cameraView);
11921234 gridPanel.add(XYZPanel);
11931235 */
1194
- gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, cameraPanel, XYZPanel); //new BorderLayout());
1236
+ gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, centralPanel, XYZPanel); //new BorderLayout());
11951237 gridPanel.setContinuousLayout(true);
11961238 gridPanel.setOneTouchExpandable(true);
11971239 gridPanel.setDividerLocation(1.0);
....@@ -1244,15 +1286,18 @@
12441286 scrollpane.setWheelScrollingEnabled(true);
12451287 scrollpane.addMouseWheelListener(this); // Default not fast enough
12461288
1247
- /*JTabbedPane*/ jtp = new JTabbedPane();
1248
- jtp.add(scrollpane);
1289
+ /*JTabbedPane*/ scenePanel = new JTabbedPane();
1290
+ scenePanel.add(scrollpane);
12491291
1250
- jtp.add(FSPane = new cFileSystemPane(this));
1292
+ scenePanel.add(FSPane = new cFileSystemPane(this));
12511293
12521294 optionsPanel = new JPanel(new GridBagLayout());
12531295
12541296 optionsPanel.setName("Options");
1255
- jtp.add(optionsPanel);
1297
+
1298
+ AddOptions(optionsPanel, aConstraints);
1299
+
1300
+ scenePanel.add(optionsPanel);
12561301
12571302
12581303 /*
....@@ -1275,7 +1320,7 @@
12751320 jtp.add(tree);
12761321 */
12771322
1278
- bigPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jtp, gridPanel);
1323
+ bigPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scenePanel, gridPanel);
12791324 bigPanel.setContinuousLayout(true);
12801325 bigPanel.setOneTouchExpandable(true);
12811326 bigPanel.setDividerLocation(0.8);
....@@ -1287,6 +1332,7 @@
12871332 //bigPanel.setSize(new Dimension(10,10));
12881333 //bigPanel.add(ctrlPanel);
12891334 //bigPanel.add(gridPanel);
1335
+ /**
12901336 bigThree = new JPanel();
12911337 //big.setLayout(new FlowLayout(FlowLayout.LEFT));
12921338 bigThree.setLayout(new GridBagLayout()); //1,3,5,5));
....@@ -1297,20 +1343,26 @@
12971343 aWindowConstraints.fill = GridBagConstraints.VERTICAL;
12981344 aWindowConstraints.weightx = 0;
12991345 aWindowConstraints.weighty = 1;
1300
- bigThree.add(jtp, aWindowConstraints);
1346
+ bigThree.add(scenePanel, aWindowConstraints);
13011347 aWindowConstraints.weightx = 1;
13021348 aWindowConstraints.gridwidth = 3;
13031349 // aConstraints.gridheight = 3;
13041350 aWindowConstraints.gridx = 1;
13051351 aWindowConstraints.fill = GridBagConstraints.BOTH;
1306
- bigThree.add(cameraPanel, aWindowConstraints);
1352
+ bigThree.add(centralPanel, aWindowConstraints);
13071353 aWindowConstraints.weightx = 0;
13081354 aWindowConstraints.gridx = 4;
13091355 aWindowConstraints.gridwidth = 1;
13101356 // aConstraints.gridheight = 3;
13111357 aWindowConstraints.fill = GridBagConstraints.VERTICAL;
13121358 bigThree.add(XYZPanel, aWindowConstraints);
1359
+ /**/
13131360
1361
+ bigThree = new cGridBag();
1362
+ bigThree.addComponent(scenePanel);
1363
+ bigThree.addComponent(centralPanel);
1364
+ bigThree.addComponent(XYZPanel);
1365
+
13141366 // // SIDE EFFECT!!!
13151367 // aConstraints.gridx = 0;
13161368 // aConstraints.gridy = 0;
....@@ -1331,7 +1383,8 @@
13311383 //worldPane.add(bigPanel);
13321384 //worldPane.add(worldPanel);
13331385 /**/
1334
- frame.getContentPane().add(/*"Center",*/framePanel);
1386
+ //frame.getContentPane().add(/*"Center",*/framePanel);
1387
+ frame.add(/*"Center",*/framePanel);
13351388 //frame.getContentPane().add(/*"Center",*/ worldPane);
13361389
13371390 // aConstraints = gbc; // (GridBagConstraints) GrafreeD.clone(gbc);
....@@ -1352,6 +1405,10 @@
13521405 });
13531406 }
13541407
1408
+ void AddOptions(JPanel panel, GridBagConstraints constraints)
1409
+ {
1410
+ }
1411
+
13551412 JTree GetTree()
13561413 {
13571414 return objEditor.jTree;
....@@ -1422,7 +1479,7 @@
14221479 aConstraints.gridx += 1;
14231480 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
14241481 //aConstraints.weightx = 0;
1425
- ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1482
+ ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14261483 aConstraints.gridx = 0;
14271484 aConstraints.gridy += 1;
14281485 aConstraints.gridwidth = 1;
....@@ -1432,7 +1489,7 @@
14321489 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14331490 aConstraints.gridx += 1;
14341491 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1435
- ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1492
+ ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14361493 aConstraints.gridx = 0;
14371494 aConstraints.gridy += 1;
14381495 aConstraints.gridwidth = 1;
....@@ -1442,7 +1499,7 @@
14421499 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14431500 aConstraints.gridx += 1;
14441501 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1445
- ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1502
+ ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14461503 aConstraints.gridx = 0;
14471504 aConstraints.gridy += 1;
14481505 aConstraints.gridwidth = 1;
....@@ -1452,7 +1509,7 @@
14521509 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14531510 aConstraints.gridx += 1;
14541511 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1455
- ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1512
+ ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14561513 aConstraints.gridx = 0;
14571514 aConstraints.gridy += 1;
14581515 aConstraints.gridwidth = 1;
....@@ -1462,7 +1519,7 @@
14621519 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14631520 aConstraints.gridx += 1;
14641521 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1465
- ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1522
+ ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14661523 aConstraints.gridx = 0;
14671524 aConstraints.gridy += 1;
14681525 aConstraints.gridwidth = 1;
....@@ -1531,7 +1588,7 @@
15311588 aConstraints.fill = GridBagConstraints.HORIZONTAL;
15321589 aConstraints.gridx += 1;
15331590 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1534
- ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1591
+ ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.5), aConstraints);
15351592 aConstraints.gridx = 0;
15361593 aConstraints.gridy += 1;
15371594 aConstraints.gridwidth = 1;
....@@ -1600,7 +1657,7 @@
16001657 aConstraints.fill = GridBagConstraints.HORIZONTAL;
16011658 aConstraints.gridx += 1;
16021659 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1603
- ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1660
+ ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.5), aConstraints);
16041661 aConstraints.gridx = 0;
16051662 aConstraints.gridy += 1;
16061663 aConstraints.gridwidth = 1;
....@@ -1671,7 +1728,7 @@
16711728 aConstraints.fill = GridBagConstraints.HORIZONTAL;
16721729 aConstraints.gridx += 1;
16731730 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1674
- ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1731
+ ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.5), aConstraints);
16751732 aConstraints.gridx = 0;
16761733 aConstraints.gridy += 1;
16771734 aConstraints.gridwidth = 1;
....@@ -2958,20 +3015,37 @@
29583015 // june 2013 copy.HardTouch();
29593016 cameraView.repaint();
29603017 return;
2961
- } else if (event.getSource() == toggleFullItem)
3018
+ } else if (event.getSource() == toggleTimelineItem)
29623019 {
2963
- if (CameraPane.FULLSCREEN)
3020
+ timeline ^= true;
3021
+
3022
+ if (timeline)
29643023 {
2965
- frame.getContentPane().remove(/*"Center",*/bigThree);
2966
- framePanel.add(bigThree);
2967
- frame.getContentPane().add(/*"Center",*/framePanel);
2968
- } else
2969
- {
2970
- frame.getContentPane().remove(/*"Center",*/framePanel);
2971
- frame.getContentPane().add(/*"Center",*/bigThree);
3024
+ centralPanel.remove(cameraView);
3025
+ cameraPanel.add(cameraView);
3026
+ centralPanel.add(cameraPanel);
3027
+ frame.setJMenuBar(timelineMenubar);
3028
+ wasFullScreen = CameraPane.FULLSCREEN;
3029
+ if (!CameraPane.FULLSCREEN)
3030
+ ToggleFullScreen();
3031
+ toggleFullScreenItem.setEnabled(false);
29723032 }
3033
+ else
3034
+ {
3035
+ centralPanel.remove(cameraPanel);
3036
+ centralPanel.add(cameraView);
3037
+ frame.setJMenuBar(null);
3038
+ if (!wasFullScreen)
3039
+ ToggleFullScreen();
3040
+ toggleFullScreenItem.setEnabled(true);
3041
+ }
3042
+
29733043 frame.validate();
2974
- cameraView.ToggleFullScreen();
3044
+ return;
3045
+ } else if (event.getSource() == toggleFullScreenItem)
3046
+ {
3047
+ ToggleFullScreen();
3048
+ frame.validate();
29753049
29763050 return;
29773051 } else if (event.getSource() == toggleRandomItem)
....@@ -3081,7 +3155,8 @@
30813155 objEditor.refreshContents();
30823156 } else if (event.getSource() == stepItem)
30833157 {
3084
- cameraView.ONESTEP = true;
3158
+ //cameraView.ONESTEP = true;
3159
+ Globals.ONESTEP = true;
30853160 cameraView.repaint();
30863161 return;
30873162 } else if (event.getSource() == stepButton)
....@@ -3220,9 +3295,9 @@
32203295 cameraView.RevertCamera();
32213296 cameraView.repaint();
32223297 return;
3223
- } else if (event.getSource() == textureButton)
3224
- {
3225
- return; // true;
3298
+// } else if (event.getSource() == textureButton)
3299
+// {
3300
+// return; // true;
32263301 } else // combos...
32273302 if (event.getSource() == texresMenu)
32283303 {
....@@ -3238,25 +3313,25 @@
32383313
32393314 void ToggleAnimation()
32403315 {
3241
- if (!CameraPane.ANIMATION)
3316
+ if (!Globals.ANIMATION)
32423317 {
32433318 FileDialog browser = new FileDialog(frame, "Save Animation As...", FileDialog.SAVE);
32443319 browser.show();
32453320 String filename = browser.getFile();
32463321 if (filename != null && filename.length() > 0)
32473322 {
3248
- CameraPane.filename = browser.getDirectory() + filename;
3323
+ Globals.filename = browser.getDirectory() + filename;
32493324 //CameraPane.framecount = 0;
3250
- CameraPane.imagecount = 0;
3325
+ Globals.imagecount = 0;
32513326
3252
- CameraPane.ANIMATION ^= true;
3327
+ Globals.ANIMATION ^= true;
32533328
32543329 GrafreeD.wav.cursor = 0;
32553330 GrafreeD.wav.loop = 0;
32563331 }
32573332 } else
32583333 {
3259
- CameraPane.ANIMATION ^= true;
3334
+ Globals.ANIMATION ^= true;
32603335 }
32613336 }
32623337
....@@ -3509,7 +3584,13 @@
35093584 //System.out.println("PARENT = " + parent);
35103585 //if (parent != null)
35113586 // parent.applySelf();
3512
- refreshContents();
3587
+ if (e.getSource() == normalpushField)
3588
+ {
3589
+ objEditor.refreshContents();
3590
+ //Refresh();
3591
+ }
3592
+ else
3593
+ refreshContents();
35133594 // ??? client.refreshEditWindow();
35143595 }
35153596 //else
....@@ -3521,7 +3602,7 @@
35213602 //group.name = nameField.getText();
35223603 //objEditor.applySelf();
35233604
3524
- assert (objEditor == this);
3605
+ // OCT2018: assert (objEditor == this);
35253606 if (copy.selection == null || copy.selection.size() == 0)
35263607 //super.applySelf()
35273608 ; else
....@@ -3545,12 +3626,18 @@
35453626 objEditor.copy = keep;
35463627 }
35473628 }
3629
+
3630
+ if (normalpushField != null)
3631
+ copy.NORMALPUSH = (float)normalpushField.getFloat()/1000;
35483632 }
35493633
35503634 void SnapObject()
35513635 {
3552
- Object3D obj = (Object3D)copy.selection.elementAt(0);
3553
- SnapObject(obj);
3636
+ if (copy.selection.size() > 0)
3637
+ {
3638
+ Object3D obj = (Object3D)copy.selection.elementAt(0);
3639
+ SnapObject(obj);
3640
+ }
35543641 }
35553642
35563643 void SnapObject(Object3D obj)
....@@ -4444,7 +4531,8 @@
44444531 MenuItem revertCameraItem;
44454532 CheckboxMenuItem toggleLiveItem;
44464533 MenuItem stepItem;
4447
- CheckboxMenuItem toggleFullItem;
4534
+ CheckboxMenuItem toggleFullScreenItem;
4535
+ CheckboxMenuItem toggleTimelineItem;
44484536 CheckboxMenuItem toggleRenderItem;
44494537 CheckboxMenuItem toggleDebugItem;
44504538 CheckboxMenuItem toggleFrustumItem;
....@@ -4467,15 +4555,18 @@
44674555 JScrollPane infoPanel;
44684556 JPanel optionsPanel;
44694557 JTabbedPane objectPanel;
4470
- JPanel XYZPanel;
4558
+ cGridBag XYZPanel;
44714559 JSplitPane gridPanel;
44724560 JSplitPane bigPanel;
4473
- JPanel bigThree;
4474
- JTabbedPane jtp;
4475
- JPanel cameraPanel;
4561
+ cGridBag bigThree;
4562
+ JTabbedPane scenePanel;
4563
+ JPanel centralPanel;
4564
+ JSplitPane cameraPanel;
4565
+ JPanel timelinePanel;
4566
+ JMenuBar timelineMenubar;
44764567 JSplitPane framePanel;
44774568 JTextArea/*Field*/ nameField;
4478
- cButton textureButton;
4569
+ //cButton textureButton;
44794570 cButton okButton;
44804571 cButton applyButton;
44814572 cButton cancelButton;
....@@ -4583,4 +4674,6 @@
45834674 NumberSlider opacityPowerField;
45844675 JTree jTree;
45854676 //ObjectUI parent;
4677
+
4678
+ NumberSlider normalpushField;
45864679 }