]> Creatis software - bbtk.git/blob - packages/wx/src/bbwxSizer.cxx
fab3e252aa000c56954ed11736a2e9ac889d4f46
[bbtk.git] / packages / wx / src / bbwxSizer.cxx
1 /*=========================================================================
2                                                                                 
3   Program:   bbtk
4   Module:    $RCSfile: bbwxSizer.cxx,v $
5   Language:  C++
6   Date:      $Date: 2008/02/05 13:23:47 $
7   Version:   $Revision: 1.2 $
8                                                                                 
9   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10   l'Image). All rights reserved. See Doc/License.txt or
11   http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details.
12                                                                                 
13      This software is distributed WITHOUT ANY WARRANTY; without even
14      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15      PURPOSE.  See the above copyright notices for more information.
16                                                                                 
17 =========================================================================*/
18 /**
19  *  \file 
20  *  \brief 
21  */
22
23
24 #ifdef _USE_WXWIDGETS_
25
26
27 #include "bbwxSizer.h"
28 #include "bbwxPackage.h"
29
30
31
32
33
34 namespace bbwx
35 {
36   BBTK_ADD_BLACK_BOX_TO_PACKAGE(wx , Sizer);
37   
38 /*  
39   wxWidgetSizer::wxWidgetSizer(wxWindow *parent,int orientation)
40     : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL)
41   {
42     wxPanel                     *panel  = this;
43
44         if (orientation==0)
45         {
46                 mwxSizer        = new wxBoxSizer(wxHORIZONTAL);
47         } else {
48                 mwxSizer        = new wxBoxSizer(wxVERTICAL);
49         } 
50
51         panel   -> SetSizer(mwxSizer);
52    panel        -> SetAutoLayout(true);
53    panel        -> Layout();
54     
55     mbbtkSizer=NULL;
56   }
57   //-------------------------------------------------------------------------
58   void  wxWidgetSizer::AddChild(wxWindow* child)
59   {
60     mwxSizer->Add(child, 1, wxEXPAND, 0);
61   }
62   
63   wxWidgetSizer::~wxWidgetSizer()
64   {
65   }
66   
67   //-------------------------------------------------------------------------
68   
69   void wxWidgetSizer::SetSizer(Sizer* bbtksizer)
70   {
71     mbbtkSizer = bbtksizer;
72   }
73   
74
75   
76   //--------------------------------------------------------------------------
77   //-------------------------------------------------------------------------
78   //--------------------------------------------------------------------------
79   //--------------------------------------------------------------------------
80
81 */
82
83   BBTK_USER_BLACK_BOX_IMPLEMENTATION(Sizer,bbtk::WxBlackBox);
84   
85         void Sizer::bbUserConstructor() 
86         { 
87                 bbSetInputOrientation(1);
88                 bbSetInputWidget1(NULL);
89                 bbSetInputWidget2(NULL);
90                 bbSetInputWidget3(NULL);
91                 bbSetInputWidget4(NULL);
92                 bbSetInputWidget5(NULL);
93                 bbSetInputWidget6(NULL);
94                 bbSetInputWidget7(NULL);
95                 bbSetInputWidget8(NULL);
96                 bbSetInputWidget9(NULL);
97                 bbSetInputWidget10(NULL);
98         }
99
100         void Sizer::TryInsertWindow(wxWindow *parent, wxWindow *w,wxBoxSizer *sizer)
101         {
102                   if (w!=NULL)
103                   {
104                           w->Reparent(parent);
105                           sizer->Add(w, 1, wxEXPAND, 0);                  
106                   }             
107         }
108
109
110           void Sizer::Process() 
111           { 
112           }
113
114           
115           void Sizer::CreateWidget() 
116           { 
117           wxBoxSizer *sizer;
118           wxPanel *w=new wxPanel(bbGetWxParent(), -1);
119           if (bbGetInputOrientation()==0)
120           {
121                   sizer = new wxBoxSizer(wxHORIZONTAL);
122           } else {
123                   sizer = new wxBoxSizer(wxVERTICAL);
124           } 
125
126           TryInsertWindow(w,bbGetInputWidget1(),sizer);
127           TryInsertWindow(w,bbGetInputWidget2(),sizer);
128           TryInsertWindow(w,bbGetInputWidget3(),sizer);
129           TryInsertWindow(w,bbGetInputWidget4(),sizer);
130           TryInsertWindow(w,bbGetInputWidget5(),sizer);
131           TryInsertWindow(w,bbGetInputWidget6(),sizer);
132           TryInsertWindow(w,bbGetInputWidget7(),sizer);
133           TryInsertWindow(w,bbGetInputWidget8(),sizer);
134           TryInsertWindow(w,bbGetInputWidget9(),sizer);
135           TryInsertWindow(w,bbGetInputWidget10(),sizer);
136           
137           w     -> SetSizer(sizer);
138 //        w     -> SetAutoLayout(true);
139 //        w     -> Layout();
140           bbSetOutputWidget( w );
141   }
142   
143
144 /*  
145   wxWindow *Sizer::CreateWxWindow(wxWindow *parent)
146   {
147     bbtkDebugMessageInc("Kernel",9,"Sizer::CreateWxWindow("<<parent<<")"<<std::endl);
148     
149     wxWidgetSizer *wxwidgetsizer = new wxWidgetSizer(parent,bbGetInputOrientation() );
150
151 //    OutputConnectorMapType::iterator i = GetOutputConnectorMap().find("Child");  
152         OutputConnectorMapType::iterator i;
153         for (i=GetOutputConnectorMap().begin() ; i!=GetOutputConnectorMap().end(); ++i ){
154                 if (i->first=="Child")
155                 {
156                         const std::vector<Connection*>& C = i->second->GetConnectionVector();
157                         std::vector<Connection*>::const_iterator j;
158                         for (j=C.begin(); j!=C.end(); ++j) 
159                         {
160 //                              WxBlackBox* to = ((WxBlackBox*)((*j)->GetBlackBoxTo()));
161 //                              wxWindow* cw = ((WxBlackBox*)((*j)->GetBlackBoxTo()))->GetWxWindow(wxwidgetsizer);
162                                 wxPanel *cw = new wxPanel(wxwidgetsizer,-1);
163                                 cw->SetName( wxString( (*j)->GetBlackBoxTo()->bbGetName().c_str(), wxConvUTF8 ) );
164                                 wxwidgetsizer->AddChild(cw);
165                         } // for j
166                         break;
167                 } // if Child
168         } // for i
169     //
170     wxwidgetsizer->SetSizer(this);
171     
172     bbtkDebugDecTab("Kernel",9);
173     
174         Setmwxcontainer(wxwidgetsizer);
175
176     return wxwidgetsizer;
177   }
178
179   void Sizer::AddWxBBChild(WxBlackBox *wxblackbox)  // virtual
180   {
181         wxWindow *subparent = GetSubParent( wxString(wxblackbox->bbGetName().c_str(),wxConvUTF8 ) );
182         wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
183         sizer -> Add( wxblackbox->GetWxWindow( subparent ) , 1, wxALL|wxEXPAND, 2);
184         subparent -> SetAutoLayout(true);
185         subparent -> SetSizer(sizer);
186         subparent -> Layout();
187   }
188 */
189
190
191
192 }//namespace bbwx
193
194 #endif
195