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