X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/645889ad25eaa6e332463a6105a1dfd63d917d36..3be926e348e2d0a3a2c278b9f2cff7843971e0c9:/demos/dbbrowse/doc.cpp diff --git a/demos/dbbrowse/doc.cpp b/demos/dbbrowse/doc.cpp index a78fc90847..d2ef781bd6 100644 --- a/demos/dbbrowse/doc.cpp +++ b/demos/dbbrowse/doc.cpp @@ -1,7 +1,7 @@ //---------------------------------------------------------------------------------------- // Name: doc.cpp // Purpose: Holds information for DBBrowser - (a do-it-yourself document) -// Author: Mark Johnson, mj10777@gmx.net +// Author: Mark Johnson // Modified by: 19990808.mj10777 // BJO : Bart A.M. JOURQUIN // Created: 19990808 @@ -9,13 +9,7 @@ // Licence: wxWindows license // RCS-ID: $Id$ //---------------------------------------------------------------------------------------- -//-- all #ifdefs that the whole Project needs. ------------------------------------------- -//---------------------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif -//---------------------------------------------------------------------------------------- + // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" //---------------------------------------------------------------------------------------- @@ -33,7 +27,7 @@ //---------------------------------------------------------------------------------------- //-- Some Global Vars for all Files (extern in ?.h needed) ------------------------------- // Global structure for holding ODBC connection information -wxDbConnectInf DbConnectInf; +extern wxDbConnectInf DbConnectInf; //---------------------------------------------------------------------------------------- wxConfigBase *p_ProgramCfg; // All Config and Path information @@ -56,15 +50,15 @@ MainDoc::MainDoc() p_PageArea = NULL; i_TabNr = 0; i_PageNr = 0; - s_BColour = "WHEAT"; - ft_Doc = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT)); + s_BColour = _T("WHEAT"); + ft_Doc = new wxFont(wxSystemSettings::GetFont(wxSYS_SYSTEM_FONT)); } //---------------------------------------------------------------------------------------- MainDoc::~MainDoc() { - p_TabArea->Show(FALSE); // Deactivate the Window - p_PageArea->Show(FALSE); // Deactivate the Window + p_TabArea->Show(false); // Deactivate the Window + p_PageArea->Show(false); // Deactivate the Window // ---------------------------------------------------------- // -E-> The Tree Controls take to long to close : Why ?? @@ -86,41 +80,42 @@ bool MainDoc::OnNewDocument() wxStopWatch sw; //--------------------------------------------------------------------------------------- if (!OnInitView()) - return FALSE; + return false; p_PgmCtrl->OnPopulate(); //--------------------------------------------------------------------------------------- wxLogMessage(_("-I-> MainDoc::OnNewDocument() - End - Time needed : %ld ms"),sw.Time()); - return TRUE; + return true; } //---------------------------------------------------------------------------------------- bool MainDoc::OnInitView() { - Sash = p_ProgramCfg->Read("/MainFrame/Sash", 200); + Sash = p_ProgramCfg->Read(_T("/MainFrame/Sash"), 200); // wxMessageBox("OnInitView() - Begin ","-I->MainDoc::OnInitView"); //--------------------------------------------------------------------------------------- // create "workplace" window //--------------------------------------------------------------------------------------- p_TabArea = new wxTabbedWindow(); // Init the Pointer - p_TabArea->Create(p_Splitter, -1); + p_TabArea->Create(p_Splitter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE); //--------------------------------------------------------------------------------------- p_PgmCtrl = new PgmCtrl(p_TabArea, TREE_CTRL_PGM,wxDefaultPosition, wxDefaultSize, wxTR_HAS_BUTTONS | wxSUNKEN_BORDER); p_PgmCtrl->i_TabArt = 0; // 0 = Tab ; 1 = Page p_PgmCtrl->i_ViewNr = p_TabArea->GetTabCount()-1; //--------------------------------------------------------------------------------------- - wxBitmap *p_FolderClose = new wxBitmap("PgmCtrl"); //, wxBITMAP_TYPE_BMP_RESOURCE); // BJO20000115 + wxBitmap *p_FolderClose = new wxBitmap(_T("PgmCtrl")); //, wxBITMAP_TYPE_BMP_RESOURCE); // BJO20000115 //--------------------------------------------------------------------------------------- - p_TabArea->AddTab(p_PgmCtrl,"PgmCtrl",p_FolderClose); + p_TabArea->AddTab(p_PgmCtrl,_T("PgmCtrl"),p_FolderClose); delete p_FolderClose; // Memory leak p_FolderClose = NULL; + wxUnusedVar(p_FolderClose); //--------------------------------------------------------------------------------------- // now create "output" window //--------------------------------------------------------------------------------------- p_PageArea = new wxPagedWindow(); // Init the Pointer - p_PageArea->Create(p_Splitter, -1); + p_PageArea->Create(p_Splitter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE); //--------------------------------------------------------------------------------------- - p_LogWin = new wxTextCtrl(p_PageArea,-1,wxEmptyString, + p_LogWin = new wxTextCtrl(p_PageArea,wxID_ANY,wxEmptyString, wxDefaultPosition, wxDefaultSize,wxTE_MULTILINE ); p_LogWin->SetFont(* ft_Doc); // Don't forget ! This is always : i_TabArt = 0 ; i_ViewNr = 1; @@ -129,7 +124,7 @@ bool MainDoc::OnInitView() p_LogBook->SetActiveTarget(p_LogBook); p_LogBook->SetTimestamp( NULL ); //--------------------------------------------------------------------------------------- - p_PageArea->AddTab(p_LogWin,_("LogBook"), "what is this?" ); + p_PageArea->AddTab(p_LogWin,_("LogBook"), _T("what is this?") ); i_TabNr = p_TabArea->GetTabCount()-1; // Add one when a new AddTab is done; i_PageNr = p_PageArea->GetTabCount()-1; // Add one when a new AddTab is done; //--------------------------------------------------------------------------------------- @@ -140,71 +135,68 @@ bool MainDoc::OnInitView() p_Splitter->SplitHorizontally(p_TabArea,p_PageArea,Sash); //--------------------------------------------------------------------------------------- // if (!OnInitODBC()) - // return FALSE; + // return false; OnInitODBC(); //--------------------------------------------------------------------------------------- +#if wxUSE_STATUSBAR Temp0.Printf(_("-I-> MainDoc::OnInitView() - End - %d DSN's found"),i_DSN); p_MainFrame->SetStatusText(Temp0, 0); wxLogMessage(Temp0); - return TRUE; +#endif // wxUSE_STATUSBAR + return true; } //---------------------------------------------------------------------------------------- bool MainDoc::OnInitODBC() { - char Dsn[SQL_MAX_DSN_LENGTH + 1]; - char DsDesc[255]; // BJO20002501 instead of 512 - Temp0 = ""; + wxChar Dsn[SQL_MAX_DSN_LENGTH+1]; + wxChar DsDesc[254+1]; // BJO20002501 instead of 512 + Temp0 = wxEmptyString; i_DSN = 0; // Counter - int i = 0; + int i; //--------------------------------------------------------------------------------------- // Initialize the ODBC Environment for Database Operations - - if (SQLAllocEnv(&DbConnectInf.Henv) != SQL_SUCCESS) + + if (!DbConnectInf.AllocHenv()) { - return FALSE; + return false; } + //--------------------------------------------------------------------------------------- - const char sep = 3; // separator character used in string between DSN ans DsDesc - wxStringList s_SortDSNList, s_SortDsDescList; + const wxChar sep = 3; // separator character used in string between DSN and DsDesc + wxSortedArrayString s_SortDSNList, s_SortDsDescList; // BJO-20000127 // In order to have same sort result on both Dsn and DsDesc, create a 'keyed' string. // The key will be removed after sorting wxString KeyString; //--------------------------------------------------------------------------------------- - while(wxDbGetDataSource(DbConnectInf.Henv, Dsn, sizeof(Dsn), DsDesc, sizeof(DsDesc))) + while (wxDbGetDataSource(DbConnectInf.GetHenv(), Dsn, SQL_MAX_DSN_LENGTH, DsDesc, 254)) { i_DSN++; // How many Dsn have we ? - KeyString.Printf("%s%c%s",Dsn, sep, DsDesc); + KeyString.Printf(_T("%s%c%s"),Dsn, sep, DsDesc); s_SortDSNList.Add(Dsn); s_SortDsDescList.Add(KeyString); } - s_SortDSNList.Sort(); //BJO - s_SortDsDescList.Sort(); //BJO - - char ** s_SortDSN = s_SortDSNList.ListToArray(); //BJO - char ** s_SortDsDesc = s_SortDsDescList.ListToArray(); //BJO + //--------------------------------------------------------------------------------------- // Allocate n ODBC-DSN objects to hold the information + // Allocate n wxDatabase objects to hold the column information p_DSN = new DSN[i_DSN]; //BJO + db_Br = new BrowserDB[i_DSN]; for (i=0;iDsn = s_SortDSN[i]; - (p_DSN+i)->Drv = s_SortDsDesc[i]; - (p_DSN+i)->Usr = ""; - (p_DSN+i)->Pas = ""; - Temp0.Printf("%02d) Dsn(%s) DsDesc(%s)",i,(p_DSN+i)->Dsn.c_str(),(p_DSN+i)->Drv.c_str()); + + // ODBC-DSN object + (p_DSN+i)->Dsn = s_SortDSNList[i]; + (p_DSN+i)->Drv = KeyString; + (p_DSN+i)->Usr = wxEmptyString; + (p_DSN+i)->Pas = wxEmptyString; + Temp0.Printf(_T("%02d) Dsn(%s) DsDesc(%s)"),i,(p_DSN+i)->Dsn.c_str(),(p_DSN+i)->Drv.c_str()); wxLogMessage(Temp0); - } - i = 0; - //--------------------------------------------------------------------------------------- - // Allocate n wxDatabase objects to hold the column information - db_Br = new BrowserDB[i_DSN]; - for (i=0;ip_LogWindow = p_LogWin; (db_Br+i)->ODBCSource = (p_DSN+i)->Dsn; (db_Br+i)->UserName = (p_DSN+i)->Usr; @@ -212,22 +204,20 @@ bool MainDoc::OnInitODBC() (db_Br+i)->pDoc = this; (db_Br+i)->i_Which = i; } - if (SQLFreeEnv(DbConnectInf.Henv) != SQL_SUCCESS) // BJO20000125 / MJ10777.20000309 : no & - { - // Error freeing environment handle - } - delete [] s_SortDSN; - delete [] s_SortDsDesc; + + DbConnectInf.FreeHenv(); + //--------------------------------------------------------------------------------------- if (!i_DSN) { - wxMessageBox(_("No Dataset names found in ODBC!\n" \ - " Program will exit!\n\n" \ - " Ciao"),"-E-> Fatal situation"); - return FALSE; + wxString message = _("No Dataset names found in ODBC!\n"); + message += _(" Program will exit!\n\n"); + message += _(" Ciao"); + wxMessageBox( message,_("-E-> Fatal situation")); + return false; } //--------------------------------------------------------------------------------------- - return TRUE; + return true; } //---------------------------------------------------------------------------------------- @@ -237,18 +227,18 @@ bool MainDoc::OnChosenDSN(int Which) //--------------------------------------------------------------------------------------- if (p_DBTree != NULL) { - p_TabArea->Show(FALSE); // Deactivate the Window + p_TabArea->Show(false); // Deactivate the Window p_TabArea->RemoveTab(p_DBTree->i_ViewNr); - p_TabArea->Show(TRUE); // Activate the Window - OnChosenTbl(77,""); + p_TabArea->Show(true); // Activate the Window + OnChosenTbl(77,wxEmptyString); } //------------------------- - p_TabArea->Show(FALSE); // Deactivate the Window + p_TabArea->Show(false); // Deactivate the Window p_DBTree = new DBTree(p_TabArea, TREE_CTRL_DB,wxDefaultPosition, wxDefaultSize, wxTR_HAS_BUTTONS | wxSUNKEN_BORDER); - p_TabArea->AddTab(p_DBTree,(p_DSN+Which)->Dsn," ? "); + p_TabArea->AddTab(p_DBTree,(p_DSN+Which)->Dsn,_T(" ? ")); p_DBTree->i_ViewNr = p_TabArea->GetTabCount()-1; - p_TabArea->Show(TRUE); // Deactivate the Window + p_TabArea->Show(true); // Deactivate the Window p_DBTree->i_Which = Which; p_DBTree->s_DSN = (p_DSN+Which)->Dsn; p_DBTree->i_TabArt = 0; @@ -257,7 +247,7 @@ bool MainDoc::OnChosenDSN(int Which) p_TabArea->SetActiveTab(p_DBTree->i_ViewNr); //--------------------------------------------------------------------------------------- // wxLogMessage("OnChosenDSN(%d) - End",Which); - return TRUE; + return true; } //---------------------------------------------------------------------------------------- @@ -269,52 +259,52 @@ bool MainDoc::OnChosenTbl(int Tab,wxString Table) { if (p_DBGrid->i_TabArt == 0) { - p_TabArea->Show(FALSE); // Deactivate the Window + p_TabArea->Show(false); // Deactivate the Window p_TabArea->RemoveTab(p_DBGrid->i_ViewNr); - p_TabArea->Show(TRUE); // Activate the Window + p_TabArea->Show(true); // Activate the Window } if (p_DBGrid->i_TabArt == 1) { - p_PageArea->Show(FALSE); // Deactivate the Window + p_PageArea->Show(false); // Deactivate the Window p_PageArea->RemoveTab(p_DBGrid->i_ViewNr); - p_PageArea->Show(TRUE); // Activate the Window + p_PageArea->Show(true); // Activate the Window } p_DBGrid = NULL; delete p_DBGrid; } if (Tab == 77) // Delete only - return TRUE; + return true; //------------------------- if (Tab == 0) // Tabview { - p_TabArea->Show(FALSE); // Deactivate the Window + p_TabArea->Show(false); // Deactivate the Window p_DBGrid = new DBGrid(p_TabArea,GRID_CTRL_DB,wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER); - p_TabArea->AddTab(p_DBGrid, Table, ""); + p_TabArea->AddTab(p_DBGrid, Table, wxEmptyString); p_DBGrid->i_ViewNr = p_TabArea->GetTabCount()-1; p_DBGrid->pDoc = this; p_DBGrid->db_Br = db_Br; p_DBGrid->OnTableView(Table); p_TabArea->SetActiveTab(p_DBGrid->i_ViewNr); - p_TabArea->Show(TRUE); // Activate the Window + p_TabArea->Show(true); // Activate the Window } if (Tab == 1) // Pageview { - p_PageArea->Show(FALSE); // Deactivate the Window + p_PageArea->Show(false); // Deactivate the Window p_DBGrid = new DBGrid(p_PageArea,GRID_CTRL_DB,wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER); - p_PageArea->AddTab(p_DBGrid, Table, ""); + p_PageArea->AddTab(p_DBGrid, Table, wxEmptyString); p_DBGrid->i_ViewNr = p_PageArea->GetTabCount()-1; p_DBGrid->pDoc = this; p_DBGrid->db_Br = db_Br; p_DBGrid->i_Which = p_DBTree->i_Which; - p_PageArea->Show(TRUE); // Activate the Window + p_PageArea->Show(true); // Activate the Window p_DBGrid->OnTableView(Table); p_PageArea->SetActiveTab(p_DBGrid->i_ViewNr); } p_DBGrid->i_TabArt = Tab; //-------------------------- - return TRUE;; + return true; } //----------------------------------------------------------------------------------------