]> Creatis software - bbtk.git/blob - packages/wxvtk/bbs/boxes/bbBasicImageApplication.bbs
8525fd6ad07f50d169706a026031afde2fcc2080
[bbtk.git] / packages / wxvtk / bbs / boxes / bbBasicImageApplication.bbs
1 include wxvtk/boxes/bbDoubleSlicer
2 load wx
3 load std
4 load itk
5 load itkvtk 
6 load vtk
7
8
9 define BasicImageApplication
10
11 ##
12   description "Interface of a 'standard' image application. Displays two images : before/after processing; Offers buttons : open/parameters/run/save/quit. See <a href='../demo/index.html#DemoBasicImageApplication'>DemoBasicImageApplication.bbs</a>. Screenshot : <center><img src='../demo/DemoBasicImageApplication1.png' width=400></center>."
13   author "laurent.guigues@creatis.insa-lyon.fr"
14   category "widget"
15 ##
16
17
18 # WINDOWS CREATION
19   new LayoutSplit mainWindow
20   set mainWindow.Proportion 90
21
22   new DoubleSlicer viewer
23
24   new LayoutLine buttonsBar
25   
26   new CommandButton openButton
27   new CommandButton paramButton
28   new CommandButton runButton
29   new CommandButton saveButton
30   new CommandButton quitButton
31
32   connect viewer.Widget      mainWindow.Widget1
33   connect buttonsBar.Widget  mainWindow.Widget2
34
35   connect openButton.Widget  buttonsBar.Widget1
36   connect paramButton.Widget buttonsBar.Widget2
37   connect runButton.Widget   buttonsBar.Widget3
38   connect saveButton.Widget  buttonsBar.Widget4
39   connect quitButton.Widget  buttonsBar.Widget5
40
41   set viewer.Orientation 0
42   set buttonsBar.Orientation 0
43
44 #OPEN
45   set openButton.Label "Open"
46   set paramButton.Label "Parameters"
47   set saveButton.Label "Save"
48   new FileSelector openFileDialog
49   connect openButton.BoxChange openFileDialog.BoxExecute
50   connect openButton.BoxChange viewer.RefreshSlicer1
51   set openFileDialog.Message "Select input image"
52   set openFileDialog.OpenSave "Open"
53 #READER
54   new MetaImageReader reader 
55 #  set reader.Filename  "/home/guigues/coding/Sofa/bbtk/data/thorax.hdr"
56   connect openFileDialog.Out reader.In
57
58   connect reader.Out viewer.In1
59
60
61 # RUN
62   set runButton.Label "Run"
63   new MultipleInputs refreshViewerOut 
64   connect refreshViewerOut.Out viewer.RefreshSlicer2
65   connect runButton.BoxChange refreshViewerOut.In1
66
67
68 #SAVE 
69   new ImageWriter writer
70   new FileSelector saveFileDialog
71   set saveFileDialog.BoxProcessMode Always
72   set saveFileDialog.DefaultFile "out.hdr"
73   set saveFileDialog.Message "Select output image"
74   set saveFileDialog.OpenSave "Save"
75   connect saveFileDialog.Out writer.Filename
76   connect saveButton.BoxChange refreshViewerOut.In2
77   connect saveButton.BoxChange writer.BoxExecute
78
79 #PARAMETERS 
80   new LayoutSplit paramWindow
81   set paramWindow.Proportion 80
82   set paramWindow.WinTitle "Parameters"
83 #  new LayoutLine userParamWindow
84 #  connect userParamWindow.Widget paramWindow.Widget1
85   new CommandButton paramWindowCloseButton
86   set paramWindowCloseButton.Label "Close"
87   connect paramWindowCloseButton.Widget paramWindow.Widget2
88   new MultipleInputs paramWindowHide
89   connect paramWindowHide.Out paramWindow.WinHide
90   connect paramWindowCloseButton.BoxChange paramWindowHide.In1
91   connect paramButton.BoxChange paramWindow.BoxExecute
92
93 #QUIT
94   set quitButton.Label "Quit"
95   connect quitButton.BoxChange mainWindow.WinHide
96   connect quitButton.BoxChange paramWindowHide.In2
97   set quitButton.In "reset"
98
99
100
101 # INPUTS / OUTPUTS 
102   new anyItkImagePointerRelay imageOut
103   connect imageOut.Out viewer.In2
104   connect imageOut.Out writer.In
105   
106   input AlgorithmOutput imageOut.In "Plug here the output of your algorithm"
107   output AlgorithmInput reader.Out "Plug this output to the input of your algorithm"
108   input ParametersWidget paramWindow.Widget1 "Connect here your parameter tuning widget"
109
110   input ParametersWindowWidth paramWindow.WinWidth "The width of the parameters window"
111   input ParametersWindowHeight paramWindow.WinHeight "The height of the parameters window"
112   input WinTitle mainWindow.WinTitle "Title of the main window"
113
114   input Refresh viewer.BoxProcessModeSlicer2 "Set to 'Reactive' to have automatic refresh when image or parameters change"
115
116   exec mainWindow
117
118
119 endefine
120