X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=src%2FcreaImageIOWxGimmickView.cpp;h=a5650ee32978d68830327d8b0de2b66ac7c68a68;hb=1813f80def50d02057c58a83245739066f37f9f0;hp=ea691e387973e3500f5b076de29fcca3ec39f79b;hpb=79372affb878a3ffd7896b8ffbb06b564c0550ce;p=creaImageIO.git diff --git a/src/creaImageIOWxGimmickView.cpp b/src/creaImageIOWxGimmickView.cpp index ea691e3..a5650ee 100644 --- a/src/creaImageIOWxGimmickView.cpp +++ b/src/creaImageIOWxGimmickView.cpp @@ -138,6 +138,8 @@ namespace creaImageIO mProgressDialog(NULL), mConstructed(false) { + + mViewer = NULL; GimmickDebugMessage(1,"WxGimmickView::WxGimmickView" <GetHomeDirectory()); @@ -145,16 +147,20 @@ namespace creaImageIO // Connect the AddProgress callback gimmick->ConnectAddProgressObserver( boost::bind( &WxGimmickView::OnAddProgress , this, _1 ) ); + // Create the list of icons (mIcon) CreateIconList(); + // Global sizer msizer = new wxBoxSizer(wxVERTICAL); + // Create the tool bar - CreateToolBar(); + CreateToolBar( ); msizer->Add( mToolBar, 0, wxGROW, 0); + // Split part below toolbar into notebook for views and panel // for preview, messages... mSplitter = new wxSplitterWindow( this , -1); @@ -169,6 +175,7 @@ namespace creaImageIO mSelectionMinDimension = min_dim; // Create the views + CreateTreeViews(); // Bottom panel @@ -187,6 +194,8 @@ namespace creaImageIO mbottom_sizer->Add(mViewer,1,wxGROW,1); + + // mViewer->Show(); mText = new wxStaticText(mBottomPanel, wxID_ANY, wxT("Welcome to Gimmick!")); @@ -209,6 +218,7 @@ namespace creaImageIO mProgressDialog=NULL; SetSizer( msizer ); SetAutoLayout(true); + Layout(); //mListener=new Listener(); //mListener->ConnectObserver(boost::bind( &WxGimmickView::OnDriveMount, this, _1 ) ); @@ -229,24 +239,63 @@ namespace creaImageIO GimmickDebugMessage(1,"WxGimmickView::~WxGimmickView" <IsAlive()) { mListener->Delete(); } } //====================================================================== - + + + +void WxGimmickView::AddBtnTool(wxPanel *panel, wxBoxSizer *sizerH, int id, wxString label, int idBitmap, wxString tooltip ) +{ + wxBoxSizer *sizer; + wxBitmapButton *btn; + wxBitmap bitmap; + + bitmap = mIcon->GetBitmap(idBitmap); + btn = new wxBitmapButton(mToolBar, id, bitmap, wxDefaultPosition, wxSize(50,50) , wxBU_BOTTOM ); + btn->SetToolTip( tooltip ); + sizer = new wxBoxSizer(wxVERTICAL); + sizer->Add(btn,1,wxGROW,0); + sizer->Add(new wxStaticText(mToolBar,-1,label) , 0, wxALL | wxALIGN_CENTER, 3); + sizerH->Add( sizer ,1,wxGROW,0); +} + //====================================================================== /// Creates the tool bar void WxGimmickView::CreateToolBar() { + mToolBar = new wxPanel(this,-1, wxDefaultPosition, wxSize(80,80) ); + wxBoxSizer *sizerH = new wxBoxSizer(wxHORIZONTAL); + + AddBtnTool(mToolBar, sizerH, TOOL_ADDFILES_ID , _T("Add file(s)") , Icon_page_down , _T("Add one or more file to database") ); + AddBtnTool(mToolBar, sizerH, TOOL_ADDDIR_ID , _T("Add folder") , Icon_folder_down , _T("Add the content of a folder to database") ); + AddBtnTool(mToolBar, sizerH, TOOL_ADDDATABASE_ID , _T("Open database") , Icon_database_add , _T("Open a local or distant database") ); + AddBtnTool(mToolBar, sizerH, TOOL_REMOVE_ID , _T("Remove") , Icon_remove , _T("Remove selected items") ); + AddBtnTool(mToolBar, sizerH, TOOL_SYNCHRONIZE_ID , _T("Synchronize") , Icon_synchronize , _T("Synchronizes the database with disk") ); + AddBtnTool(mToolBar, sizerH, TOOL_HELP_ID , _T("Help") , Icon_help , _T("Open help window") ); + AddBtnTool(mToolBar, sizerH, TOOL_SETTINGS_ID , _T("System settings") , Icon_settings , _T("Allows the modification of various system settings") ); + AddBtnTool(mToolBar, sizerH, TOOL_TOOLS_ID , _T("Tools") , Icon_tools , _T("Applies tools to images") ); + AddBtnTool(mToolBar, sizerH, TOOL_CREATEDB_ID , _T("Create database") , Icon_create_database , _T("Create DB from an Attributes Descriptor file") ); + #if defined(BUILD_PACS) + AddBtnTool(mToolBar, sizerH, TOOL_PACS_ID , _T("PACS Connection,"), Icon_create_database , _T("Echo, Find and Get to a PACS") ); + #endif + mToolBar->SetSizer( sizerH ); + mToolBar->Layout(); + +/* EED 2021-12-17 + The wxToolBar depends from wxFrame, in this code it is not the case. In Mac Os is not working ! + Change the mechanisme from wcToolBar to normal Buttons long style = wxTB_HORIZONTAL | wxNO_BORDER | wxTB_TEXT; - mToolBar = new wxToolBar(this,-1,wxDefaultPosition,wxDefaultSize, - style); + mToolBar = new wxToolBar(this,-1,wxDefaultPosition,wxDefaultSize,style); - mToolAddFile = mToolBar->AddTool( TOOL_ADDFILES_ID, + mToolAddFile = mToolBar->AddTool( TOOL_ADDFILES_ID, _T("Add file(s)"), mIcon->GetBitmap(Icon_page_down), _T("Add one or more file to database") ); - mToolAddDir = mToolBar->AddTool( TOOL_ADDDIR_ID, + mToolAddDir = mToolBar->AddTool( TOOL_ADDDIR_ID, _T("Add folder"), mIcon->GetBitmap(Icon_folder_down), _T("Add the content of a folder to database") @@ -294,8 +343,9 @@ namespace creaImageIO ); #endif //const wxBitmap& bitmap1, const wxString& shortHelpString = "", wxItemKind kind = wxITEM_NORMAL) + mToolBar->Realize(); - mToolBar->Realize(); + */ } //====================================================================== @@ -355,12 +405,11 @@ namespace creaImageIO std::string asking; std::string dim; - bool bsingle = isSingle(files.front()); + bool bsingle = isSingle( files.front() ); int i_dim_out; mGimmick->GetSetting(SETTINGS_OUTPUT_ASK, asking); mGimmick->GetSetting(SETTINGS_OUTPUT_DIM, dim); - if (asking == "true") { // display the output dialog box @@ -423,6 +472,7 @@ namespace creaImageIO } // Now we read and create the waiting output (vtkImageData * or OutGimmickData *) readImages(outG, sort_files, Oattr, i_dim_out, zspacing); + } @@ -784,15 +834,16 @@ namespace creaImageIO //================================================== void WxGimmickView::OnInternalIdle() { - if (!mConstructed) return; + if (!mConstructed) return; static bool first_time = true; + if (false) { first_time = false; } // GimmickMessage(1,"WxGimmickView : Refresh viewer"<StartPlayer(); - if(mViewer) + if(mViewer!=NULL) { mViewer->RefreshIfNecessary(); } @@ -800,9 +851,11 @@ namespace creaImageIO #else void WxGimmickView::UpdateWindowUI(long flags) { - if(mViewer) + if(mViewer!=NULL) { - mViewer->RefreshIfNecessary(); +// EED 2018-08-23 +// GL Conflict because window is not showing the fist time +//EED mViewer->RefreshIfNecessary(); } } #endif @@ -811,14 +864,12 @@ namespace creaImageIO //================================================== void WxGimmickView::ClearSelection() { -printf("EED WxGimmickView::ClearSelection Start\n"); pointers.clear(); pointers.push_back(boost::shared_ptr(new ImagePointerHolder(GetDefaultImage()))); //pointers.push_back(new ImagePointerHolder(GetDefaultImage())); mViewer->SetImageVector(pointers); mViewer->RefreshIfNecessary(); ResetExtent(); -printf("EED WxGimmickView::ClearSelection End\n"); } //================================================= @@ -1345,6 +1396,20 @@ printf("EED WxGimmickView::ClearSelection End\n"); //================================================= //================================================= + +BEGIN_EVENT_TABLE(WxGimmickView, wxPanel) + EVT_BUTTON(TOOL_CREATEDB_ID, WxGimmickView::OnCreateDB) + EVT_BUTTON(TOOL_ADDFILES_ID, WxGimmickView::OnAddFiles) + EVT_BUTTON(TOOL_ADDDIR_ID, WxGimmickView::OnAddDir) + EVT_BUTTON(TOOL_ADDDATABASE_ID, WxGimmickView::OnAddDB) + EVT_BUTTON(TOOL_REMOVE_ID, WxGimmickView::OnRemove) + EVT_BUTTON(TOOL_SYNCHRONIZE_ID, WxGimmickView::OnSynchronize) + EVT_BUTTON(TOOL_SETTINGS_ID, WxGimmickView::OnSettings) + EVT_BUTTON(TOOL_TOOLS_ID, WxGimmickView::OnTools) +END_EVENT_TABLE() + + +/* BEGIN_EVENT_TABLE(WxGimmickView, wxPanel) EVT_TOOL(TOOL_CREATEDB_ID, WxGimmickView::OnCreateDB) EVT_TOOL(TOOL_ADDFILES_ID, WxGimmickView::OnAddFiles) @@ -1355,6 +1420,7 @@ printf("EED WxGimmickView::ClearSelection End\n"); EVT_TOOL(TOOL_SETTINGS_ID, WxGimmickView::OnSettings) EVT_TOOL(TOOL_TOOLS_ID, WxGimmickView::OnTools) END_EVENT_TABLE() +*/ //================================================= } // EO namespace creaImageIO