]> git.saurik.com Git - wxWidgets.git/commitdiff
browsedb.cpp browsedb.h dbbrowse.cpp dbbrowse.h dbbrowse.rc
authorMark Johnson <mj10777@web.de>
Sat, 12 Feb 2000 14:11:17 +0000 (14:11 +0000)
committerMark Johnson <mj10777@web.de>
Sat, 12 Feb 2000 14:11:17 +0000 (14:11 +0000)
  dbgrid.cpp dbgrid.h dbtree.cpp dbtree.h dlguser.cpp dlguser.h
  doc.cpp doc.h pgmctrl.cpp pgmctrl.h

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5981 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

15 files changed:
demos/dbbrowse/browsedb.cpp
demos/dbbrowse/browsedb.h
demos/dbbrowse/dbbrowse.cpp
demos/dbbrowse/dbbrowse.h
demos/dbbrowse/dbbrowse.rc
demos/dbbrowse/dbgrid.cpp
demos/dbbrowse/dbgrid.h
demos/dbbrowse/dbtree.cpp
demos/dbbrowse/dbtree.h
demos/dbbrowse/dlguser.cpp
demos/dbbrowse/dlguser.h
demos/dbbrowse/doc.cpp
demos/dbbrowse/doc.h
demos/dbbrowse/pgmctrl.cpp
demos/dbbrowse/pgmctrl.h

index 602a074ddb552ed92da85d18a3d32cc87c6cbd08..48d3c308ec80b1b100322e0f3d43dd5bad9d38d2 100644 (file)
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Name:        BrowserDB.h,cpp
-// Purpose:     a wxDB;
+// Purpose:     a wxDB class
 // Author:      Mark Johnson, mj10777@gmx.net
 // Modified by:
 // Created:     19991127.mj10777
 // Copyright:   (c) Mark Johnson
 // Licence:     wxWindows license
 // RCS-ID:      $Id$
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 //-- 1)
-//---------------------------------------------------------------------------
-//-- all #ifdefs that the whole Project needs. ------------------------------
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- 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"
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifdef __BORLANDC__
 #pragma hdrstop
 #endif
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifndef WX_PRECOMP
 #include "wx/wx.h"
 #endif
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #include <wx/dbtable.h>
 #include "std.h"
 #include <iostream>
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Global structure for holding ODBC connection information
 // - darf nur einmal im Projekte definiert werden ?? Extra Databasse Klasse ?
 struct DbStuff ConnectInf;      // Für DBase
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 extern DbList* WXDLLEXPORT PtrBegDbList;    /* from db.cpp, used in getting back error results from db connections */
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 char *GetExtendedDBErrorMsg(char *ErrFile, int ErrLine)
 {
-  static wxString msg;
-  wxString tStr;
-  if (ErrFile || ErrLine)
-    {
-      msg += "File: ";
-      msg += ErrFile;
-      msg += "   Line: ";
-      tStr.Printf("%d",ErrLine);
-      msg += tStr.GetData();
-      // msg += "\n";
-    }
-  msg.Append ("\nODBC errors:\n");
+ static wxString msg;
+ wxString tStr;
+ if (ErrFile || ErrLine)
+ {
+  msg += "File: ";
+  msg += ErrFile;
+  msg += "   Line: ";
+  tStr.Printf("%d",ErrLine);
+  msg += tStr.GetData();
   // msg += "\n";
-  /* Scan through each database connection displaying
-   * any ODBC errors that have occured. */
-  for (DbList *pDbList = PtrBegDbList; pDbList; pDbList = pDbList->PtrNext)
-    {
-      // Skip over any free connections
-      if (pDbList->Free)
-       continue;
-      // Display errors for this connection
-      for (int i = 0; i < DB_MAX_ERROR_HISTORY; i++)
-       {
-         if (pDbList->PtrDb->errorList[i])
-           {
-             msg.Append(pDbList->PtrDb->errorList[i]);
-             if (strcmp(pDbList->PtrDb->errorList[i],"") != 0)
-               msg.Append("\n");
-           }
-       }
-    }
-  msg += "\n";
-  return (char*) (const char*) msg;
+ }
+ msg.Append ("\nODBC errors:\n");
+ // msg += "\n";
+ /* Scan through each database connection displaying
+  * any ODBC errors that have occured. */
+ for (DbList *pDbList = PtrBegDbList; pDbList; pDbList = pDbList->PtrNext)
+ {
+  // Skip over any free connections
+  if (pDbList->Free)
+   continue;
+  // Display errors for this connection
+  for (int i = 0; i < DB_MAX_ERROR_HISTORY; i++)
+  {
+   if (pDbList->PtrDb->errorList[i])
+   {
+    msg.Append(pDbList->PtrDb->errorList[i]);
+    if (strcmp(pDbList->PtrDb->errorList[i],"") != 0)
+     msg.Append("\n");
+   }
+  }
+ }
+ msg += "\n";
+ return (char*) (const char*) msg;
 }  // GetExtendedDBErrorMsg
 
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 BrowserDB::BrowserDB()
 {
 Zeiger_auf_NULL(0);
 ODBCSource = "";             // ODBC data source name (created with ODBC Administrator under Win95/NT)
 UserName   = "";             // database username - must already exist in the data source
 Password   = "";             // password database username
 OnFillSqlTyp();
 OnFilldbTyp();
+ Zeiger_auf_NULL(0);
+ ODBCSource = "";             // ODBC data source name (created with ODBC Administrator under Win95/NT)
+ UserName   = "";             // database username - must already exist in the data source
+ Password   = "";             // password database username
+ OnFillSqlTyp();
+ OnFilldbTyp();
 }  // BrowserDB Constructor
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 BrowserDB::~BrowserDB()
 {
  Zeiger_auf_NULL(1);  // Clean up Tables and Databases (Commit, Close und delete)
 }  // BrowserDB destructor
-//--------------------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 bool BrowserDB::Initialize(int Quite)
 {
 if (!OnStartDB(Quite))
   {
-      wxLogMessage(_("\n\n-E-> BrowserDB::OnStartDB(%s) : Failed ! "),ODBCSource.c_str());
-      return FALSE;
   }
 return TRUE;
+ if (!OnStartDB(Quite))
+ {
+  wxLogMessage(_("\n\n-E-> BrowserDB::OnStartDB(%s) : Failed ! "),ODBCSource.c_str());
+  return FALSE;
+ }
+ return TRUE;
 }  // BrowserDB:Initialize
-//--------------------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 bool BrowserDB::OnStartDB(int Quite)
 {
+ if (!Quite)
+  wxLogMessage(_("\n-I-> BrowserDB::OnStartDB(%s) : Begin "),ODBCSource.c_str());
+ if (db_BrowserDB != NULL)
+ {
   if (!Quite)
-    wxLogMessage(_("\n-I-> BrowserDB::OnStartDB(%s) : Begin "),ODBCSource.c_str());
-  if (db_BrowserDB != NULL)
-    {
-      if (!Quite)
-       wxLogMessage(_("\n-I-> BrowserDB::OnStartDB() : DB is allready open."));
-      return TRUE;
-    }
-  // Initialize the ODBC Environment for Database Operations
-  if (SQLAllocEnv(&ConnectInf.Henv) != SQL_SUCCESS)
-    {
-      if (!Quite)
-       wxLogMessage(_("\n-E-> BrowserDB::OnStartDB() : DB CONNECTION ERROR : A problem occured while trying to get a connection to the data source"));
-      return FALSE;
-    }
-  //---------------------------------------------------------------------------
-  // Connect to datasource
-  //---------------------------
-  DlgUser *p_Dlg = new DlgUser(pDoc->p_MainFrame, "Username and Password");
-  p_Dlg->s_DSN      = ODBCSource;
-  p_Dlg->s_User     = UserName;
-  p_Dlg->s_Password = Password;
-  p_Dlg->OnInit();
-  p_Dlg->Fit();
-
-  bool OK = FALSE;
-  if (p_Dlg->ShowModal() == wxID_OK)
-    {
-      (pDoc->p_DSN+i_Which)->Usr = p_Dlg->s_User;
-      (pDoc->p_DSN+i_Which)->Pas = p_Dlg->s_Password;
-      UserName  = p_Dlg->s_User;
-      Password  = p_Dlg->s_Password;
-      OK = TRUE;
-    }
-  //p_Dlg.Destroy();
-  delete p_Dlg;
+   wxLogMessage(_("\n-I-> BrowserDB::OnStartDB() : DB is allready open."));
+  return TRUE;
+ }
+ // Initialize the ODBC Environment for Database Operations
+ if (SQLAllocEnv(&ConnectInf.Henv) != SQL_SUCCESS)
+ {
+  if (!Quite)
+   wxLogMessage(_("\n-E-> BrowserDB::OnStartDB() : DB CONNECTION ERROR : A problem occured while trying to get a connection to the data source"));
+  return FALSE;
+ }
+ //---------------------------------------------------------------------------------------
+ // Connect to datasource
+ //---------------------------------------------------------------------------------------
+ DlgUser *p_Dlg = new DlgUser(pDoc->p_MainFrame, "Username and Password");
+ p_Dlg->pDoc       = pDoc;
+ p_Dlg->s_DSN      = ODBCSource;
+ p_Dlg->s_User     = UserName;
+ p_Dlg->s_Password = Password;
+ p_Dlg->OnInit();
+ p_Dlg->Fit();
 
-  if (OK)
-    {     
-      //---------------------------
-      strcpy(ConnectInf.Dsn, ODBCSource);           // ODBC data source name (created with ODBC Administrator under Win95/NT)
-      strcpy(ConnectInf.Uid, UserName);             // database username - must already exist in the data source
-      strcpy(ConnectInf.AuthStr, Password);         // password database username
-      db_BrowserDB = GetDbConnection(&ConnectInf);
-      // wxLogMessage(">>>%s<<<>>>%s<<<",UserName.c_str(),Password.c_str());
-      if (db_BrowserDB == NULL)
-       {
-         strcpy(ConnectInf.Dsn, "");
-         strcpy(ConnectInf.Uid, "");
-         strcpy(ConnectInf.AuthStr, "");
-         if (!Quite)
-           {
-             wxLogMessage(_("\n-E-> BrowserDB::OnConnectDataSource() DB CONNECTION ERROR : Unable to connect to the data source.\n\nCheck the name of your data source to verify it has been correctly entered/spelled.\n\nWith some databases, the user name and password must\nbe created with full rights to the table prior to making a connection\n(using tools provided by the database manufacturer)"));
-             wxLogMessage(_("-I-> BrowserDB::OnStartDB(%s) : End "),ODBCSource.c_str());
-           }
-         return FALSE;
-       }
-      //--------------------------------------------------------------------------
-      if (!Quite)
-       {
-         Temp1 = db_BrowserDB->GetDatabaseName();
-         Temp2 = db_BrowserDB->GetDataSource();
-         wxLogMessage(_("-I-> BrowserDB::OnGetDataSourceODBC() - DatabaseName(%s) ; DataSource(%s)"),Temp1.c_str(),Temp2.c_str());
-         wxLogMessage(_("-I-> BrowserDB::OnStartDB(%s) : End "),ODBCSource.c_str());
-       }
-      return TRUE;
-    } else return FALSE;
+ bool OK = FALSE;
+ if (p_Dlg->ShowModal() == wxID_OK)
+ {
+  (pDoc->p_DSN+i_Which)->Usr = p_Dlg->s_User;
+  (pDoc->p_DSN+i_Which)->Pas = p_Dlg->s_Password;
+  UserName  = p_Dlg->s_User;
+  Password  = p_Dlg->s_Password;
+  OK = TRUE;
+ }
+ delete p_Dlg;
+ if (OK)
+ {
+  //--------------------------------------------------------------------------------------
+  strcpy(ConnectInf.Dsn, ODBCSource);           // ODBC data source name (created with ODBC Administrator under Win95/NT)
+  strcpy(ConnectInf.Uid, UserName);             // database username - must already exist in the data source
+  strcpy(ConnectInf.AuthStr, Password);         // password database username
+  db_BrowserDB = GetDbConnection(&ConnectInf);
+  // wxLogMessage(">>>%s<<<>>>%s<<<",UserName.c_str(),Password.c_str());
+  if (db_BrowserDB == NULL)
+  {
+   strcpy(ConnectInf.Dsn, "");
+   strcpy(ConnectInf.Uid, "");
+   strcpy(ConnectInf.AuthStr, "");
+   if (!Quite)
+   {
+    wxLogMessage(_("\n-E-> BrowserDB::OnConnectDataSource() DB CONNECTION ERROR : Unable to connect to the data source.\n\nCheck the name of your data source to verify it has been correctly entered/spelled.\n\nWith some databases, the user name and password must\nbe created with full rights to the table prior to making a connection\n(using tools provided by the database manufacturer)"));
+    wxLogMessage(_("-I-> BrowserDB::OnStartDB(%s) : End "),ODBCSource.c_str());
+   }
+   return FALSE;
+  }
+  //--------------------------------------------------------------------------------------
+  if (!Quite)
+  {
+   Temp1 = db_BrowserDB->GetDatabaseName();
+   Temp2 = db_BrowserDB->GetDataSource();
+   wxLogMessage(_("-I-> BrowserDB::OnGetDataSourceODBC() - DatabaseName(%s) ; DataSource(%s)"),Temp1.c_str(),Temp2.c_str());
+   wxLogMessage(_("-I-> BrowserDB::OnStartDB(%s) : End "),ODBCSource.c_str());
+  }
+  return TRUE;
+ } else return FALSE;
 }
-//--------------------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 bool BrowserDB::OnCloseDB(int Quite)
 {
 if (!Quite)
-    wxLogMessage(_("-I-> BrowserDB::OnCloseDB() : Begin "));
 if (db_BrowserDB)
   {
-      db_BrowserDB->Close();
-      FreeDbConnection(db_BrowserDB);
-      
-      // Free Environment Handle that ODBC uses
-      if (SQLFreeEnv(&ConnectInf.Henv) != SQL_SUCCESS)
-       {
-         // Error freeing environment handle
-       }
-      db_BrowserDB = NULL;
   }
 if (!Quite)
-    wxLogMessage(_("\n-I-> BrowserDB::OnCloseDB() : End "));
 return TRUE;
+ if (!Quite)
+  wxLogMessage(_("-I-> BrowserDB::OnCloseDB() : Begin "));
+ if (db_BrowserDB)
+ {
+  db_BrowserDB->Close();
+  FreeDbConnection(db_BrowserDB);
+
+  // Free Environment Handle that ODBC uses
+  if (SQLFreeEnv(&ConnectInf.Henv) != SQL_SUCCESS)
+  {
+   // Error freeing environment handle
+  }
+  db_BrowserDB = NULL;
+ }
+ if (!Quite)
+  wxLogMessage(_("\n-I-> BrowserDB::OnCloseDB() : End "));
+ return TRUE;
 }
 //----------------------------------------------------------------------------------------
 bool BrowserDB::OnGetNext(int Cols,int Quite)
 {
-  SDWORD cb;
-  int      i_dbDataType;
-  int   i=0;
-  char             s_temp[1024+1];
-  long             l_temp;
-  double           f_temp;
-  int              AnzError=0;
-  TIMESTAMP_STRUCT t_temp;
-  wxString Temp0;
-  //-----------------------------
-  if (!db_BrowserDB->GetNext())
-    {
-      return FALSE;
-      Temp0.Printf(_("\n-E-> BrowserDB::OnGetNext - ODBC-Error with GetNext \n-E-> "));
+ SDWORD cb;
+ int      i_dbDataType;
+ int   i=0;
+ char             s_temp[1024+1];
+ long             l_temp;
+ double           f_temp;
+ int              AnzError=0;
+ TIMESTAMP_STRUCT t_temp;
+ wxString Temp0;
+ //-----------------------------
+ if (!db_BrowserDB->GetNext())
+ {
+  return FALSE;
+  Temp0.Printf(_("\n-E-> BrowserDB::OnGetNext - ODBC-Error with GetNext \n-E-> "));
+  Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
+  wxLogMessage(Temp0);
+  wxMessageBox(Temp0);
+ }
+ else
+ {
+  for (i=0;i<Cols;i++)
+  {
+   strcpy((cl_BrowserDB+i)->tableName,"-E->");
+   i_dbDataType = (cl_BrowserDB->pColFor+i)->i_dbDataType;
+   if (i_dbDataType == 0)                        // Filter unsupported dbDataTypes
+   {
+    if (((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_VARCHAR) || ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_LONGVARCHAR))
+     i_dbDataType = DB_DATA_TYPE_VARCHAR;
+    if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_DATE)
+     i_dbDataType = DB_DATA_TYPE_DATE;
+    if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_BIT)
+     i_dbDataType = DB_DATA_TYPE_INTEGER;
+    if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_NUMERIC)
+     i_dbDataType = DB_DATA_TYPE_VARCHAR;
+    if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_REAL)
+     i_dbDataType = DB_DATA_TYPE_FLOAT;
+   }
+   if ((i_dbDataType == DB_DATA_TYPE_INTEGER) && ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_DOUBLE))
+   {   // DBASE Numeric
+    i_dbDataType = DB_DATA_TYPE_FLOAT;
+   }
+   switch(i_dbDataType)
+   {
+    case DB_DATA_TYPE_VARCHAR:
+     strcpy(s_temp,"");
+     if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_dbDataType,&s_temp,sizeof(s_temp), &cb))
+     {
+      Temp0.Printf(_("\n-E-> BrowserDB::OnGetNext - ODBC-Error with GetNext of >%s<.\n-E-> "),(cl_BrowserDB+i)->tableName);
       Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
       wxLogMessage(Temp0);
+     }
+     Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,s_temp);
+     strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
+    break;
+    case DB_DATA_TYPE_INTEGER:
+     l_temp = 0;
+     if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_sqlDataType,&l_temp,sizeof(l_temp), &cb))
+     {
+      Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
+      Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
+     }
+     else
+     {
+      Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,l_temp);
+      strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
+     }
+    break;
+    case DB_DATA_TYPE_FLOAT:
+     f_temp = 0;
+     if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_sqlDataType,&f_temp,sizeof(f_temp), &cb))
+     {
+      Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
+      Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
       wxMessageBox(Temp0);
-    }
-  else
-    {
-      for (i=0;i<Cols;i++)
-       {
-         strcpy((cl_BrowserDB+i)->tableName,"-E->");
-         i_dbDataType = (cl_BrowserDB->pColFor+i)->i_dbDataType;
-         if (i_dbDataType == 0)                        // Filter unsupported dbDataTypes
-           {
-             if (((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_VARCHAR) || ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_LONGVARCHAR))
-               i_dbDataType = DB_DATA_TYPE_VARCHAR;
-             if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_DATE)
-               i_dbDataType = DB_DATA_TYPE_DATE;
-             if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_BIT)
-               i_dbDataType = DB_DATA_TYPE_INTEGER;
-             if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_NUMERIC)
-               i_dbDataType = DB_DATA_TYPE_VARCHAR;
-             if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_REAL)
-               i_dbDataType = DB_DATA_TYPE_FLOAT;
-           }
-         if ((i_dbDataType == DB_DATA_TYPE_INTEGER) && ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_DOUBLE))
-           {   // DBASE Numeric
-             i_dbDataType = DB_DATA_TYPE_FLOAT;
-           }
-         switch(i_dbDataType)
-           {
-           case DB_DATA_TYPE_VARCHAR:
-             strcpy(s_temp,"");
-             if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_dbDataType,&s_temp,sizeof(s_temp), &cb))
-               {
-                 Temp0.Printf(_("\n-E-> BrowserDB::OnGetNext - ODBC-Error with GetNext of >%s<.\n-E-> "),(cl_BrowserDB+i)->tableName);
-                 Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
-                 wxLogMessage(Temp0);
-               }
-             Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,s_temp);
-             strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
-             break;
-           case DB_DATA_TYPE_INTEGER:
-             l_temp = 0;
-             if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_sqlDataType,&l_temp,sizeof(l_temp), &cb))
-               {
-                 Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
-                 Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
-               }
-             else
-               {
-                 Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,l_temp);
-                 strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
-               }
-             break;
-           case DB_DATA_TYPE_FLOAT:
-             f_temp = 0;
-             if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_sqlDataType,&f_temp,sizeof(f_temp), &cb))
-               {
-                 Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
-                 Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
-                 wxMessageBox(Temp0);
-               }
-             else
-               {
-                 Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,f_temp);
-                 strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
-               }
-             break;
-           case DB_DATA_TYPE_DATE:
-             t_temp.day = t_temp.month = t_temp.year = t_temp.hour = t_temp.minute = t_temp.second = t_temp.fraction = 0;
-             if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_sqlDataType,&t_temp,sizeof(t_temp), &cb))
-               {
-                 Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
-                 Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
-               }
-             else
-               {
-                 // i_Nation =  0 = timestamp , 1=EU, 2=UK, 3=International, 4=US
-                 if (((cl_BrowserDB->pColFor+i)->i_Nation == 0)  ||  // TS  YYYY-MM-DD
-                     ((cl_BrowserDB->pColFor+i)->i_Nation == 3))     // IT  YYYY-MM-DD
-                   {
-                     Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,t_temp.year,t_temp.month,t_temp.day,
+     }
+     else
+     {
+      Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,f_temp);
+      strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
+     }
+    break;
+    case DB_DATA_TYPE_DATE:
+     t_temp.day = t_temp.month = t_temp.year = t_temp.hour = t_temp.minute = t_temp.second = t_temp.fraction = 0;
+     if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_sqlDataType,&t_temp,sizeof(t_temp), &cb))
+     {
+      Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
+      Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
+     }
+     else
+     {
+      // i_Nation =  0 = timestamp , 1=EU, 2=UK, 3=International, 4=US
+      if (((cl_BrowserDB->pColFor+i)->i_Nation == 0)  ||  // TS  YYYY-MM-DD
+          ((cl_BrowserDB->pColFor+i)->i_Nation == 3))     // IT  YYYY-MM-DD
+      {
+       Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,t_temp.year,t_temp.month,t_temp.day,
                                    t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
-                     strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
-                   }
-                 if ( ((cl_BrowserDB->pColFor+i)->i_Nation == 1) ||  // EU  DD.MM.YYYY
-                      ((cl_BrowserDB->pColFor+i)->i_Nation == 2))     // UK  DD/MM/YYYY
-                   {
-                     Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,t_temp.day,t_temp.month,t_temp.year,
+       strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
+      }
+      if (((cl_BrowserDB->pColFor+i)->i_Nation == 1) ||  // EU  DD.MM.YYYY
+           ((cl_BrowserDB->pColFor+i)->i_Nation == 2))   // UK  DD/MM/YYYY
+      {
+       Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,t_temp.day,t_temp.month,t_temp.year,
                                    t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
-                     strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
-                   }
-                 if ((cl_BrowserDB->pColFor+i)->i_Nation == 3)      // US  MM/DD/YYYY
-                   {
-                     Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,t_temp.month,t_temp.day,t_temp.year,
+       strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
+      }
+      if ((cl_BrowserDB->pColFor+i)->i_Nation == 3)      // US  MM/DD/YYYY
+      {
+       Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,t_temp.month,t_temp.day,t_temp.year,
                                    t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
-                     strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
-                   }
-               }
-             break;
-           default:
-             AnzError++;
-             if (AnzError <= 100)
-               {
-                 Temp0 = (cl_BrowserDB+i)->colName;
-                 wxLogMessage(_("-E-> BrowserDB::OnGetNext - DB_DATA_TYPE_?? (%d) in Col(%s)"),(cl_BrowserDB->pColFor+i)->i_dbDataType,Temp0.c_str());
-               }
-             else
-               return TRUE;
-             Temp0.Printf(_("-E-> unknown Format(%d) - sql(%d)"),(cl_BrowserDB->pColFor+i)->i_dbDataType,(cl_BrowserDB->pColFor+i)->i_sqlDataType);
-             strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
-             break;
-           };
-       }
   }
 // wxLogMessage("-E-> BrowserDB::OnGetNext - End");
 return TRUE;
+       strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
+      }
+     }
+    break;
+    default:
+     AnzError++;
+     if (AnzError <= 100)
+     {
+      Temp0 = (cl_BrowserDB+i)->colName;
+      wxLogMessage(_("-E-> BrowserDB::OnGetNext - DB_DATA_TYPE_?? (%d) in Col(%s)"),(cl_BrowserDB->pColFor+i)->i_dbDataType,Temp0.c_str());
+     }
+     else
+      return TRUE;
+     Temp0.Printf(_("-E-> unknown Format(%d) - sql(%d)"),(cl_BrowserDB->pColFor+i)->i_dbDataType,(cl_BrowserDB->pColFor+i)->i_sqlDataType);
+     strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
+    break;
+   };
+  }
+ }
+ // wxLogMessage("-E-> BrowserDB::OnGetNext - End");
+ return TRUE;
 }
 //----------------------------------------------------------------------------------------
 bool BrowserDB::OnSelect(wxString tb_Name, int Quite)
 {
 wxString SQLStmt;
 i_Records = 0;
 //--------------------------------------------------------------------------
 SQLStmt.sprintf("SELECT * FROM %s",tb_Name.c_str());
 if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
   {
-      Temp0.Printf(_("\n-E-> BrowserDB::OnSelect - ODBC-Error with ExecSql of >%s<.\n-E-> "),tb_Name.c_str());
-      Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
-      wxLogMessage(Temp0);
-      wxMessageBox("-E-> BrowserDB::OnSelect - GetData()");
-      return FALSE;
   }
 //--------------------------------------------------------------------------
 while (db_BrowserDB->GetNext())
   {
-      i_Records++;
   }
 //--------------------------------------------------------------------------
 if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
   {
-      Temp0.Printf(_("\n-E-> BrowserDB::OnSelect - ODBC-Error with ExecSql of >%s<.\n-E-> "),tb_Name.c_str());
-      Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
-      wxLogMessage(Temp0);
-      return FALSE;
   }
 //--------------------------------------------------------------------------
 // SetColDefs ( 0,"NAME",     DB_DATA_TYPE_VARCHAR,  Name,     SQL_C_CHAR,      sizeof(Name),    TRUE, TRUE);  // Primary index
 //--------------------------------------------------------------------------
 if (!Quite)
   {
-      wxLogMessage(_("\n-I-> BrowserDB::OnSelect(%s) Records(%d): End "),tb_Name.c_str(),i_Records);
   }
 return TRUE;
+ wxString SQLStmt;
+ i_Records = 0;
//---------------------------------------------------------------------------------------
+ SQLStmt.sprintf("SELECT * FROM %s",tb_Name.c_str());
+ if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
+ {
+  Temp0.Printf(_("\n-E-> BrowserDB::OnSelect - ODBC-Error with ExecSql of >%s<.\n-E-> "),tb_Name.c_str());
+  Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
+  wxLogMessage(Temp0);
+  wxMessageBox("-E-> BrowserDB::OnSelect - GetData()");
+  return FALSE;
+ }
//---------------------------------------------------------------------------------------
+ while (db_BrowserDB->GetNext())
+ {
+  i_Records++;
+ }
//---------------------------------------------------------------------------------------
+ if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
+ {
+  Temp0.Printf(_("\n-E-> BrowserDB::OnSelect - ODBC-Error with ExecSql of >%s<.\n-E-> "),tb_Name.c_str());
+  Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
+  wxLogMessage(Temp0);
+  return FALSE;
+ }
//---------------------------------------------------------------------------------------
+ // SetColDefs ( 0,"NAME",     DB_DATA_TYPE_VARCHAR,  Name,     SQL_C_CHAR,      sizeof(Name),    TRUE, TRUE);  // Primary index
//---------------------------------------------------------------------------------------
+ if (!Quite)
+ {
+  wxLogMessage(_("\n-I-> BrowserDB::OnSelect(%s) Records(%d): End "),tb_Name.c_str(),i_Records);
+ }
+ return TRUE;
 }
 //----------------------------------------------------------------------------------------
 bool BrowserDB::OnExecSql(wxString SQLStmt, int Quite)
 {
-  //--------------------------------------------------------------------------
-  if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
-    {
-      Temp0.Printf(_("\n-E-> BrowserDB::OnExecSQL - ODBC-Error with ExecSql of >%s<.\n-E-> "),SQLStmt.c_str());
-      Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
-      if (!Quite)
-       wxLogMessage(Temp0);
-      else
-       wxMessageBox("-E-> BrowserDB::OnExecSql - ExecSql()");
-      return FALSE;
-    }
+ //---------------------------------------------------------------------------------------
+ if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
+ {
+  Temp0.Printf(_("\n-E-> BrowserDB::OnExecSQL - ODBC-Error with ExecSql of >%s<.\n-E-> "),SQLStmt.c_str());
+  Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
   if (!Quite)
-    {
-      // wxLogMessage(_("\n-I-> BrowserDB::OnExecSql(%s) - End "),SQLStmt.c_str());
-    }
-  return TRUE;
+   wxLogMessage(Temp0);
+  else
+   wxMessageBox("-E-> BrowserDB::OnExecSql - ExecSql()");
+  return FALSE;
+ }
+ if (!Quite)
+ {
+  // wxLogMessage(_("\n-I-> BrowserDB::OnExecSql(%s) - End "),SQLStmt.c_str());
+ }
+ return TRUE;
 }
 //----------------------------------------------------------------------------------------
 wxDbInf* BrowserDB::OnGetCatalog(int Quite)
 {
 char UName[255];
 strcpy(UName,UserName);
 ct_BrowserDB = db_BrowserDB->GetCatalog(UName);
 return ct_BrowserDB;
+ char UName[255];
+ strcpy(UName,UserName);
+ ct_BrowserDB = db_BrowserDB->GetCatalog(UName);
+ return ct_BrowserDB;
 }
 //----------------------------------------------------------------------------------------
 wxColInf* BrowserDB::OnGetColumns(char *tableName, int numCols,int Quite)
 {
 char UName[255];
 int i;
 strcpy(UName,UserName);
 cl_BrowserDB = db_BrowserDB->GetColumns(tableName,&numCols,UName);
 cl_BrowserDB->pColFor = new wxColFor[numCols];
 for (i=0;i<numCols;i++)
   {
-      (cl_BrowserDB->pColFor+i)->Format(1,(cl_BrowserDB+i)->dbDataType,(cl_BrowserDB+i)->sqlDataType,
-                                       (cl_BrowserDB+i)->columnSize, (cl_BrowserDB+i)->decimalDigits);
   }
 return cl_BrowserDB;
+ char UName[255];
+ int i;
+ strcpy(UName,UserName);
+ cl_BrowserDB = db_BrowserDB->GetColumns(tableName,&numCols,UName);
+ cl_BrowserDB->pColFor = new wxColFor[numCols];
+ for (i=0;i<numCols;i++)
+ {
+  (cl_BrowserDB->pColFor+i)->Format(1,(cl_BrowserDB+i)->dbDataType,(cl_BrowserDB+i)->sqlDataType,
+  (cl_BrowserDB+i)->columnSize, (cl_BrowserDB+i)->decimalDigits);
+ }
+ return cl_BrowserDB;
 }
 //----------------------------------------------------------------------------------------
 void BrowserDB::Zeiger_auf_NULL(int Art)
 {
 if (Art == 1) // Löschen
   {
-      if (cl_BrowserDB != NULL)
-       { // Destroy the memory
-         delete [] cl_BrowserDB;
-       }
-      if (ct_BrowserDB != NULL)
-       { // Destroy the memory
-         delete [] ct_BrowserDB;
-       }
-      if (db_BrowserDB != NULL)
-       {
-         db_BrowserDB->CommitTrans();
-         db_BrowserDB->Close();
-         CloseDbConnections();
-         delete db_BrowserDB;
-       }
   }
 cl_BrowserDB       = NULL;
 ct_BrowserDB       = NULL;
 db_BrowserDB       = NULL;
 p_LogWindow        = NULL;
+ if (Art == 1) // Löschen
+ {
+  if (cl_BrowserDB != NULL)
+  { // Destroy the memory
+   delete [] cl_BrowserDB;
+  }
+  if (ct_BrowserDB != NULL)
+  { // Destroy the memory
+   delete [] ct_BrowserDB;
+  }
+  if (db_BrowserDB != NULL)
+  {
+   db_BrowserDB->CommitTrans();
+   db_BrowserDB->Close();
+   CloseDbConnections();
+   delete db_BrowserDB;
+  }
+ }
+ cl_BrowserDB       = NULL;
+ ct_BrowserDB       = NULL;
+ db_BrowserDB       = NULL;
+ p_LogWindow        = NULL;
 }
 //----------------------------------------------------------------------------------------
 void BrowserDB::OnFillSqlTyp()
 {
 i_SqlTyp[1]  = SQL_C_BINARY;     s_SqlTyp[1]  = "SQL_C_BINARY";
 i_SqlTyp[2]  = SQL_C_BIT;        s_SqlTyp[2]  = "SQL_C_BIT";
 i_SqlTyp[3]  = SQL_C_BOOKMARK;   s_SqlTyp[3]  = "SQL_C_BOOKMARK";
 i_SqlTyp[4]  = SQL_C_CHAR;       s_SqlTyp[4]  = "SQL_C_CHAR";
 i_SqlTyp[5]  = SQL_C_DATE;       s_SqlTyp[5]  = "SQL_C_DATE";
 i_SqlTyp[6]  = SQL_C_DEFAULT;    s_SqlTyp[6]  = "SQL_C_DEFAULT";
 i_SqlTyp[7]  = SQL_C_DOUBLE;     s_SqlTyp[7]  = "SQL_C_DOUBLE";
 i_SqlTyp[8]  = SQL_C_FLOAT;      s_SqlTyp[8]  = "SQL_C_FLOAT";
 i_SqlTyp[9]  = SQL_C_LONG;       s_SqlTyp[9]  = "SQL_C_LONG";
 i_SqlTyp[10] = SQL_C_SHORT;      s_SqlTyp[10] = "SQL_C_SHORT";
 i_SqlTyp[11] = SQL_C_SLONG;      s_SqlTyp[11] = "SQL_C_SLONG";
 i_SqlTyp[12] = SQL_C_SSHORT;     s_SqlTyp[12] = "SQL_C_SSHORT";
 i_SqlTyp[13] = SQL_C_STINYINT;   s_SqlTyp[13] = "SQL_C_STINYINT";
 i_SqlTyp[14] = SQL_C_TIME;       s_SqlTyp[14] = "SQL_C_TIME";
 i_SqlTyp[15] = SQL_C_TIMESTAMP;  s_SqlTyp[15] = "SQL_C_TIMESTAMP";
 i_SqlTyp[16] = SQL_C_TINYINT;    s_SqlTyp[16] = "SQL_C_TINYINT";
 i_SqlTyp[17] = SQL_C_ULONG;      s_SqlTyp[17] = "SQL_C_ULONG";
 i_SqlTyp[18] = SQL_C_USHORT;     s_SqlTyp[18] = "SQL_C_USHORT";
 i_SqlTyp[19] = SQL_C_UTINYINT;   s_SqlTyp[19] = "SQL_C_UTINYINT";
 i_SqlTyp[20] = SQL_VARCHAR;      s_SqlTyp[20] = "SQL_VARCHAR";
 i_SqlTyp[21] = SQL_NUMERIC;      s_SqlTyp[21] = "SQL_NUMERIC";
 i_SqlTyp[22] = SQL_LONGVARCHAR;  s_SqlTyp[22] = "SQL_LONGVARCHAR";
 i_SqlTyp[23] = SQL_REAL;         s_SqlTyp[23] = "SQL_REAL";
 i_SqlTyp[0]  = 23;               s_SqlTyp[0]  = "";
+ i_SqlTyp[1]  = SQL_C_BINARY;     s_SqlTyp[1]  = "SQL_C_BINARY";
+ i_SqlTyp[2]  = SQL_C_BIT;        s_SqlTyp[2]  = "SQL_C_BIT";
+ i_SqlTyp[3]  = SQL_C_BOOKMARK;   s_SqlTyp[3]  = "SQL_C_BOOKMARK";
+ i_SqlTyp[4]  = SQL_C_CHAR;       s_SqlTyp[4]  = "SQL_C_CHAR";
+ i_SqlTyp[5]  = SQL_C_DATE;       s_SqlTyp[5]  = "SQL_C_DATE";
+ i_SqlTyp[6]  = SQL_C_DEFAULT;    s_SqlTyp[6]  = "SQL_C_DEFAULT";
+ i_SqlTyp[7]  = SQL_C_DOUBLE;     s_SqlTyp[7]  = "SQL_C_DOUBLE";
+ i_SqlTyp[8]  = SQL_C_FLOAT;      s_SqlTyp[8]  = "SQL_C_FLOAT";
+ i_SqlTyp[9]  = SQL_C_LONG;       s_SqlTyp[9]  = "SQL_C_LONG";
+ i_SqlTyp[10] = SQL_C_SHORT;      s_SqlTyp[10] = "SQL_C_SHORT";
+ i_SqlTyp[11] = SQL_C_SLONG;      s_SqlTyp[11] = "SQL_C_SLONG";
+ i_SqlTyp[12] = SQL_C_SSHORT;     s_SqlTyp[12] = "SQL_C_SSHORT";
+ i_SqlTyp[13] = SQL_C_STINYINT;   s_SqlTyp[13] = "SQL_C_STINYINT";
+ i_SqlTyp[14] = SQL_C_TIME;       s_SqlTyp[14] = "SQL_C_TIME";
+ i_SqlTyp[15] = SQL_C_TIMESTAMP;  s_SqlTyp[15] = "SQL_C_TIMESTAMP";
+ i_SqlTyp[16] = SQL_C_TINYINT;    s_SqlTyp[16] = "SQL_C_TINYINT";
+ i_SqlTyp[17] = SQL_C_ULONG;      s_SqlTyp[17] = "SQL_C_ULONG";
+ i_SqlTyp[18] = SQL_C_USHORT;     s_SqlTyp[18] = "SQL_C_USHORT";
+ i_SqlTyp[19] = SQL_C_UTINYINT;   s_SqlTyp[19] = "SQL_C_UTINYINT";
+ i_SqlTyp[20] = SQL_VARCHAR;      s_SqlTyp[20] = "SQL_VARCHAR";
+ i_SqlTyp[21] = SQL_NUMERIC;      s_SqlTyp[21] = "SQL_NUMERIC";
+ i_SqlTyp[22] = SQL_LONGVARCHAR;  s_SqlTyp[22] = "SQL_LONGVARCHAR";
+ i_SqlTyp[23] = SQL_REAL;         s_SqlTyp[23] = "SQL_REAL";
+ i_SqlTyp[0]  = 23;               s_SqlTyp[0]  = "";
 }
 //----------------------------------------------------------------------------------------
 void BrowserDB::OnFilldbTyp()
 {
 i_dbTyp[1]   = DB_DATA_TYPE_VARCHAR;     s_dbTyp[1]  = "DB_DATA_TYPE_VARCHAR";
 i_dbTyp[2]   = DB_DATA_TYPE_INTEGER;     s_dbTyp[2]  = "DB_DATA_TYPE_INTEGER";
 i_dbTyp[3]   = DB_DATA_TYPE_FLOAT;       s_dbTyp[3]  = "DB_DATA_TYPE_FLOAT";
 i_dbTyp[4]   = DB_DATA_TYPE_DATE;        s_dbTyp[4]  = "DB_DATA_TYPE_DATE";
 i_dbTyp[0]   = 4;                        s_dbTyp[0]   = "";
+ i_dbTyp[1]   = DB_DATA_TYPE_VARCHAR;     s_dbTyp[1]  = "DB_DATA_TYPE_VARCHAR";
+ i_dbTyp[2]   = DB_DATA_TYPE_INTEGER;     s_dbTyp[2]  = "DB_DATA_TYPE_INTEGER";
+ i_dbTyp[3]   = DB_DATA_TYPE_FLOAT;       s_dbTyp[3]  = "DB_DATA_TYPE_FLOAT";
+ i_dbTyp[4]   = DB_DATA_TYPE_DATE;        s_dbTyp[4]  = "DB_DATA_TYPE_DATE";
+ i_dbTyp[0]   = 4;                        s_dbTyp[0]   = "";
 }
 //----------------------------------------------------------------------------------------
-
-
-
-
-
-
index 2195c969173356398ce75844bedf85d489989ed4..2fde1fbb786e03d315c529f81c541ae13cbc586f 100644 (file)
@@ -1,26 +1,26 @@
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Name:        browsedb.h
-// Purpose:     a wxDB ;
+// Purpose:     a wxDB class
 // Author:      Mark Johnson, mj10777@gmx.net
 // Modified by:
 // Created:     19991127.mj10777
 // Copyright:   (c) Mark Johnson
 // Licence:     wxWindows license
 // RCS-ID:      $Id$
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 //-- Zu tun in browsedb.h
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 //-- 1)
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Global structure for holding ODBC connection information
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 extern struct DbStuff DbConnectInf;
 class mjDoc;
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 class BrowserDB
 {
  public:
- //---------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
  // Pointer to the main database connection used in the program.  This
  // pointer would normally be used for doing things as database lookups
  // for user login names and passwords, getting workstation settings, etc.
@@ -40,13 +40,13 @@ class BrowserDB
  //  the entire program to use for READ-ONLY database accesses, but for each
  //  table object which will do a CommitTrans() or RollbackTrans() that a
  // new wxDB object be created and used for it.
- //---------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
   wxDB*          db_BrowserDB;
   wxDbInf*       ct_BrowserDB;
   wxColInf*      cl_BrowserDB;
   wxString       ODBCSource, UserName, Password;
   mjDoc *pDoc;
- //---------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
   wxString       Temp0, Temp1, Temp2, Temp3, Temp4, Temp5;
   wxString       ODBCText;
   wxTextCtrl*    p_LogWindow;
@@ -57,12 +57,12 @@ class BrowserDB
   int            i_Which;
   int            i_Records;
   int            i_Cols;
- //---------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
   BrowserDB();
   ~BrowserDB();
   void Zeiger_auf_NULL(int Art);
   bool Initialize(int Quite);
- //---------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
   bool           OnStartDB(int Quite);
   bool           OnCloseDB(int Quite);
   bool           OnSelect(wxString tb_Name,int Quite);
@@ -72,6 +72,6 @@ class BrowserDB
   wxColInf*      OnGetColumns(char *tableName, int numCols,int Quite);
   void           OnFillSqlTyp();
   void           OnFilldbTyp();
- //---------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
 };  // BrowserDB class definition
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
index e4c64dc9beca1780f75b4a373283c6af6651d3fb..b6770225e419a5fad37307b32bec1391e7d22473 100644 (file)
@@ -1,4 +1,4 @@
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Name:        dbbrowse.cpp
 // Purpose:     Through ODBC - Databases Browsen
 // Author:      Mark Johnson, mj10777@gmx.net
@@ -8,61 +8,50 @@
 // Copyright:   (c) Mark Johnson
 // Licence:     wxWindows license
 // RCS-ID:      $Id$
-//------------------------------------------------------------------------------
-//-- all #ifdefs that the whole Project needs. ------------------------------
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- 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"
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifdef __BORLANDC__
  #pragma hdrstop
 #endif
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifndef WX_PRECOMP
  #include "wx/wx.h"
 #endif
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifndef __WXMSW__
 #endif
  #include "bitmaps/logo.xpm"
-//---------------------------------------------------------------------------
-//-- all #includes that every .cpp needs             --- 19990807.mj10777 ---
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- all #includes that every .cpp needs             --- 19990807.mj10777 ----------------
+//----------------------------------------------------------------------------------------
 #include "std.h"    // sorgsam Pflegen !
 #include <iostream>
-//---------------------------------------------------------------------------
-//-- Some Global Vars for this file ----------------------------------------
-//---------------------------------------------------------------------------
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- Some Global Vars for this file ------------------------------------------------------
+//----------------------------------------------------------------------------------------
 MainFrame *frame = NULL;      // The one and only MainFrame
-// wxLogNull logNo;              // No Log messages
-//---------------------------------------------------------------------------
-// verify that the item is ok and insult the user if it is not
-#define CHECK_ITEM(item)                                                \
- if (!item.IsOk())                                                      \
- {                                                                      \
-  wxMessageBox(_("Please select some item first!"),_("Tree sample error"),      \
-                 wxOK | wxICON_EXCLAMATION,this);                       \
-  return;                                                               \
- }                                                                      \
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 BEGIN_EVENT_TABLE(MainFrame, wxFrame)
  EVT_MENU(QUIT, MainFrame::OnQuit)
  EVT_MENU(ABOUT, MainFrame::OnAbout)
  EVT_MENU(HELP, MainFrame::OnHelp)
  EVT_SIZE(MainFrame::OnSize)
 END_EVENT_TABLE()
-//---------------------------------------------------------------------------
-IMPLEMENT_APP(MyApp)
-//---------------------------------------------------------------------------
-// `Main program' equivalent, creating windows and returning main app frame
-//---------------------------------------------------------------------------
-bool MyApp::OnInit(void)
+//----------------------------------------------------------------------------------------
+IMPLEMENT_APP(MainApp)
+//----------------------------------------------------------------------------------------
+// 'Main program' equivalent, creating windows and returning main app frame
+//----------------------------------------------------------------------------------------
+bool MainApp::OnInit(void)
 {
  //---------------------------------------------------------------------------------------
  // set the language to use
@@ -70,8 +59,10 @@ bool MyApp::OnInit(void)
  const char *language = NULL;
  const char *langid   = NULL;
  //---------------------------------------------------------------------------------------
+ //-- Graphic File suport - use only when needed, otherwise big .exe's
+ //---------------------------------------------------------------------------------------
 #if wxUSE_LIBPNG
- wxImage::AddHandler( new wxPNGHandler );   // use only when needed, otherwise big .exe's
+ wxImage::AddHandler( new wxPNGHandler );   // needed for help System
 #endif
 /*
 #if wxUSE_LIBJPEG
@@ -82,11 +73,11 @@ bool MyApp::OnInit(void)
  wxImage::AddHandler( new wxPNMHandler );   // use only when needed, otherwise big .exe's
 */
 #ifdef __WXMSW__
- // wxBitmap::AddHandler( new wxXPMFileHandler );   // use only when needed, otherwise big .exe's
- // wxBitmap::AddHandler( new wxXPMDataHandler );   // use only when needed, otherwise big .exe's
+ // wxBitmap::AddHandler( new wxXPMFileHandler );   // Attempt to use XPS instead of ico
+ // wxBitmap::AddHandler( new wxXPMDataHandler );   // - Attempt failed
 #endif
  //---------------------------------------------------------------------------------------
- langid = "std"; // BJO20000125 instead of ""
+ langid = "std"; // Standard language is "std" = english
  switch ( argc )
  {
   default:
@@ -114,13 +105,12 @@ bool MyApp::OnInit(void)
  // name is the name of the executable and the vendor name is the same)
  //---------------------------------------------------------------------------------------
  SetVendorName("mj10777");
- SetAppName("DBBrowser"); // not needed, it's the default value
+ SetAppName("DBBrowser");
  p_ProgramCfg = wxConfigBase::Get();
  // p_ProgramCfg->DeleteAll();
  p_ProgramCfg->SetPath("/");
  wxString Temp0, Temp1;
  Temp0.Empty();
-
  //---------------------------------------------------------------------------------------
  //-- Set the Language and remember it for the next time. --------------------------------
  //---------------------------------------------------------------------------------------
@@ -136,7 +126,7 @@ bool MyApp::OnInit(void)
  Temp0 = langid;
  p_ProgramCfg->Write("/Local/langid",Temp0); // >const char *langid< can't be used here
  //---------------------------------------------------------------------------------------
- // Support the following languages
+ // Support the following languages  (std = english)
  if (Temp0 != "std")
  {
   if (Temp0 == "cz")
@@ -172,37 +162,29 @@ bool MyApp::OnInit(void)
   p_ProgramCfg->Write("/Local/language",Temp0);
   Temp0 = "std";    // allways english if not german or french (at the moment austrian)
  }
-
+ //---------------------------------------------------------------------------------------
  Temp0 = "NONE";
  p_ProgramCfg->Write("/NONE",Temp0);
  p_ProgramCfg->Write("/Paths/NONE",Temp0);
  p_ProgramCfg->Write("/MainFrame/NONE",Temp0);
- //-----------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
  p_ProgramCfg->Write("/Paths/Work",wxGetCwd());
  p_ProgramCfg->SetPath("/");
- //-----------------------------------------------------------------------------
- // or you could also write something like this:
- //  wxFileConfig *p_ProgramCfg = new wxFileConfig("conftest");
- //  wxConfigBase::Set(p_ProgramCfg);
- // where you can also specify the file names explicitly if you wish.
- // Of course, calling Set() is optional and you only must do it if
- // you want to later retrieve this pointer with Get().
- //----------------------------------------------------------------------------
- // SetPath() understands ".."
- // restore frame position and size
+ //---------------------------------------------------------------------------------------
+ // restore frame position and size, if empty start Values (1,1) and (750,600)
  int x = p_ProgramCfg->Read("/MainFrame/x", 1), y = p_ProgramCfg->Read("/MainFrame/y", 1),
-     w = p_ProgramCfg->Read("/MainFrame/w", 600), h = p_ProgramCfg->Read("/MainFrame/h", 450);
+     w = p_ProgramCfg->Read("/MainFrame/w", 750), h = p_ProgramCfg->Read("/MainFrame/h", 600);
  //---------------------------------------------------------------------------------------
  // Create the main frame window
- frame = new MainFrame((wxFrame *) NULL, (char *) _("DBBrowser - mj10777"),x,y,w,h);
- //---------------------------------------------------------------------------------------
- // This reduces flicker effects - even better would be to define OnEraseBackground
- // to do Temp0. When the list control's scrollbars are show or hidden, the
- // frame is sent a background erase event.
+ frame = new MainFrame((wxFrame *) NULL, (char *) _("DBBrowser - mj10777"),wxPoint(x,y),wxSize(w,h));
  //---------------------------------------------------------------------------------------
- frame->SetBackgroundColour( *wxWHITE );
+ // Set the Backgroundcolour (only need if your are NOT using wxSYS_COLOUR_BACKGROUND)
+ frame->SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_BACKGROUND));
  // frame->SetBackgroundColour(wxColour(255, 255, 255));
-
+ // frame->SetBackgroundColour(* wxWHITE);
+ //---------------------------------------------------------------------------------------
+ // Give it an icon
+ frame->SetIcon(wxICON(aLogo));    // Programm Icon = lowest name in RC File
  //---------------------------------------------------------------------------------------
  // Make a menubar
  wxMenu *file_menu = new wxMenu;
@@ -223,9 +205,8 @@ bool MyApp::OnInit(void)
  //---------------------------------------------------------------------------------------
  int width, height;
  frame->GetClientSize(&width, &height);
-
- frame->p_Splitter = new DocSplitterWindow(frame, SPLITTER_WINDOW);
-
+ //---------------------------------------------------------------------------------------
+ frame->p_Splitter = new DocSplitterWindow(frame,-1);
  // p_Splitter->SetCursor(wxCursor(wxCURSOR_PENCIL));
  frame->pDoc                       = new mjDoc();
  frame->pDoc->p_MainFrame          = frame;
@@ -233,8 +214,6 @@ bool MyApp::OnInit(void)
  frame->pDoc->p_Splitter->pDoc     = frame->pDoc;       // ControlBase: saving the Sash
  if (!frame->pDoc->OnNewDocument())
   frame->Close(TRUE);
- // frame->Maximize();
- // frame->SetSize(-1,-1);               // the wxSplitter does not show correctly without this !
  frame->SetClientSize(width, height);    // the wxSplitter does not show correctly without this !
  //---------------------------------------------------------------------------------------
  //-- Problem : GetClientSize(Width,Hight) are not the same as the values given in the ---
@@ -246,49 +225,27 @@ bool MyApp::OnInit(void)
  //----------------------------------------------------------------------------
  //-- Help    :                                                                        ---
  //----------------------------------------------------------------------------
-
- frame->help.UseConfig(p_ProgramCfg);
- frame->help.AddBook(langhelp);
- /*
- if (!frame->help.AddBook("helpfiles/dbbrowse.hhp"))
-  wxMessageBox("Failed adding book helpfiles/dbbrowse.hhp");
- if (!frame->help.AddBook("helpfiles/testing.hhp"))
-  wxMessageBox("Failed adding book helpfiles/testing.hhp");
- if (!frame->help.AddBook("helpfiles/another.hhp"))
-   wxMessageBox("Failed adding book helpfiles/another.hhp");
- */
-
-
- //---------------------------------------------------------------------------------------
- p_ProgramCfg->Flush(TRUE);        // sicher Objekt
-
+ frame->p_Help = new wxHtmlHelpController();   // construct the Help System
+ frame->p_Help->UseConfig(p_ProgramCfg);       // Don't rember what this was for
+ frame->p_Help->AddBook(langhelp);             // Use the language set
+ frame->pDoc->p_Help = frame->p_Help;          // Save the information to the document
  //---------------------------------------------------------------------------------------
  // Show the frame
  frame->Show(TRUE);
  SetTopWindow(frame);
-
-
-
+ //---------------------------------------------------------------------------------------
+ p_ProgramCfg->Flush(TRUE);        // sicher Objekt
  return TRUE;
-}
-//---------------------------------------------------------------------------
+} // bool MainApp::OnInit(void)
+//----------------------------------------------------------------------------------------
 // My frame constructor
-//---------------------------------------------------------------------------
-MainFrame::MainFrame(wxFrame *frame, char *title, int x, int y, int w, int h):
-  wxFrame(frame, SPLITTER_FRAME, title, wxPoint(x, y), wxSize(w, h))
+//----------------------------------------------------------------------------------------
+MainFrame::MainFrame(wxFrame *frame, char *title,  const wxPoint& pos, const wxSize& size):
+  wxFrame(frame, -1, title,  pos, size)
 {
- InitializeMenu();
- // This reduces flicker effects - even better would be to define OnEraseBackground
- // to do Temp0. When the list control's scrollbars are show or hidden, the
- // frame is sent a background erase event.
- SetBackgroundColour( *wxWHITE );
- // frame->SetBackgroundColour(wxColour(255, 255, 255));
- //---------------------------------------------------------------------------------------
- // Give it an icon
- SetIcon( wxICON(Logo) );
- //---------------------------------------------------------------------------------------
+ //--- Everything is done in MainApp -----------------------------------------------------
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 MainFrame::~MainFrame(void)
 {
  // save the control's values to the config
@@ -307,36 +264,18 @@ MainFrame::~MainFrame(void)
  // Get() it doesn't try to create one if there is none (definitely not what
  // we want here!)
  // delete wxConfigBase::Set((wxConfigBase *) NULL);
- p_ProgramCfg->Flush(TRUE);        // sichert Objekt
- delete frame->pDoc;
-}
-//--------------------------------------------------------------------------------------
-void MainFrame::InitializeMenu()
-{
- //---------------------------------------------------------------------------------------
- // Make a menubar
- //---------------------------------------------------------------------------------------
- wxMenu *file_menu = new wxMenu;
-
- file_menu->Append(ABOUT, _("&About"));
- file_menu->AppendSeparator();
- file_menu->Append(QUIT, _("E&xit"));
-
-
- wxMenuBar *menu_bar = new wxMenuBar;
- menu_bar->Append(file_menu, _("&File"));
- SetMenuBar(menu_bar);
+ p_ProgramCfg->Flush(TRUE);        // saves   Objekt
+ delete frame->pDoc;               // Cleanup
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void MainFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
 {
- // Close the help frame; this will cause the config data to
- // get written.
- if (help.GetFrame()) // returns NULL if no help frame active
-  help.GetFrame()->Close(TRUE);
+ // Close the help frame; this will cause the config data to get written.
+ if (p_Help->GetFrame()) // returns NULL if no help frame active
+  p_Help->GetFrame()->Close(TRUE);
  Close(TRUE);
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 {
  wxMessageDialog dialog(this, _("DBBrowser\nMark Johnson\nBerlin, Germany\nmj10777@gmx.net\n (c) 1999"),
@@ -344,9 +283,9 @@ void MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 
  dialog.ShowModal();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void MainFrame::OnHelp(wxCommandEvent& WXUNUSED(event))
 {
help.Display("Main page");
p_Help->Display("Main page");
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
index 32a77850052b61b68eb1126089fec6085591a71c..13f8571891966479a259f4bee18fa0b1dcd1213e 100644 (file)
@@ -1,4 +1,4 @@
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Name:        dbbrowse.h
 // Purpose:     Through ODBC - Databases Browsen
 // Author:      Mark Johnson, mj10777@gmx.net
@@ -7,49 +7,46 @@
 // Copyright:   (c) Mark Johnson
 // Licence:     wxWindows license
 // RCS-ID:      $Id$
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Define a new application type
-//------------------------------------------------------------------------------
-class MyApp: public wxApp
+//----------------------------------------------------------------------------------------
+class MainApp: public wxApp
 {
  public:
-  bool OnInit(void);
-  wxLocale m_locale; // locale we'll be using
+  bool OnInit(void); // Programmstart
+  wxLocale m_locale; // locale we'll be using and language support
 };
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Define a new frame type
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 class MainFrame: public wxFrame
 {
  public:
-  MainFrame(wxFrame *frame, char *title, int x, int y, int w, int h);
+  MainFrame(wxFrame *frame, char *title,  const wxPoint& pos, const wxSize& size);
   ~MainFrame(void);
 
  public:
   // menu callbacks
-  void InitializeMenu();
   void OnQuit(wxCommandEvent& event);
   void OnAbout(wxCommandEvent& event);
   void OnHelp(wxCommandEvent& event);
-  //--------------------------------------------------------
-  wxHtmlHelpController help;
-  //--------------------------------------------------------
+  //--------------------------------------------------------------------------------------
+  wxHtmlHelpController *p_Help;
+  //--------------------------------------------------------------------------------------
   int DiffW, DiffH;
   mjDoc *pDoc;
   DocSplitterWindow *p_Splitter;
-  //--------------------------------------------------------
+  //--------------------------------------------------------------------------------------
  DECLARE_EVENT_TABLE()
 };
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // ID for the menu quit command
-//------------------------------------------------------------------------------
-#define QUIT                           1
-#define ABOUT                          2
-#define HELP                           3
-#define SPLITTER_FRAME               100
-#define SPLITTER_WINDOW              101
+//----------------------------------------------------------------------------------------
+#define QUIT                         777
+#define ABOUT                        778
+#define HELP                         779
 #define TREE_CTRL_PGM                102
 #define GRID_CTRL                    103
 #define TREE_CTRL_DB                 104
 #define GRID_CTRL_DB                 105
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
index ec17794d1448495f554b1436d93036e3b5b1a0dc..116ca054c361f7820a3062fe4dbb7eb2d8570ad7 100644 (file)
@@ -1,4 +1,4 @@
-Logo                    ICON    "bitmaps\\logo.ico"
+aLogo                   ICON    "bitmaps\\logo.ico"
 Col                     ICON    "bitmaps\\col.ico"
 DSNClosed               ICON    "bitmaps\\dsnclose.ico"
 DSNOpen                 ICON    "bitmaps\\dsnopen.ico"
index f36f771c97070a3b310e0fd70b1fdb46fea6bbf5..b83245f264389422f4c9d521cdc8c1d9c0a7135d 100644 (file)
@@ -1,4 +1,4 @@
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Name:        DBGrid.cpp
 // Purpose:     wxGrid sample
 // Author:      Mark Johnson
@@ -7,83 +7,81 @@
 // Copyright:   (c)
 // Licence:     wxWindows license
 // RCS-ID:      $Id$
-//---------------------------------------------------------------------------
-//-- all #ifdefs that the whole Project needs. ------------------------------
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- 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"
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifdef __BORLANDC__
 #pragma hdrstop
 #endif
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifndef WX_PRECOMP
 #include "wx/wx.h"
 #endif
-//---------------------------------------------------------------------------
-//-- all #includes that every .cpp needs             --- 19990807.mj10777 ---
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- all #includes that every .cpp needs             --- 19990807.mj10777 ----------------
+//----------------------------------------------------------------------------------------
 #include "std.h"    // sorgsam Pflegen !
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 BEGIN_EVENT_TABLE(DBGrid, wxGrid)
 EVT_MOTION (DBGrid::OnMouseMove)
 // DBGrid
 EVT_GRID_LABEL_LEFT_CLICK( DBGrid::OnLabelLeftClick )
 EVT_GRID_LABEL_RIGHT_CLICK( DBGrid::OnLabelRightClick )
 EVT_GRID_LABEL_LEFT_DCLICK( DBGrid::OnLabelLeftDClick )
 EVT_GRID_LABEL_RIGHT_DCLICK( DBGrid::OnLabelRightDClick )
 EVT_GRID_CELL_LEFT_CLICK( DBGrid::OnCellLeftClick )
 EVT_GRID_CELL_RIGHT_CLICK( DBGrid::OnCellRightClick )
 EVT_GRID_CELL_LEFT_DCLICK( DBGrid::OnCellLeftDClick )
 EVT_GRID_CELL_RIGHT_DCLICK( DBGrid::OnCellRightDClick )
 EVT_GRID_ROW_SIZE( DBGrid::OnRowSize )
 // EVT_GRID_COL_SIZE( DBGrid::OnColSize )
 EVT_GRID_RANGE_SELECT( DBGrid::OnRangeSelected )
 EVT_GRID_CELL_CHANGE( DBGrid::OnCellChange )
 EVT_MENU(GRID_EDIT,DBGrid::OnModusEdit)
 EVT_MENU(GRID_BROWSE,DBGrid::OnModusBrowse)
-  END_EVENT_TABLE()
-  //---------------------------------------------------------------------------
-  //           wxListCtrl(parent, id, pos, size, style)
-  //           wxGrid(parent,-1,wxPoint( 0, 0 ), wxSize( 400, 300 ) );
-  //---------------------------------------------------------------------------
-  // DBGrid
-  //---------------------------------------------------------------------------
-  // DBGrid::DBGrid(wxWindow *parent, const wxWindowID id,const wxPoint& pos,const wxSize& size):
-  //          wxGrid(parent, id, pos, size)
-  DBGrid::DBGrid(wxWindow *parent, const wxWindowID id,const wxPoint& pos,const wxSize& size, long style):
-    wxGrid(parent, id, pos, size, style)
+ EVT_MOTION (DBGrid::OnMouseMove)
+ // DBGrid
+ EVT_GRID_LABEL_LEFT_CLICK( DBGrid::OnLabelLeftClick )
+ EVT_GRID_LABEL_RIGHT_CLICK( DBGrid::OnLabelRightClick )
+ EVT_GRID_LABEL_LEFT_DCLICK( DBGrid::OnLabelLeftDClick )
+ EVT_GRID_LABEL_RIGHT_DCLICK( DBGrid::OnLabelRightDClick )
+ EVT_GRID_CELL_LEFT_CLICK( DBGrid::OnCellLeftClick )
+ EVT_GRID_CELL_RIGHT_CLICK( DBGrid::OnCellRightClick )
+ EVT_GRID_CELL_LEFT_DCLICK( DBGrid::OnCellLeftDClick )
+ EVT_GRID_CELL_RIGHT_DCLICK( DBGrid::OnCellRightDClick )
+ EVT_GRID_ROW_SIZE( DBGrid::OnRowSize )
+ // EVT_GRID_COL_SIZE( DBGrid::OnColSize )
+ EVT_GRID_RANGE_SELECT( DBGrid::OnRangeSelected )
+ EVT_GRID_CELL_CHANGE( DBGrid::OnCellChange )
+ EVT_MENU(GRID_EDIT,DBGrid::OnModusEdit)
+ EVT_MENU(GRID_BROWSE,DBGrid::OnModusBrowse)
+END_EVENT_TABLE()
+//----------------------------------------------------------------------------------------
+//           wxListCtrl(parent, id, pos, size, style)
+//           wxGrid(parent,-1,wxPoint( 0, 0 ), wxSize( 400, 300 ) );
+//----------------------------------------------------------------------------------------
+// DBGrid
+//----------------------------------------------------------------------------------------
+// DBGrid::DBGrid(wxWindow *parent, const wxWindowID id,const wxPoint& pos,const wxSize& size):
+//          wxGrid(parent, id, pos, size)
+DBGrid::DBGrid(wxWindow *parent, const wxWindowID id,const wxPoint& pos,const wxSize& size, long style):
+  wxGrid(parent, id, pos, size, style)
 {
-  //f_Temp = new wxFont(10,wxSWISS,wxNORMAL,wxBOLD,FALSE,"Comic Sans MS");
-  f_Temp = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT));
-  wxPanel::SetFont(* f_Temp);
-  b_EditModus = TRUE;
-  //----------------------------------------------------------------------------------------------------------------------------
-  popupMenu1 = new wxMenu("");
-  popupMenu1->Append(GRID_EDIT, _("Edit Modus"));
-  popupMenu2 = new wxMenu("");
-  popupMenu2->Append(GRID_BROWSE, _("Browse Modus"));
+ b_EditModus = TRUE;
+ //---------------------------------------------------------------------------------------
+ popupMenu1 = new wxMenu("");
+ popupMenu1->Append(GRID_EDIT, _("Edit Modus"));
+ popupMenu2 = new wxMenu("");
+ popupMenu2->Append(GRID_BROWSE, _("Browse Modus"));
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 DBGrid::~DBGrid()
 {
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 int  DBGrid::OnTableView(wxString Table)
 {
- //---------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
  int  i=0,x,y,z, ValidTable=0;
  wxString Temp0;
  //SetLabelFont(* f_Temp);
  wxBeginBusyCursor();
- //---------------------------------------------------------------------------
+ SetFont(* pDoc->ft_Doc);
+ //---------------------------------------------------------------------------------------
  ct_BrowserDB = (db_Br+i_Which)->ct_BrowserDB;                       // Get the DSN Pointer
- //----------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
  if (ct_BrowserDB)                                                   // Valid pointer (!= NULL) ?
  {      // Pointer is Valid, use the wxDatabase Information
   for (x=0;x<ct_BrowserDB->numTables;x++)                            // go through the Tables
@@ -135,241 +133,238 @@ int  DBGrid::OnTableView(wxString Table)
  }      // if (ct_BrowserDB)
  else
   wxLogMessage(_("\n-E-> DBGrid::OnTableView():: Invalid DSN Pointer : Failed"));
 //---------------------------------------------------------------------------
//---------------------------------------------------------------------------------------
  Weiter:
 SetEditInPlace(b_EditModus);   // Activate in-place Editing (FALSE)
 wxEndBusyCursor();
 //---------------------------------------------------------------------------
 wxLogMessage(_("-I-> DBGrid::OnTableView() - End"));
 return 0;
+ SetEditInPlace(b_EditModus);   // Activate in-place Editing (FALSE)
+ wxEndBusyCursor();
//---------------------------------------------------------------------------------------
+ wxLogMessage(_("-I-> DBGrid::OnTableView() - End"));
+ return 0;
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnModusEdit(wxMenu& menu, wxCommandEvent& event)
 {
 b_EditModus = TRUE;             // Needed by PopupMenu
 SetEditable(FALSE);             // Do not Edit with Text Edit Control
 SetEditInPlace(b_EditModus);    // Deactivate in-place Editing
 UpdateDimensions();             // Redraw the Grid
+ b_EditModus = TRUE;             // Needed by PopupMenu
+ SetEditable(FALSE);             // Do not Edit with Text Edit Control
+ SetEditInPlace(b_EditModus);    // Deactivate in-place Editing
+ UpdateDimensions();             // Redraw the Grid
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnModusBrowse(wxMenu& menu, wxCommandEvent& event)
 {
 b_EditModus = FALSE;            // Needed by PopupMenu
 SetEditInPlace(b_EditModus);    // Deactivate in-place Editing
 UpdateDimensions();             // Redraw the Grid
+ b_EditModus = FALSE;            // Needed by PopupMenu
+ SetEditInPlace(b_EditModus);    // Deactivate in-place Editing
+ UpdateDimensions();             // Redraw the Grid
 }
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnMouseMove(wxMouseEvent &event)
 {
 MousePos = event.GetPosition();
+ MousePos = event.GetPosition();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnLabelLeftClick( wxGridEvent& ev )
 {
 logBuf = "DBGrid::OnLabelLeftClick : ";
 if ( ev.GetRow() != -1 )
   {
-      logBuf << "row label " << ev.GetRow();
   }
 else if ( ev.GetCol() != -1 )
   {
-      logBuf << "col label " << ev.GetCol();
   }
 else
   {
-      logBuf << "corner label";
   }
 if ( ev.ShiftDown() )
-    logBuf << " (shift down)";
 // wxLogMessage( "%s", logBuf.c_str() );
 logBuf += "\n";
 wxLogMessage(logBuf.c_str());
 ev.Skip();
+ logBuf = "DBGrid::OnLabelLeftClick : ";
+ if ( ev.GetRow() != -1 )
+ {
+  logBuf << "row label " << ev.GetRow();
+ }
+ else if ( ev.GetCol() != -1 )
+ {
+  logBuf << "col label " << ev.GetCol();
+ }
+ else
+ {
+  logBuf << "corner label";
+ }
+ if ( ev.ShiftDown() )
+  logBuf << " (shift down)";
+ // wxLogMessage( "%s", logBuf.c_str() );
+ logBuf += "\n";
+ wxLogMessage(logBuf.c_str());
+ ev.Skip();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnLabelRightClick( wxGridEvent& ev )
 {
  //-------------------
 if (b_EditModus)
-    PopupMenu(popupMenu2,MousePos.x,MousePos.y);
 else
-    PopupMenu(popupMenu1,MousePos.x,MousePos.y);
 //-------------------
 logBuf = "DBGrid::OnLabelRightClick : ";
 if ( ev.GetRow() != -1 )
   {
-      logBuf << "row label " << ev.GetRow();
   }
 else if ( ev.GetCol() != -1 )
   {
-      logBuf << "col label " << ev.GetCol();
   }
 else
   {
-      logBuf << "corner label";
   }
 if ( ev.ShiftDown() )
-    logBuf << " (shift down)";
 // wxLogMessage( "%s", logBuf.c_str() );
 logBuf += "\n";
 wxLogMessage(logBuf.c_str());
 ev.Skip();
+ if (b_EditModus)
+  PopupMenu(popupMenu2,MousePos.x,MousePos.y);
+ else
+  PopupMenu(popupMenu1,MousePos.x,MousePos.y);
+ //-------------------
+ logBuf = "DBGrid::OnLabelRightClick : ";
+ if ( ev.GetRow() != -1 )
+ {
+  logBuf << "row label " << ev.GetRow();
+ }
+ else if ( ev.GetCol() != -1 )
+ {
+  logBuf << "col label " << ev.GetCol();
+ }
+ else
+ {
+  logBuf << "corner label";
+ }
+ if ( ev.ShiftDown() )
+  logBuf << " (shift down)";
+ // wxLogMessage( "%s", logBuf.c_str() );
+ logBuf += "\n";
+ wxLogMessage(logBuf.c_str());
+ ev.Skip();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnLabelLeftDClick( wxGridEvent& ev )
 {
 logBuf = "DBGrid::OnLabelLeftDClick : ";
 if ( ev.GetRow() != -1 )
   {
-      logBuf << "row label " << ev.GetRow();
   }
 else if ( ev.GetCol() != -1 )
   {
-      logBuf << "col label " << ev.GetCol();
   }
 else
   {
-      logBuf << "corner label";
   }
 if ( ev.ShiftDown() )
-    logBuf << " (shift down)";
 // wxLogMessage( "%s", logBuf.c_str() );
 logBuf += "\n";
 wxLogMessage(logBuf.c_str());
 ev.Skip();
+ logBuf = "DBGrid::OnLabelLeftDClick : ";
+ if ( ev.GetRow() != -1 )
+ {
+  logBuf << "row label " << ev.GetRow();
+ }
+ else if ( ev.GetCol() != -1 )
+ {
+  logBuf << "col label " << ev.GetCol();
+ }
+ else
+ {
+  logBuf << "corner label";
+ }
+ if ( ev.ShiftDown() )
+  logBuf << " (shift down)";
+ // wxLogMessage( "%s", logBuf.c_str() );
+ logBuf += "\n";
+ wxLogMessage(logBuf.c_str());
+ ev.Skip();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnLabelRightDClick( wxGridEvent& ev )
 {
 logBuf = "DBGrid::OnLabelRightDClick : ";
 if ( ev.GetRow() != -1 )
   {
-      logBuf << "row label " << ev.GetRow();
   }
 else if ( ev.GetCol() != -1 )
   {
-      logBuf << "col label " << ev.GetCol();
   }
 else
   {
-      logBuf << "corner label";
   }
 if ( ev.ShiftDown() )
-    logBuf << " (shift down)";
 // wxLogMessage( "%s", logBuf.c_str() );
 logBuf += "\n";
 wxLogMessage(logBuf.c_str());
 ev.Skip();
+ logBuf = "DBGrid::OnLabelRightDClick : ";
+ if ( ev.GetRow() != -1 )
+ {
+  logBuf << "row label " << ev.GetRow();
+ }
+ else if ( ev.GetCol() != -1 )
+ {
+  logBuf << "col label " << ev.GetCol();
+ }
+ else
+ {
+  logBuf << "corner label";
+ }
+ if ( ev.ShiftDown() )
+  logBuf << " (shift down)";
+ // wxLogMessage( "%s", logBuf.c_str() );
+ logBuf += "\n";
+ wxLogMessage(logBuf.c_str());
+ ev.Skip();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnCellLeftClick( wxGridEvent& ev )
 {
 logBuf = "DBGrid::OnCellLeftClick : ";
 logBuf << "Cell at row " << ev.GetRow()
 << " col " << ev.GetCol();
 // wxLogMessage( "%s", logBuf.c_str() );
 // wxMessageBox(logBuf);
 logBuf += "\n";
 wxLogMessage(logBuf.c_str());
 // you must call event skip if you want default grid processing
 // (cell highlighting etc.)
 //
 ev.Skip();
+ logBuf = "DBGrid::OnCellLeftClick : ";
+ logBuf << "Cell at row " << ev.GetRow()
+ << " col " << ev.GetCol();
+ // wxLogMessage( "%s", logBuf.c_str() );
+ // wxMessageBox(logBuf);
+ logBuf += "\n";
+ wxLogMessage(logBuf.c_str());
+ // you must call event skip if you want default grid processing
+ // (cell highlighting etc.)
+ //
+ ev.Skip();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnCellRightClick( wxGridEvent& ev )
 {
 logBuf = "DBGrid::OnCellRightClick : ";
 logBuf << "Cell at row " << ev.GetRow()
 << " col " << ev.GetCol();
 // wxLogMessage( "%s", logBuf.c_str() );
 // wxMessageBox(logBuf);
 logBuf += "\n";
 wxLogMessage(logBuf.c_str());
 // you must call event skip if you want default grid processing
 // (cell highlighting etc.)
 //
 ev.Skip();
+ logBuf = "DBGrid::OnCellRightClick : ";
+ logBuf << "Cell at row " << ev.GetRow()
+ << " col " << ev.GetCol();
+ // wxLogMessage( "%s", logBuf.c_str() );
+ // wxMessageBox(logBuf);
+ logBuf += "\n";
+ wxLogMessage(logBuf.c_str());
+ // you must call event skip if you want default grid processing
+ // (cell highlighting etc.)
+ //
+ ev.Skip();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnCellLeftDClick( wxGridEvent& ev )
 {
 logBuf = "DBGrid::OnCellLeftDClick : ";
 logBuf << "Cell at row " << ev.GetRow()
 << " col " << ev.GetCol();
 // wxLogMessage( "%s", logBuf.c_str() );
 // wxMessageBox(logBuf);
 logBuf += "\n";
 wxLogMessage(logBuf.c_str());
 // you must call event skip if you want default grid processing
 // (cell highlighting etc.)
 //
 ev.Skip();
+ logBuf = "DBGrid::OnCellLeftDClick : ";
+ logBuf << "Cell at row " << ev.GetRow()
+ << " col " << ev.GetCol();
+ // wxLogMessage( "%s", logBuf.c_str() );
+ // wxMessageBox(logBuf);
+ logBuf += "\n";
+ wxLogMessage(logBuf.c_str());
+ // you must call event skip if you want default grid processing
+ // (cell highlighting etc.)
+ //
+ ev.Skip();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnCellRightDClick( wxGridEvent& ev )
 {
 logBuf = "DBGrid::OnCellRightDClick : ";
 logBuf << "Cell at row " << ev.GetRow()
 << " col " << ev.GetCol();
 // wxLogMessage( "%s", logBuf.c_str() );
 // wxMessageBox(logBuf);
 logBuf += "\n";
 wxLogMessage(logBuf.c_str());
 // you must call event skip if you want default grid processing
 // (cell highlighting etc.)
 //
 ev.Skip();
+ logBuf = "DBGrid::OnCellRightDClick : ";
+ logBuf << "Cell at row " << ev.GetRow()
+ << " col " << ev.GetCol();
+ // wxLogMessage( "%s", logBuf.c_str() );
+ // wxMessageBox(logBuf);
+ logBuf += "\n";
+ wxLogMessage(logBuf.c_str());
+ // you must call event skip if you want default grid processing
+ // (cell highlighting etc.)
+ //
+ ev.Skip();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnCellChange( wxGridEvent& ev )
 {
 logBuf = "DBGrid::OnCellChange : ";
 logBuf << "Cell at row " << ev.GetRow()
 << " col " << ev.GetCol();
 // wxLogMessage( "%s", logBuf.c_str() );
 // wxMessageBox(logBuf);
 logBuf += "\n";
 wxLogMessage(logBuf.c_str());
 // you must call event skip if you want default grid processing
 // (cell highlighting etc.)
 //
 ev.Skip();
+ logBuf = "DBGrid::OnCellChange : ";
+ logBuf << "Cell at row " << ev.GetRow()
+ << " col " << ev.GetCol();
+ // wxLogMessage( "%s", logBuf.c_str() );
+ // wxMessageBox(logBuf);
+ logBuf += "\n";
+ wxLogMessage(logBuf.c_str());
+ // you must call event skip if you want default grid processing
+ // (cell highlighting etc.)
+ //
+ ev.Skip();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnRowSize( wxGridSizeEvent& ev )
 {
 logBuf = "DBGrid::OnRowSize : ";
 logBuf << "Resized row " << ev.GetRowOrCol();
 // wxLogMessage( "%s", logBuf.c_str() );
 logBuf += "\n";
 wxLogMessage(logBuf.c_str());
 ev.Skip();
+ logBuf = "DBGrid::OnRowSize : ";
+ logBuf << "Resized row " << ev.GetRowOrCol();
+ // wxLogMessage( "%s", logBuf.c_str() );
+ logBuf += "\n";
+ wxLogMessage(logBuf.c_str());
+ ev.Skip();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnColSize( wxGridSizeEvent& ev )
 {
-  logBuf = "DBGrid::OnColSize : ";
-  logBuf << "Resized col " << ev.GetRowOrCol();
-  // wxLogMessage( "%s", logBuf.c_str() );
-  logBuf += "\n";
-  wxLogMessage(logBuf.c_str());
-
-  ev.Skip();
+ logBuf = "DBGrid::OnColSize : ";
+ logBuf << "Resized col " << ev.GetRowOrCol();
+ // wxLogMessage( "%s", logBuf.c_str() );
+ logBuf += "\n";
+ wxLogMessage(logBuf.c_str());
+ ev.Skip();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBGrid::OnRangeSelected( wxGridRangeSelectEvent& ev )
 {
-  logBuf = "DBGrid::OnRangeSelected : ";
-  logBuf  << "Selected cells from row " << ev.GetTopRow()
-   << " col " << ev.GetLeftCol()
-   << " to row " << ev.GetBottomRow()
-   << " col " << ev.GetRightCol();
-
-  logBuf += "\n";
-  // wxLogMessage( "%s", logBuf.c_str() );
-  wxLogMessage(logBuf.c_str());
-
-  ev.Skip();
+ logBuf = "DBGrid::OnRangeSelected : ";
+ logBuf  << "Selected cells from row " << ev.GetTopRow()
+  << " col " << ev.GetLeftCol()
+  << " to row " << ev.GetBottomRow()
+  << " col " << ev.GetRightCol();
+ logBuf += "\n";
+ // wxLogMessage( "%s", logBuf.c_str() );
+ wxLogMessage(logBuf.c_str());
+ ev.Skip();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
index c9c3467d577efc1d97d03ed6de2bc5d3f168c409..39e7cc48c02c16e637782cbb1f45aed3ad4c4009 100644 (file)
@@ -1,41 +1,39 @@
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Name:        DBGrid.h
-// Purpose:     DBGrid
+// Purpose:     shows seleted Table in a Grid
 // Author:      Mark Johnson
 // Modified by: 20000126.mj10777
 // Created:
 // Copyright:   (c) Mark Johnson
 // Licence:     wxWindows license
 // RCS-ID:      $Id$
-//---------------------------------------------------------------------------
-
+//----------------------------------------------------------------------------------------
 #if !defined(wxUSE_NEW_GRID) || !(wxUSE_NEW_GRID)
   #error "DBGrid requires the new wxGrid class"
+ #error "DBGrid requires the new wxGrid class"
 #endif
-
+//----------------------------------------------------------------------------------------
 class mjDoc;
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 class DBGrid: public wxGrid
 {
  public:
   DBGrid(wxWindow *parent, const wxWindowID id,const wxPoint& pos,const wxSize& size, long style);
   virtual ~DBGrid();
- //-------------------------------------------
+ //---------------------------------------------------------------------------------------
   int        i_TabArt;   // Tab = 0 ; Page = 1;
   int        i_ViewNr;   // View Nummer in Tab / Page
   int        i_Which;    // Which View, Database is this/using
- //-------------------------------------------
-  wxFont*    f_Temp;
+ //---------------------------------------------------------------------------------------
   mjDoc*     pDoc;
   wxDbInf*   ct_BrowserDB;
   BrowserDB* db_Br;
   wxMenu   *popupMenu1; // OnDBClass
   wxMenu   *popupMenu2; // OnDBGrid & OnTableclass
   bool     b_EditModus;
- //-------------------------------------------
+ //---------------------------------------------------------------------------------------
   wxString logBuf,Temp0;
   wxPoint  MousePos;
- //-------------------------------------------
+ //---------------------------------------------------------------------------------------
  void OnModusEdit(wxMenu& menu, wxCommandEvent& event);
  void OnModusBrowse(wxMenu& menu, wxCommandEvent& event);
  void OnMouseMove(wxMouseEvent& event);
@@ -52,12 +50,12 @@ class DBGrid: public wxGrid
  void OnColSize( wxGridSizeEvent& );
  void OnRangeSelected( wxGridRangeSelectEvent& );
  void OnCellChange( wxGridEvent& );
- //-------------------------------------------
+ //---------------------------------------------------------------------------------------
  DECLARE_EVENT_TABLE()
 };
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #define GRID_01_BEGIN      1200
 #define GRID_BROWSE        1201
 #define GRID_EDIT          1202
 #define GRID_01_END        1203
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
index 6b9452b687433ac8d2aed19c9344fcbda73bf63b..3937e1c7bd9a5adfc3127a8adca1b691eb58d0b9 100644 (file)
-//---------------------------------------------------------------------------
-// Name:        DBTree.h
-// Purpose:     Programm Control with a Tree
+//----------------------------------------------------------------------------------------
+// Name:        DBTree.cpp/.h
+// Purpose:     Tree with Table and Views, branches show Field information
 // Author:      Mark Johnson
 // Modified by:
 // Created:     19991129
 // RCS-ID:      $Id$
 // Copyright:   (c) Mark Johnson, Berlin Germany, mj10777@gmx.net
 // Licence:     wxWindows license
-//---------------------------------------------------------------------------
-//-- all #ifdefs that the whole Project needs. ------------------------------
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- 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"
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifdef __BORLANDC__
 #pragma hdrstop
 #endif
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifndef WX_PRECOMP
 #include "wx/wx.h"
 #endif
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifndef __WXMSW__
 #endif
-//---------------------------------------------------------------------------
-//-- all #includes that every .cpp needs             --- 19990807.mj10777 ---
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- all #includes that every .cpp needs             --- 19990807.mj10777 ----------------
+//----------------------------------------------------------------------------------------
 #include "std.h"    // sorgsam Pflegen !
-//---------------------------------------------------------------------------
-//-- Global functions -------------------------------------------------------
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- Global functions --------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 static inline const char *bool2String(bool b)
 {
   return b ? "" : "not ";
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 BEGIN_EVENT_TABLE(DBTree, wxTreeCtrl)
 EVT_MOTION (DBTree::OnMouseMove)
 EVT_TREE_SEL_CHANGED(TREE_CTRL_DB, DBTree::OnSelChanged)
 EVT_TREE_ITEM_RIGHT_CLICK(TREE_CTRL_DB,DBTree::OnRightSelect)
 EVT_MENU(DATA_SHOW,DBTree::OnDBGrid)
 EVT_MENU(DATA_DB,DBTree::OnDBClass)
 EVT_MENU(DATA_TABLE,DBTree::OnTableClass)
 EVT_MENU(DATA_TABLE_ALL,DBTree::OnTableClassAll)
-  END_EVENT_TABLE()
-  //---------------------------------------------------------------------------
-  // DBTree implementation
-  //---------------------------------------------------------------------------
-  IMPLEMENT_DYNAMIC_CLASS(DBTree, wxTreeCtrl)
-  //---------------------------------------------------------------------------
-  DBTree::DBTree(wxWindow *parent)  : wxTreeCtrl(parent)
+ EVT_MOTION (DBTree::OnMouseMove)
+ EVT_TREE_SEL_CHANGED(TREE_CTRL_DB, DBTree::OnSelChanged)
+ EVT_TREE_ITEM_RIGHT_CLICK(TREE_CTRL_DB,DBTree::OnRightSelect)
+ EVT_MENU(DATA_SHOW,DBTree::OnDBGrid)
+ EVT_MENU(DATA_DB,DBTree::OnDBClass)
+ EVT_MENU(DATA_TABLE,DBTree::OnTableClass)
+ EVT_MENU(DATA_TABLE_ALL,DBTree::OnTableClassAll)
+END_EVENT_TABLE()
+//----------------------------------------------------------------------------------------
+// DBTree implementation
+//----------------------------------------------------------------------------------------
+IMPLEMENT_DYNAMIC_CLASS(DBTree, wxTreeCtrl)
+//----------------------------------------------------------------------------------------
+DBTree::DBTree(wxWindow *parent)  : wxTreeCtrl(parent)
 {
 }
+//----------------------------------------------------------------------------------------
 DBTree::DBTree(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const wxSize& size, long style)
   : wxTreeCtrl(parent, id, pos, size, style)
 {
-  //wxFont* ft_Temp = new wxFont(10,wxSWISS,wxNORMAL,wxBOLD,FALSE,"Comic Sans MS");
-  wxFont* ft_Temp = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT));
-  SetFont(* ft_Temp);
-
-  // Make an image list containing small icons
-  p_imageListNormal = new wxImageList(16, 16, TRUE);
-
-  // should correspond to TreeIc_xxx enum
-
+ // Make an image list containing small icons
+ p_imageListNormal = new wxImageList(16, 16, TRUE);
+ // should correspond to TreeIc_xxx enum
 #if !defined(__WXMSW__)
-#include "bitmaps/logo.xpm"
-#include "bitmaps/dsnclose.xpm"
-#include "bitmaps/dsnopen.xpm"
-#include "bitmaps/tab.xpm"
-#include "bitmaps/key.xpm"
-#include "bitmaps/keyf.xpm"
-#include "bitmaps/d_open.xpm"
-#include "bitmaps/d_closed.xpm"
-#include "bitmaps/col.xpm"
+ #include "bitmaps/logo.xpm"
+ #include "bitmaps/dsnclose.xpm"
+ #include "bitmaps/dsnopen.xpm"
+ #include "bitmaps/tab.xpm"
+ #include "bitmaps/view.xpm"
+ #include "bitmaps/col.xpm"
+ #include "bitmaps/key.xpm"
+ #include "bitmaps/keyf.xpm"
+ #include "bitmaps/d_open.xpm"
+ #include "bitmaps/d_closed.xpm"
 #endif
-
-   p_imageListNormal->Add(wxICON(Logo));
-   p_imageListNormal->Add(wxICON(DsnClosed));
-   p_imageListNormal->Add(wxICON(DsnOpen));
-   p_imageListNormal->Add(wxICON(TAB));
-   p_imageListNormal->Add(wxICON(COL));
-   p_imageListNormal->Add(wxICON(KEY));
-   p_imageListNormal->Add(wxICON(KEYF));
-   p_imageListNormal->Add(wxICON(DocOpen));
-   p_imageListNormal->Add(wxICON(DocOpen));
-
-
-
-
-
-  SetImageList(p_imageListNormal);
-  ct_BrowserDB = NULL;
+ p_imageListNormal->Add(wxICON(aLogo));
+ p_imageListNormal->Add(wxICON(DsnClosed));
+ p_imageListNormal->Add(wxICON(DsnOpen));
+ p_imageListNormal->Add(wxICON(TAB));
+ p_imageListNormal->Add(wxICON(VIEW));
+ p_imageListNormal->Add(wxICON(COL));
+ p_imageListNormal->Add(wxICON(KEY));
+ p_imageListNormal->Add(wxICON(KEYF));
+ p_imageListNormal->Add(wxICON(DocOpen));
+ p_imageListNormal->Add(wxICON(DocOpen));
+ SetImageList(p_imageListNormal);
+ ct_BrowserDB = NULL;
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 DBTree::~DBTree()
 {
 // wxLogMessage("DBTree::~DBTree() - Vor  OnCloseDB()");
 (pDoc->db_Br+i_Which)->OnCloseDB(FALSE);
 // wxLogMessage("DBTree::~DBTree() - Nach OnCloseDB()");
 (pDoc->db_Br+i_Which)->db_BrowserDB = NULL;
 (pDoc->db_Br+i_Which)->ct_BrowserDB = NULL;
 (pDoc->db_Br+i_Which)->cl_BrowserDB = NULL;
 delete ct_BrowserDB;
 delete p_imageListNormal;
+ // wxLogMessage("DBTree::~DBTree() - Vor  OnCloseDB()");
+ (pDoc->db_Br+i_Which)->OnCloseDB(FALSE);
+ // wxLogMessage("DBTree::~DBTree() - Nach OnCloseDB()");
+ (pDoc->db_Br+i_Which)->db_BrowserDB = NULL;
+ (pDoc->db_Br+i_Which)->ct_BrowserDB = NULL;
+ (pDoc->db_Br+i_Which)->cl_BrowserDB = NULL;
+ delete ct_BrowserDB;
+ delete p_imageListNormal;
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #undef TREE_EVENT_HANDLER
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 int  DBTree::OnPopulate()
 {
  wxTreeItemId Root, Folder, Docu, Funkt;
  int i,x,y, TableType;
  wxString SQL_TYPE, DB_TYPE;
- //----------------------------------------------------------------------------------------------------------------------------
+ SetFont(* pDoc->ft_Doc);
+ //---------------------------------------------------------------------------------------
  if ((pDoc->db_Br+i_Which)->Initialize(FALSE))
  {
   wxBeginBusyCursor();
@@ -215,9 +207,9 @@ int  DBTree::OnPopulate()
   wxLogMessage(_("\n-E-> DBTree::OnPopulate() : A valid Pointer could not be created : Failed"));
   return 0;
  }
- //----------------------------------------------------------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
  Expand(Root);
- //----------------------------------------------------------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
  popupMenu1 = NULL;
  popupMenu1 = new wxMenu("");
  popupMenu1->Append(DATA_DB, _("Make wxDB.cpp/h "));
@@ -228,11 +220,10 @@ int  DBTree::OnPopulate()
  popupMenu2->Append(DATA_SHOW, _("Show Data"));
  popupMenu2->AppendSeparator();
  popupMenu2->Append(DATA_TABLE, _("Make wxTable.cpp/h "));
- //----------------------------------------------------------------------------------------------------------------------------
-
+ //---------------------------------------------------------------------------------------
  return 0;
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBTree::OnSelChanged(wxTreeEvent& WXUNUSED(event))
 {
   int i;
@@ -242,163 +233,161 @@ void DBTree::OnSelChanged(wxTreeEvent& WXUNUSED(event))
   wxTreeItemId itemId = GetSelection();
   DBTreeData *item = (DBTreeData *)GetItemData(itemId);
   if ( item != NULL )
+  {
+   int Treffer = 0;
+   Temp1.Printf("%s",item->m_desc.c_str());
+   //-------------------------------------------------------------------------------------
+   if (Temp1.Contains("ODBC-"))
+   {
+    Temp1 = Temp1.Mid(5,wxSTRING_MAXLEN);
+    for (i=0;i<pDoc->i_DSN;i++)
+    {
+    if (Temp1 == (pDoc->p_DSN+i)->Dsn)
     {
-      int Treffer = 0;
-      Temp1.Printf("%s",item->m_desc.c_str());
-      //-----------------------------------------------------------------------------------------
-      if (Temp1.Contains("ODBC-"))
-       {
-         Temp1 = Temp1.Mid(5,wxSTRING_MAXLEN);
-         for (i=0;i<pDoc->i_DSN;i++)
-           {
-             if (Temp1 == (pDoc->p_DSN+i)->Dsn)
-               {
-                 // pDoc->OnChosenDSN(i);
-               }
-           }
-         Treffer++;
-       }
-      //-----------------------------------------------------------------------------------------
-      if (Treffer == 0)
-       {
-         //---------------------------------------------------
-         /*
-           Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
-           "%u children (%u immediately under this item)."),
-           item->m_desc.c_str(),
-           bool2String(IsSelected(itemId)),
-           bool2String(IsExpanded(itemId)),
-           bool2String(IsBold(itemId)),
-           GetChildrenCount(itemId),
-           GetChildrenCount(itemId));
-           LogBuf.Printf("-I-> DBTree::OnSelChanged - %s",Temp0.c_str());
-           wxLogMessage( "%s", LogBuf.c_str() );
-           */
-         //---------------------------------------------------
-       }
+     // pDoc->OnChosenDSN(i);
     }
+   }
+   Treffer++;
+  }
+  //--------------------------------------------------------------------------------------
+  if (Treffer == 0)
+  {
+   //-------------------------------------------------------------------------------------
+   /*
+    Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
+     "%u children (%u immediately under this item)."),
+     item->m_desc.c_str(),
+     bool2String(IsSelected(itemId)),
+     bool2String(IsExpanded(itemId)),
+     bool2String(IsBold(itemId)),
+     GetChildrenCount(itemId),
+     GetChildrenCount(itemId));
+     LogBuf.Printf("-I-> DBTree::OnSelChanged - %s",Temp0.c_str());
+     wxLogMessage( "%s", LogBuf.c_str() );
+     */
+   //-------------------------------------------------------------------------------------
+  }
+ }
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBTree::OnRightSelect(wxTreeEvent& WXUNUSED(event))
 {
 int i;
 Temp0.Empty();
 // Get the Information that we need
 wxTreeItemId itemId = GetSelection();
 DBTreeData *item = (DBTreeData *)GetItemData(itemId);
 if ( item != NULL )
   {
-      int Treffer = 0;
-      Temp1.Printf("%s",item->m_desc.c_str());
-      //-----------------------------------------------------------------------------------------
-      if (!wxStrcmp("Root",Temp1))
-       {
-         PopupMenu(popupMenu1,TreePos.x,TreePos.y);
-         Treffer++;
-       }
-      for (i=0;i<ct_BrowserDB->numTables;i++)
-       {
-         Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
-         if (!wxStrcmp(Temp2,Temp1))
-           {
-             PopupMenu(popupMenu2,TreePos.x,TreePos.y);
-             Treffer++;
-           }
-       }
-      //-----------------------------------------------------------------------------------------
-      if (Treffer == 0)
-       {
-         //---------------------------------------------------
-         /*
-           Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
-           "%u children (%u immediately under this item)."),
-           item->m_desc.c_str(),
-           bool2String(IsSelected(itemId)),
-           bool2String(IsExpanded(itemId)),
-           bool2String(IsBold(itemId)),
-           GetChildrenCount(itemId),
-           GetChildrenCount(itemId));
-           LogBuf.Printf("-I-> DBTree::OnSelChanged - %s",Temp0.c_str());
-           wxLogMessage( "%s", LogBuf.c_str() );
-           */
-         //---------------------------------------------------
-       }
   }
+ int i;
+ Temp0.Empty();
+ // Get the Information that we need
+ wxTreeItemId itemId = GetSelection();
+ DBTreeData *item = (DBTreeData *)GetItemData(itemId);
+ if ( item != NULL )
+ {
+  int Treffer = 0;
+  Temp1.Printf("%s",item->m_desc.c_str());
+  //--------------------------------------------------------------------------------------
+  if (!wxStrcmp("Root",Temp1))
+  {
+   PopupMenu(popupMenu1,TreePos.x,TreePos.y);
+   Treffer++;
+  }
+  for (i=0;i<ct_BrowserDB->numTables;i++)
+  {
+   Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
+   if (!wxStrcmp(Temp2,Temp1))
+   {
+    PopupMenu(popupMenu2,TreePos.x,TreePos.y);
+    Treffer++;
+   }
+  }
+  //--------------------------------------------------------------------------------------
+  if (Treffer == 0)
+  {
+   //-------------------------------------------------------------------------------------
+   /*
+     Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
+     "%u children (%u immediately under this item)."),
+     item->m_desc.c_str(),
+     bool2String(IsSelected(itemId)),
+     bool2String(IsExpanded(itemId)),
+     bool2String(IsBold(itemId)),
+     GetChildrenCount(itemId),
+     GetChildrenCount(itemId));
+     LogBuf.Printf("-I-> DBTree::OnSelChanged - %s",Temp0.c_str());
+     wxLogMessage( "%s", LogBuf.c_str() );
+     */
+   //-------------------------------------------------------------------------------------
+  }
+ }
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBTree::OnDBGrid(wxMenu& , wxCommandEvent& event)
 {
 int i;
 // Get the Information that we need
 wxTreeItemId itemId = GetSelection();
 DBTreeData *item = (DBTreeData *)GetItemData(itemId);
 if ( item != NULL )
   {
-      Temp1.Printf("%s",item->m_desc.c_str());
-      for (i=0;i<ct_BrowserDB->numTables;i++)
-       {
-         Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
-         if (!wxStrcmp(Temp2,Temp1))
-           {
-             // Temp0.Printf("(%d) Here is where a GridCtrl for >%s< will be called! ",i,(ct_BrowserDB->pTableInf+i)->tableName);
-             pDoc->OnChosenTbl(1,(ct_BrowserDB->pTableInf+i)->tableName);
-             // wxMessageBox(Temp0);
-           }
-       }
   }
+ int i;
+ // Get the Information that we need
+ wxTreeItemId itemId = GetSelection();
+ DBTreeData *item = (DBTreeData *)GetItemData(itemId);
+ if ( item != NULL )
+ {
+  Temp1.Printf("%s",item->m_desc.c_str());
+  for (i=0;i<ct_BrowserDB->numTables;i++)
+  {
+   Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
+   if (!wxStrcmp(Temp2,Temp1))
+   {
+    // Temp0.Printf("(%d) Here is where a GridCtrl for >%s< will be called! ",i,(ct_BrowserDB->pTableInf+i)->tableName);
+    pDoc->OnChosenTbl(1,(ct_BrowserDB->pTableInf+i)->tableName);
+    // wxMessageBox(Temp0);
+   }
+  }
+ }
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBTree::OnDBClass(wxMenu& , wxCommandEvent& event)
 {
 // int i;
 // Get the Information that we need
 wxTreeItemId itemId = GetSelection();
 DBTreeData *item = (DBTreeData *)GetItemData(itemId);
 if ( item != NULL )
   {
-      Temp0.Printf(_("Here is where a wxDB Class for >%s< will be made! "),s_DSN.c_str());
-      wxMessageBox(Temp0);
   }
+ // int i;
+ // Get the Information that we need
+ wxTreeItemId itemId = GetSelection();
+ DBTreeData *item = (DBTreeData *)GetItemData(itemId);
+ if ( item != NULL )
+ {
+  Temp0.Printf(_("Here is where a wxDB Class for >%s< will be made! "),s_DSN.c_str());
+  wxMessageBox(Temp0);
+ }
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBTree::OnTableClass(wxMenu& , wxCommandEvent& event)
 {
 int i;
 // Get the Information that we need
 wxTreeItemId itemId = GetSelection();
 DBTreeData *item = (DBTreeData *)GetItemData(itemId);
 if ( item != NULL )
   {
-      Temp1.Printf("%s",item->m_desc.c_str());
-      for (i=0;i<ct_BrowserDB->numTables;i++)
-       {
-         Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
-         if (!wxStrcmp(Temp2,Temp1))
-           {
-             Temp0.Printf(_("(%d) Here is where a wxTable Class for >%s< will be made! "),i,(ct_BrowserDB->pTableInf+i)->tableName);
-             wxMessageBox(Temp0);
-           }
-       }
   }
+ int i;
+ // Get the Information that we need
+ wxTreeItemId itemId = GetSelection();
+ DBTreeData *item = (DBTreeData *)GetItemData(itemId);
+ if ( item != NULL )
+ {
+  Temp1.Printf("%s",item->m_desc.c_str());
+  for (i=0;i<ct_BrowserDB->numTables;i++)
+  {
+   Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
+   if (!wxStrcmp(Temp2,Temp1))
+   {
+    Temp0.Printf(_("(%d) Here is where a wxTable Class for >%s< will be made! "),i,(ct_BrowserDB->pTableInf+i)->tableName);
+    wxMessageBox(Temp0);
+   }
+  }
+ }
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBTree::OnTableClassAll(wxMenu& , wxCommandEvent& event)
 {
 // int i;
 // Get the Information that we need
 wxTreeItemId itemId = GetSelection();
 DBTreeData *item = (DBTreeData *)GetItemData(itemId);
 if ( item != NULL )
   {
-      Temp0.Printf(_("Here is where all wxTable Classes in >%s< will be made! "),s_DSN.c_str());
-      wxMessageBox(Temp0);
   }
+ // int i;
+ // Get the Information that we need
+ wxTreeItemId itemId = GetSelection();
+ DBTreeData *item = (DBTreeData *)GetItemData(itemId);
+ if ( item != NULL )
+ {
+  Temp0.Printf(_("Here is where all wxTable Classes in >%s< will be made! "),s_DSN.c_str());
+  wxMessageBox(Temp0);
+ }
 }
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DBTree::OnMouseMove(wxMouseEvent &event)
 {
 TreePos = event.GetPosition();
+ TreePos = event.GetPosition();
 }
-//------------------------------------------------------------------------------
-
-
+//----------------------------------------------------------------------------------------
index 61d5604385d3b4069d5c9ca171c0c2db234e1dfb..b7631fde6619fb0d3ee2fc01d846f8d69bdc4050 100644 (file)
@@ -1,25 +1,23 @@
-//---------------------------------------------------------------------------
-// Name:        DBTree.h
-// Purpose:     Shows ODBC Catalog entries for Databases
+//----------------------------------------------------------------------------------------
+// Name:        DBTree.cpp/.h
+// Purpose:     Tree with Table and Views, branches show Field information
 // Author:      Mark Johnson
 // Modified by: 19991129.mj10777
 // Created:     19991129
 // Copyright:   (c) Mark Johnson
 // Licence:     wxWindows license
 // RCS-ID:      $Id$
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 class mjDoc;               // Declared in Doc.h file
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 class DBTreeData : public wxTreeItemData
 {
 public:
  DBTreeData(const wxString& desc) : m_desc(desc) { }
-
  void ShowInfo(wxTreeCtrl *tree);
-
-  wxString m_desc;
+ wxString m_desc;
 };
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 class DBTree : public wxTreeCtrl
 {
  public:
@@ -39,14 +37,14 @@ class DBTree : public wxTreeCtrl
    TreeIc_FolderOpen                // f_open.ico
   };
   wxString Temp0, Temp1, Temp2, Temp3, Temp4, Temp5;
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
   DBTree() { }
   DBTree(wxWindow *parent);
   DBTree(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const wxSize& size,long style);
   virtual ~DBTree();
   mjDoc *pDoc;
   wxDbInf *ct_BrowserDB;
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
   int       i_TabArt;   // Tab = 0 ; Page = 1;
   int       i_ViewNr;   // View Nummer in Tab / Page
   int       i_Which;    // Which View, Database is this/using
@@ -54,9 +52,9 @@ class DBTree : public wxTreeCtrl
   wxMenu   *popupMenu1; // OnDBClass
   wxMenu   *popupMenu2; // OnDBGrid & OnTableclass
   wxPoint TreePos;
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
   wxImageList *p_imageListNormal;
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
  public:
   int  OnPopulate();
   void OnSelChanged(wxTreeEvent& event);
@@ -68,7 +66,7 @@ class DBTree : public wxTreeCtrl
   void OnMouseEvent(wxMouseEvent& event);
   void OnMouseMove(wxMouseEvent& event);
  public:
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
   // NB: due to an ugly wxMSW hack you _must_ use DECLARE_DYNAMIC_CLASS()
   //     if you want your overloaded OnCompareItems() to be called.
   //     OTOH, if you don't want it you may omit the next line - this will
@@ -76,11 +74,11 @@ class DBTree : public wxTreeCtrl
   DECLARE_DYNAMIC_CLASS(DBTree)
   DECLARE_EVENT_TABLE()
 };
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #define POPUP_01_BEGIN     1100
 #define DATA_SHOW          1101
 #define DATA_DB            1102
 #define DATA_TABLE         1103
 #define DATA_TABLE_ALL     1104
 #define POPUP_01_END       1117
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
index 8369e1614e9301aba48d4d8b75a4fdaaad969081..c045db61038b5dc108b669e2f5d4a068a1d9dffd 100644 (file)
@@ -1,4 +1,4 @@
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Name:        DlgUser.h,cpp
 // Purpose:     Dialog mit Variable Gestaltung durch DlgUser.wxr
 // Author:      Mark Johnson, mj10777@gmx.net
@@ -7,44 +7,36 @@
 // Copyright:   (c) Mark Johnson
 // Licence:     wxWindows license
 // RCS-ID:      $Id$
-//---------------------------------------------------------------------------
-//-- all #ifdefs that the whole Project needs. ------------------------------
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- 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"
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifdef __BORLANDC__
 #pragma hdrstop
 #endif
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifndef WX_PRECOMP
 #include "wx/wx.h"
 #endif
-//---------------------------------------------------------------------------
-//-- all #includes that every .cpp needs             ----19990807.mj10777 ---
-//---------------------------------------------------------------------------
-#include "dlguser.h"
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- all #includes that every .cpp needs             ----19990807.mj10777 ----------------
+//----------------------------------------------------------------------------------------
+#include "std.h"
+//----------------------------------------------------------------------------------------
 DlgUser::DlgUser(wxWindow *parent, const wxString& title) :
   wxDialog(parent, ID_DIALOG_DSN, title)
 {
-  SetBackgroundColour("wheat");
-  
-  wxLayoutConstraints* layout;
-  SetAutoLayout(TRUE);
-//   m_Dsn = new wxStaticText(this, -1, "", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
-//   layout = new wxLayoutConstraints;
-//   layout->centreX.SameAs(this, wxCentreX);
-//   layout->top.SameAs(this, wxTop,10);
-//   layout->height.AsIs();
-//   layout->width.AsIs();
-//   m_Dsn->SetConstraints(layout);
+ SetBackgroundColour("wheat");
+
+ wxLayoutConstraints* layout;
+ SetAutoLayout(TRUE);
 
   m_Label1 = new wxStaticText(this, -1, _("User ID:"));
   layout = new wxLayoutConstraints;
@@ -61,9 +53,9 @@ DlgUser::DlgUser(wxWindow *parent, const wxString& title) :
   layout->centreY.SameAs(m_Label1,wxCentreY);
   layout->width.Absolute(200);
   layout->height.AsIs();
-  m_UserName->SetConstraints(layout); 
-  
-  
+  m_UserName->SetConstraints(layout);
+
+
   m_Label2 = new wxStaticText(this, -1, _("Password:"));
   layout = new wxLayoutConstraints;
   layout->left.SameAs(m_Label1, wxLeft);
@@ -71,7 +63,7 @@ DlgUser::DlgUser(wxWindow *parent, const wxString& title) :
   layout->height.AsIs();
   layout->width.SameAs(m_Label1, wxWidth);
   m_Label2->SetConstraints(layout);
-  
+
   m_Password = new wxTextCtrl(this, -1, "", wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD);
   layout = new wxLayoutConstraints;
   layout->left.SameAs(m_UserName, wxLeft);
@@ -80,7 +72,7 @@ DlgUser::DlgUser(wxWindow *parent, const wxString& title) :
   layout->centreY.SameAs(m_Label2,wxCentreY);
   layout->height.AsIs();
   m_Password->SetConstraints(layout);
-  
+
   m_OK = new wxButton(this, wxID_OK, _("Ok"));
   layout = new wxLayoutConstraints;
   layout->left.SameAs(this, wxLeft, 10);
@@ -99,45 +91,28 @@ DlgUser::DlgUser(wxWindow *parent, const wxString& title) :
 
   m_OK->SetDefault();
   m_UserName->SetFocus();
-  
-  
+
   s_User = "";
   s_Password = "";
-  
   Layout();
-
-
-
-
-// wxButton *but1 = new wxButton(this, wxID_OK, "OK", wxPoint(55,110), wxSize(80, 30));
-//  wxButton *but2 = new wxButton(this, wxID_CANCEL, "Cancel", wxPoint(210,110), wxSize(80, 30));
-//  (void)new wxStaticText(this, -1,_("User ID"), wxPoint(20, 40), wxSize(50, 20),wxALIGN_LEFT);
-//  (void)new wxStaticText(this, -1,_("Password"), wxPoint(20, 80), wxSize(50, 20),wxALIGN_LEFT);
-  // but1->SetFocus();
-//  m_OK->SetDefault();
 }
-
- void DlgUser::OnInit()
- {
-   wxString Temp; Temp.Printf(_(">>> %s <<< "),s_DSN.c_str());
-   SetTitle(Temp);
-   
-   m_UserName->SetLabel(s_User);
-   m_Password->SetLabel(s_Password);
-
- //   (void)new wxStaticText(this, -1, Temp, wxPoint(10, 10), wxSize(300, 20),wxALIGN_CENTRE );
-//    tc_User     = new wxTextCtrl(this, ID_USER, s_User, wxPoint(75, 35), wxSize(200, 25), 0, wxDefaultValidator);
-//    tc_Password = new wxTextCtrl(this, ID_PASSWORD, s_Password, wxPoint(75, 75), wxSize(200, 25),wxTE_PASSWORD, wxDefaultValidator);
-//    tc_User->SetFocus();
- }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+void DlgUser::OnInit()
+{
+ wxString Temp; Temp.Printf(_(">>> %s <<< "),s_DSN.c_str());
+ SetTitle(Temp);
+ m_UserName->SetLabel(s_User);
+ m_Password->SetLabel(s_Password);
+ m_Label1->SetFont(* pDoc->ft_Doc); m_Label2->SetFont(* pDoc->ft_Doc);
+ m_UserName->SetFont(* pDoc->ft_Doc); m_Password->SetFont(* pDoc->ft_Doc);
+ m_OK->SetFont(* pDoc->ft_Doc); m_Cancel->SetFont(* pDoc->ft_Doc);
+}
+//----------------------------------------------------------------------------------------
 BEGIN_EVENT_TABLE(DlgUser, wxDialog)
 EVT_BUTTON(wxID_OK, DlgUser::OnOk)
 EVT_BUTTON(wxID_CANCEL, DlgUser::OnCancel)
+ EVT_BUTTON(wxID_OK, DlgUser::OnOk)
+ EVT_BUTTON(wxID_CANCEL, DlgUser::OnCancel)
 END_EVENT_TABLE()
-  
-  
-  //---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void DlgUser::OnOk(wxCommandEvent& WXUNUSED(event) )
 {
   //canceled = FALSE;
@@ -145,11 +120,11 @@ void DlgUser::OnOk(wxCommandEvent& WXUNUSED(event) )
   s_Password = m_Password->GetValue();
   EndModal(wxID_OK);
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 //void DlgUser::OnCancel(wxCommandEvent& WXUNUSED(event) )
 // {
 //   canceled = TRUE;
 //   EndModal(wxID_CANCEL);
 // }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 
index 785ee45e90dd8431d6b3a47f9c832a5214fc3b71..26e219811af347baf32a38af465b1c87710ec9af 100644 (file)
@@ -1,4 +1,4 @@
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Name:        DlgUser.h,cpp
 // Purpose:     Dialog mit Variable Gestaltung durch DlgUser.wxr
 // Author:      Mark Johnson, mj10777@gmx.net
@@ -7,32 +7,30 @@
 // Copyright:   (c) Mark Johnson
 // Licence:     wxWindows license
 // RCS-ID:      $Id$
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // DlgUser
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #define ID_DIALOG_DSN   100
 #define ID_DSN          101
 #define ID_USER         102
 #define ID_PASSWORD     103
 #define ID_TEXT         104
-//---------------------------------------------------------------------------
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+class mjDoc;
+//----------------------------------------------------------------------------------------
 class DlgUser: public wxDialog
 {
  public:
-// bool canceled;
  wxString s_DSN, s_User, s_Password;
-// wxTextCtrl *tc_User, *tc_Password;
  wxStaticText *m_Label1, *m_Label2;
  wxTextCtrl *m_UserName, *m_Password;
  wxButton *m_OK, *m_Cancel;
-
- //---------------------------------------------------------------------------
+ mjDoc *pDoc;
+ //---------------------------------------------------------------------------------------
  DlgUser(wxWindow *parent, const wxString& title);
  void OnInit();
  void OnOk(wxCommandEvent& event);
-// void OnCancel(wxCommandEvent& event);
- //---------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
   DECLARE_EVENT_TABLE()
 };
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
index 64305d1f0874f4463628ae112d0db2a45923b0a4..256a200505004dff873f13c24f8c80a2be60575b 100644 (file)
@@ -1,6 +1,6 @@
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Name:        Doc.cpp
-// Purpose:     Holds information for DBBrowser
+// Purpose:     Holds information for DBBrowser - (a do-it-yourself document)
 // Author:      Mark Johnson, mj10777@gmx.net
 // Modified by: 19990808.mj10777
 // BJO        : Bart A.M. JOURQUIN
 // Copyright:   (c) Mark Johnson
 // Licence:     wxWindows license
 // RCS-ID:      $Id$
-//---------------------------------------------------------------------------
-//-- all #ifdefs that the whole Project needs. ------------------------------
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- 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"
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifdef __BORLANDC__
 #pragma hdrstop
 #endif
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifndef WX_PRECOMP
 #include "wx/wx.h"
 #endif
-//---------------------------------------------------------------------------
-//---------------------------------------------------------------------------
-//-- all #includes that every .cpp needs             ----19990807.mj10777 ---
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- all #includes that every .cpp needs             ----19990807.mj10777 ----------------
+//----------------------------------------------------------------------------------------
 #include "std.h"       // sorgsam Pflegen !
-//---------------------------------------------------------------------------
-//-- Some Global Vars for all Files (extern in ?.h needed) -----------------
+//----------------------------------------------------------------------------------------
+//-- Some Global Vars for all Files (extern in ?.h needed) -------------------------------
 // Global structure for holding ODBC connection information
 struct DbStuff DbConnectInf;
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 wxConfigBase   *p_ProgramCfg;       // All Config and Path information
 wxLogTextCtrl  *p_LogBook;          // All Log messages
 wxString        LogBuf;             // String for all Logs
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 mjDoc::mjDoc()
 {
-  db_Br          = NULL;
-  p_DSN          = NULL;
-  i_DSN          = 0;
-  p_Splitter     = NULL;
-  p_MainFrame    = NULL;
-  p_PgmCtrl      = NULL;               // Is not active
-  p_DBTree       = NULL;
-  p_DBGrid       = NULL;
-  p_LogWin       = NULL;
-  p_TabArea      = NULL;
-  p_PageArea     = NULL;
-  i_TabNr        = 0;
-  i_PageNr       = 0;
+ db_Br          = NULL;
+ p_DSN          = NULL;
+ i_DSN          = 0;
+ p_Splitter     = NULL;
+ p_MainFrame    = NULL;
+ p_PgmCtrl      = NULL;               // Is not active
+ p_DBTree       = NULL;
+ p_DBGrid       = NULL;
+ p_LogWin       = NULL;
+ p_TabArea      = NULL;
+ p_PageArea     = NULL;
+ i_TabNr        = 0;
+ i_PageNr       = 0;
+ s_BColour = "WHEAT";
+ ft_Doc = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT));
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 mjDoc::~mjDoc()
 {
 // ----------------------------------------------------------
 // -E-> The Tree Controls take to long to close : Why ??
 // ----------------------------------------------------------
 // wxMessageBox("-I-> end Doc");
 p_TabArea->Show(FALSE);    // Deactivate the Window
 p_PageArea->Show(FALSE);    // Deactivate the Window
 p_PgmCtrl = NULL;
 delete p_PgmCtrl;
 delete [] p_DSN;
 delete p_DBTree;
 p_TabArea  = NULL; delete p_TabArea;
 p_PageArea = NULL; delete p_PageArea;
 p_Splitter = NULL;
 delete p_Splitter;
 delete [] db_Br;
 //  wxMessageBox("~mjDoc");
+ // ----------------------------------------------------------
+ // -E-> The Tree Controls take to long to close : Why ??
+ // ----------------------------------------------------------
+ // wxMessageBox("-I-> end Doc");
+ p_TabArea->Show(FALSE);    // Deactivate the Window
+ p_PageArea->Show(FALSE);    // Deactivate the Window
+ p_PgmCtrl = NULL;
+ delete p_PgmCtrl;
+ delete [] p_DSN;
+ delete p_DBTree;
+ p_TabArea  = NULL; delete p_TabArea;
+ p_PageArea = NULL; delete p_PageArea;
+ p_Splitter = NULL;
+ delete p_Splitter;
+ delete [] db_Br;
+ //  wxMessageBox("~mjDoc");
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 bool mjDoc::OnNewDocument()
 {
 //-------------------------------------------------------------------
 if (!OnInitView())
   {
-    return FALSE;
   }
 p_PgmCtrl->OnPopulate();
 //-------------------------------------------------------------------
 return TRUE;
//---------------------------------------------------------------------------------------
+ if (!OnInitView())
+ {
+  return FALSE;
+ }
+ p_PgmCtrl->OnPopulate();
//---------------------------------------------------------------------------------------
+ return TRUE;
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 bool mjDoc::OnInitView()
 {
-  Sash = p_ProgramCfg->Read("/MainFrame/Sash", 200);
-  // wxMessageBox("OnInitView() - Begin ","-I->mjDoc::OnInitView");
-  //--------------------------------------------------------------------------
-  // create "workplace" window
-  //--------------------------------------------------------------------------
-  p_TabArea = new wxTabbedWindow(); // Init the Pointer
-  p_TabArea->Create(p_Splitter, -1);
-  //--------------------------------------------------------------------------
-  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
-  //--------------------------------------------------------------------------
-  p_TabArea->AddTab(p_PgmCtrl,"PgmCtrl",p_FolderClose);
-  //--------------------------------------------------------------------------
-  // now create "output" window
-  //--------------------------------------------------------------------------
-  p_PageArea = new wxPaggedWindow();  // Init the Pointer
-  p_PageArea->Create(p_Splitter, -1);
-  //--------------------------------------------------------------------------
-  p_LogWin = new wxTextCtrl(p_PageArea,-1,wxEmptyString,
-                           wxDefaultPosition, wxDefaultSize,wxTE_MULTILINE );
-  //wxFont* ft_Temp = new wxFont(10,wxSWISS,wxNORMAL,wxBOLD,FALSE,"Comic Sans MS");
-  wxFont* ft_Temp = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT));
-  p_LogWin->SetFont(* ft_Temp);
-  // Don't forget ! This is always : i_TabArt = 0 ; i_ViewNr = 1;
-  //------------------------------------------------------------------
-  p_LogBook = new wxLogTextCtrl(p_LogWin); // make p_LogWin the LogBook
-  p_LogBook->SetActiveTarget(p_LogBook);
-  p_LogBook->SetTimestamp( NULL );
-  //------------------------------------------------------------------
-  p_PageArea->AddTab(p_LogWin,_("LogBook"), "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;
-  //--------------------------------------------------------------------------
-  p_PgmCtrl->pDoc = this;
-  p_TabArea->SetActiveTab(i_PageNr);
-  //--------------------------------------------------------------------------
-  p_Splitter->Initialize(p_TabArea);
-  p_Splitter->SplitHorizontally(p_TabArea,p_PageArea,Sash);
-  //--------------------------------------------------------------------------
-  
-  if (!OnInitODBC())
-    return FALSE;
-  //--------------------------------------------------------------------------
-  Temp0.Printf("-I-> mjDoc::OnInitView() - End - %d DSN's found",i_DSN);
-  p_MainFrame->SetStatusText(Temp0, 0);
-  wxLogMessage(Temp0);
-  return TRUE;
+ Sash = p_ProgramCfg->Read("/MainFrame/Sash", 200);
+ // wxMessageBox("OnInitView() - Begin ","-I->mjDoc::OnInitView");
+ //---------------------------------------------------------------------------------------
+ // create "workplace" window
+ //---------------------------------------------------------------------------------------
+ p_TabArea = new wxTabbedWindow(); // Init the Pointer
+ p_TabArea->Create(p_Splitter, -1);
+ //---------------------------------------------------------------------------------------
+ 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
+ //---------------------------------------------------------------------------------------
+ p_TabArea->AddTab(p_PgmCtrl,"PgmCtrl",p_FolderClose);
+ //---------------------------------------------------------------------------------------
+ // now create "output" window
+ //---------------------------------------------------------------------------------------
+ p_PageArea = new wxPaggedWindow();  // Init the Pointer
+ p_PageArea->Create(p_Splitter, -1);
+ //---------------------------------------------------------------------------------------
+ p_LogWin = new wxTextCtrl(p_PageArea,-1,wxEmptyString,
+      wxDefaultPosition, wxDefaultSize,wxTE_MULTILINE );
+ //wxFont* ft_Temp = new wxFont(10,wxSWISS,wxNORMAL,wxBOLD,FALSE,"Comic Sans MS");
+ wxFont* ft_Temp = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT));
+ p_LogWin->SetFont(* ft_Temp);
+ // Don't forget ! This is always : i_TabArt = 0 ; i_ViewNr = 1;
+ //---------------------------------------------------------------------------------------
+ p_LogBook = new wxLogTextCtrl(p_LogWin); // make p_LogWin the LogBook
+ p_LogBook->SetActiveTarget(p_LogBook);
+ p_LogBook->SetTimestamp( NULL );
+ //---------------------------------------------------------------------------------------
+ p_PageArea->AddTab(p_LogWin,_("LogBook"), "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;
+ //---------------------------------------------------------------------------------------
+ p_PgmCtrl->pDoc = this;
+ p_TabArea->SetActiveTab(i_PageNr);
+ //---------------------------------------------------------------------------------------
+ p_Splitter->Initialize(p_TabArea);
+ p_Splitter->SplitHorizontally(p_TabArea,p_PageArea,Sash);
+ //---------------------------------------------------------------------------------------
+ if (!OnInitODBC())
+   return FALSE;
+ //---------------------------------------------------------------------------------------
+ Temp0.Printf("-I-> mjDoc::OnInitView() - End - %d DSN's found",i_DSN);
+ p_MainFrame->SetStatusText(Temp0, 0);
+ wxLogMessage(Temp0);
+ return TRUE;
 }
 //----------------------------------------------------------------------------------------
 bool mjDoc::OnInitODBC()
 {
-  char Dsn[SQL_MAX_DSN_LENGTH + 1];
-  char DsDesc[255]; // BJO20002501 instead of 512
-  Temp0 = "";
-  i_DSN = 0;       // Counter
-  int i = 0;
-  //---------------------------------------------------------------------------
-  // Initialize the ODBC Environment for Database Operations
-  
-  if (SQLAllocEnv(&DbConnectInf.Henv) != SQL_SUCCESS)
-    {
-      return FALSE;
-    }
-  //---------------------------------------------------------------------------
-  
-  const char sep = 3; // separator character used in string between DSN ans DsDesc
-  wxStringList 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(GetDataSource(DbConnectInf.Henv, Dsn, sizeof(Dsn), DsDesc, sizeof(DsDesc)))
-    {
-      i_DSN++;   // How many Dsn have we ?
-      KeyString.Printf("%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
-  p_DSN = new DSN[i_DSN];  //BJO
-  for (i=0;i<i_DSN;i++)
-    {
-      KeyString = s_SortDsDesc[i];
-      KeyString = KeyString.AfterFirst(sep);
-      strcpy(s_SortDsDesc[i],KeyString.c_str());
-      (p_DSN+i)->Dsn = 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());
-      wxLogMessage(Temp0);
-    }
-  i = 0;
-  //---------------------------------------------------------------------------
-  // Allocate n wxDatabase objects to hold the column information
-  db_Br = new BrowserDB[i_DSN];
-  for (i=0;i<i_DSN;i++)
-    {
-      (db_Br+i)->p_LogWindow = p_LogWin;
-      (db_Br+i)->ODBCSource  = (p_DSN+i)->Dsn;
-      (db_Br+i)->UserName    = (p_DSN+i)->Usr;
-      (db_Br+i)->Password    = (p_DSN+i)->Pas;
-      (db_Br+i)->pDoc        = this;
-      (db_Br+i)->i_Which     = i;
-    }
-  
-  if (SQLFreeEnv(&DbConnectInf.Henv) != SQL_SUCCESS) // BJO20000125
-    {
-      // Error freeing environment handle
-    }
-  
-  delete [] s_SortDSN;
-  delete [] s_SortDsDesc;
-  
-  //---------------------------------------------------------------------------
-  if (!i_DSN)
-    {
-      wxMessageBox(_("No Dataset names found in ODBC!\n" \
-                    "            Program will exit!\n\n" \
-                    "                       Ciao"),"-E-> Fatal situation");
-      return FALSE;
-    }
-  //---------------------------------------------------------------------------
-  return TRUE;
+ char Dsn[SQL_MAX_DSN_LENGTH + 1];
+ char DsDesc[255]; // BJO20002501 instead of 512
+ Temp0 = "";
+ i_DSN = 0;       // Counter
+ int i = 0;
+ //---------------------------------------------------------------------------------------
+ // Initialize the ODBC Environment for Database Operations
+
+ if (SQLAllocEnv(&DbConnectInf.Henv) != SQL_SUCCESS)
+ {
+  return FALSE;
+ }
+ //---------------------------------------------------------------------------------------
+ const char sep = 3; // separator character used in string between DSN ans DsDesc
+ wxStringList 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(GetDataSource(DbConnectInf.Henv, Dsn, sizeof(Dsn), DsDesc, sizeof(DsDesc)))
+ {
+  i_DSN++;   // How many Dsn have we ?
+  KeyString.Printf("%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
+ p_DSN = new DSN[i_DSN];  //BJO
+ for (i=0;i<i_DSN;i++)
+ {
+  KeyString = s_SortDsDesc[i];
+  KeyString = KeyString.AfterFirst(sep);
+  strcpy(s_SortDsDesc[i],KeyString.c_str());
+  (p_DSN+i)->Dsn = 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());
+  wxLogMessage(Temp0);
+ }
+ i = 0;
+ //---------------------------------------------------------------------------------------
+ // Allocate n wxDatabase objects to hold the column information
+ db_Br = new BrowserDB[i_DSN];
+ for (i=0;i<i_DSN;i++)
+ {
+  (db_Br+i)->p_LogWindow = p_LogWin;
+  (db_Br+i)->ODBCSource  = (p_DSN+i)->Dsn;
+  (db_Br+i)->UserName    = (p_DSN+i)->Usr;
+  (db_Br+i)->Password    = (p_DSN+i)->Pas;
+  (db_Br+i)->pDoc        = this;
+  (db_Br+i)->i_Which     = i;
+ }
+ if (SQLFreeEnv(&DbConnectInf.Henv) != SQL_SUCCESS) // BJO20000125
+ {
+  // Error freeing environment handle
+ }
+ delete [] s_SortDSN;
+ delete [] s_SortDsDesc;
+ //---------------------------------------------------------------------------------------
+ if (!i_DSN)
+ {
+  wxMessageBox(_("No Dataset names found in ODBC!\n" \
+      "           Program will exit!\n\n" \
+      "                       Ciao"),"-E-> Fatal situation");
+  return FALSE;
+ }
+ //---------------------------------------------------------------------------------------
+ return TRUE;
 }
 //----------------------------------------------------------------------------------------
 bool mjDoc::OnChosenDSN(int Which)
 {
-  // wxLogMessage("OnChosenDSN(%d) - Begin",Which);
-  //---------------------------------------------------------------------------
-  if (p_DBTree != NULL)
-    {
-      p_TabArea->Show(FALSE);    // Deactivate the Window
-      p_TabArea->RemoveTab(p_DBTree->i_ViewNr);
-      p_TabArea->Show(TRUE);     // Activate the Window
-      OnChosenTbl(77,"");
-    }
-  //-------------------------
+ // wxLogMessage("OnChosenDSN(%d) - Begin",Which);
+ //---------------------------------------------------------------------------------------
+ if (p_DBTree != NULL)
+ {
   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_DBTree->i_ViewNr = p_TabArea->GetTabCount()-1;
-  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;
-  p_DBTree->pDoc     = this;
-  p_DBTree->OnPopulate();
-  p_TabArea->SetActiveTab(p_DBTree->i_ViewNr);
-  //---------------------------------------------------------------------------
-  // wxLogMessage("OnChosenDSN(%d) - End",Which);
-  return TRUE;
+  p_TabArea->RemoveTab(p_DBTree->i_ViewNr);
+  p_TabArea->Show(TRUE);     // Activate the Window
+  OnChosenTbl(77,"");
+ }
+ //-------------------------
+ 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_DBTree->i_ViewNr = p_TabArea->GetTabCount()-1;
+ 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;
+ p_DBTree->pDoc     = this;
+ p_DBTree->OnPopulate();
+ p_TabArea->SetActiveTab(p_DBTree->i_ViewNr);
+ //---------------------------------------------------------------------------------------
+ // wxLogMessage("OnChosenDSN(%d) - End",Which);
+ return TRUE;
 }
 //----------------------------------------------------------------------------------------
 bool mjDoc::OnChosenTbl(int Tab,wxString Table)
 {
 // wxLogMessage("OnChosenTbl(%d,%s)",Tab,Table.c_str());
 //-------------------------
 if (p_DBGrid != NULL)
   {
-      if (p_DBGrid->i_TabArt == 0)
-       {
-         p_TabArea->Show(FALSE);    // Deactivate the Window
-         p_TabArea->RemoveTab(p_DBGrid->i_ViewNr);
-         p_TabArea->Show(TRUE);     // Activate the Window
-       }
-      if (p_DBGrid->i_TabArt == 1)
-       {
-         p_PageArea->Show(FALSE);   // Deactivate the Window
-         p_PageArea->RemoveTab(p_DBGrid->i_ViewNr);
-         p_PageArea->Show(TRUE);    // Activate the Window
-       }
-      p_DBGrid = NULL;
-      delete p_DBGrid;
   }
 if (Tab == 77)               // Delete only
-    return TRUE;
 //-------------------------
 if (Tab == 0)  // Tabview
   {
-      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_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
   }
 if (Tab == 1)  // Pageview
   {
-      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_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_DBGrid->OnTableView(Table);
-      p_PageArea->SetActiveTab(p_DBGrid->i_ViewNr);
   }
 p_DBGrid->i_TabArt = Tab;
 //---*----------------------
 return TRUE;;
+ // wxLogMessage("OnChosenTbl(%d,%s)",Tab,Table.c_str());
+ //-------------------------
+ if (p_DBGrid != NULL)
+ {
+  if (p_DBGrid->i_TabArt == 0)
+  {
+   p_TabArea->Show(FALSE);    // Deactivate the Window
+   p_TabArea->RemoveTab(p_DBGrid->i_ViewNr);
+   p_TabArea->Show(TRUE);     // Activate the Window
+  }
+  if (p_DBGrid->i_TabArt == 1)
+  {
+   p_PageArea->Show(FALSE);   // Deactivate the Window
+   p_PageArea->RemoveTab(p_DBGrid->i_ViewNr);
+   p_PageArea->Show(TRUE);    // Activate the Window
+  }
+  p_DBGrid = NULL;
+  delete p_DBGrid;
+ }
+ if (Tab == 77)               // Delete only
+  return TRUE;
+ //-------------------------
+ if (Tab == 0)  // Tabview
+ {
+  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_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
+ }
+ if (Tab == 1)  // Pageview
+ {
+  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_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_DBGrid->OnTableView(Table);
+  p_PageArea->SetActiveTab(p_DBGrid->i_ViewNr);
+ }
+ p_DBGrid->i_TabArt = Tab;
//--------------------------
+ return TRUE;;
 }
 //----------------------------------------------------------------------------------------
 void mjDoc::OnLeer(wxString Aufrufer)
 {
 // Temp0.Printf(_("\nmjDoc::OnLeer(%s) : auch diese funktion steht eines Tages zur Verfügung !"),Aufrufer.c_str());
 Temp0.Printf(_("\nmjDoc::OnLeer(%s) : even this function will one day be available !"),Aufrufer.c_str());
 wxLogMessage(Temp0);  Temp0.Empty();
 return;
+ // Temp0.Printf(_("\nmjDoc::OnLeer(%s) : auch diese funktion steht eines Tages zur Verfügung !"),Aufrufer.c_str());
+ Temp0.Printf(_("\nmjDoc::OnLeer(%s) : even this function will one day be available !"),Aufrufer.c_str());
+ wxLogMessage(Temp0);  Temp0.Empty();
+ return;
 }
 //----------------------------------------------------------------------------------------
 BEGIN_EVENT_TABLE(DocSplitterWindow, wxSplitterWindow)
-  END_EVENT_TABLE()
-  //----------------------------------------------------------------------------------------
-  // Define a constructor for my p_Splitter
-  DocSplitterWindow::DocSplitterWindow(wxWindow *parent, wxWindowID id) : wxSplitterWindow(parent, id)
-{
+END_EVENT_TABLE()
+//----------------------------------------------------------------------------------------
+DocSplitterWindow::DocSplitterWindow(wxWindow *parent, wxWindowID id) : wxSplitterWindow(parent, id)
+{ // Define a constructor for my p_Splitter
 }
 //----------------------------------------------------------------------------------------
index 41397ab85eef693178116628013166a078b298c2..50a761071692187aa132c0cadd200f06d07107f1 100644 (file)
@@ -1,15 +1,15 @@
-//---------------------------------------------------------------------------
+//--------------------------------------------------------------------------------------------------
 // Name:        Doc.h
-// Purpose:     First attempt to make a MDIProgram with a Tree and ListView
+// Purpose:     a non-MFC Document (a do-it-yourself document)
 // Author:      Mark Johnson, mj10777@gmx.net
 // Modified by: 19990808.mj10777
 // Created:     19990808
 // Copyright:   (c) Mark Johnson
 // Licence:     wxWindows license
 // RCS-ID:      $Id$
-//------------------------------------------------------------------------------
-//-- Some Global Vars ------------------------------------------------------
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- Some Global Vars --------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 class DSN
 {
  public:
@@ -18,52 +18,56 @@ class DSN
   wxString  Pas;
   wxString  Usr;
 };
+//----------------------------------------------------------------------------------------
  // Global structure for holding ODBC connection information
 extern struct DbStuff DbConnectInf;
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 extern wxConfigBase   *p_ProgramCfg;       // All Config and Path information
 extern wxLogTextCtrl  *p_LogBook;          // All Log messages
 extern wxString        LogBuf;             // String for all Logs
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 class PgmCtrl;             // Declared in PgmCtrl.h file
 class DocSplitterWindow;   // Declared at the end of the file
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 class mjDoc
 {
  public:
- //---------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
   mjDoc();
   virtual ~mjDoc();
   int Sash;
- //---------------------------------------------------------------------------
- //-- declare document Vars here ---------------------------------------------
- //---------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
+ //-- declare document Vars here ---------------------------------------------------------
+ //---------------------------------------------------------------------------------------
   wxString Temp0, Temp1, Temp2, Temp3, Temp4, Temp5;
   BrowserDB *db_Br;  // Pointer to wxDB
   DSN       *p_DSN;
   int        i_DSN;  // Counter
- //---------------------------------------------------------------------------
-  DocSplitterWindow *p_Splitter;
-  wxFrame           *p_MainFrame;     // SDI Version
-  PgmCtrl           *p_PgmCtrl;
-  DBTree            *p_DBTree;
-  DBGrid            *p_DBGrid;
-  wxTextCtrl        *p_LogWin;
-  wxTabbedWindow    *p_TabArea;
-  wxPaggedWindow    *p_PageArea;
-  int                i_TabNr;         // Amount of active Views in Tab
-  int                i_PageNr;        // Amount of active Views in Page
- //---------------------------------------------------------------------------
- //-- declare document Functions here ----------------------------------------
- //---------------------------------------------------------------------------
+  wxString   s_BColour;
+  wxFont    *ft_Doc;
+ //---------------------------------------------------------------------------------------
+  DocSplitterWindow    *p_Splitter;
+  wxHtmlHelpController *p_Help;
+  wxFrame              *p_MainFrame;     // SDI Version
+  PgmCtrl              *p_PgmCtrl;
+  DBTree               *p_DBTree;
+  DBGrid               *p_DBGrid;
+  wxTextCtrl           *p_LogWin;
+  wxTabbedWindow       *p_TabArea;
+  wxPaggedWindow       *p_PageArea;
+  int                   i_TabNr;         // Amount of active Views in Tab
+  int                   i_PageNr;        // Amount of active Views in Page
+ //---------------------------------------------------------------------------------------
+ //-- declare document Functions here ----------------------------------------------------
+ //---------------------------------------------------------------------------------------
  bool OnNewDocument();
  bool OnInitView();
  bool OnInitODBC();
  bool OnChosenDSN(int Which);
  bool OnChosenTbl(int Tab,wxString Table);
- //---------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
  void OnLeer(wxString Aufrufer);  // Dummy Funktion
- //---------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------------
 };
 class DocSplitterWindow: public wxSplitterWindow
 {
@@ -79,4 +83,4 @@ class DocSplitterWindow: public wxSplitterWindow
  }
  DECLARE_EVENT_TABLE()
 };
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
index 5522bd9e8b6ccc3643402a344b4003f21d9bbee8..4576a7f72a23c939afadf5e51d11f0dee548934d 100644 (file)
@@ -1,4 +1,4 @@
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Name:        pgmctrl.h
 // Purpose:     Programm Control with a Tree
 // Author:      Mark Johnson
@@ -7,25 +7,25 @@
 // RCS-ID:      $Id$
 // Copyright:   (c) Mark Johnson, Berlin Germany, mj10777@gmx.net
 // Licence:     wxWindows license
-//---------------------------------------------------------------------------
-//-- all #ifdefs that the whole Project needs. ------------------------------
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- 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"
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifdef __BORLANDC__
 #pragma hdrstop
 #endif
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifndef WX_PRECOMP
 #include "wx/wx.h"
 #endif
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #ifndef __WXMSW__
 #include "bitmaps/d_closed.xpm"
 #include "bitmaps/d_open.xpm"
 #include "bitmaps/dsnclose.xpm"
 #include "bitmaps/dsnopen.xpm"
 #endif
-//---------------------------------------------------------------------------
-//-- all #includes that every .cpp needs             --- 19990807.mj10777 ---
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- all #includes that every .cpp needs             --- 19990807.mj10777 ----------------
+//----------------------------------------------------------------------------------------
 #include "std.h"    // sorgsam Pflegen !
-//---------------------------------------------------------------------------
-//-- Global functions -------------------------------------------------------
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
+//-- Global functions --------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 static inline const char *bool2String(bool b)
 {
   return b ? "" : "not ";
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 BEGIN_EVENT_TABLE(PgmCtrl, wxTreeCtrl)
   EVT_MOTION (PgmCtrl::OnMouseMove)
   EVT_LEFT_DCLICK(PgmCtrl::OnSelChanged)
   EVT_TREE_ITEM_RIGHT_CLICK(TREE_CTRL_PGM,PgmCtrl::OnRightSelect)
   EVT_MENU(PGMCTRL_ODBC_USER,PgmCtrl::OnUserPassword)
-  END_EVENT_TABLE()
-  //---------------------------------------------------------------------------
-  // PgmCtrl implementation
-  //---------------------------------------------------------------------------
-  IMPLEMENT_DYNAMIC_CLASS(PgmCtrl, wxTreeCtrl)
-  //---------------------------------------------------------------------------
-  PgmCtrl::PgmCtrl(wxWindow *parent) : wxTreeCtrl(parent)
+END_EVENT_TABLE()
+//----------------------------------------------------------------------------------------
+// PgmCtrl implementation
+//----------------------------------------------------------------------------------------
+IMPLEMENT_DYNAMIC_CLASS(PgmCtrl, wxTreeCtrl)
+//----------------------------------------------------------------------------------------
+PgmCtrl::PgmCtrl(wxWindow *parent) : wxTreeCtrl(parent)
 {
 }
+//----------------------------------------------------------------------------------------
 PgmCtrl::PgmCtrl(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const wxSize& size, long style)
   : wxTreeCtrl(parent, id, pos, size, style)
 {
-  //wxFont* ft_Temp = new wxFont(10,wxSWISS,wxNORMAL,wxBOLD,FALSE,"Comic Sans MS");
-  wxFont* ft_Temp = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT));
-  SetFont(* ft_Temp);
-  
-  // Make an image list containing small icons
-  p_imageListNormal = new wxImageList(16, 16, TRUE);
-  
-  // should correspond to TreeIc_xxx enum
+ // Make an image list containing small icons
+ p_imageListNormal = new wxImageList(16, 16, TRUE);
+ // should correspond to TreeIc_xxx enum
 #if defined(__WXMSW__) && defined(__WIN16__)
 // This is required in 16-bit Windows mode only because we can't load a specific (16x16)
 // icon image, so it comes out stretched
 p_imageListNormal->Add(wxBitmap("bitmap1", wxBITMAP_TYPE_BMP_RESOURCE));
 p_imageListNormal->Add(wxBitmap("bitmap2", wxBITMAP_TYPE_BMP_RESOURCE));
+ // This is required in 16-bit Windows mode only because we can't load a specific (16x16)
+ // icon image, so it comes out stretched
+ p_imageListNormal->Add(wxBitmap("bitmap1", wxBITMAP_TYPE_BMP_RESOURCE));
+ p_imageListNormal->Add(wxBitmap("bitmap2", wxBITMAP_TYPE_BMP_RESOURCE));
 #else
 p_imageListNormal->Add(wxICON(Logo));
 p_imageListNormal->Add(wxICON(DsnClosed));
 p_imageListNormal->Add(wxICON(DsnOpen));
 p_imageListNormal->Add(wxICON(DocClosed));
 p_imageListNormal->Add(wxICON(DocOpen));
 p_imageListNormal->Add(wxICON(FolderClosed));
 p_imageListNormal->Add(wxICON(FolderOpen));
p_imageListNormal->Add(wxICON(aLogo));
+ p_imageListNormal->Add(wxICON(DsnClosed));
+ p_imageListNormal->Add(wxICON(DsnOpen));
+ p_imageListNormal->Add(wxICON(DocClosed));
+ p_imageListNormal->Add(wxICON(DocOpen));
+ p_imageListNormal->Add(wxICON(FolderClosed));
+ p_imageListNormal->Add(wxICON(FolderOpen));
 #endif
-  
-  SetImageList(p_imageListNormal);
-  
-  // Add some items to the tree
-  // AddTestItemsToTree(3, 2);
+ SetImageList(p_imageListNormal);
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 PgmCtrl::~PgmCtrl()
 {
-  // wxMessageBox("PgmCtrl::~PgmCtrl() - vor  DeleteAllItems");
-  // DeleteAllItems();
-  // wxMessageBox("nach DeleteAllItems");
-  delete p_imageListNormal;
+ delete p_imageListNormal;
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #undef TREE_EVENT_HANDLER
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 int  PgmCtrl::OnPopulate()
 {
-  wxTreeItemId Root, Folder, Docu;
-  //----------------------------------------------------------------------------------------------------------------------------
-  int i;
-  double dTmp = 1234567.89;
-  Temp0.Printf(_("%s Functions"),p_ProgramCfg->GetAppName().c_str());
-  Root   = AddRoot(Temp0,TreeIc_Logo,TreeIc_Logo, new TreeData("Root"));
-  //----------------------------------------------------------------------------------------------------------------------------
-  Folder = AppendItem(Root, _("Program settings")   ,TreeIc_FolderClosed, TreeIc_FolderOpen, new TreeData("Settings"));
-  p_ProgramCfg->Read("/Local/langid",&Temp0); p_ProgramCfg->Read("/Local/language",&Temp2);
-  Temp1.Printf(_("locale (%s) ; Language (%s) ; Number(%2.2f)"),Temp0.c_str(), Temp2.c_str(), dTmp); Temp0.Empty();  Temp2.Empty();
-  Docu   = AppendItem(Folder, Temp1                 ,TreeIc_DocClosed,          TreeIc_DocOpen,          new TreeData("Setting Language"));
-  p_ProgramCfg->Read("/Paths/Work",&Temp0); Temp1.Printf(_("Work Path : %s"),Temp0.c_str()); Temp0.Empty();
-  Docu   = AppendItem(Folder, Temp1                 ,TreeIc_DocClosed,          TreeIc_DocOpen,          new TreeData("Path Work"));
-  Docu   = AppendItem(Folder, _("Change the language to English") ,TreeIc_DocClosed,          TreeIc_DocOpen,          new TreeData("Language English"));
-  Docu   = AppendItem(Folder, _("Change the language to German")  ,TreeIc_DocClosed,          TreeIc_DocOpen,          new TreeData("Language German"));
-  Docu   = AppendItem(Folder, _("Delete all wxConfigBase Entry's"),TreeIc_DocClosed,          TreeIc_DocOpen,          new TreeData("wxConfigBase Delete"));
-  Folder = AppendItem(Root, "ODBC DSN"  ,TreeIc_FolderClosed, TreeIc_FolderOpen, new TreeData("ODBC-DSN"));
-  for (i=0;i<pDoc->i_DSN;i++)
-    {
-      Temp0.Printf("ODBC-%s",(pDoc->p_DSN+i)->Dsn.c_str());
-      Docu   = AppendItem(Folder,(pDoc->p_DSN+i)->Dsn ,TreeIc_DsnClosed,TreeIc_DsnOpen, new TreeData(Temp0));
-    }
-  //----------------------------------------------------------------------------------------------------------------------------
-  popupMenu1 = NULL;
-  popupMenu1 = new wxMenu("");
-  popupMenu1->Append(PGMCTRL_ODBC_USER, _("Set Username and Password"));
-  // popupMenu1->AppendSeparator();
-  //----------------------------------------------------------------------------------------------------------------------------
-  Expand(Root);
-  Expand(Folder);
-  //----------------------------------------------------------------------------------------------------------------------------
+ SetFont(* pDoc->ft_Doc);
+ wxTreeItemId Root, Folder, Docu;
+ //---------------------------------------------------------------------------------------
+ int i;
+ double dTmp = 1234567.89;
+ Temp0.Printf(_("%s Functions"),p_ProgramCfg->GetAppName().c_str());
+ Root   = AddRoot(Temp0,TreeIc_Logo,TreeIc_Logo, new TreeData("Root"));
+ //---------------------------------------------------------------------------------------
+ Folder = AppendItem(Root, _("Program settings")   ,TreeIc_FolderClosed, TreeIc_FolderOpen, new TreeData("Settings"));
+ p_ProgramCfg->Read("/Local/langid",&Temp0); p_ProgramCfg->Read("/Local/language",&Temp2);
+ Temp1.Printf(_("locale (%s) ; Language (%s) ; Number(%2.2f)"),Temp0.c_str(), Temp2.c_str(), dTmp); Temp0.Empty();  Temp2.Empty();
+ Docu   = AppendItem(Folder, Temp1,TreeIc_DocClosed,TreeIc_DocOpen,new TreeData("Setting Language"));
+ p_ProgramCfg->Read("/Paths/Work",&Temp0); Temp1.Printf(_("Work Path : %s"),Temp0.c_str()); Temp0.Empty();
+ Docu   = AppendItem(Folder,Temp1,TreeIc_DocClosed,TreeIc_DocOpen,new TreeData("Path Work"));
+ Docu   = AppendItem(Folder, _("Change the language to English") ,TreeIc_DocClosed,TreeIc_DocOpen,new TreeData("Language English"));
+ Docu   = AppendItem(Folder, _("Change the language to German")  ,TreeIc_DocClosed,TreeIc_DocOpen,new TreeData("Language German"));
+ Docu   = AppendItem(Folder, _("Delete all wxConfigBase Entry's"),TreeIc_DocClosed,TreeIc_DocOpen,new TreeData("wxConfigBase Delete"));
+ Folder = AppendItem(Root, "ODBC DSN",TreeIc_FolderClosed,TreeIc_FolderOpen,new TreeData("ODBC-DSN"));
+ for (i=0;i<pDoc->i_DSN;i++)
+ {
+  Temp0.Printf("ODBC-%s",(pDoc->p_DSN+i)->Dsn.c_str());
+  Docu   = AppendItem(Folder,(pDoc->p_DSN+i)->Dsn ,TreeIc_DsnClosed,TreeIc_DsnOpen, new TreeData(Temp0));
+ }
+ //---------------------------------------------------------------------------------------
+ popupMenu1 = NULL;
+ popupMenu1 = new wxMenu("");
+ popupMenu1->Append(PGMCTRL_ODBC_USER, _("Set Username and Password"));
+ // popupMenu1->AppendSeparator();
+ //---------------------------------------------------------------------------------------
+ Expand(Root);
+ Expand(Folder);
+ //---------------------------------------------------------------------------------------
   return 0;
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void PgmCtrl::OnSelChanged(wxTreeEvent& WXUNUSED(event))
 {
-  int i;
-  Temp0.Empty();   Temp1.Empty();
-  pDoc->p_MainFrame->SetStatusText(Temp0,0);
-  // Get the Information that we need
-  wxTreeItemId itemId = GetSelection();
-  TreeData *item = (TreeData *)GetItemData(itemId);
-  if ( item != NULL )
+ int i;
+ Temp0.Empty();   Temp1.Empty();
+ pDoc->p_MainFrame->SetStatusText(Temp0,0);
+ // Get the Information that we need
+ wxTreeItemId itemId = GetSelection();
+ TreeData *item = (TreeData *)GetItemData(itemId);
+ if (item != NULL )
+ {
+  int Treffer = 0;
+  Temp1.Printf("%s",item->m_desc.c_str());
+  //--------------------------------------------------------------------------------------
+  if (Temp1 == "Language English")
+  {
+   Temp0 = "std";
+   p_ProgramCfg->Write("/Local/langid",Temp0);
+   Temp0 = _("-I-> After a programm restart, the language will be changed to English.");
+   wxMessageBox(Temp0);
+  }
+  if (Temp1 == "Language German")
+  {
+   Temp0 = "de";
+   p_ProgramCfg->Write("/Local/langid",Temp0);
+   Temp0 = _("-I-> After a programm restart, the language will be changed to German.");
+   wxMessageBox(Temp0);
+  }
+  //--------------------------------------------------------------------------------------
+  if (Temp1 == "wxConfigBase Delete")
+  {
+   if (p_ProgramCfg->DeleteAll()) // Default Diretory for wxFileSelector
+    Temp0 = _("-I-> wxConfigBase.p_ProgramCfg->DeleteAll() was succesfull.");
+   else
+    Temp0 = _("-E-> wxConfigBase.p_ProgramCfg->DeleteAll() was not succesfull !");
+   wxBell();     // Ding_a_Ling
+   Treffer++;
+  }
+  //--------------------------------------------------------------------------------------
+  if (Temp1.Contains("ODBC-"))
+  {
+   Temp1 = Temp1.Mid(5,wxSTRING_MAXLEN);
+   for (i=0;i<pDoc->i_DSN;i++)
+   {
+    if (Temp1 == (pDoc->p_DSN+i)->Dsn)
     {
-      int Treffer = 0;
-      Temp1.Printf("%s",item->m_desc.c_str());
-      //-----------------------------------------------------------------------------------------
-      if (Temp1 == "Language English")
-       {
-         Temp0 = "std";
-         p_ProgramCfg->Write("/Local/langid",Temp0);
-         Temp0 = _("-I-> After a programm restart, the language will be changed to English.");
-         wxMessageBox(Temp0);
-       }
-      if (Temp1 == "Language German")
-       {
-         Temp0 = "de";
-         p_ProgramCfg->Write("/Local/langid",Temp0);
-         Temp0 = _("-I-> After a programm restart, the language will be changed to German.");
-         wxMessageBox(Temp0);
-       }
-      //-----------------------------------------------------------------------------------------
-      if (Temp1 == "wxConfigBase Delete")
-       {
-         if (p_ProgramCfg->DeleteAll()) // Default Diretory for wxFileSelector
-           Temp0 = _("-I-> wxConfigBase.p_ProgramCfg->DeleteAll() was succesfull.");
-         else
-           Temp0 = _("-E-> wxConfigBase.p_ProgramCfg->DeleteAll() was not succesfull !");
-         wxBell();     // Ding_a_Ling
-         Treffer++;
-       }
-      //-----------------------------------------------------------------------------------------
-      if (Temp1.Contains("ODBC-"))
-       {
-         Temp1 = Temp1.Mid(5,wxSTRING_MAXLEN);
-         for (i=0;i<pDoc->i_DSN;i++)
-           {
-             if (Temp1 == (pDoc->p_DSN+i)->Dsn)
-               {
-                 pDoc->OnChosenDSN(i);
-               }
-           }
-         Treffer++;
-       }
-      //-----------------------------------------------------------------------------------------
-      if (Treffer == 0)
-       {
-         //---------------------------------------------------
-         Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
-                "%u children (%u immediately under this item)."),
-                      item->m_desc.c_str(),
-                      bool2String(IsSelected(itemId)),
-                      bool2String(IsExpanded(itemId)),
-                      bool2String(IsBold(itemId)),
-                      GetChildrenCount(itemId),
-                      GetChildrenCount(itemId));
-         LogBuf.Printf("-I-> PgmCtrl::OnSelChanged - %s",Temp0.c_str());
-         wxLogMessage( "%s", LogBuf.c_str() );
-         //---------------------------------------------------
-       }
+     pDoc->OnChosenDSN(i);
     }
+   }
+   Treffer++;
+  }
+  //--------------------------------------------------------------------------------------
+  if (Treffer == 0)
+  {
+   //-------------------------------------------------------------------------------------
+   Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
+                 "%u children (%u immediately under this item)."),
+          item->m_desc.c_str(),
+          bool2String(IsSelected(itemId)),
+          bool2String(IsExpanded(itemId)),
+          bool2String(IsBold(itemId)),
+          GetChildrenCount(itemId),
+          GetChildrenCount(itemId));
+   LogBuf.Printf("-I-> PgmCtrl::OnSelChanged - %s",Temp0.c_str());
+   wxLogMessage( "%s", LogBuf.c_str() );
+   //-------------------------------------------------------------------------------------
+  }
+ }
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void PgmCtrl::OnRightSelect(wxTreeEvent& WXUNUSED(event))
 {
-  int i;
-  Temp0.Empty();
-  // Get the Information that we need
-  wxTreeItemId itemId = GetSelection();
-  DBTreeData *item = (DBTreeData *)GetItemData(itemId);
-  SaveDSN.Empty();
-  if ( item != NULL )
+ int i;
+ Temp0.Empty();
+ // Get the Information that we need
+ wxTreeItemId itemId = GetSelection();
+ DBTreeData *item = (DBTreeData *)GetItemData(itemId);
+ SaveDSN.Empty();
+ if ( item != NULL )
+ {
+  int Treffer = 0;
+  Temp1.Printf("%s",item->m_desc.c_str());
+  //--------------------------------------------------------------------------------------
+  if (Temp1.Contains("ODBC-"))
+  {
+   Temp1 = Temp1.Mid(5,wxSTRING_MAXLEN);
+   for (i=0;i<pDoc->i_DSN;i++)
+   {
+    if (Temp1 == (pDoc->p_DSN+i)->Dsn)
     {
-      int Treffer = 0;
-      Temp1.Printf("%s",item->m_desc.c_str());
-      //-----------------------------------------------------------------------------------------
-      if (Temp1.Contains("ODBC-"))
-       {
-         Temp1 = Temp1.Mid(5,wxSTRING_MAXLEN);
-         for (i=0;i<pDoc->i_DSN;i++)
-           {
-             if (Temp1 == (pDoc->p_DSN+i)->Dsn)
-               {
-                 SaveDSN = Temp1;
-                 PopupMenu(popupMenu1,TreePos.x,TreePos.y);
-               }
-           }
-         Treffer++;
-       }
-      //-----------------------------------------------------------------------------------------
-      if (Treffer == 0)
-       {
-         //---------------------------------------------------
-         /*
-           Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
-           "%u children (%u immediately under this item)."),
-           item->m_desc.c_str(),
-           bool2String(IsSelected(itemId)),
-           bool2String(IsExpanded(itemId)),
+     SaveDSN = Temp1;
+     PopupMenu(popupMenu1,TreePos.x,TreePos.y);
+    }
+   }
+   Treffer++;
+  }
+  //--------------------------------------------------------------------------------------
+  if (Treffer == 0)
+  {
+   /*
+     Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
+     "%u children (%u immediately under this item)."),
+     item->m_desc.c_str(),
+     bool2String(IsSelected(itemId)),
+     bool2String(IsExpanded(itemId)),
                 bool2String(IsBold(itemId)),
                 GetChildrenCount(itemId),
                 GetChildrenCount(itemId));
-               LogBuf.Printf("-I-> DBTree::OnSelChanged - %s",Temp0.c_str());
-               wxLogMessage( "%s", LogBuf.c_str() );
-               */
-         //---------------------------------------------------
-       }
   }
+   LogBuf.Printf("-I-> DBTree::OnSelChanged - %s",Temp0.c_str());
+   wxLogMessage( "%s", LogBuf.c_str() );
+   */
+  }
+  //--------------------------------------------------------------------------------------
+ }
 }
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void PgmCtrl::OnMouseMove(wxMouseEvent &event)
 {
 TreePos = event.GetPosition();
+ TreePos = event.GetPosition();
 }
-//------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 void PgmCtrl::OnUserPassword()
 {
-  // wxMessageBox(SaveDSN);
-  int i, rc=0;
-  //-------------------------------------------
-  DlgUser *p_Dlg = new DlgUser(this, "Username and Password");
-  //-------------------------------------------
-  for (i=0;i<pDoc->i_DSN;i++)
-    {
-      if (SaveDSN == (pDoc->p_DSN+i)->Dsn)
-       {
-         p_Dlg->s_DSN      = (pDoc->p_DSN+i)->Dsn;
-         p_Dlg->s_User     = (pDoc->p_DSN+i)->Usr;
-         p_Dlg->s_Password = (pDoc->p_DSN+i)->Pas;
-         p_Dlg->OnInit();
-         p_Dlg->Fit();
-         //--------------------
-         // Temp0.Printf("i(%d) ; s_DSN(%s) ; s_User(%s) ; s_Password(%s)",i,p_Dlg.s_DSN,p_Dlg.s_User,p_Dlg.s_Password);
-         // wxMessageBox(Temp0);
-         bool OK = FALSE;
-         if (p_Dlg->ShowModal() == wxID_OK)
-           {
-             (pDoc->p_DSN+i)->Usr = p_Dlg->s_User;
-             (pDoc->p_DSN+i)->Pas = p_Dlg->s_Password;
-             (pDoc->db_Br+i)->UserName  = (pDoc->p_DSN+i)->Usr;
-             (pDoc->db_Br+i)->Password  = (pDoc->p_DSN+i)->Pas;
-             OK = TRUE;
-           }
-         delete p_Dlg;
-         if (!OK) return;
-         //--------------------
-         break; // We have what we want, leave
-       }
-    }
-  //-------------------------------------------
-  SaveDSN.Empty();
+ // wxMessageBox(SaveDSN);
+ int i, rc=0;
+ //-------------------------------------------
+ DlgUser *p_Dlg = new DlgUser(this, "Username and Password");
+ //-------------------------------------------
+ for (i=0;i<pDoc->i_DSN;i++)
+ {
+  if (SaveDSN == (pDoc->p_DSN+i)->Dsn)
+  {
+   p_Dlg->s_DSN      = (pDoc->p_DSN+i)->Dsn;
+   p_Dlg->s_User     = (pDoc->p_DSN+i)->Usr;
+   p_Dlg->s_Password = (pDoc->p_DSN+i)->Pas;
+   p_Dlg->OnInit();
+   p_Dlg->Fit();
+   //--------------------
+   // Temp0.Printf("i(%d) ; s_DSN(%s) ; s_User(%s) ; s_Password(%s)",i,p_Dlg.s_DSN,p_Dlg.s_User,p_Dlg.s_Password);
+   // wxMessageBox(Temp0);
+   bool OK = FALSE;
+   if (p_Dlg->ShowModal() == wxID_OK)
+   {
+    (pDoc->p_DSN+i)->Usr = p_Dlg->s_User;
+    (pDoc->p_DSN+i)->Pas = p_Dlg->s_Password;
+    (pDoc->db_Br+i)->UserName  = (pDoc->p_DSN+i)->Usr;
+    (pDoc->db_Br+i)->Password  = (pDoc->p_DSN+i)->Pas;
+    OK = TRUE;
+   }
+   delete p_Dlg;
+   if (!OK) return;
+   //--------------------
+   break; // We have what we want, leave
+  }
+ }
+ //-------------------------------------------
+ SaveDSN.Empty();
 }
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
index abbe978aa7d7f8f189e2c491f01f5998c552767c..b528e2674191b004d8a849f224024ba2cd875e44 100644 (file)
@@ -1,4 +1,4 @@
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 // Name:        pgmctrl.h
 // Purpose:     Programm Control with a Tree
 // Author:      Mark Johnson
@@ -7,19 +7,17 @@
 // RCS-ID:      $Id$
 // Copyright:   (c) Mark Johnson, Berlin Germany, mj10777@gmx.net
 // Licence:     wxWindows license
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 class mjDoc;               // Declared in doc.h file
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 class TreeData : public wxTreeItemData
 {
-public:
+ public:
  TreeData(const wxString& desc) : m_desc(desc) { }
-
  void ShowInfo(wxTreeCtrl *tree);
-
-  wxString m_desc;
+ wxString m_desc;
 };
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 class PgmCtrl : public wxTreeCtrl
 {
  public:
@@ -34,21 +32,21 @@ class PgmCtrl : public wxTreeCtrl
    TreeIc_FolderOpen                // f_open.ico
   };
   wxString Temp0, Temp1, Temp2, Temp3, Temp4, Temp5;
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
   PgmCtrl() { }
   PgmCtrl(wxWindow *parent);
   PgmCtrl(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const wxSize& size,long style);
   virtual ~PgmCtrl();
   mjDoc *pDoc;
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
   int i_TabArt;   // Tab = 0 ; Page = 1;
   int i_ViewNr;   // View Nummer in Tab / Page
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
   wxImageList *p_imageListNormal;
   wxMenu   *popupMenu1; // OnDBClass
   wxPoint  TreePos;
   wxString SaveDSN;     // Needed for User and Password
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
  public:
   int  OnPopulate();
   void OnSelChanged(wxTreeEvent& event);
@@ -57,7 +55,7 @@ class PgmCtrl : public wxTreeCtrl
   void OnUserPassword();
 
  public:
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
   // NB: due to an ugly wxMSW hack you _must_ use DECLARE_DYNAMIC_CLASS()
   //     if you want your overloaded OnCompareItems() to be called.
   //     OTOH, if you don't want it you may omit the next line - this will
@@ -65,8 +63,8 @@ class PgmCtrl : public wxTreeCtrl
   DECLARE_DYNAMIC_CLASS(PgmCtrl)
   DECLARE_EVENT_TABLE()
 };
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 #define PGMCTRL_01_BEGIN     1000
 #define PGMCTRL_ODBC_USER    1001
 #define PGMCTRL_01_END       1010
-//---------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------